ハイイロオオカミ アルゴリズムは ICEEMDAN パラメーターを最適化し、最小エンベロープ エントロピー、サンプル エントロピー、情報エントロピー、順列エントロピーを含む 4 つのフィットネス関数を任意に切り替えることができます。

今日はこんな問題をお届けしますハイイロオオカミ アルゴリズムを使用して ICEEMDAN パラメーターを最適化するための MATLAB コード。

ICEEMDAN パラメータの最適化に関するアイデアについては、次のドキュメントを参照してください。

[1] Chen Aiwu、Wang Honwei. HBA-ICEEMDAN および HWPE に基づく遊星ギアボックスの故障診断 [J]. 機械および電気工学、2023、40(08): 1157-1166。

言及されている文書の原文: ICEEMDAN 法の分解効果はホワイト ノイズ振幅重み (Nstd) とノイズ追加数 (NE) に依存するため、著者はインテリジェントな最適化アルゴリズムを使用して ICEEMDAN の 2 つのパラメーターを最適化します。 、フィットネス関数はパッケージ ネットワーク エントロピーを使用します。フィットネス値が小さいほど、分解効果が優れていることを意味します。最適化と更新を通じて、最終的な最良のパラメーターの組み合わせ (Nstd、NE) が決定されます。

この記事では、ウェスタン リザーブ大学のデータ セットを例として、105.mat の X105_BA_time.mat データで 1000 個のデータ ポイントを選択します。データがない場合は、この記事をお読みください。Western Reserve University ベアリング診断データ処理、MATLAB の無料コード取得

最適化のために選択された 4 つの適応度関数, 自由に切り替えることができます. ICEEMDAN の最適化にはハイイロオオカミ アルゴリズムを使用しました. 最適化は 30 回実行され, 母数は 10 でした. ノイズ振幅重みの最適化範囲を[0.15,0.6]、ノイズ加算数の最適化範囲を[50,600]として、ホワイトノイズ振幅重み(Nstd)とノイズ加算数(NE)を決定します。 )アイスムダンの。

4 つの適応度関数は、最小エンベロープ エントロピー、最小サンプル エントロピー、最小情報エントロピー、最小順列エントロピーであり、コード内で 1 回クリックするだけで切り替えることができます。

1. 適応度関数としての最小エンベロープエントロピー

6c6436f5f52bdf4d1925c9fab477653f.png

最適化プロセスは次のとおりです。

4be331530e00abdebd3453f3b388a733.png

結果は次のとおりです。

144fed6140ea8b7b96e9fc965236a9e1.png

2. 適応度関数としての最小サンプルエントロピー

42aac5185aa5dd8b026469e35216dfa2.png

a8a382ab57ecf5cfd04648c8728dadfe.png

3.適応度関数としての最小情報エントロピー

78c7ed9370419cd972cd7cc01424aacc.png

8755403b6a75bfef8548b8b6c350ba3f.png

4.適応度関数としての最小順列エントロピー

e1b5098973d1ea752800dfb17a168e4b.png

71b5b7b525bb0b5ac33252321279d43a.png

コード:

%% 以最小包络熵、最小样本熵、最小信息熵、最小排列熵为目标函数(任选其一),采用GWO算法优化ICEEMDAN,求取ICEEMDAN最佳的两个参数
clear
clc
close all
xz = 1;  %xz, 选择1,以最小包络熵为适应度函数,
% 选择2,以最小样本熵为适应度函数,
% 选择3,以最小信息熵为适应度函数,
% 选择4,以最小排列熵为适应度函数,
if xz == 1  
    fobj=@EnvelopeEntropyCost;          %最小包络熵
elseif xz == 2
    fobj=@SampleEntropyCost;            %最小样本熵
elseif xz == 3  
    fobj=@infoEntropyCost;              %最小信息熵
elseif xz == 4
    fobj=@PermutationEntropyCost;       %最小排列熵
end


%% 选取数据
load 105.mat
da = X105_DE_time(6001:7000); %这里选取105的DEtime数据,注意这里替换为自己的数据即可,数据形式为n行*1列,列数必须为1。


%% 设置参数
lb = [0.15 50];    %噪声幅值权重的优化范围设置为[0.15,0.6],噪声添加次数的优化范围为[50,600]
ub = [0.6 600];  
dim = 2;            % 优化变量数目
Max_iter=30;       % 最大迭代数目
SearchAgents_no=10;       %种群规模


%% 调用GWO函数
disp('代码运行时间较长,请耐心等待!')
[fMin , bestX, Convergence_curve ] = GWO(SearchAgents_no,Max_iter,lb,ub,dim,fobj,da);


%% 画适应度函数曲线图,并输出最佳参数
figure
plot(Convergence_curve,'Color',[0.9 0.5 0.1],'Marker','>','LineStyle','--','linewidth',1);
title('Objective space')
xlabel('Iteration');
ylabel('Best score obtained so far');
legend('GWO优化ICEEMDAN')
disp(['The best solution obtained by GWO is : [',num2str(bestX(1)),',',num2str(fix(bestX(2))),']']);  %输出最佳位置
disp(['The best optimal value of the objective funciton found by GWO is : ', num2str(fMin)]);  %输出最佳适应度值

誰もが変数 xz に注目します。1 を選択すると、最小エンベロープ エントロピーが適合関数として使用されます。2 を選択すると、最小サンプル エントロピーが適合関数として使用されます。3 を選択すると、最小情報エントロピーは次のようになります。 4 を選択した場合、最小の順列エントロピーが適応度関数になります。これにより、誰でも簡単に切り替えることができます。

コードディレクトリは次のとおりです。

8f3fcb26490c9f06a2a09da887703af3.png


ここでは、MATLAB のヒントを簡単に紹介します。MATLAB の「名前」を右クリックすると、グループ化の基準が表示され、このタイプをチェックします。MATLAB は、現在のフォルダー内のすべてのファイルをさまざまなタイプに従って自動的にグループ化します。どのファイルが関数に属し、どのファイルがスクリプトに属しているかを判断するには、一般的に、スクリプトは実行できますが、関数は実行できません。これは初心者の友達にもとても優しいです!

0a7eb878570c77e8d1d607f93a507cf5.png

この問題の完全なコードを取得し、背景にキーワードを含めて返信します。

TGDM828

おすすめ

転載: blog.csdn.net/woaipythonmeme/article/details/132844092
おすすめ