PID控制算法matlab仿真实验_第1页
PID控制算法matlab仿真实验_第2页
PID控制算法matlab仿真实验_第3页
PID控制算法matlab仿真实验_第4页
PID控制算法matlab仿真实验_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、1数字PID控制在 MATLAB 仿真实验下图为数字PID控制算法仿真实验的示意图:iHpidl *-Jal xjFil« Hdi t Vitwi on Format Tools HalpD 口岛営黑聯 | Norm al二|Ready100Srrode45在模拟的过程中,我们分别改变其中的一个参数,而其他的两个参数不变的情况 下,观测他的图像变化。1、当改变比例时:Block Paraaeters: PID Controller-PID Controller (mask) Qink)Enter expressions for proportional, integral, and

2、derivative terms.P+I/s+Ds-ParametersProportional:OKCancelHelp|ApplyBlock Parameters: PID Controller2J PID Controller G»tsk) Gink)Enttr «xprtszions for proportional, integral, andderivetive termsP+I/s4DsIk|仲:创 n分析结果:当只改变比例,积分和微分都不变的情况下,比例系数越大,调节作用越强,但是存在调节误差。2、当只改变积分时3分析结果:当系统中只改变积分,而比例和微风都

3、不变时, 可以减少或消除误差,但响应慢。3、当只改变微分时Block Faraaeters: FID Controller-FID Controller Gnask) (link)Ehtgr expr <0ns for pr op 0t imt 电詳 tl# odderivative terms.F+LP+X-ParametersProportional:Block Parameters: PID ControllerdPID Controller Gnask) Qink)Enter expressions for proportional, integral, and derivati

4、ve terms.P+I/s+DsOKCancelHelp|Apply5Block Paraaeters: PID ControllerPID Controller (mask) Qink)Enter expressions for proportional integral, and derivative termsP+I/s+Ds rPar smetersProportional:OK | CancelHelpApply分析结果:当系统中加入了微分环节时,改善了系统的稳定 性能和动态性能,但是,它的响应比较慢。哮虑碎名a七洋巨龙方程却I 用 p-z4 y = x ayi = h + (r

5、- c)i;”.=b =(12=乌二 且旳(0) =卑)=卑但) = 0.釀制仿真踣果的三维相就趣.并得 出捷在恥丫乎面上的投點.解苔】定义状感变量釣©也氛応先騙写M-議敕描述犠分方程functiuD y=roEsol(tbx)y-i(2)-xC3); xCO+0,2*x(2); 0*2+(x(l)-6*7)*x<a) j春蛊KwoLm京件*就可以用下面的谣自求解徵分方程,井卷创出时嫌曲蜕和炊态空间曲 跖牛别如图28a、b所示.» t,x-oda45(*rossol111500>0;0;0);plot3(xC; ,1) bx(: .2) ,xC: ,3)figu

6、re; plot(z(ib1),xC:±2), grid如杲不想用文件的方式表禾徹分方程麵,还可以用inline0喑数来表禾它,具体的格式和斗 離语旬如下» f=inlina(,-iC2)-x(3); x(l)+0*2*X(2); 0J2+(xCl)-S.7)*x(3) hJt0a)时域解 图2-8 考虑下面二元最优化问题的求解3B Site的解,应该怎样验证呢?【解答】约束函数的MATLAB表示Rossol方程的数值解max22 + 21X >- 9b)状态空间图还可以用图解00function c,cej=c2f2(x)ce=;c=x(l)*2+x(2)2-9;

7、x(l)+x(2)-l;原问题是最大值问题,故需要将目标函数乘以-1就可以转换成最小值问题,» f-inline(,x(l)2+x(2),;x=fmincon(f, 1;20;0 , , ,c2f2,)下面可以用图解法绘制出三维图形,如图211所示°» x,y=meshgrid(O:O>01:3);z=x<2+y;i=find(x.*2+y< *2>9); z(i)=WaN;i=find(x-»-y>l); z(i)=NaN;%将可行解区域以外部分减掉surf(x,y,z); shading flat; colorbar可见

8、,(00)点对应的目标函数值最小,故得出的解是正确的.10 010.80.60,40.200图211放优化问题的图示验证0已知某系统的差分方程模型为y(k + 2) + y(k + 1) + 016讥町=u(k + 1) + 2u( 到MATLAB工作空间。【解答】利用Z变换,即可以直接得出系统的离散传递函数模型,假设f = 以由下面的语句将系统的离散传递函数模型输入到MATLAB空间了» H=tf(l 2J1 1 0.16/TsM)transfer* function:z"2 + z + 0.16Sampling time: 1假设系统由传递函数矩阵给出,试将其输入到MA

9、TLAB X作空间0.252(1 +3.3)3(1 + 1800s)-0.0435(1 +253s)3(1 + 360s)0.43n(1 + 12s)(l + 1800s)0.097(1 + 125)(1 4-360s).【解答】传递函数矩阵也可以由筒单的矩阵输入格式直接输入» s=tf (> s ) ;%定义算子G=-0.252/(1+3.3*s)*3*(l+1800*s), 0.43/(l+i2*s)*(i+1800*-0.0435/(1+25.3*s)"3*(l+360*s), 0.097/1+360 Transfer function from input 1

10、 to output.-0.252#1: 6.469e004 s'4 + 5.884e004 s*3 + 1.785e004 s*2 + 1810 s + -0.0435#2:5.83e006 s*4 + 7.075e005 s3 + 2.924e004 s*2 + 435.9 s 十 Transfer function from input 2 to output.0.43#1:21600 s"2 + 1812 s + 10.097#2:4320 s"2 + 372 s + 112c假设系统的受控对象模型为G($) = ( |'控制器模型为G/S)=-s(

11、s亠1尸统是单位负反馈,用数学方法或用MATLAB语言能否精确求出闭环系统的 如果不能求出,能否得出较好的近似模型?【解答】数学方法» syms s; G=12*©xp(-2*s)/(s*(s4-l) *3) ; Gc=(2*s+3)/s;G=feedback(G*Gc,1); pretty(ans)显然,这样得出的结果不再是传递函数模型了,所以在MATLAB的壬 的feedback()函数不能处理此类问题,>> s=tf('s>);G=12/(b*(s+1)*3); G.ioDelay=2;feedback(G*Gc,1)? Error usin

12、g => tf/feedbackFEEDBACK cannot handle time delays 应该对时间延迟项进行Pad5近似,近似成一般传递函数,这样就可以 择分子为0阶,分母为3阶近似,得出闭环系统的近似模型>> G.ioDelay=0; nP,dP=paderm(2,0,3); Gp=tf(nP,dP);GG=feedback(G*Gc,Gp); GG.ioDelay=2Transfer function:24 s4 + 72 s"3 + 90 s'2 + 72 s + 27exp(-2*s) * s*8+4.5s*7+9s*6+10.75s*

13、5+8.25s*4+3.75s*3+0.75s*2+18£4考虑下面给出的多变量系统,试求出该系统的零点和极点,并判定系统的;逊)=一312110-0-4-2-1»(*) +0212-1103.-1-11-2.11."=注意,多变量系统零点的概念和单变量系统不同,不能由单独求每个子* 求取'应该由tzero()函数得出,另外,pzmap()函数同样适用于多变量 【解答】可以求出系统的传输零点,且可以绘制出系统的零极点位置, 见,系统全部极点均位于s左半平面,故系统稳定。.cPole-Zero MapX 10尸8OX-8-4一3-2-10Real Axis图

14、多变量系统的零极点位旨» A=-3,1>2,1; 0,-4,-2,-1;G=ss(A, 1 0: 0 2: 0 3: 1 1,1 2 2 -1: 2 1 -1 2,zeros(2):tzero(G)ans =-3.6124 7.2765>> pzmap(G)7请求出下面自治系统状态方程的解析解-520o -T述)=0-3-420-40-1无7o:(0)=20.-320-4.丄并和数值解得出的曲线比较。【解答】» A-5 2 0 0; 0 -4 0 0; -3 2-4 -1; -3 2 0 -4; A=sym(A) syms t;x-expm(A*t)*1;

15、2;0;1-3*exp(-5*t)+4*exp(-4* 2*exp(-4*18*exp(-4*t)-18*exp(-5*t)-18*t*exp(-4*t)+4*t"2*exp(-4* 10*exp(-4*t)-9*exp(-5*t)-8*t*exp(-4*若想显示全部的状态,则系统的状态方程应该如下输入,最终得出系统的脉;» G=ss(-5 2 0 0; 0-400;32-4-1; -320-4,.1;2;0; 1 ,eye(4),zeros(4,1);tt=0:0.01:2;xx=;for i=l:length(tt)t=tt(i); xx= xx eval(x);end

16、y=impulse(G,tt); plot(tt,xx,tt,yJ:,)解析解和数值解的脉冲响应曲线如图4-2所示,可见它们完全一致。图42系统脉冲响川的解析解和数值解比较考虑时变线性微分方程?/u 1 + 5炖+ 6t2y + + 2e2ty =sin(4t +初值仍为/(0) = 1,讥0)=讥0) = 1/2,代)(0) = 0.2,试用Simulink搭建起系 并绘制出仿真结果曲线。其实,时变模型也可以用微分方程求解函数求解, 语言求解该模型并比较结果。【解答】时变系统的Simulink模型如图53所示。图5-3时变微分方程的Simulink实现MATLAB语言的符号运算工具箱不能处理

17、这样的时变微分方程,所以应该丿 进行求解。取状态变量©1 = S爼2 =次巧=»卫4 = P(叽这样可以写出描i MATLAB函数function dx=pc5funl(t,x)dx=x(2); x(3); x(4);exp(-3*t)+exp(-5*t)*sin(4*t+pi/3)-5*t*x(4)-6*tA'2*x(3)- 4*x这样用MATLAB语句就可以求解该微分方程了,同时可以绘制出“(才)曲线, 可见,两种方法得出的仿真结果完全一致.>> t,x-ode45(5pc5funi>,0,10,1; 0.5;0.5;0.2);plot(tou

18、t,yout,t,x(:,1),1J)5-0 10U1迪)=00_:2112吨)+2 100J若系统的状态方程模型为1 O'2 1小4 3.选择加权矩阵Q = diag(l,2,3,4)fi = Z2,则设计出这-线性二次型指标的J 最优控制下的闭环系统极点位置,并绘制出闭环系统各个状态的曲线。【解答】可以输入系统的状态方程模型,求取出二次型指标下最优的调节器闭环系统的极点位置,并绘制出闭环系统的阶跃响应状态曲线,如图72所亍» A=0 1 0 0; 0 0 1 0; -3 1 2 3; 2 1 0 0; B-l 0; 2 1; 3 2;G=ss(A,B,eye<4),zeros(4,2); % 假设状态全部输出Q=diag(1 2 3 4); R=eye(2);K<Lqr(A,B,Q,R)K =-0.09781.2

温馨提示

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

评论

0/150

提交评论