1.課題概述
??????基于PSO粒子群優(yōu)化的PID控制器參數(shù)整定。通過(guò)PSO不斷的優(yōu)化,使得PID控制器的控制反饋誤差逐漸接近0,在完成優(yōu)化迭代之后,對(duì)應(yīng)的參數(shù),即PID控制器的參數(shù)。
2.系統(tǒng)仿真結(jié)果


3.核心程序與模型
版本:MATLAB2022a
for jj = 1: Iteration
???jj
???for j=1:Npop
???????%速度更新
???????Vs(j,:) = 0.75*Vs(j,:) + c1*rand*(gbest(j,:) - Pops(j,:)) +c2*rand*(zbest - Pops(j,:));
............................................................
???????%適應(yīng)值
???????yfits(j,:) = func_fitness(Pops(j,:));
???????%最優(yōu)更新????
???????if yfits(j) < fgbest(j)
??????????gbest(j,:) = Pops(j,:);
??????????fgbest(j) = yfits(j);
???????end
???????%最優(yōu)更新
???????if yfits(j) < fzbest
??????????zbest? = Pops(j,:);
??????????fzbest = yfits(j);
???????end
???end
??? %保持最優(yōu)值
???y_fitness(1,jj) = fzbest;???????
???Kps(1,jj)?????? = zbest(1);
???Kis(1,jj)?????? = zbest(2);
???Kds(1,jj)?????? = zbest(3);
end
figure
plot(y_fitness,'b-o')
legend('最優(yōu)個(gè)體適應(yīng)值');
xlabel('迭代次數(shù)');
ylabel('適應(yīng)值');
figure
subplot(311)
plot(Kps,'-bs',...
???'LineWidth',1,...
???'MarkerSize',6,...
???'MarkerEdgeColor','k',...
???'MarkerFaceColor',[0.9,0.0,0.0]);
xlabel('迭代次數(shù)');
ylabel('參數(shù)值');
legend('Kp');
ylim([0,1100]);
subplot(312)
plot(Kis,'-mo',...
???'LineWidth',1,...
???'MarkerSize',6,...
???'MarkerEdgeColor','k',...
???'MarkerFaceColor',[0.5,0.9,0.0]);
xlabel('迭代次數(shù)');
ylabel('參數(shù)值');
legend('Ki');
ylim([0,30]);
subplot(313)
plot(Kds,'-r>',...
???'LineWidth',1,...
???'MarkerSize',6,...
???'MarkerEdgeColor','k',...
???'MarkerFaceColor',[0.9,0.9,0.0]);
xlabel('迭代次數(shù)');
ylabel('參數(shù)值');
legend('Kd');
ylim([0,500]);
27
4.系統(tǒng)原理簡(jiǎn)介
???????基于PSO(粒子群優(yōu)化)算法的PID(比例-積分-微分)控制器參數(shù)整定是一種優(yōu)化方法,用于自動(dòng)調(diào)整PID控制器的參數(shù)(比例增益Kp、積分增益Ki和微分增益Kd),以達(dá)到最佳的控制性能。
4.1 PID控制器簡(jiǎn)介
????????PID控制器是一種廣泛使用的控制算法,其輸出由比例、積分和微分三個(gè)部分的線性組合構(gòu)成。對(duì)于給定的系統(tǒng)誤差e(t)(期望值與實(shí)際值之差),PID控制器的輸出u(t)可以表示為:

其中,( K_p )、( K_i ) 和 ( K_d ) 分別是比例、積分和微分增益。
4.2 PSO算法原理
????????PSO是一種基于群體智能的優(yōu)化算法,通過(guò)模擬鳥(niǎo)群覓食行為中的社會(huì)信息共享機(jī)制來(lái)尋找問(wèn)題的最優(yōu)解。在PSO中,每個(gè)解被視為一個(gè)“粒子”,在搜索空間中以一定的速度和方向移動(dòng)。每個(gè)粒子都有一個(gè)位置(代表解的值)和一個(gè)速度,以及一個(gè)由目標(biāo)函數(shù)確定的適應(yīng)度值。
粒子的速度和位置更新公式如下:
v(i)=v(i)w+c1rand*(pbest(i)-x(i))+c2*rand(gbest(i)-x(i))
x(i)=x(i)+v(i)
??????其中,( v_{i}(t) ) 和 (
x_{i}(t) ) 分別是粒子i在時(shí)刻t的速度和位置;( pbest_{i} ) 是粒子i的個(gè)體歷史最優(yōu)位置;( gbest ) 是整個(gè)群體的全局最優(yōu)位置;( w ) 是慣性權(quán)重;( c_1 ) 和 ( c_2 ) 是學(xué)習(xí)因子;( r_1 ) 和 ( r_2 ) 是[0,1]之間的隨機(jī)數(shù)。
4.3 基于PSO的PID參數(shù)整定
???????在基于PSO的PID參數(shù)整定中,我們將PID控制器的參數(shù)(( K_p ), ( K_i ), ( K_d ))編碼為粒子的位置向量。目標(biāo)函數(shù)通常與控制系統(tǒng)的性能指標(biāo)相關(guān),如誤差積分(IAE)、時(shí)間乘以誤差絕對(duì)值積分(ITAE)等。優(yōu)化目標(biāo)是最小化這個(gè)性能指標(biāo)。算法步驟如下:
初始化粒子群,包括粒子的位置(PID參數(shù))、速度和適應(yīng)度值。
評(píng)估每個(gè)粒子的適應(yīng)度值,即使用當(dāng)前PID參數(shù)對(duì)控制系統(tǒng)進(jìn)行仿真,并計(jì)算性能指標(biāo)。
更新每個(gè)粒子的個(gè)體歷史最優(yōu)位置(pbest)和全局最優(yōu)位置(gbest)。
根據(jù)PSO的速度和位置更新公式更新粒子的速度和位置。
重復(fù)步驟2-4,直到滿足終止條件(如達(dá)到最大迭代次數(shù)或性能指標(biāo)足夠好)。
輸出全局最優(yōu)位置作為整定后的PID參數(shù)。
??????基于PSO的PID參數(shù)整定方法結(jié)合了PSO算法的全局搜索能力和PID控制器的簡(jiǎn)單有效性,為復(fù)雜控制系統(tǒng)的參數(shù)優(yōu)化提供了一種有效手段。未來(lái)研究方向包括改進(jìn)PSO算法以提高搜索效率、考慮控制系統(tǒng)的不確定性和非線性因素、以及將該方法應(yīng)用于更廣泛的工業(yè)控制場(chǎng)景。