《实验十四: MATLAB的线性控制系统分析与设计(9页).doc》由会员分享,可在线阅读,更多相关《实验十四: MATLAB的线性控制系统分析与设计(9页).doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-实验十四: MATLAB的线性控制系统分析与设计-第 9 页实验十四: MATLAB的线性控制系统分析与设计一实验目的1.熟练掌握线性系统的各种模型描述。2.熟练掌握模型之间的转换。二 实验内容与步骤在控制系统分析与设计中,常用状态方程模型来描述一个控制系统,状态方程通常为一阶微分方程例如,二阶系统可用状态方程描述如下其中:MATLAB的控制系统工具箱(Control System Toolbox)可以提供对线性系统分析、设计和建模的各种算法。1.1状态空间描述法状态空间描述法是使用状态方程模型来描述控制系统,MATLAB中状态方程模型的建立使用ss和dss命令。语法:G=ss(a,b,c,
2、d) %由a、b、c、d参数获得状态方程模型G=dss(a,b,c,d,e) %由a、b、c、d、e参数获得状态方程模型【例1】写出二阶系统,当=0.707,=1时的状态方程。zeta=0.707;wn=1;A=0 1;-wn2 -2*zeta*wn;B=0;wn2;C=1 0;D=0;G=ss(A,B,C,D) %建立状态方程模型 a = x1 x2 x1 0 1 x2 -1 -1.414b = u1 x1 0 x2 1c = x1 x2 y1 1 0d = u1 y1 0Continuous-time model.1.2传递函数描述法MATLAB中使用tf命令来建立传递函数。语法:G=tf
3、(num,den) %由传递函数分子分母得出说明:num为分子向量,num=b1,b2,bm,bm+1;den为分母向量,den=a1,a2,an-1,an。【例1续】将二阶系统描述为传递函数的形式。 num=1; den=1 1.414 1;G=tf(num,den) %得出传递函数 Transfer function: 1s2 + 1.414 s + 11.3零极点描述法MATLAB中使用zpk命令可以来实现由零极点得到传递函数模型。语法:G=zpk(z,p,k) %由零点、极点和增益获得说明:z为零点列向量;p为极点列向量;k为增益。【例1续】得出二阶系统的零极点,并得出传递函数。num
4、=1;den=1 1.414 1;z=roots(num) p=roots(den) zpk(z,p,1) z = Empty matrix: 0-by-1p = -0.7070 + 0.7072i -0.7070 - 0.7072iZero/pole/gain: 1(s2 + 1.414s + 1)程序分析:roots函数可以得出多项式的根,零极点形式是以实数形式表示的。部分分式法是将传递函数表示成部分分式或留数形式:【例1续】将传递函数转换成部分分式法,得出各系数num=1;den=1 1.414 1;r,p,k=residue(num,den) r = 0 - 0.7070i 0 + 0
5、.7070ip = -0.7070 + 0.7072i -0.7070 - 0.7072ik =1.4离散系统的数学描述1. 状态空间描述法状态空间描述离散系统也可使用ss和dss命令。语法:G=ss(a,b,c,d,Ts) %由a、b、c、d参数获得状态方程模型G=dss(a,b,c,d,e,Ts) %由a、b、c、d、e参数获得状态方程模型说明:Ts为采样周期,为标量,当采样周期未指明可以用-1表示。【例2】用状态空间法建立离散系统。a=-1.5 -0.5;1 0; b=1;0; c=0 0.5; d=0; G=ss(a,b,c,d,0.2) %采样周期为0.2s a = x1 x2 x1
6、 -1.5 -0.5 x2 1 0b = u1 x1 1 x2 0c = x1 x2 y1 0 0.5d = u1 y1 0Sampling time: 0.2Discrete-time model.2. 脉冲传递函数描述法脉冲传递函数也可以用tf命令实现。语法:G=tf(num,den,Ts) %由分子分母得出脉冲传递函数说明:Ts为采样周期,为标量,当采样周期未指明可以用-1表示,自变量用z表示。【例2续】创建离散系统脉冲传递函数。 num1=0.5 0; den=1 -1.5 0.5; G1=tf(num1,den,-1) Transfer function: 0.5 zz2 - 1.5
7、 z + 0.5Sampling time: unspecifiedMATLAB中还可以用filt命令产生脉冲传递函数。语法:G=filt(num,den,Ts) %由分子分母得出脉冲传递函数说明:Ts为采样周期,当采样周期未指明Ts可以省略,也可以用-1表示,自变量用z-1表示。【例2续】使用filt命令产生脉冲传递函数。 num2=0 0.5; G2=filt(num2,den) Transfer function: 0.5 z-11 - 1.5 z-1 + 0.5 z-2Sampling time: unspecified程序说明:用filt命令生成的脉冲传递函数的自变量不是z而是z-1
8、,因此分子应改为“0 0.5”。3. 零极点增益描述法离散系统的零极点增益用zpk命令实现。语法:G=zpk(z,p,k,Ts) %由零极点得出脉冲传递函数【例2续】使用zpk命令产生零极点增益传递函数。G3=zpk(0,0.5 1,0.5,-1) Zero/pole/gain: 0.5 z(z-0.5) (z-1)Sampling time: unspecified2线性系统模型之间的转换在MATLAB5.3版及以前的控制系统工具箱中有各种不同模型转换的函数,如下表6.1所示为线性系统模型转换的函数。 线性系统模型转换函数表函数调用格式功能tf2ssa,b,c,d=tf2ss(num,den
9、)传递函数转换为状态空间tf2zpz,p,k=tf2zp(num,den)传递函数转换为零极点描述ss2tfnum,den=ss2tf(a,b,c,d,iu)状态空间转换为传递函数ss2zpz,p,k=ss2zp(a,b,c,d,iu)状态空间转换为零极点描述zp2ssa,b,c,d=zp2ss(z,p,k)零极点描述转换为状态空间zp2tfnum,den=zp2tf(z,p,k)零极点描述转换为传递函数1. 系统模型的转换(1) 状态空间模型的获得由命令ss和dss实现将传递函数和零极点增益转换为状态空间模型。语法:G=ss(传递函数) %由传递函数转换获得G=ss(零极点模型) %由零极点
10、模型转换获得【例3】将系统传递函数转换为状态空间描述。 num=1 2 5; den=3 5 2 1; G1=tf(num,den) G=ss(G1) Transfer function: s2 + 2 s + 53 s3 + 5 s2 + 2 s + 1a = x1 x2 x3 x1 -1.667 -0.3333 -0.1667 x2 2 0 0 x3 0 1 0b = u1 x1 1 x2 0 x3 0c = x1 x2 x3 y1 0.3333 0.3333 0.8333d = u1 y1 0Continuous-time model.(2) 传递函数的获得由tf命令实现将系统的状态空间
11、法和零极点增益模型转换为传递函数。语法:G=tf(状态方程模型) %由状态空间转换G=tf(零极点模型) %由零极点模型转换【例3续】由状态空间描述转换为传递函数。num=1 2 5;den=3 5 2 1;G1=tf(num,den); G=ss(G1); G2=tf(G) Transfer function: 0.3333 s2 + 0.6667 s + 1.667s3 + 1.667 s2 + 0.6667 s + 0.3333(3) 零极点模型的获得由zpk命令实现将状态空间法、传递函数转换为零极点模型。语法:G=zpk(状态方程模型) %由状态方程模型转换G=zpk(传递函数) %由
12、传递函数转换【例3续】由状态方程模型转换零极点模型。 num=1 2 5; den=3 5 2 1; G1=tf(num,den); G=ss(G1) ; G3=zpk(G)Zero/pole/gain: 0.33333 (s2 + 2s + 5)(s+1.356) (s2 + 0.3103s + 0.2458)2. 模型参数的获取语法:a,b,c,d=ssdata(G) %获取状态空间参数a,b,c,d,e=dssdata(G) %获取状态空间参数num,den=tfdata(G) %获取传递函数参数z,p,k=zpkdata(G) %获取零极点参数【例3续】获取各模型的参数 num=1 2
13、 5; den=3 5 2 1; G1=tf(num,den); G=ss(G1) ; a,b,c,d=ssdata(G)%获取状态方程参数 a = -1.6667 -0.3333 -0.1667 2.0000 0 0 0 1.0000 0b = 1 0 0c = 0.3333 0.3333 0.8333d = 02.2.使用各种分析方法分析系统已知系统的传递函数为(1) 当时在同一窗口脉冲响应曲线 wn=1;T=0; for zeta=0.2 0.4 1G=tf(wn2,1 2*zeta*wn,wn2)impulse(G)hold onendTransfer function: 1s2 +
14、0.4 s + 1Transfer function: 1s2 + 0.8 s + 1Transfer function: 1s2 + 2 s + 1(2) 当时,在同一窗口绘制阶跃响应曲线。 wn=1;zeta=0.4;figure(1)for T=0.5 1 2 G1=tf(wn2,1 2*zeta*wn,wn2);G2=tf(T 1,1);G=G1*G2step(G)hold onend从上图可以看出增加零点后系统响应的变化,T越大,零点越小,则阶跃响应的超调量加大,上升时间减小,暂态响应速度加快。绘制零-极点图形,并获得零点和极点: figure(2) pzmap(G) pole(G)ans = -0.4000 + 0.9165i -0.4000 - 0.9165i tzero(G)ans = -0.5000思考题1. 系统的零极点增益模型为,求系统的传递函数模型和状态空间模型。2.已知系统的传递函数为,当,T=0.5时画出脉冲响应曲线和绘制零极点图形。