专家PID控制系统Matlab仿真_第1页
专家PID控制系统Matlab仿真_第2页
专家PID控制系统Matlab仿真_第3页
专家PID控制系统Matlab仿真_第4页
专家PID控制系统Matlab仿真_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、专家PID控制系统Matlab仿真摘要:分析了一个速度控制器的控制仿真。其传递函数为:523500G (s)=s 3 + 87.35s 2 +1047 s使用专家PID控制系统,输入信号为阶跃信号,取采样时间为1ms,画出阶 跃响应曲线和误差变化曲线。0引言专家控制(Expert Control)的实质是基于受控对象和控制规律的各种知识,并 以智能的方式利用这些知识来设计控制器。利用专家经验来设计PID参数便构 成专家PID控制。典型的二阶系统单位阶跃响应误差曲线如图1、2所示。对于典型的二阶系统 阶跃响应过程作如下分析,根据误差及其变化,可设计专家PID控制器,该控 制器可分为五种情况进行设

2、计。1设计根据误差及其变化,可设计专家PID控制器,该控制器可分为以下五种情况 进行设计:当|e(k)lM1时,说明误差的绝对值已经很大,不论误差变化趋势如何, 都应考虑控制器的输出应按最大或最小)输出,以达到迅速调整误差,使误差 绝对值以最大速度减小。此时,它相当于实施开环控制。当e(k) Ae(k)0时,说明误差在朝误差绝对值增大方向变化,或误差为某一常值,未发生变化。此时,如果|e(k)|M2,说明误差也较大,可考虑由控 制器实施较强的控制作用,以达到扭转误差绝对值朝减小方向变化,并迅速减小 误差的绝对值。此时,如果|e(k)k m2,说明尽管误差朝绝对值增大方向变化, 但误差绝对值本身

3、并不很大,可考虑控制器实施一般的控制作用,只要扭转误差 的变化趋势,使其初误差绝对值减小方向变化。当e(k) A e (k) 0,e(k) A e (k-1)0或e(k) = 0时,说明误差的绝对值朝减 小的方向变化,或者已经达到平衡状态。此时,可考虑采取保持控制器输出不变。(4)当e(k) Ae(k) 0,e(k) Ae(k-1) 0时,说明误差处于极值状态。如果此时 误差的绝对值较大,可考虑实施较强的控制作用。(5)当I e(k) 10.8%Rule1:Unclosed control firstlyu(k)=0.45;elseif abs(x(1)0.40u(k)=0.40;elseif

4、 abs(x(1)0.20u(k)=0.12;elseif abs(x(1)0.01u(k)=0.10;endif x(1)*x(2)0|(x(2)=0)%Rule2if abs(x(1)=0.05u(k)=u_1+2*kp*x(1);elseu(k)=u_1+0.4*kp*x(1);endendif (x(1)*x(2)0)|(x(1)=0) %Rule3u(k)=u(k);endif x(1)*x(2)0&x(2)*x2_1=0.05u(k)=u_1+2*kp*error_1;elseu(k)=u_1+0.6*kp*error_1;endendif abs(x(1)=10u(k)=10;e

5、ndif u(k)=10u(k)=10;endif u(k)=-10u(k)=-10;endyout(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(1)*u(k)+num(2)*u_1+num(3 )*u_2+num(4)*u_3;error(k)=rin(k)-yout(k);%Return ofPIDparameters% %u_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=yout(k);Calculating Ie_1=x(1);ec_1=x(2);error_2=error_1;error_1=error(k

6、);endshowrule(a)figure(1);plot(time,rin,b,time,yout,r);xlabel(time(s);ylabel(rin,yout);figure(2);plot(time,error,r);xlabel(time(s);ylabel(error);figure(3);plot(time,u,r);xlabel(time(s);ylabel(u);figure(4);plot(time,kp,r);xlabel(time(s);ylabel(kp);figure(5);plot(time,ki,r);xlabel(time(s);ylabel(ki);f

7、igure(6);plot(time,kd,r);xlabel(time(s);ylabel(kd);figure(7);plotmf(a,input,1);figure(8);plotmf(a,input,2);figure(9);plotmf(a,output,1);figure(10);plotmf(a,output,2);figure(11);plotmf(a,output,3);plotfis(a);fuzzy fuzzpidx(1)=error(k);%Calculating P x(2)=error(k)-error_1;%Calculating D x(3)=x(3)+erro

8、r(k);%神经网络控制系统Matlab仿真摘要:分析了一个速度控制器的控制仿真。被控制对象的近似数学模型为:youta) =。(k)网以(S1)+ u (k -1)1 + yout2(k 一 1)式中,系数 a(k)是慢时变的,a(k) = 1.2(1-0.8e-0.ik)。0引言神经网络的结构选择4-5-3,学习速率门=0.28和惯性系数a= 0.04,加权系数初始值取区间-0.5,0.5上的随机数。输入指令信号分为两种:rin(k)=sin(2;t)。取S=2时为正弦跟踪,初始权值取随机值,运行稳定后用稳定权 值代替随机值。其跟踪结果和相应的曲线如图所示。图1正弦跟踪响应曲线(s=12)

9、1分析PID控制要取得较好的控制效果,就必须通过调整好比例、积分和微分三种 控制作用,形成控制量中既相互配合又相互制约的关系,这种关系不一定是简单 的“线性组合”,从变化无穷的非线性组合中可以找出最佳的。神经网络所具有 的任意非线性表达能力,可以通过对系统性能的学习来实现具有最佳组合的PID 控制。采用BP网络,可以建立参数ki,kp,kd自学习的PID控制器。图2误差曲线图3输出响应曲线0.4timefstimefsj图4参数自适应整定曲线程序:%wi=0.50*rands(H,IN);wi_1=wi;wi_2=wi;wi_3=wi;%BP based PID Control clear a

10、ll;close all;xite=0.20;alfa=0.05;S=1; %Signal typeIN=4;H=5;Out=3; %NN Structure if S=1 %Step Signalwo=0.7576 0.2616 0.5820 -0.1416 -0.1325;-0.1146 0.2949 0.8352 0.22050.4508;0.7201 0.4566 0.7672 0.49620.3632;%wo=0.50*rands(Out,H);wo_1=wo;wo_2=wo;wo_3=wo;endif S=2 %Sine Signalwi=-0.6394-0.7023;-0.269

11、6-0.3756wi=-0.2846-1.0668;0.2193-0.5097-0.8603-0.2596;-0.2013-0.5024-0.74840.0988;-0.1210-0.4708-1.0749-0.5437;0.5543-1.6820-0.71760.2049;0.8297-1.6000-0.3625-0.2859;-0.0724-0.6463-0.08580.0347;0.1925-0.63460.1425 -0.7660;0.0279-0.54060.4358 -0.1324;0.2369-0.4564%Output from NN%Input to NN%wi=0.50*r

12、ands(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; end x=0,0,0; du_1=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); middle layer I=Oh; middle layer er

13、ror_2=0; error_1=0; ts=0.001; for k=1:1:6000 time(k)=k*ts;if S=1 rin(k)=1.0;elseif S=2 rin(k)=sin(1*2*pi*k*ts);end%Unlinear model a(k)=1.2*(1-0.8*exp(-0.1*k); yout(k)=a(k)*y_1/(1+y_1A2)+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*erro

14、r_1+error_2;epid=x(1);x(2);x (3);I=xi*wi;for j=1:1:HOh(j)=(exp(I(j)-exp(-I(j) )/(exp(I(j)+exp(-I (j); %Middle LayerendK=wo*Oh;%OutputLayerfor l=1:1:OutK(l)=exp(K(l)/(exp(K (l) )+exp(-K(l);%Getting kp,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);dyu(k

15、)=sign(yout(k)-y_1)/(du(k)-du_1+0.0001);%Output layerfor j=1:1:OutdK(j)=2/(exp(K(j)+exp(-K(j)A2;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);%Hidden layersubplot(313);plot(time,kd,

16、b);xlabel(time(s);ylabel(kd);for i=1:1:HdO(i)=4/(exp(I(i)+exp(-I(i)人2;endsegma=delta3*wo;for i=1:1:Hdelta2(i)=dO(i)*segma(i);end d_wi=xite*delta2*xi;wi=wi_1+d_wi+alfa*(wi_1-wi_2);%Parameters Update du_1=du(k);u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u1=u(k);y_2=y_1;y_1=yout(k);wo_3=wo_2;wo_2=wo_1;wo_1=wo;wi_3=wi_2;wi_2=wi_1;wi_1=wi;error_2=error_1;error_1=error(k);endfigure(1);plot(time,rin,r,time,yout,b);xl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论