资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,基于,Matlab,的控制系统的计算机辅助设计、分析及仿真,1、,Matlab,简介,2、控制系统的数学描述与建模,3,、控制系统分析方法(稳定性、时域和频域 分析),4,、,Simulink,仿真,1 MATLAB,简介,MATLAB,语言的简洁高效性,MATLAB,语言的科学运算功能,MATLAB,语言的绘图功能,MATLAB,庞大的工具箱与模块集,MATLAB,强大的动态系统仿真功能,MATLAB,语言是当前国际上控制领域的首选计算机语言,也是很多理工科专业最适合的计算机数学语言。通过学习可更深入理解和掌握数学问题的求解思想,提高求解数学问题的能力,为今后其他专业课程的学习提供帮助。,直接赋值语句,赋值变量赋值表达式,例:,a=pi2,a=,9.8696,例:表示矩阵,B=1+9i,2+8i,3+7j;4+6j 5+5i,6+4i;7+3i,8+2j 1i,B=,1.0000+9.0000i 2.0000+8.0000i 3.0000+7.0000i,4.0000+6.0000i 5.0000+5.0000i 6.0000+4.0000i,7.0000+3.0000i 8.0000+2.0000i 0+1.0000i,MATLAB,的基本语句,函数调用语句,返回变量列表函数名(输入变量列表),例:,a,b,c=my_fun(d,e,f,c),冒号表达式,v=s,1,:s,2,:s,3,该函数生成一个行向量,v,,其中,s,1,是起始值,,s,2,是步长(若省略步长为,1,),,s,3,是最大值。,例:,用不同的步距生成,(0,p),间向量。,v1=0:0.2:pi,v1=,Columns 1 through 9,0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000,Columns 10 through 16,1.8000 2.0000 2.2000 2.4000 2.6000 2.8000 3.0000,循环结构,for,结构,while,结构,MATLAB,语言流程控制,二维图形绘制,二维图形绘制基本语句,构造向量,:,2,、控制系统的数学描述与建模,控制系统的数学建模,函数命令,tf,(),,用法:,sys=tf(num,den),建立控制系统的传递函数模型,或者将零极点模型或者状态空间模型转换为传递函数模型;,函数命令,zpk,(),,用法:,sys=zpk(z,p,k),建立控制系统的零极点模型,;,函数命令,ss,(),,用法:,sys=ss(A,B,C,D),建立控制系统的状态空间模型,;,函数命令,tf2ss(),tf2zp(),zp2ss(),zp2tf(),ss2tf(),ss2zp(),数学模型的转化,;,基于,Simulink,的动态结构模型,.,传递函数,单输入单输出线性连续系统的传递函数为,其中,mn,。,G,(,s,),的分子多项式的根称为系统的零点,分母多项式的根称为系统的极点。令分母多项式等于零,得系统的特征方程,:,D,(,s,)=,a,0,s,n,+,a,1,s,n,1,+,a,n,1,s,+,a,n,=0,因传递函数为多项式之比,所以我们先研究,MATLAB,是如何处理多项式的。,MATLAB,中多项式用行向量表示,行向量元素依次为降幂排列的多项式各项的系数,例如多项式,P,(,s,)=,s,3,+2,s,+4,其输入为,P=,1 0 2 4,注意尽管,s,2,项系数为,0,但输入,P,(,s,),时不可缺省,0,。,MATLAB,下多项式乘法处理函数调用格式为,C=conv(A,B),例如给定两个多项式,A(s)=s+3,和,B(s)=10s,2,+20s+3,求,C(s)=A(s)B(s),则应先构造多项式,A(s),和,B(s),然后再调用,conv(),函数来求,C(s),A=,1,3,;B=,10,20,3,;,C=conv(A,B),C=10 50 63 9,即得出的,C,(s),多项式为,10,s,3,+50,s,2,+63,s,+9,MATLAB,提供的,conv(),函数的调用允许多级嵌套,例如,G(s)=4(s+2)(s+3)(s+4),可由下列的语句来输入,G=4*conv(,1,2,conv(,1,3,1,4,),对于其它复杂的表达式,如,可由下列语句来输入,num=conv(,1,1,conv(,1,2,6,1,2,6,);,den=conv(,1,0,0,conv(,1,3,1,2,3,4,);,G=tf(num,den),Transfer function:,控制系统的典型连接,串联环节,用法:,sys=series(sys1,sys2)or sys=sys1*sys2*sys3*sysn,并联环节,用法:,sys=parallel(sys1,sys2)or sys=sys1+sys2+sys3+sysn,反馈环节,用法:等效传递函数,G=feedback(G,H,sign),解 编程如下:,num1=0.1,1;den1=0.4,0;sys1=tf(num1,den1);num2=15;den2=0.054,1;sys2=tf(num2,den2);num3=1.5;den3=0.12,1;sys3=tf(num3,den3);sys123=sys1*sys2*sys3,运行结果,所以系统等效传递函数为,Transfer function:,2.25 s+22.5,-,0.002592 s3+0.0696 s2+0.4 s,已知某系统前向通道三个模块的传递函数分别为。,试求串联连接的等效传递函数,解 编程如下,num1=3;den1=1,1;sys1=tf(num1,den1);num2=6,10;den2=1,2,1;sys2=tf(num2,den2);sys=sys1+sys2;num=sys.num1den=sys.den1,运行结果,所以系统的等效传递函数为,num=,0 9 22 13,den=,1 3 3 1,已知两子系统传递函数分别为,:,试求两系统并联连接的等效传递函数的,num,与,den,向量。,3,控制系统的分析方法,控制系统的稳定性分析,特征方程的根,即闭环极点应具有负实部或分布在左半,s,平面上。直接判断困难。,劳斯(,Routh,),稳定性判据:由特征方程的系数来判断。,根轨迹法,频率响应特性,已知系统传递函数为,绘制零极点图和根轨迹图.,MATLAB,命令为:,num=0,0,2,8,12,8,2;den=1,5,10,10,5,1,0;,sys=,tf(num,den,);,subplot(1,2,1),pzmap(sys,),p,z,=,pzmap(sys,),subplot(1,2,2),rlocus(sys,),运行结果:,p=,0,-1.0010+0.0007i,-1.0010-0.0007i,-0.9996+0.0012i,-0.9996-0.0012i,-0.9988,z=,-1.0002,-1.0000+0.0002i,-1.0000-0.0002i,-0.9998,试绘制 的根轨迹图。,num=1 3;den1=1 6 5;,den=conv(den1,den1);,rlocus(num,den,),title(root,locus),k,p,=,rlocfind(num,den,),例:,Select a point in the graphics window,selected_point,=,-0.0508+4.2363i,k=,154.9620,p=,-8.8375,-0.0299+4.2267i,-0.0299-4.2267i,-3.1027,Kg-2,Kg+2,例:,结 论,系统的零极点改变时,根轨迹的形状也发生变化,系统的性能也跟着变化。为了满足性能指标的要求,可以,采用零极点对消的办法,或加入新的零极点,,来改善系统的性能。,控制系统的时域分析方法,直接在时域内对系统进行分析;,从输出量的时域表达式分析系统的稳定性、动态性能和稳态误差;,常用命令函数,,step(),impulse(),initial(),任意函数作用下系统的响应,用线性仿真函数,lsim,来实现,其调用格式为,y,,,x,=lsim(num,,,den,,,u,,,t),式中 ;,y(t),为系统输出响应;,x(t),为系统状态响应;,u,为系统输入信号;,t,为仿真时间。,求 的单位阶跃响应。,解,:,编制,Matlab,程序如下:,num=25;,den=1,4,25;,g=tf(num,den);,step(g),或,num=25;,den=1,4,25;,step(num,den),求 当 时,的单位冲击响应。,解:,编制,Matlab,程序如下:,wn=5;zeta=0.6;,num=wn.2;,den=1,2*zeta*wn,wn.2;,impulse(num,den),例:,已知一单位负反馈系统,其开环零极点增益模型为,试分析在单位阶跃信号作用下系统的稳态误差。,利用,Matlab,进行稳态误差分析,单位阶跃信号,t=0.1;k=6;z=-0.5;p=-2 1 0;,n1,d1=zp2tf(z,p,k);,s=tf(n1,d1);,sys=feedback(s,1);,roots(sys.den1),ans=,-0.1084+1.9541i,-0.1084-1.9541i,-0.7832,系统稳定,(,a,)系统稳定性判断,y=,step(sys,);,t1=0:t:300;,subplot(121),plot(t1,y),grid;,subplot(122),ess=1-y;,plot(t1,ess),grid,ess(length(ess,),阶跃响应及稳态误差,ans,=,-8.5931e-014,系统为一型系统,其,Kp,=,,即,ess,=0,。,控制系统的频域分析方法,以系统的频率特性来研究系统的性能;,对数频率特性图(,Bode,图),,mag,phase,w,=,bode(sys,),极坐标图(,Nyquist,图),re,im,w,=,nyquist(sys,w,),求系统增益裕度和相位裕度的函数,,margin();,Gm,Pm,Wcp,wcg,=,margin(sys,),根轨迹图,,p,z,=,pzmap(sys),p,z,=,rlocus(sys,).,对数频率特性,Matlab,提供的相关函数为:,函数,bode(,),绘制线性离散系统对数频率特性图。,函数,bode(),的使用格式如下:,mag,phase,w,=,bode(sys,),当包含左方变量时,屏幕上不显示伯德图,返回角频率点,w,处的幅值和相位角(单位为度)。,函数,Gm,Pm,cg,cp,=,margin(sys,),除绘制线性离,散系统对数频率特性图外,还可以求出系统的幅值裕度,Gm,、相位裕度,Pm,以及所在点对应的频率值,cg,cp,已知系统开环传递函数为,编制,Matlab,程序如下:,num=3*5,2;den=conv(1,2,2,0,1,1);,sys=,tf(num,den,),Bode(sys,),grid on,Gm,Pm,Wcg,Wcp,=,margin(sys,),解:,画出系统的,bode,图,判断系统的稳定性,并求出系统的幅值稳定裕度、相角稳定裕度及各自对应的频率。,系统的相位裕度,Pm=-23.8341,幅值裕度,Gm=0.4789,相角穿越频率,Wcg,=1.7497,幅值穿越频率,Wcp,=2.3627,系统性能:不稳定。,结论:,极坐标频率特性,Matlab,提供的相关函数为:,nyquist(num,den,),4,Simulink,仿真,例 图的,Simulink,的仿真框图可演示系统对典型信号的时间响应曲
展开阅读全文