基于PSO优化BP神经网络PID控制器matlab仿真

news/2024/11/25 9:33:57/

目录

1.算法仿真效果

2.MATLAB核心程序

3.算法涉及理论知识概要

4.完整MATLAB


1.算法仿真效果

matlab2022a仿真结果如下:

 

 

 

2.MATLAB核心程序

.......................................................
...........................................................%%%前向传播----------------------------------------net2=xi*(wi');for j=1:1:HOh(j)=( exp( net2(j)-exp(-net2(j)) ) )/(exp( net2(j)+exp(-net2(j)) ));endnet3=wo*Oh;for l=1:1:OutK(l)=exp(net3(l))/(exp(net3(l))+exp(-net3(l)));endkp(k)=M(1)*K(1); ki(k)=M(2)*K(2); kd(k)=M(3)*K(3);Kpid=[kp(k),ki(k),kd(k)];du(k)=Kpid*epid;u(k)=u_1+du(k); if u(k)>10u(k)=10;endif u(k)<-10u(k)=-10;end%%%后向传播------------------------------------------------dyu(k)=sign((yout(k)-y_1)/(du(k)-du_1+0.0001));for j=1:1:OutdK(j)=1/(exp(net3(j))+exp(-net3(j)));%dK(j)=M;endfor l=1:1:Outdelta3(l)=error(k)*dyu(k)*epid(l)*dK(l);endfor l=1:1:Outfor i=1:1:Hd_wo=xite*delta3(l)*Oh(i)+alfa*(wo_1-wo_2);endendwo=wo_1+d_wo+alfa*(wo_1-wo_2);for i=1:1:HdO(i)=4/(exp(net2(i))+exp(-net2(i)))^2;endsegma=delta3*wo;for i=1:1:Hdelta2(i)=dO(i)*segma(i);endd_wi=xite*delta2'*xi;wi=wi_1+d_wi+alfa*(wi_1-wi_2);wo_2=wo_1; wo_1=wo;wi_2=wi_1; wi_1=wi;du_1=du(k);u_7=u_6;u_6=u_5;u_5=u_4; u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);   y_2=y_1; y_1=yout(k); error_2=error_1; error_1=error(k);endfigure;
[t,y]=BPNN_PID();
plot(t,y,'g','Linewidth',2);
hold on;plot(time,rin,'k','Linewidth',2);
xlabel('t/s');  ylabel('rin,yout');
hold on ;plot(time,yout,'r','Linewidth',2);
hold on;[x,y]=classic_PID();
plot(x,y,'b','Linewidth',2);
%-----------------figure;
plot(time,error,'b','Linewidth',2);
xlabel('t/s');  
ylabel('error');figure;
plot(time,u,'b','Linewidth',2);
xlabel('t/s');  
ylabel('u');figure;
subplot(311);
plot(time,kp,'b','Linewidth',2);
xlabel('t/s');  
ylabel('kp');
ylim([9.897,9.903])subplot(312);
plot(time,ki,'b','Linewidth',2);
xlabel('t/s');  
ylabel('ki');subplot(313);
plot(time,kd,'b','Linewidth',2);
xlabel('t/s'); 
ylabel('kd');
A384

3.算法涉及理论知识概要

       PID控制器(比例-积分-微分控制器),由比例单元 P、积分单元 I 和微分单元 D 组成。通过Kp, Ki和Kd三个参数的设定。PID控制器主要适用于基本线性和动态特性不随时间变化的系统。


        PID 控制器的方块图PID 控制器是一个在工业控制应用中常见的反馈回路部件。这个控制器把收集到的数据和一个参考值进行比较,然后把这个差别用于计算新的输入值,这个新的输入值的目的是可以让系统的数据达到或者保持在参考值。和其他简单的控制运算不同,PID控制器可以根据历史数据和差别的出现率来调整输入值,这样可以使系统更加准确,更加稳定。可以通过数学的方法证明,在其他控制方法导致系统有稳定误差或过程反复的情况下,一个PID反馈回路却可以保持系统的稳定。 

       具有比例-积分-微分控制规律的控制器,称PID控制器。这种组合具有三种基本规律各自的特点,其运动方程为:

       由此可见,当利用PID控制器进行串联校正时,除可使系统的型别提高一级外,还将提供两个负实零点。与PI控制器相比,PID控制器除了同样具有提高系统的稳态性能的优点外,还多提供一个负实零点,从而在提高系统动态性能方面,具有更大的优越性。因此,在工业过程控制系统中,广泛使用PID控制器。PID控制器各部分参数的选择,在系统现场调试中最后确定。通常,应使积分部分发生在系统频率特性的低频段,以提高系统的稳态性能;而使微分部分发生在系统频率特性的中频段,以改善系统的动态性能。 

       但是传统比例-积分-微分(Proportion Integral Derivative,PID)控制器存在参数整定困难,不能在线实时调整以及面对复杂非线性系统时应用效果不佳等问题,提出一种基于粒子群算法(Particle Swarm Optimization,PSO)优化的反向传播(Back Propagation,BP)神经网络PID控制方法。将BP神经网络与PID控制器相结合,利用BP神经网络的自适应学习能力在线实时调整PID控制参数,提升系统稳定性,针对BP-PID自学习过程中容易陷入局部极小值问题,利用改进的PSO算法对其进行优化,确保BP-PID系统收敛于全局最优解。基于仿真数据开展实验,结果表明,所提方法能够有效提升系统的控制精度和控制稳定度。 

        PSO算法是一种随机的、并行的优化算法。它的优点是:不要求被优化函数具有可微、可导、连续等性质,收敛速度较快,算法简单,容易编程实现。然而,PSO算法的缺点在于:(1)对于有多个局部极值点的函数,容易陷入到局部极值点中,得不到正确的结果。造成这种现象的原因有两种,其一是由于待优化函数的性质;其二是由于微粒群算法中微粒的多样性迅速消失,造成早熟收敛。这两个因素通常密不可分地纠缠在一起。(2)由于缺乏精密搜索方法的配合,PSO算法往往不能得到精确的结果。造成这种问题的原因是PSO算法并没有很充分地利用计算过程中获得的信息,在每一步迭代中,仅仅利用了群体最优和个体最优的信息。(3)PSO算法虽然提供了全局搜索的可能,但是并不能保证收敛到全局最优点上。(4)PSO算法是一种启发式的仿生优化算法,当前还没有严格的理论基础,仅仅是通过对某种群体搜索现象的简化模拟而设计的,但并没有从原理上说明这种算法为什么有效,以及它适用的范围。因此,PSO算法一般适用于一类高维的、存在多个局部极值点而并不需要得到很高精度解的优化问题。
        当前针对PSO算法开展的研究工作种类繁多,经归纳整理分为如下八个大类:(1)对PSO算法进行理论分析,试图理解其工作机理;(2)改变PSO算法的结构,试图获得性能更好的算法;(3)研究各种参数配置对PSO算法的影响;(4)研究各种拓扑结构对PSO算法的影响;(5)研究离散版本的PSO算法;(6)研究PSO算法的并行算法;(7)利用PSO算法对多种情况下的优化问题进行求解;(8)将PSO算法应用到各个不同的工程领域。以下从这八大类别着手,对PSO算法的研究现状作一梳理。由于文献太多,无法面面俱到,仅捡有代表性的加以综述。

       PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个“极值(pbest和gbest)”来更新自己。在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置。

4.完整MATLAB

V


http://www.ppmy.cn/news/443360.html

相关文章

大数据下数模联动的随机退化设备剩余寿命预测技术(部分)

源自&#xff1a;自动化学报 作者&#xff1a;李天梅 司小胜 刘翔 裴洪 摘要 面向大数据背景下随机退化设备剩余寿命(Remaining useful life, RUL)预测的现实需求, 结合随机退化设备监测大数据特点及剩余寿命预测不确定性量化这一核心问题, 深入分析了机理模型与数据混合驱…

智能优化算法总结-数字孪生下的车间调度-APS预告

获取更多资讯&#xff0c;赶快关注上面的公众号吧&#xff01; 文章目录 总结智能优化算法部分粉丝问题答疑车间调度数据集强化学习求解调度问题时agent很难学习到东西&#xff0c;问题在哪&#xff1f;数字孪生和车间调度 高级计划与排程APS预告 总结智能优化算法 之前仅做了一…

2.11 PID控制算法(三)----PID结果与实际值的关联

文章目录 1、讲解2、举例13、举例24、举例35、调试PID参数 1、讲解 1、AD采样&#xff0c;经过PID计算的值&#xff0c;怎么和PWM对应起来&#xff1f; 2、电机编码采样&#xff0c;经过PID计算的值&#xff0c;怎么与速度对应起来&#xff1f; 这个简单&#xff0c;PID控制原…

智能车复工日记【2】——普通PID、变结构PID、微分先行PID、模糊PID、专家PID

博主联系方式: QQ:1540984562 QQ交流群:892023501 群里会有往届的smarters和电赛选手,群里也会不时分享一些有用的资料,有问题可以在群里多问问。 目录 系列文章前言普通PID舵机参数:电机参数:变结构PI控制(电机控制,这里对公式进行修改采用正态分布公式)微分先行PID(…

PDU模式分析

GSM短信编码方式有三种&#xff0c;Block&#xff0c;Text和PDU模式&#xff0c;Block模式现在已经很少采用&#xff0c;Text模式用来进行ASCII码的短信发送&#xff0c;因为ASCII码是8位字符码&#xff0c;所以主要用来进行单字节信息&#xff0d;拼音或字母的短消息发送&…

【二】MADDPG多智能体算法实现(parl)【追逐游戏复现】

相关文章: 【一】MADDPG-单智能体|多智能体总结(理论、算法) 【二】MADDPG多智能体深度强化学习算法算法实现(parl)--【追逐游戏复现】 程序链接:直接fork:MADDPG多智能体深度强化学习算法算法实现(parl)--【追逐游戏复现】 - 飞桨AI Studio 【一】-环境配置+python入门…

飞思卡尔智能车----模糊PID算法通俗讲

在讲解模糊PID前&#xff0c;我们先要了解PID控制器的原理&#xff08;本文主要介绍模糊PID的运用,对PID控制器的原理不做详细介绍&#xff09;。PID控制器&#xff08;比例-积分-微分控制器&#xff09;是一个在工业控制应用中常见的反馈回路部件&#xff0c;由比例单元P、积分…

智能车常规 PID 以及改进式 PID

PID控制&#xff1a;连续型PID&#xff0c;增量式PID&#xff0c;位置式PID&#xff0c;不完全微分PID&#xff0c;微分先行PID&#xff0c;以及积分死区&#xff0c;三段式积分分离&#xff0c;变速积分&#xff0c;有效偏差法&#xff0c;抗积分饱和&#xff0c;遇限削弱积分…