零输入响应与零状态响应

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.零输入响应与零状态响应

在Matlab中,lsim函数还可以对带有非零起始状态的LTI系统进行仿真,使用方法为y=lsim(sys,u,t,x0),其中sys表示LTI系统,矢量u和t分别表示激励信号的抽样值和抽样时间,矢量x0表示该系统的初始状态,返回值y是系统响应值。如果只有起始状态而没有激励信号,或者令激励信号为0,则得到零输入响应。如果既有初始状态也有激励信号,则得到完全响应。

请注意lsim函数只能对用状态方程描述的LTI系统仿真非零起始状态响应,函数ss(对传递函数描述的LTI系统将失效,函数tf)。

例2.5 给定如图所示电路,t<0时S处于1的位置而且已经达到稳态,将其看做起始状态,当t=0时,S由1转向2.分别求t>0时i(t)的零状态响应和零输入响应。

图2.1 例2.4 电路图

解:由所示电路写出回路方程和结点方程

分别得到状态方程和输出方程:

下面将用两种方法计算完全响应。第一种方法:首先仿真2V电压e作用足够长时间(10s)后系统进入稳态,从而得到稳态值x0,再以该值作为初始值仿真4V电压e作用下的输出rf,即是系统的完全响应,为充分掌握lsim函数的使用方法,还仿真了系统的零状态响应rzs和零输入响应rzi。第二种方法:构造一个激励信号,先保持2V足够长时间再跳变为4V,然后即可以零初始状态一次仿真得到系统的完全响应r1。

对应程序如下:

C=1;

L=1/4;

R1=1;

R2=3/2;

A=[-1/R1/C,-1/C;1/L,-R2/L];

B=[1/R1/C;0];

C=[-1/R1,0];

D=[1/R1];

sys=ss(A,B,C,D); %建立LTI 系统sys

tn=[-10:0.01:-0.01]'; %生成-10s 到-0.01s 的抽样时间,间隔为0.01s

en=2*(tn<0); %生成机理信号的抽样值e(t)=2

[rn tn xn]=lsim(sys,en,tn); %仿真t<0时的输出信号

x0=xn(length(en),:); %x0记录了初始状态的值

t=[0:0.01:10]';

e=4*(t>=0); %生成激励信号的抽样值e(t)=4

ezi=0*(t>=0); %生成零输入信号的抽样值e(t)=0

rzs=lsim(sys,e,t); %仿真零状态响应

rzi=lsim(sys,ezi,t,x0); %仿真零输入响应

rf=lsim(sys,e,t,x0); %仿真完全响应

r1=lsim(sys,[en;e],[tn;t]); %用另一种方法仿真完全响应

2. 冲激响应与阶跃响应

如果分别用冲激信号和阶跃信号作激励,lsim 函数可仿真出冲激响应和阶跃响应。但鉴于这两种响应的重要性,为简化操作,Matlab 专门提供了impulse(sys)和step(sys )两个函数分别直接产生LTI 系统的冲激响应和阶跃响应,其中sys 表示LTI 系统模型。

1) 连续系统的单位冲激响应h(t)的计算

impulse(sys)计算并画出连续系统的冲激响应,sys 可由函数tf(b,a)获得,其中b 和a 分别是系统函数H(s)的分子多项式和分母多项式的系数矩阵。h=impulse(sys,t)计算并画出系统在向量t 定义的时间范围内的冲激响应,向量h 保存对应时间的系统冲激响应的输出值。

例 2.6 已知描述某连续系统的微分方程为()()()()()t f t f t y t y t y 8265'

'''+=++计算该系统的单位冲激响应h(t).

对应程序如下:

a=[1,5,6];

b=[2,8];

sys=tf(b,a);

t=0:0.1:10;

h=impulse(sys,t);

plot(h);

xlabel('t'); title('h(t)')

观察运行结果图。

2) 连续系统单位阶跃响应g(t)的计算

step(sys)计算并画出连续系统的阶跃响应。g=step(sys,t)计算并画出连续系统在向量t 定义的时间范围内的阶跃响应。向量g 保存对应时间的系统阶跃响应的输出值。

二、卷积

在Matlab 中,连续时间的卷积运算可以用数值方法计算近似值。首先对卷积公式()()()τττd t f f t f ⎰∞

∞--=21 两侧以T 为间隔抽样,再将积分拆成长度为T 的若干小段,得到 ()()()∑⎰∞-∞=+-=

m T mT mT d nT f f nT f τττ21

假设抽样间隔足够小,以至于两个函数相邻抽样点上的值几乎不变,则近似有

()()()∑-≈m

mT nT f mT f T nT f 21 (2.1)

Matlab 中定义了w=conv(u,v) 函数实现卷积和

()()()∑-+=m

m n v m u n w 1 (2.2)

下面讨论如何利用conv 函数实现连续时间卷积。首先假设序列u(m)是函数()t f 1从1t 时刻开始,以T 为间隔采样的结果,则

()mT f T t m u 111=⎪⎭⎫ ⎝

⎛-+ (2.3) 假设1t 是T 的整数倍。同理假设v(m)是对函数()t f 2从2t 时刻开始以相同间隔抽样得到的序列,即

()mT f T t m v 211=⎪⎭⎫ ⎝

⎛-+ (2.4) 将式(2.3)和(2.4)带入式(2.1),有

()⎪⎭⎫ ⎝⎛-+-⎪⎭⎫ ⎝⎛-+≈∑T t m n v T t m u T nT f m

2111 (2.5) 定义T t m m 1'1-+=,T

t t n n 21'1+-+=并带入式(2.5)得到 ()()()

∑-+≈m m n v m u T nT f '''1 (2.6)

对比式(2.2)和(2.6)有

()()⎪⎭

⎫ ⎝⎛+-+=≈T t t n Tw n Tw nT f 2

1'1 (2.7) 即w(n)近似为从21t t +时刻开始以T 为间隔对f(t)抽样得到的序列,从而可以用conv 函数实现连续时间卷积。在以上推导的基础上,定义了一个函数conv1实现连续时间卷积: 文件名为conv1.m

function[w,tw]=conv1(u,tu,v,tv)%输入参数:u 和v 表示两个序列,tu 和tv 分别表示他

们的抽样时间返回值.即输出参数:w 和tw 分别表示卷积结果及其抽样时

间。

相关文档
最新文档