精华内容
下载资源
问答
  • VMD相关学习资料,包括VMD原理,VMD参数优化,粒子群算法等等
  • 基于遗传算法优化多尺度排列熵参数,类似于粒子群算法优化参数
  • 针对上述问题,提出一种基于参数估计优化VMD与多尺度熵(MSE)的石化装备轴承特征提取及诊断新方法.首先,针对VMD分解参数K的难以实现最优设定问题,利用局部均值分解(LMD)自适应分解分量的频率分布特征,构建一种实现K...
  • 遗传算法优化VMD参数

    千次阅读 2021-04-23 17:41:36
    我想用遗传算法优化两个参数,这个两个参数是求解VMD分量必要设定的参数,一个惩罚因子α,一个是模态分解分量K,这两个参数以往是经验值,现在我想以信息熵为目标函数,用遗传算法优化,求所有α和K的组合得到的...

    我想用遗传算法优化两个参数,这个两个参数是求解VMD分量必要设定的参数,一个惩罚因子α,一个是模态分解分量K,这两个参数以往是经验值,现在我想以信息熵为目标函数,用遗传算法优化,求所有α和K的组合得到的所有分量中最小的信息熵,此时得到的α和K值是多少,运行MATLAB程序总是出错,请大神帮我看看代码。

    % Time Domain 0 to T

    N = 1000;

    fs = 1/N;

    t = (1:N)/N;

    freqs = 2*pi*(t-0.5-1/N)/(fs);

    % center frequencies of components

    f_1 = 2;

    f_2 = 24;

    f_3 = 288;

    % modes

    v_1 = (cos(2*pi*f_1*t));

    v_2 = 1/4*(cos(2*pi*f_2*t));

    v_3 = 1/16*(cos(2*pi*f_3*t));

    % for visualization purposes

    wsub{1} = 2*pi*f_1;

    wsub{2} = 2*pi*f_2;

    wsub{3} = 2*pi*f_3;

    % composite signal, including noise

    x = v_1 + v_2 + v_3 + 0.1*randn(size(v_1));

    for a=0:10:200

    %     alpha = a

    for b=1:10

    %     K = b

    end

    end

    % some sample parameters for VMD

    alpha = a;        % moderate bandwidth constraint

    tau = 0;            % noise-tolerance (no strict fidelity enforcement)

    K = b;              % 6 modes

    DC = 0;             % no DC part imposed

    init = 1;           % initialize omegas uniformly

    tol = 1e-5;

    a=[0 200]

    b=[1 10]

    [u, u_hat, omega] = VMD(x, alpha, tau, K, DC, init, tol);

    for i=1:K

    %     K = b

    end

    Hx=yyshang(u(i,:),10);

    y=Hx;

    ObjV=y;

    % ObjV=feval(OBJ_F,Chrom);

    % load('D:\MATLABdata\alldata\105.mat');% 读取内圈105的数据,实际故障频率162Hz

    % x=X105_DE_time(1:4096);%驱动计数段的内圈故障

    % fs=12000;%采样率

    % N=4096;%采样点数

    % n=0:N-1;

    % f=n*fs/N;

    % T=1000;

    % n=0:N-1;

    % t=n/fs;

    %定义遗传算法参数

    GGAP=0.8;              %代沟(Generation gap)

    XOVR=1;                %交叉率

    NVAR=20;               %变量维数

    MUTR=1/NVAR;           %变异率

    MAXGEN=200;            %最大遗传代数(Maximum number of generations)

    INSR=0.9;              %插入率,说明每一代中只有 90%的个体被复制到种群中

    SUBPOP=12;             %子种群数

    MIGR=0.2;              %迁移率

    MIGGEN=20;             %每20代迁移个体

    NIND=20;               %个体数目(Number of individuals)

    RANGE=[0;10];          %变量范围

    SEL_F='sus';           %选择函数名

    XOV_F='recdis';        %重组函数名

    MUT_F='mutbga';        %变异函数名

    OBJ_F='objpush';       %目标函数名

    FieldDD=rep(RANGE,[1,NVAR]);

    trace=zeros(MAXGEN,2);                               %遗传算法性能跟踪

    Chrom=crtrp(SUBPOP*NIND,FieldDD);                    %创建初始种群

    gen=0;

    while gen

    %   ObjV=feval(OBJ_F,bs2rv(Chrom,FieldDD));   %计算目标函数值

    ObjV=y;

    %     Best(gen+1)=min(ObjV);                    %最优解

    %     plot(log10(Best),'bo');

    FitnV=ranking(ObjV);                      %分配适应度值(Assign fitness values)

    SelCh=select(SEL_F,Chrom,FitnV,GGAP,SUBPOP);      %选择

    SelCh=recombin(XOV_F,SelCh);              %重组

    SelCh=mutate(MUT_F,SelCh);                %变异

    Chrom=reins(Chrom,SelCh);                 %重插入

    gen=gen+1;

    end

    grid;

    xlabel('迭代次数');ylabel('目标函数值(取对数)');

    展开全文
  • VMD参数问题

    2021-04-23 17:42:27
    clear alls=('matlab123.mat')alpha=2000;tau=0;k=3;...[u, u_hat, omega] = VMD(s, alpha, tau, K, DC, init, tol);%--------------- Visualization% For convenience here: Order omegas incclc...

    clear all

    s=('matlab123.mat')

    alpha=2000;

    tau=0;

    k=3;

    DC=0;

    init=1;

    tol=1e-7;

    [u, u_hat, omega] = VMD(s, alpha, tau, K, DC, init, tol);

    %--------------- Visualization

    % For convenience here: Order omegas incclcreasingly and reindex u/u_hat

    [~, sortIndex] = sort(omega(end,:));

    omega = omega(:,sortIndex);

    u_hat = u_hat(:,sortIndex);

    u = u(sortIndex,:);

    linestyles = {'b', 'g', 'm', 'c', 'c', 'r', 'k'};

    figure('Name', 'Composite input signal' );

    plot(t,f, 'k');

    set(gca, 'XLim', [0 1]);

    for sub = 1:length(fsub)

    figure('Name', ['Input signal component ' num2str(sub)] );

    plot(t,fsub{sub}, 'k');

    set(gca, 'XLim', [0 1]);

    end

    figure('Name', 'Input signal spectrum' );

    loglog(freqs(T/2+1:end), abs(f_hat(T/2+1:end)), 'k');

    set(gca, 'XLim', [1 T/2]*pi*2, 'XGrid', 'on', 'YGrid', 'on', 'XMinorGrid', 'off', 'YMinorGrid', 'off');

    ylims = get(gca, 'YLim');

    hold on;

    for sub = 1:length(wsub)

    loglog([wsub{sub} wsub{sub}], ylims, 'k--');

    end

    set(gca, 'YLim', ylims);

    figure('Name', 'Evolution of center frequencies omega');

    for k=1:K

    semilogx(2*pi/fs*omega(:,k), 1:size(omega,1), linestyles{k});

    hold on;

    end

    set(gca, 'YLim', [1,size(omega,1)]);

    set(gca, 'XLim', [2*pi,0.5*2*pi/fs], 'XGrid', 'on', 'XMinorGrid', 'on');

    figure('Name', 'Spectral decomposition');

    loglog(freqs(T/2+1:end), abs(f_hat(T/2+1:end)), 'k:');

    set(gca, 'XLim', [1 T/2]*pi*2, 'XGrid', 'on', 'YGrid', 'on', 'XMinorGrid', 'off', 'YMinorGrid', 'off');

    hold on;

    for k = 1:K

    loglog(freqs(T/2+1:end), abs(u_hat(T/2+1:end,k)), linestyles{k});

    end

    set(gca, 'YLim', ylims);

    for k = 1:K

    figure('Name', ['Reconstructed mode ' num2str(K)]);

    plot(t,u(k,:), linestyles{k});   hold on;

    if ~isempty(fsub)

    plot(t, fsub{min(k,length(fsub))}, 'k:');

    end

    set(gca, 'XLim', [0 1]);

    end

    for i=1:3

    figure;

    plot(u(i,:));

    end

    一运行出现这样的错误

    Undefined function or variable 'K'.

    Error in zhangyuan (line 9)

    [u, u_hat, omega] = VMD(s, alpha, tau, K, DC, init, tol);

    请大神指点

    展开全文
  • 文献为“基于 VMD 与 PSO 优化深度信念网络的 短期负荷预测”的caj文件,为提高短期负荷预测精度,采用变分模态分解(variational mode decomposition,VMD)技术将原始历史负荷序列分解为一系列特征互异的模态函数,...
  • 粒子群算法优化vmd算法,极大提高算法的精确性和运行速度
  • 针对从滚动轴承振动信号中所提取的故障信息精度低的问题,利用遗传算法对变分模态分解模态个数K和惩罚参数α 寻优,目标函数为多尺度排列熵参数,再根据VMD处理信号得到若干模态分量,筛选后进一步提取能量熵作为...

    目录

    1 简介

    2 变分模态分解VMD原理

    3 GA优化VMD效果

    3.1 遗传算法优化VMD各分量信号图像

    3.2 全部图像

    4 主要代码

    main.m


    1 简介

    针对从滚动轴承振动信号中所提取的故障信息精度低的问题,利用遗传算法对变分模态分解模态个数K和惩罚参数α 寻优,目标函数为多尺度排列熵参数,再根据VMD处理信号得到若干模态分量,筛选后进一步提取能量熵作为特征向量。使用特征提取向量,可进行后续轴承故障诊断等工作。

    2 变分模态分解VMD原理

    VMD能够自适应匹配每种模态的最佳中心频率和有限带宽,实现固有模态分量(IMF)有效分离,
    其核心思想是构建和求解变分问题。

    VMD实现步骤为:

    由VMD分解步骤可知,分解信号前需要设置合适的模态个数K和惩罚参数α,K取值过大会导致过分解,反之,则会欠分解,α 取值过大,会造成频带信息丢失,反之,会信息冗余,所以需要确定最佳参数组合[K,α]。目前多用中心频率观察法,通过观察不同K值下的中心频率确定K值,但该法具有偶然性,且只能确定模态个数K,无法确定惩罚参数α。

    使用遗传算法(GA)对VMD变分模态分解的惩罚参数alpha与分解模态层数K进行寻优,以局部包络熵极小值作为适应度函数。[alpha, K] 为进化个体的位置,局部包络熵极小值为个体的适应度值。

    3 GA优化VMD效果

    3.1 遗传算法优化VMD各分量信号图像

    1.时域图像

    2.频谱图像

    3.2 全部图像

    4 主要代码

    main.m

    %% 基于遗传算法(genetic algorithm, GA))优化变分模态分解(variational mode decomposition,VMD)参数
    
    clc
    clear
    close all
    % 读取数据
    [file,path,indx]  = uigetfile({'*.xlsx';'*.xls';'*.txt';'*.*'},'File Selector');
    if indx == 1||indx==2
        data=xlsread(strcat(path, file));
    elseif indx == 3
        data=load(strcat(path, file));
    else
        warning('请选择数据集进行实验');
        return;
    end
    
    %采样频率
    fs=12800;
    % 读取前1000长度的信号
    len=1000;
    s=data(1:len);
    % 采样时间
    t = (0:len-1)/fs;
    
    %% 设定遗传算法参数
    popsize =6;   % 种群大小
    iter =30;   % 最大迭代次数
    dim = 2;   % 变量个数
    lb = [100 3];   % alpha范围 K范围   下限
    ub = [2000 7];  % 上限
    pc=0.8;                       %交叉概率,0和1之间
    pm=0.2;                    %变异概率,0和1之间
    
    %% 遗传算法GA优化VMD参数
    
    tic ,  % 开始计时
    
    GA_VMD(popsize,iter,dim,lb,ub,pc,pm,0);  % 0表示不保存IMF,1,导出IMF并保存
    
    toc,  % 结束计时
    

    展开全文
  • 蛙跳算法优化VMD参数,惩罚系数,分解层数,matlab语言 ,最小包络熵为适应度函数。

    蛙跳算法优化VMD参数,惩罚系数,分解层数,matlab语言 ,最小包络熵为适应度函数。

    在这里插入图片描述

    展开全文
  • 粒子群算法寻优,在限定条件下实现对群体变量的选择优化,以达到目标的最优值。
  • 基于相对熵优化VMD的非局部均值去噪方法

    千次阅读 多人点赞 2021-06-04 16:35:51
    利用K-L散度(相对熵)确定VMD分解信号的K值和惩罚因子alpha,得到一组信号分量;计算各个分量的样本熵,根据样本熵的值,选取出噪声主导分量和有效分量;对噪声主导信号进行非局部均值(NLM)去噪;将去噪后的信号分量...
  • 变分模态分解算法虽然克服了传统经验模态分解及其改进方法的缺点,但分解前需要设定分解层数K和惩罚因子α ,参数的选择对...本程序利用K-L散度(相对熵)对VMD参数进行寻优,确定VMD分解信号的K值和惩罚因子alpha。
  • 基于遗传算法优化VMD参数,遗传算法函数优化,matlab源码
  • 针对从滚动轴承振动信号中所提取的故障信息精度低的问题,利用鲸鱼优化算法对变分模态分解模态个数K和惩罚参数α 寻优,然后根据VMD处理信号得到若干模态分量,筛选后进一步提取能量熵作为特征向量。使用特征提取...
  • 传统的PID控制器参数优化方法容易产生振荡和较大的超调量,因此智能算法如遗传算法(SGA)和粒子群算法(PSO)被用于参数优化,弥补传统算法的不足,但是遗传算法在进化过程中收敛速度慢,粒子群算法存在易于早熟的...
  • PSO_VMD_MCKD.rar

    2021-08-16 17:34:45
    基于PSO_VMD_MCKD方法的风机轴承微弱故障诊断。为实现 VMD 和 MCKD 的参数自适应选择,采用粒子群优化算法对两种算法中的参数进行优化,确定适应度函数为包络谱峰值因子。该资源中包括了频谱函数和求包络谱函数。
  • vmd matlab代码变分模式分解 (VMD) 及其变体 原始 VMD 代码:VMD.m K. Dragomiretskiy, D. Zosso, Variational Mode Decomposition, IEEE Trans. on Signal Processing 多元变分模式分解代码:MVVMD.m N. Rehman, H....
  • VMD算法

    万次阅读 多人点赞 2020-10-20 09:09:43
    概念:变分模态分解(Variational Modal Decomposition,VMD)是一种新的时频分析方法,能够将多分量信号一次性分解成多个单分量调幅调频信号,避免了迭代过程中遇到的端点效应和虚假分量问题。该方法能有效处理非线性...
  • 基于优化算法的核函数参数选择的研究,用于svm核参数的选取
  • Python对SVM的参数理解
  • PSO1-VMD.rar

    2021-05-18 22:46:03
    粒子群算法优化变分模态分解参数K、Alpha
  • 果蝇优化算法优化Z-SCORE模型参数

    千次阅读 2017-03-31 15:14:19
    检查优化后的参数p1,p2..p5预测效果 可以看出,果蝇算法(FOA)优化后,整体正确率由Z-SCORE模型的65%(13/20)提高到了75%(15/20)。但在预测新个体(17-20)时,正确率并不能明显提高,猜测是需要达到一定的...
  • 对利用变分模态分解法对振动信号进行分解,通过遗传算法对变分模态分解的模态数K和惩罚因子α进行优化,如何把这两个参数与遗传算法的适应度函数相联系起来?要通过怎样的方式?
  • 为实现 VMD 和 MCKD 的参数自适应选择,采用粒子群优化算法对两种算法中的参数进行优化,确定适应度函数为包络谱峰值因子。
  • 基于改进VMD_ELM和VPMCD算法的滚动轴承故障诊断方法研究_宋坤骏.caj
  • 上篇博文已经讲述了VMD的分解机制,关于其中的参数,特别是分解层数如何确定的问题,这篇文章给出一个解决方法:最优变分模态分解(OVMD),利用中心频率法确定分解层数K,利用残差指数指标确定更新步长tau。...
  • 在以往的应用经验里,VMD方法在众多模态分解方法中可以说是非常好的。从催更力度上看,这个方法也是格外受关注。笔者决定加快进度快一些写完这个方法,十月份了有些同学要开始做毕设,希望这篇文能帮上忙。 1. VMD...
  • 优化SVM算法的参数c和g为例,对GWO算法MATLAB源码进行了逐行中文注解。是很好的学习材料

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 300
精华内容 120
关键字:

vmd参数优化