1 簡介
遺傳算法是一種模拟自然進化而提出的簡單高效的優化組合方法.本 文研究了比例-積分-微分(PID)控制器優化設計的性能名額的選擇問題,介紹了遺傳算法的基本原理,給出了利用遺傳算法進行PID控制器優化設計的步 驟.同時給出了一個用遺傳算法進行單環系統PID控制器優化設計的仿真執行個體.仿真結果表明了遺傳算法應用于PID控制器優化設計的可行性和有效性.遺傳算 法還克服了其它方法的某些弊端.
2 部分代碼
%% 清空環境
clear
clc
%% 參數設定
w = 0.6; % 慣性因子
c1 = 2; % 加速常數
c2 = 2; % 加速常數
Dim = 3; % 維數
% 群體最優更新
if fSwarm(j) < fzbest
zbest = Swarm(j,:);
fzbest = fSwarm(j);
end
end
iter = iter+1; % 疊代次數更新
y_fitness(1,iter) = fzbest; % 為繪圖做準備
K_p(1,iter) = zbest(1);
K_i(1,iter) = zbest(2);
K_d(1,iter) = zbest(3);
end
%% 繪圖輸出
figure(1) % 繪制性能名額ITAE的變化曲線
plot(y_fitness,'LineWidth',2)
title('最優個體适應值','fontsize',18);
xlabel('疊代次數','fontsize',18);ylabel('适應值','fontsize',18);
set(gca,'Fontsize',18);
figure(2) % 繪制PID控制器參數變化曲線
plot(K_p)
hold on
plot(K_i,'k','LineWidth',3)
plot(K_d,'--r')
title('Kp、Ki、Kd 優化曲線','fontsize',18);
xlabel('疊代次數','fontsize',18);ylabel('參數值','fontsize',18);
set(gca,'Fontsize',18);
legend('Kp','Ki','Kd',1);