基于MATLAB的控制系统运动响应分析第三章13.1零输入响应分析3.2脉冲输入响应分析3.3阶跃输入响应分析3.4高阶系统响应分析3.5任意输入响应分析3.6根轨迹分析方法3.7控制系统的频率特性23.1零输入响应分析系统的输出响应由零输入响应和零状态响应组成。零输入响应是指系统的输入信号为零,系统的输出由初始状态产生的响应。在MATLAB中,使用函数initial()和dinitial()分别来计算线性定常连续时间系统状态空间模型和离散时间状态空间模型的零输入响应。其主要功能和格式如下:3(1)函数initial():求线性连续时间系统状态空间模型的零输入响应initial(sys1,…,sysN,x0)%同一个图形窗口内绘制多个系统sys1,…,sysN在初始条件x0作用下的零输入响应。initial(sys1,…,sysN,x0,T)%指定响应时间T。Initial(sys1,’PlotStyle1’,…,sysN,’PlotStyleN’,x0)%在同一个图形窗口绘制多个连续系统的零输入响应曲线,并指定曲线的属性PlotStyle。[y,t,x]=initial(sys,x0)%不绘制曲线,得到输出向量、时间和状态变量响应的数据值。4说明:(1)线性定常连续系统sys必须是状态空间模型。(2)x0为初始条件。(3)T为终止时间点,由t=0开始,至T秒结束。可省略,缺省时由系统自动确定。(4)y为输出向量;t为时间向量,可省略;x为状态向量,可省略。5【例3.1.1】已知单位负反馈控制系统的开环传递函数为,应用MATLAB求其初始条件为【12】时的零输入响应。【解】在MATLAB命令窗口中输入:G1=tf([100],[1100]);G=feedback(G1,1,-1);%使用函数feedback()进行反馈连接GG=ss(G);%将传递函数模型转换为状态空间模型initial(GG,[12])100()(10)Gsss6运行结果为:【例3.1.1】的零输入响应曲线00.20.40.60.811.2-2-101234567ResponsetoInitialConditionsTime(sec)Amplitude7注意:使用initial()函数时,系统sys必须是状态空间模型,否则MATLAB会提示以下错误:???Errorusing==rfinputsOnlyavailableforstate-spacemodels.8(1)函数dinitial():求线性离散时间状态空间模型的零输入响应dinitial(a,b,c,d,x0,N)%绘制系统(a,b,c,d)在初始条件x0作用下的响应曲线。[y,x,N]=dinitial(a,b,c,d,x0)%不绘制曲线,返回输出向量、状态向量和相应点数的数据值。9说明:(1)系统的数学模型只能以离散时间状态空间模型的形式给出。(2)a、b、c、d分别对应系统系统矩阵、输入矩阵、输出矩阵和前馈矩阵。(3)y为输出向量;t为时间向量,可省略;x为状态向量,可省略。10【例3.1.2】已知线性离散时间系统的状态空间模型和初始条件分别为:采样周期Ts=0.1s,试绘制其零输入响应曲线。1122(1)()0.94290.07593(1)()0.075930.997xkxkxkxk12()()[1.9696.449]()xkykxk1(0)0x11【解】在MATLAB命令窗口中输入:a=[0.9429-0.07593;0.075930.997];b=[0;0];c=[1.9696.449];d=0;dinitial(a,b,c,d,[10])运行结果为:ResponsetoInitialConditionsTime(sec)Amplitude020406080100120140160180200-2-1012345123.2脉冲输入响应分析在MATLAB中,可使用函数impulse()和dimpulse()分别来计算和显示线性连续系统和离散系统的单位脉冲响应。其主要功能和格式如下:13(1)函数impulse():求连续系统的单位脉冲响应。impulse(sys1,…,sysN)%在同一个图形窗口中绘制N个系统sys1,…,sysN的单位脉冲响应曲线。impulse(sys1,…,sysN,T)%指定响应时间T。impulse(sys1,’PlotStyle1’,…sysN,’PlotStyleN’)%指定曲线属性PlotStyle[y,t,x]=impulse(sys)%得到输出向量、状态向量以及相应的时间向量。14说明:(1)a、b、c、d分别对应系统系统矩阵、输入矩阵、输出矩阵和前馈矩阵。(2)响应点数N可缺省,缺省时由系统自动确定。(3)y为输出向量;x为状态向量,可省略。15【例3.2.2】已知线性定常离散系统的脉冲传递函数为计算并绘制其脉冲响应曲线。【解】在MATLAB命令窗口中输入:G1=tf(100,[110100]);G2=tf([32],[272]);impulse(G1,'-',G2,'-.',7)%指定曲线属性和终止时间12100()10100Gsss2232()272sGsss16运行结果为【例3.2.1】的脉冲响应曲线01234567-10123456ImpulseResponseTime(sec)AmplitudeG1按实线显示,G2按点划线显示终止时间T=7s17(2)函数dimpulse():求离散系统的单位脉冲响应dimpulse(num,den,N)%绘制SISO系统的单位脉冲响应曲线,且响应点数N由用户定义。dimpulse(a,b,c,d,iu,N)%绘制MIMO系统第iu个输入信号作用下的单位脉冲响应曲线,且响应点数N由用户定义。[y,x]=dimpulse(num,den)%得到SISO系统的单位脉冲响应数据值。[y,x]=dimpulse(a,b,c,d)%得到MIMO系统的单位脉冲响应数据值18说明:(1)a、b、c、d分别对应系统系统矩阵、输入矩阵、输出矩阵和前馈矩阵。(2)响应点数N可缺省,缺省时由系统自动确定。(3)y为输出向量;x为状态向量,可省略。19【例3.2.2】已知线性定常离散系统的脉冲传递函数为,计算并绘制其脉冲响应曲线。【解】在MATLAB命令窗口中输入:num=[1-1];den=[110.3];dimpulse(num,den,12);31()23zGzzz20运行结果为:【例3.2.2】的脉冲响应曲线2101234567891011-2-1.5-1-0.500.511.52ImpulseResponseTime(seconds)Amplitude3.3阶跃输入响应分析在MATLAB中,可使用函数step()和dstep()来实现线性定常连续系统和离散系统的单位阶跃响应。其格式和功能如下。22(1)函数step():求线性定常连续系统的单位阶跃响应。step(sys1,…,sysN)%在同一个图形窗口中绘制N个系统sys1,…,sysN的单位阶跃响应。step(sys1,…,sysN,T)%指定终止时间T。step(sys1,’PlotStyle1’,…,sysN,’PlotStyleN’)%定义曲线属性PlotStyle。[y,x,t]=step(sys)%得到输出向量、状态向量以及相应的时间向量。23说明:(1)线性定常连续系统sys1,…,sysN可以是连续时间传递函数、零极点增益及状态空间等模型形式。(2)系统为状态空间模型时,只求其零状态响应。(3)T为终止时间点,由t=0开始,至T秒结束。可省略,缺省时由系统自动确定。(4)y为输出向量;t为时间向量,可省略;x为状态向量,可省略。24【例3.3.1】已知典型二阶系统的传递函数为。其中自然频率ωn=6,绘制当阻尼比ζ=0.1,0.2,0.707,1.0,2.0时系统的单位阶跃响应。【解】在MATLAB命令窗口中输入:wn=6;kosi=[0.10.20.70712];holdon;%保持曲线坐标不被刷新forkos=kosi222()2nnnsss25num=wn.^2;den=[1,2*kos*wn,wn.^2];step(num,den)end运行结果为:StepResponseTime(sec)Amplitude024681000.20.40.60.811.21.41.61.8ζ=0.1ζ=0.2ζ=0.707ζ=1ζ=2单位阶跃响应曲线26(2)函数dstep():求线性定常离散系统的单位阶跃响应。dstep(num,den,N)%绘制SISO系统的单位阶跃响应曲线,且响应点数N由用户指定。dstep(a,b,c,d,iu,N)%绘制MIMO系统第iu个输入信号作用下的单位阶跃响应曲线,且响应点数N由用户指定。[y,x]=dstep(num,den)%求SISO系统的单位阶跃响应数据值。[y,x]=dstep(a,b,c,d)%求MIMO系统的单位阶跃响应数据值。27说明:(1)a、b、c、d分别对应系统系统矩阵、输入矩阵、输出矩阵和前馈矩阵。(2)响应点数N可缺省,缺省时由系统自动确定。(3)y为输出向量;x为状态向量,可省略。28【例3.3.2】已知线性定常离散系统的状态空间模型为绘制其单位阶跃响应曲线。0.55720.781411(1)()()0.7814002xkxkuk()[1.9696.449]()ykxk29【解】在MATLAB命令窗口中输入:a=[-0.5571-0.7814;0.78140];b=[1-1;02];c=[1.9696.449];d=[0];dstep(a,b,c,d)运行结果为:01020024681012From:In(1)01020From:In(2)StepResponseTime(sec)Amplitude单位阶跃响应曲线303.4高阶系统响应分析直接应用Matlab/Simulink软件进行高阶系统分析,如以下的系统结构图:0.2110.15s10.150.051ss110.01s10.170.085ss0.004410.01ss7010.0067s130s110.01s0.212110.01s图3.4.1控制系统框图31在simulink中的仿真图Simulink的仿真模型32执行结果:01234500.20.40.60.8101234500.511.5012345-50510152025(1)inputsignal的输出(2)displacement的输出(3)velocity的输出33零极点对消是指,当开环系统传递函数分子分母中包含有公因子,则相应的开环零点和开环极点将出现对消,在这种情况下会出现系统内部不稳定,外部稳定的情况,如以下系统图:()rt()ut2323422sssss2325510434sssss2()GS1()GS控制系统框图34因为:213234()22ssGssss22325510()434ssGssss21234()()()(1)(1)(2)ssGsGsGssss5(1)(2)ss32434sss此系统出现了零极点对消的情况35绘制其Simulink图:Simulink的仿真模型36执行后的得到:05101520253000.511.52x1012内部状态05101520253000.20.40.60.811.21.4外部输出Simulink的仿真输出曲线从图中可以清楚、直观得看到,系统内部不稳定,而外部稳定。37(2)采用闭环主导极点对高阶系统近似分析在高阶系统中,若按求解微分方程得到响应曲线的办法去分析系统的特性,将是十