基于BP神经网络的PID控制,神经网络算法pid控制

基于BP神经网络的PID控制器设计

参考一下刘金琨的《先进PID控制》这本书。

例子:被控对象yout(k)=a(k)yout(k-1)/(1+yout(k-1)^2)+u(k_1)其中a(k)=1.2(1-0.8e^(-0.1k))输入信号:rin(k)=1.0和rin(k)=sin(2t)%BPbasedPIDControlclearall;closeall;xite=0.25;//学习速率alfa=0.05;//惯性系数S=1;%SignaltypeIN=4;H=5;Out=3;%NNStructureifS==1%StepSignalwi=[-0.6394-0.2696-0.3756-0.7023;-0.8603-0.2013-0.5024-0.2596;-1.07490.5543-1.6820-0.5437;-0.3625-0.0724-0.6463-0.2859;0.14250.0279-0.5406-0.7660];%wi=0.50*rands(H,IN);wi_1=wi;wi_2=wi;wi_3=wi;wo=[0.75760.26160.5820-0.1416-0.1325;-0.11460.29490.83520.22050.4508;0.72010.45660.76720.49620.3632];%wo=0.50*rands(Out,H);wo_1=wo;wo_2=wo;wo_3=wo;endifS==2%SineSignalwi=[-0.28460.2193-0.5097-1.0668;-0.7484-0.1210-0.47080.0988;-0.71760.8297-1.60000.2049;-0.08580.1925-0.63460.0347;0.43580.2369-0.4564-0.1324];%wi=0.50*rands(H,IN);wi_1=wi;wi_2=wi;wi_3=wi;wo=[1.04380.54780.86820.14460.1537;0.17160.58111.12140.50670.7370;1.00630.74281.05340.78240.6494];%wo=0.50*rands(Out,H);wo_1=wo;wo_2=wo;wo_3=wo;endx=[0,0,0];u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;y_1=0;y_2=0;y_3=0;Oh=zeros(H,1);%OutputfromNNmiddlelayerI=Oh;%InputtoNNmiddlelayererror_2=0;error_1=0;ts=0.001;fork=1:1:6000time(k)=k*ts;ifS==1rin(k)=1.0;elseifS==2rin(k)=sin(1*2*pi*k*ts);end%Unlinearmodela(k)=1.2*(1-0.8*exp(-0.1*k));yout(k)=a(k)*y_1/(1+y_1^2)+u_1;error(k)=rin(k)-yout(k);xi=[rin(k),yout(k),error(k),1];x(1)=error(k)-error_1;x(2)=error(k);x(3)=error(k)-2*error_1+error_2;epid=[x(1);x(2);x(3)];I=xi*wi';forj=1:1:HOh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j)));%MiddleLayerendK=wo*Oh;%OutputLayerforl=1:1:OutK(l)=exp(K(l))/(exp(K(l))+exp(-K(l)));%Gettingkp,ki,kdendkp(k)=K(1);ki(k)=K(2);kd(k)=K(3);Kpid=[kp(k),ki(k),kd(k)];du(k)=Kpid*epid;u(k)=u_1+du(k);ifu(k)>=10%Restrictingtheoutputofcontrolleru(k)=10;endifu(k)。

谷歌人工智能写作项目:神经网络伪原创

基于BP神经网络的PID,输入参数的归一化,问题求助?

利用BP神经网络来整定PID,也许能实现文案狗。但是书本上的这个BP-PID理论书本是错误的。你仔细看看,它的输出激活函数的值域是【0,1】,PID的参数不可能是只在这个范围啊!

可以说输出没有反归一化(值域扩展)。至于输入归一化,可用不做,但是输出在0和1之间,就是闹笑话了。

如何给出常规PID与模糊PIDBP神经网络PID遗传算法PID程序的MATLAB仿真程序

我的毕设只用把PID和模糊PID相比较常规PID,用Matlab里的Simulink模块仿真,建立你要做的动力学模型的传函或者状态空间。PID参数调节可用临界比度法。

模糊PID就麻烦了,打开Matlab中FIS模块,一般都用二阶模糊?输入E,EC的隶属函数,一般为高斯,和输出模糊Kp,Ki,Kd,一般为三角。还要整定模糊规则,再加载到Simulink里。

调节模糊因子Gu,Ge,Gec,设置模糊PID的参数。总之,你这个问题在白度知道里很难说清楚。

单神经元和PID是如何结合在一起的,我们需要预先设定的参数有哪些? 20

单神经元,是神经网络的基本单位,它的作用是根据有序序列来识别出一种动力学状态,这点可以用泰勒级数的思想去构思,实际泰勒级数经过多级换算后也能写出网络形式,单神经元可以逼近一纬度上的非线性系统模型,在高纬度空间中实际表征一个点或者是向量(支持向量机),也就是说它可以帮助你判断出系统处于哪个状态(模式识别),在该状态下你可以用相应的PID参数来控制系统的相应,两者结合能够帮助克服PID对非线性系统鲁棒性弱的问题。

向BP神经网络PID控制的各路matlab编程大神求助啊。本人做毕设仿真时遇到滴问题,编程序编不出来啊。

这厮是一个极品,先开口骂人,在下没有示弱,全力反击,并将其拉黑。后来者一定要注意,这厮不是好鸟,一定要多加提防与小心谨上传图片,有图有真相!这厮的口口是4;。【4。

【;8,;4、【;8;【、5、;【7;3【;1谨防,小心!!!!

求一谢Matlab的编程例题,是关于BP神经网络的PID温度控制。 请发送到[email protected]中。

其实只需要PID参数能够顺利确定就行了,这里有个程序,你试试看closeallclearallclctic%初始化x=[0;0;0];xiteP=0.4;xiteI=0.3;xiteD=0.4;K=0.15;%很关键,越大,快速性越好,但超调量大,甚至不稳定。

wkp_1=rand;wki_1=rand;wkd_1=rand;error_1=0;error_2=0;y_1=0;y_2=0;y_3=0;u_1=0;u_2=0;u_3=0;ts=0.001;%采样时间fork=1:1000time(k)=k*ts;rin(k)=1.0*sign(sin(2*2*pi*k*ts));%参考信号rin(k)=1.0*sgn(sin(4*pi*t))yout(k)=0.368*y_1+0.26*y_2+0.1*u_1+0.632*u_2;%被控对象y(k)=0.368y(k-1)+0.26y(k-2)+0.1u(k-1)+0.632error(k)=rin(k)-yout(k);%偏差和控制量求取x(1)=error(k)-error_1;%Px(2)=error(k);%Ix(3)=error(k)-2*error_1+error_2;%Dwkp(k)=wkp_1+xiteP*error(k)*u_1*(2*error(k)-error_1);wki(k)=wki_1+xiteI*error(k)*u_1*(2*error(k)-error_1);wkd(k)=wkd_1+xiteD*error(k)*u_1*(2*error(k)-error_1);wadd(k)=abs(wkp(k))+abs(wki(k))+abs(wkd(k));w11(k)=wkp(k)/wadd(k);w22(k)=wki(k)/wadd(k);w33(k)=wkd(k)/wadd(k);w=[w11(k),w22(k),w33(k)];u(k)=u_1+0.15*w*x;%输入限幅ifu(k)>10u(k)=10;endifu(k)。

遗传算法怎么与pid控制器进行结合

 

你可能感兴趣的:(神经网络,算法,matlab)