1利用MATLAB可以求取连续系统和离散系统的单位阶跃响应、单位脉冲响应等。第八章时域分析法的MATLAB实现8.1时域响应的MATLAB仿真指令一、连续系统单位阶跃响应在MATLAB中,求连续系统单位阶跃响应的函数为step(),其调用格式为:step(sys);step(sys,t):函数在当前图形窗口中直接绘制出系统的阶跃响应曲线。式中sys可以是由tf、zpk和ss中任何一个函数建立的系统模型;t可以指定为一个仿真终止时间,此时t为标量;也可将其设置为一个时间矢量(用t=0:dt:Tfinal的形式)。如果是离散系统,一定要注意时间间隔必须与采样周期相匹配;2[y,t,x]=step(sys):用于计算系统阶跃响应的输出数据而不绘制曲线。y为各个仿真时刻的输出向量,t为仿真的时间向量,x为系统的状态向量相对于时间的响应数据。一定注意:y,t,x三个元素的顺序不能错!例8-1已知单位负反馈系统的前向通道的传递函数为:试作出其单位阶跃响应曲线。sssG2802其MATLAB命令如下:num=80;den=[1,2,0];sys=tf(num,den);closys=feedback(sys,1);step(closys)3MATLAB中用函数命令impulse()来求连续系统单位脉冲响应,其调用格式为:二、连续系统单位脉冲响应impulse(sys);impulse(sys,t):函数在当前图形窗口中直接绘制出系统的脉冲响应曲线。式中sys可以是由tf、zpk和ss中任何一个函数建立的系统模型;t可以指定为一个仿真终止时间,此时t为标量;也可将其设置为一个时间矢量(用t=0:dt:Tfinal的形式)。如果是离散系统,一定要注意时间间隔必须与采样周期相匹配;[y,t,x]=impulse(sys):用于计算系统单位脉冲响应的输出数据而不绘制曲线。y为各个仿真时刻的输出向量,t为仿真的时间向量,x为系统的状态向量相对于时间的响应数据。一定注意:y,t,x三个元素的顺序不能错!4MATLAB中没有求斜坡响应的函数,根据闭环传递函数的定义:三、连续系统单位斜坡响应sRsCs对于单位阶跃信号有:sssRssCssR11对于单位斜坡信号有:ssssssRssCssR111122由此可以看出:可以将系统闭环传递函数除以拉氏算子s,再使用step函数就不再是单位阶跃响应,而是单位斜坡响应。在MATLAB中,只需在系统闭环传递函数分母多项式向量最末位补上一个“0”即可。5MATLAB中没有求单位加速度响应的函数,同样可根据闭环传递函数的定义:四、连续系统单位加速度响应sRsCs对于单位阶跃信号有:sssRssCssR11对于单位加速度信号有:2331111ssssssRssCssR由此可以看出:可以将系统闭环传递函数除以拉氏算子s2,再使用step函数就不再是单位阶跃响应,而是单位加速度响应。在MATLAB中,只需在系统闭环传递函数分母多项式向量最末位补上两个“0”即可。6零输入响应是系统初始状态引发的动态过程,此时系统无输入信号的作用,响应只与系统的初始状态、结构及参数有关。五、连续系统零输入响应响应initial(sys,x0);initial(sys,x0,t):函数在当前图形窗口中直接绘制出系统的零输入响应曲线。式中sys必须是ss函数建立的状态空间模型;x0为初始状态;t可以指定为一个仿真终止时间,此时t为标量;也可将其设置为一个时间矢量(用t=0:dt:Tfinal的形式)。如果是离散系统,一定要注意时间间隔必须与采样周期相匹配;[y,t,x]=initial(sys,x0):用于计算系统零输入响应的输出数据而不绘制曲线。y为各个仿真时刻的输出向量,t为仿真的时间向量,x为系统的状态向量相对于时间的响应数据。一定注意:y,t,x三个元素的顺序不能错!7六、离散系统的单位阶跃、单位脉冲响应等离散系统的单位阶跃响应函数为dstep();其调用格式同连续系统;离散系统的单位脉冲响应函数为dimpulse();离散系统的零输入响应函数为dinitial();8线性控制系统绝对稳定的首要条件是:系统特征方程的根都位于复平面虚轴的左半部。故在MATLAB中,判断系统是否绝对稳定,只需解出控制系统闭环特征方程的根,再根据这些根是否均在复半平面虚轴左半部分即可判定系统是否绝对稳定。而要求特征方程的根,只需调用前面所讲的函数指令roots()即可。这种方法称为代数稳定性判据。还可以用根轨迹法和频域法来判断系统稳定性,这在后面将会讲到。8.2控制系统稳定性分析9例8-2其MATLAB命令如下:设系统特征方程为:试用代数稳定判据判断该系统的稳定性。05432234ssssP=[12345];roots(P)程序运行结果为:ans=0.2878+1.4161i0.2878-1.4161i-1.2878+0.8579i-1.2878-0.8579i可以看出系统特征根中有两个实部为正值,所以该闭环系统是不稳定的。解10例8-3其MATLAB命令如下:已知系统开环传递函数为:试用代数稳定判据判断该闭环系统的稳定性。2012100sssssGz=[-2];p=[0,-1,-20];k=100;[num,den]=zp2tf(z,p,k);p=num+den;roots(p)程序运行结果为:ans=-12.8990-5.0000-3.1010可以看出系统特征根的实部全为负值,所以该闭环系统是稳定的。解11在这一小节里必须注意:要计算控制系统稳态误差,首先要确定系统是稳定的!8.3控制系统稳态误差计算一、静态误差系数位置误差系数Kp:速度误差系数Kv:加速度误差系数Ka:sGKksp0limsGsKksv0limsGsKksa20lim以上三式中,Kp、Kv、Ka分别反映了系统跟踪阶跃输入、斜坡输入和加速度输入的能力。12例8-4(1)对系统1:首先判断其稳定性两个单位负反馈系统的闭环传递函数分别为:试分别求两个系统的位置、速度和加速度误差系数Kp、Kv和Ka。6555,732122231ssssssss根据代数稳定判据,该特征方程的根有2个有正实部,故该闭环系统是不稳定的。故不能求其误差系数。解p1=[1237];roots(p1)程序运行结果为:ans=-2.13250.0662+1.8106i0.0662-1.8106i13(2)对系统2:首先判断其稳定性:特征方程的根均位于复平面虚轴左半部分。故可以求其稳态误差系数。p2=[556];roots(p2)程序运行结果为:ans=-0.5000+0.9747i-0.5000-0.9747isymssphi2Gk2KpKvKa;phi2=5/(5*s^2+5*s+6);Gk2=solve('5/(5*s^2+5*s+6)=Gk2/(1+Gk2)','Gk2');Kp=limit(Gk2,s,0)Kv=limit(s*Gk2,s,0)Ka=limit(s^2*Gk2,s,0)运行结果为:Kp=5Kv=0,Ka=014根据自动控制原理,三种典型输入信号下的静态误差系数和稳态误差分别如表8-1和8-2所示。二、三种典型信号下的稳态误差计算类型位置误差系数Kp速度误差系数Kv加速度误差系数Ka0型K00I型∞K0II型∞∞K表8-1给定输入信号下的静态误差系数类型阶跃输入r(t)=Ap(t)斜坡输入r(t)=Av*t加速度输入r(t)=Aa*t2/20型Ap/(K+1)∞∞I型0Av/K∞II型00Aa/K表8-2给定输入信号下的稳态误差15例8-5由于在例8-4中已经判断了系统的稳定性,故在这里不再对系统进行稳定性判断。已知一个单位负反馈系统的闭环传递函数为:(1)试绘制出该系统的单位阶跃响应曲线并求此响应的稳态误差;(2)试绘制出该系统的单位斜坡响应曲线并求此响应的稳态误差;(3)试绘制出该系统的单位加速度响应曲线并求此响应的稳态误差;65552sss解(1)单位阶跃响应与其稳态误差symssphi;num=5;den=[5,5,6];phi=tf(num,den);t=[0:0.01:30]';y=step(phi,t);subplot(1,2,1);plot(t,y);gridsubplot(1,2,2);ess=1-y;plot(t,ess);grid16该系统是0型系统,由表8-2所知,其单位阶跃响应的稳态误差为ess=1/(1+K)=1/6=0.167。如果取t=[0:1:30],计算ess=1-y可得出结果0.167。17(2)单位斜坡响应与其稳态误差symssphi1;num=5;den=[5,5,6,0];phi1=tf(num,den);t=[0:0.01:30]';y=step(phi1,t);subplot(1,2,1);plot(t,y);gridsubplot(1,2,2);ess=t-y;plot(t,ess);grid该系统是0型系统,由表8-2所知,其单位斜坡响应的稳态误差为∞。由稳态误差曲线也可看出来。18(3)单位加速度响应与其稳态误差symssphi2;num=5;den=[5,5,6,0,0];phi2=tf(num,den);t=[0:0.01:30]';y=step(phi2,t);subplot(1,2,1);plot(t,y);gridsubplot(1,2,2);ess=1/2*t.^2-y;plot(t,ess);grid该系统是0型系统,由表8-2所知,其单位加速度响应的稳态误差为∞。由稳态误差曲线也可看出来。19系统误差:输出量的希望值和实际值之差:)()()(0tctct)(0tc)(tc系统偏差:系统的输入和主反馈信号之差。即)()()(tbtrte)(tr)(tb系统稳态误差:当t→∞时的系统误差,用表示。即)(limttssss系统稳态偏差:当t→∞时的系统偏差,用表示。即)(limteetsssse对单位反馈系统,给定作用即为输出量的希望值,,偏差等于误差。)()(0tctr)(trsssse对非单位反馈系统,给定作用只是希望输出的代表值,,偏差不等于误差。)()(0tctr)(trsssse三、稳态误差计算举例20G(s)-R(s)C(s)E(s)对单位负反馈系统:sRssEssRsCsRsRsEsCsRsE11稳态误差:sEsteestss0limlim21G(s)-R(s)C(s)E(s)H(s)B(s)G(s)H(s)-C(s)1/H(s)R(s)E'(s)R'(s)对非单位负反馈系统:sHsCsRsBsRsE其等效图如图所示,可得系统输出量的期望值为:sHsRsR'由左图有:sGsCsE则系统稳态误差:sHsGssRssHsGsCssHsEssEsteesssstss000'0'limlimlimlimlim再由右等效图有:sHsEsHsGsCsE'22例8-6解(1)首先要判断系统稳定性:一反馈系统前向通道传递函数与反馈通道传递函数系统输入阶跃信号时,试计算系统输出端的稳态位置误差ess。210ssG1sH当而系统输入信号为斜坡信号时再计算系统输出端的稳态位置误差ess。ssHsssG101,2101,210sHssG①num1=[10];d