制系统的时域分析
时间:2015-03-29 21:18 来源:自动控制网
一个动态系统的性能常用典型输入作用下的响应来描述。响应是指零初始值条件下某种典型的输入函数作用下对象的响应,控制系统常用的输入函数为单位阶跃函数和脉冲激励函数(即冲激函数)。在MATLAB的控制系统工具箱中提供了求取这两种输入下系统响应的函数。 一、时域分析的一般方法 求取系统单位阶跃响应:step() 求取系统的冲激响应:impulse() (一)step()函数的用法 y=step(num,den,t):其中num和den分别为系统传递函数描述中的分子和分母多项式系数,t为选定的仿真时间向量,一般可以由t=0:step:end等步长地产生出来。该函数返回值y为系统在仿真时刻各个输出所组成的矩阵。 [y,x,t]=step(num,den):此时时间向量t由系统模型的特性自动生成,状态变量x返回为空矩阵。 [y,x,t]=step(A,B,C,D,iu):其中A,B,C,D为系统的状态空间描述矩阵,iu用来指明输入变量的序号。x为系统返回的状态轨迹。 如果对具体的响应值不感兴趣,而只想绘制系统的阶跃响应曲线,可调用以下的格式: step(num,den);step(num,den,t);step(A,B,C,D,iu,t);step(A,B,C,D,iu); 线性系统的稳态值可以通过函数dcgain()来求取,其调用格式为: dc=dcgain(num,den)或dc=dcgain(a,b,c,d) 例exp4_3.m已知系统的开环传递函数为: 求系统在单位负反馈下的阶跃响应曲线。 clc clear closeall %开环传递函数描述 num=[20]; den=[1836400]; %求闭环传递函数 [numc,denc]=cloop(num,den); %绘制闭环系统的阶跃响应曲线 t=0:0.1:10; y=step(numc,denc,t); [y1,x,t1]=step(numc,denc); %对于传递函数调用,状态变量x返回为空矩阵 plot(t,y,'r:',t1,y1) title('thestepresponce') xlabel('time-sec') %求稳态值 disp('系统稳态值dc为:') dc=dcgain(numc,denc) (二)impulse()函数的用法 求取脉冲激励响应的调用方法与step()函数基本一致。 y=impulse(num,den,t);[y,x,t]=impulse(num,den);[y,x,t]=impulse(A,B,C,D,iu,t) impulse(num,den);impulse(num,den,t) impulse(A,B,C,D,iu);impulse(A,B,C,D,iu,t) 例exp4_4.m已知系统的开环传递函数为: 求系统在单位负反馈下的脉冲激励响应曲线。 clc clear close %开环传递函数描述 numo=20; deno=[1836400]; %求闭环传递函数 [numc,denc]=cloop(numo,deno,-1); %绘制闭环系统的脉冲激励响应曲线 t=1:0.1:10; [y,x]=impulse(numc,denc,t); plot(t,y) title('theimpulseresponce') xlabel('time-sec') 仿真时间t的选择: 对于典型二阶系统根据其响应时间的估算公式可以确定。 对于高阶系统往往其响应时间很难估计,一般采用试探的方法,把t选大一些,看看响应曲线的结果,最后再确定其合适的仿真时间。 一般来说,先不指定仿真时间,由MATLAB自己确定,然后根据结果,最后确定合适的仿真时间。 在指定仿真时间时,步长的不同会影响到输出曲线的光滑程度,一般不易取太大。 二、常用时域分析函数 时间响应探究系统对输入和扰动在时域内的瞬态行为,系统特征如:上升时间调节时间超调量和稳态误差都能从时间响应上反映出来。MATLAB除了提供前面介绍的对系统阶跃响应冲激响应等进行仿真的函数外,还提供了大量对控制系统进行时域分析的函数,如: covar:连续系统对白噪声的方差响应 initial:连续系统的零输入响应 lsim:连续系统对任意输入的响应 对于离散系统只需在连续系统对应函数前加d就可以,如dstep,dimpulse等。 它们的调用格式与stepimpulse类似,可以通过help命令来察看自学。 三、时域分析应用实例 MATLAB的step()和impulse()函数本身可以处理多输入多输出的情况,因此编写MATLAB程序并不因为系统输入输出的增加而变得复杂。 例exp4_7.m 某2输入2输出系统如下所示:
,求系统的单位阶跃响应和冲激响应。 clc clear close %系统状态空间描述 a=[-2.5-1.2200;1.22000;1-1.14-3.2-2.56;... 002.560]; b=[41;20;20;00]; c=[0103;0001]; d=[0-2;-20]; %绘制闭环系统的阶跃响应曲线 figure(1) step(a,b,c,d) title('stepresponse') xlabel('time-sec') ylabel('amplitude') figure(2) impulse(a,b,c,d) title('impulseresponse') xlabel('time-sec') ylabel('amplitude') 例exp4_8.m 某系统框图如下所示,求d和e的值,使系统的阶跃响应满足:1.超调量不大于40%,2.峰值时间为0.8秒。
由图可得闭环传递函数为:,其为典型二阶系统。 由典型二阶系统特征参数计算公式,得: , clear clc closeall %输入期望得超调量及峰值时间 pos=input('pleaseinputexpectpos(%)='); tp=input('pleaseinputexpecttp='); z=log(100/pos)/sqrt(pi^2+(log(100/pos))^2); wn=pi/(tp*sqrt(1-z^2)); num=wn^2; den=[12*z*wnwn^2]; t=0:0.02:4; y=step(num,den,t); plot(t,y) xlabel('time-sec') ylabel('y(t)') grid d=wn^2 e=(2*z*wn-1)/d |