天天看點

【信号去噪】基于遺傳算法優化VMD實作信号去噪附matlab代碼

 1 内容介紹

為準确提取軸承故障特征資訊,提出以包絡熵為綜合目标函數的變分模态分解(variational mode decomposition,VMD)參數優化方法,并改進了診斷流程實作了無需指定參數優化範圍的自适應參數優化算法.通過遺傳算法對綜合目标函數最小值進行搜尋,以确定模态分量個數及懲罰參數的最佳組合.原始故障信号經最佳參數組合下的VMD方法分解為若幹個本征模态函數,選擇最小綜合目标函數值對應的模态分量進行包絡解調分析,進而通過模态分量的包絡譜判斷軸承故障類型.通過實測故障信号分析表明,該方法能夠從噪聲幹擾中有效提取到早期故障信号的微弱故障特征,實作了軸承故障類型的準确判定,驗證了該方法的有效性.

2 仿真代碼

function ret = Mutation(pmutation, lenchrom, chrom, sizepop, pop, bound)

    for i = 1:sizepop

        pick = rand;

        while pick == 0

            pick = rand;

        end

        index = ceil(pick * sizepop);

        pick = rand;

        if pick > pmutation

            continue;

        end

        flag = 0;

        while flag == 0

            pick = rand;

            while pick == 0

                pick = rand;

            end

            pos = ceil(pick * sum(lenchrom));

            v = chrom(i, pos);

            v1 = v - bound(pos, 1);

            v2 = bound(pos, 2) - v;

            pick = rand;

            if pick > 0.5

                delta = v2 * (1 - pick^((1 - pop(1) / pop(2))^2));

                chrom(i, pos) = v + delta;

            else

                delta = v1 * (1 - pick^((1 - pop(1) / pop(2))^2));

                chrom(i, pos) = v - delta;

            end

            flag = test(lenchrom, bound, chrom(i, :));

        end

    end

    ret = chrom;

end

3 運作結果

【信号去噪】基于遺傳算法優化VMD實作信号去噪附matlab代碼

【信号去噪】基于遺傳算法優化VMD實作信号去噪附matlab代碼

編輯

【信号去噪】基于遺傳算法優化VMD實作信号去噪附matlab代碼

【信号去噪】基于遺傳算法優化VMD實作信号去噪附matlab代碼

編輯

4 參考文獻

[1]劉嘉敏, 彭玲, 劉軍委,等. 基于遺傳算法的VMD參數優化與小波門檻值的軸承振動信号去噪分析[C]// 第二十七屆全國振動與噪聲應用學術會議論文集. 2016.

部落客簡介:擅長智能優化算法、神經網絡預測、信号處理、元胞自動機、圖像處理、路徑規劃、無人機等多種領域的Matlab仿真,相關matlab代碼問題可私信交流。

繼續閱讀