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