針對大家評論區(qū)給出的很多問題,作者一直都有關(guān)注,因此在這里又寫了一篇文章,而且思路與這篇文章有不同之處,至于具體的不同之處放在下一篇文章了,大家感興趣的可以移步觀看,下一篇文章可以說是作者的嘔心力作。
(4條消息) 白鯨優(yōu)化算法優(yōu)化VMD參數(shù),并提取特征向量,以西儲大學數(shù)據(jù)為例,附MATLAB代碼_今天吃餃子的博客-CSDN博客https://blog.csdn.net/woaipythonmeme/article/details/131226447?spm=1001.2014.3001.5501好了,廢話到此為止!接下來講正文!
同樣以西儲大學數(shù)據(jù)集為例,選用105.mat中的X105_BA_time.mat數(shù)據(jù)。
首先進行VMD分解,采用麻雀優(yōu)化算法(SSA)對VMD的兩個關(guān)鍵參數(shù)(懲罰因子α和模態(tài)分解數(shù)K)進行優(yōu)化,以最小包絡熵為適應度值。其他智能優(yōu)化算法同樣適用,關(guān)鍵要學會最小包絡熵代碼的編寫,網(wǎng)上的五花八門,代碼中會對最小包絡熵部分進行詳細注釋。
先上結(jié)果圖:
實驗過程中,會實時顯示每次尋優(yōu)后的最小包絡熵值和VMD對應的兩個最佳參數(shù)。本次尋優(yōu)共100次(自己可以隨意更改尋優(yōu)次數(shù))。
可以看到尋優(yōu)100次后,最小包絡熵為7.4036,對應兩個vmd的最佳參數(shù)為122,8,其中懲罰因子為122,模態(tài)分解數(shù)為8。
?收斂曲線如下所示:
代碼包含一個腳本,三個函數(shù)!
主函數(shù)腳本:其中懲罰因子α的范圍是[100-2500],模態(tài)分解數(shù)K的范圍是[3-10]。這里大家可以自行更改,但是一般建議是這樣
clear all
clc
addpath(genpath(pwd))
CostFunction=@(x) Cost(x); % 適應度函數(shù)的調(diào)用,包絡熵值,詳情請看Cost
%設置SSA算法的參數(shù)
Params.nVar=2; % 優(yōu)化變量數(shù)目
Params.VarSize=[1 Params.nVar]; % Size of Decision Variables Matrix
Params.VarMin=[100 3]; % 下限值,分別是a,k
Params.VarMax=[2500 10]; % 上限值
Params.MaxIter=30; % 最大迭代數(shù)目
Params.nPop=30; % 種群規(guī)模
[particle3, GlobalBest3,SD,GlobalWorst3,Predator,Joiner] = Initialization(Params,CostFunction,'SSA'); %初始化SSA參數(shù)
disp(['***采用SSA算法開始尋優(yōu)***'])
[GlobalBest,SSA_curve] = SSA(particle3,GlobalBest3,GlobalWorst3,SD,Predator,Joiner,Params,CostFunction); %采用SSA參數(shù)優(yōu)化VMD的兩個參數(shù)
fMin = GlobalBest.Cost;
bestX = GlobalBest.Position;
%畫適應度函數(shù)圖
figure
plot(1:Params.MaxIter,SSA_curve,'Color','r')
title('Objective space')
xlabel('Iteration');
set(gca,'xtick',0:10:Params.MaxIter);
ylabel('Best score obtained so far');
legend('SSA優(yōu)化VMD')
display(['The best solution obtained by SSA is : ', num2str(round(bestX))]); %輸出最佳位置
display(['The best optimal value of the objective funciton found by SSA is : ', num2str(fMin)]); %輸出最佳適應度值
關(guān)于VMD函數(shù)的詳解和相關(guān)圖像的繪制,可以參考這個文章:(5條消息) VMD分解,matlab代碼,包絡線,包絡譜,中心頻率,峭度值,能量熵,近似熵,包絡熵,希爾伯特變換,包含所有程序MATLAB代碼,-西儲大學數(shù)據(jù)集為例_今天吃餃子的博客-CSDN博客
完整代碼獲?。合路娇ㄆ貜完P(guān)鍵詞:SSAVMD文章來源:http://www.zghlxwxcb.cn/news/detail-492495.html
覺著不錯的給博主留個小贊吧!您的一個小贊就是博主更新的動力!謝謝!文章來源地址http://www.zghlxwxcb.cn/news/detail-492495.html
到了這里,關(guān)于麻雀算法SSA,優(yōu)化VMD,適應度函數(shù)為最小包絡熵,包含MATLAB源代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!