🍁🥬🕒摘要🕒🥬🍁
传统比例-积分-微分(Proportion Integral Derivative,PID)控制器存在参数整定困难,不能在线实时调整以及面对复杂非线性系统时应用效果不佳等问题,提出一种基于粒子群算法(Particle Swarm Optimization,PSO)优化的反向传播(Back Propagation,BP)神经网络PID控制方法。将BP神经网络与PID控制器相结合,利用BP神经网络的自适应学习能力在线实时调整PID控制参数,提升系统稳定性,针对BP-PID自学习过程中容易陷入局部极小值问题,利用改进的PSO算法对其进行优化,确保BP-PID系统收敛于全局最优解。基于仿真数据开展实验,结果表明,所提方法能够有效提升系统的控制精度和控制稳定度。
✨🔎⚡运行结果⚡🔎✨
💂♨️👨🎓Matlab代码👨🎓♨️💂
clear all; close all; xite=0.50; alfa=0.05; IN=4; H=5; Out=3; ts=0.01; % wi=0.50*rands(H,IN); % wo=0.50*rands(Out,H); %结合粒子群数值优化算法的神经网络权重初始化矩阵 wi=[ -4.7730 5.0000 4.8238 -4.7085 4.9337 4.8659 -4.9651 -4.8618 4.9470 4.9485 -4.6965 4.8327 5.0000 4.9508 4.5696 4.9154 4.6047 -4.7804 5.0000 -4.7332 ]; wo=[ 4.9438 -4.6610 4.9293 4.7416 -4.9323 5.0000 4.9414 4.0693 -4.7460 5.0000 -4.9147 4.8119 4.9292 4.9434 4.9398 ]; %[wi , wo]=SPO_InitW(); wi_init_save=wi; wo_init_save=wo; wo_1=wo; wo_2=wo; wi_1=wi; wi_2=wi; %M=[10,1,10]; %激活函数系数 M=[9.9,9.8,9.4]; x=[0,0,0]; du_1=0; u_1=0; u_2=0; u_3=0; u_4=0; u_5=0;u_6=0;u_7=0; y_1=0; y_2=0; y_3=0; error_1=0; error_2=0; Oh=zeros(H,1); I=Oh; sys=tf(400,[1,50,0]); dsys=c2d(sys,ts,'z'); [num,den]=tfdata(dsys,'v'); for k=1:1:200 time(k)=k*ts; rin(k)=1.0; yout(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2; error(k)=rin(k)-yout(k); X(1)=error(k)-error_1; X(2)=error(k); X(3)=error(k)-2*error_1+error_2; xii=[X(1),X(2),X(3),1]; xi=xii/norm(xii); epid=[X(1);X(2);X(3)]; %%%前向传播---------------------------------------- net2=xi*(wi'); for j=1:1:H Oh(j)=( exp( net2(j)-exp(-net2(j)) ) )/(exp( net2(j)+exp(-net2(j)) )); end
📜📢🌈参考文献🌈📢📜
[1]曾雄飞.基于粒子群算法优化BP神经网络的PID控制算法[J].电子设计工程,2022,30(11):69-73+78.DOI:10.14022/j.issn1674-6236.2022.11.015.