分享

信号与系统MATLAB仿真——LTI连续系统的时域分析

 青山代码yyf 2022-05-29 发布于广西

1. 知识回顾

(1)经典时域分析方法

线性时不变(LTI)系统是最常见最有用的一类系统,描述这类系统的输入-输出特性的是常系数线性微分方程。

y(n)(t)+an1y(n1)(t)++a1y(1)(t)+a0y(t)=bmf(m)(t)+bm1f(m1)(t)++b1f(1)(t)+b0f(t)

齐次解{y^{(n)}}(t) + {a_{n - 1}}{y^{(n - 1)}}(t) +  \cdot  \cdot  \cdot  + {a_1}{y^{(1)}}(t) + {a_0}y(t) = 0

特征方程:{\lambda ^n} + {a_{n - 1}}{\lambda ^{n - 1}} +  \cdot  \cdot  \cdot  + {a_1}\lambda  + {a_0} = 0

  • 均为单根:yh(t)=ni=1Cieλit
    yh(t)=i=1nCieλit
  • 有重根(rr重根):yh(t)=ri=1Citi1eλ1t
    yh(t)=i=1rCiti1eλ1t
  • 共轭复根(λ1,2=α±jβλ1,2=α±jβ):eαt(C1cosβt+C2sinβt)
    eαt(C1cosβt+C2sinβt)
  • r重复根:eαt(ri=1C1iti1cosβt+ri=1C2iti1sinβt)

特解

  • f(t)=tm
    • 所有的特征根均不等于0:yp(t)=Pmtm+Pm1tm1++P1t+P0
    • r重等于0的特征根:yp(t)=tr[Pmtm+Pm1tm1++P1t+P0]
  • f(t)=eαt
    • α不是特征根:yp(t)=Peαt
    • α是特征单根:yp(t)=P1teαt+P0eαt
    • αr重特征根:yp(t)=(Prtr+Pr1tr1++P1t+P0)eαt
  • f(t)=cosβtsinβt
    • 所有特征根均不等于±jβyp(t)=P1cosβt+P2sinβt
    • ±jβ是特征单根:yp(t)=t[P1cosβt+P2sinβt]

全解y(t) = {y_h}(t) + {y_p}(t)

(2)零输入响应与零状态响应

y(t) = {y_{zi}}(t) + {y_{zs}}(t)

(3)冲激响应和阶跃响应

\left\{ \begin{array}{l} \delta (t) = \frac{{{\rm{d}}\varepsilon (t)}}{{{\rm{d}}t}}\\ \varepsilon (t) = \int_{ - \infty }^t {\delta (\tau ){\rm{d}}\tau } \end{array} \right.

\left\{ \begin{array}{l} h(t) = \frac{{{\rm{d}}g(t)}}{{{\rm{d}}t}}\\ g(t) = \int_{ - \infty }^t {h(\tau ){\rm{d}}\tau } \end{array} \right.

(4)卷积积分

y(t) = {f_1}(t) * {f_2}(t) = \int_{ - \infty }^{ + \infty } {{f_1}(\tau ){f_2}(t - } \tau ){\rm{d}}\tau

系统的零状态响应:{y_{zs}}(t) = f(t) * h(t)

卷积积分的性质:

  • 交换律
  • 分配率
  • 结合律

任意函数与单位冲激函数卷积的结果仍是函数本身:f(t) * \delta (t) = f(t)

2. 利用MATLAB求LTI连续系统的响应

LTI连续系统以常微分方程描述,如果系统的输入信号及初始状态已知,便可以求出系统的响应。在MATLAB中,控制系统工具箱提供了函数lsim(),能对微分方程描述的LTI连续系统的响应进行仿真。该函数能够绘制连续系统在指定的任意时间范围内时域波形图,还能求出连续系统在指定的任意时间范围内响应的数值解。

  • lsim(b,a,x,t);

a和b是描述系统的微分方程系数决定的表示该系统的两个行向量,x和t是表示输入信号的行向量(t表示输入信号的时间范围,x则表示在t定义的时间点上的输入取样值)。

\frac{{{{\rm{d}}^2}}}{{{\rm{d}}{t^2}}}y\left( t \right) + 2\frac{{\rm{d}}}{{{\rm{d}}t}}y\left( t \right) + y\left( t \right) = \frac{{\rm{d}}}{{{\rm{d}}t}}f\left( t \right) + 2f\left( t \right)

f\left( t \right) = 5{e^{ - 2t}}\varepsilon \left( t \right)

求零状态响应

1
2
3
4
5
6
7
a=[1,2,1];
b=[1,2];
p=0.01;
t=0:p:5;
f=5*exp(-2*t);
lsim(b,a,f,t);
ylabel('y(t)');

3. 利用MATLAB求LTI连续系统的冲激响应和阶跃响应

  • impulse(b,a);
  • impulse(b,a,t);
  • impulse(b,a,t1:p:t2);
  • step(b,a);
  • step(b,a,t);
  • step(b,a,t1:p:t2);

2\frac{{{{\rm{d}}^2}}}{{{\rm{d}}{t^2}}}y\left( t \right) + \frac{{\rm{d}}}{{{\rm{d}}t}}y\left( t \right) + 8y\left( t \right) = f\left( t \right)

求冲激响应和阶跃响应

1
2
3
4
b=1;
a=[2,1,8];
subplot(1,2,1);impulse(b,a);
subplot(1,2,2);step(b,a);

4. 利用MATLAB实现连续时间信号的卷积

  • 对连续信号进行采样,得到离散序列;
  • 构造与输入离散序列相对应的时间向量;
  • 调用conv()函数计算卷积积分;
  • 构造与输出序列对应的时间向量。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function [f,k]=sconv(f1,f2,k1,k2,p)
%计算连续信号卷积积分复f(t)=f1(t)*f2(t)
%f:卷积积分f(t)对应的非零样值向量
%k:f(t)的对应时间向量
%f1:f1(t)对应的非零样值向量
%f2:f2(t)对应的非零样值向量
%k1:f1(t)的对应时间向量
%k2:f2(t)的对应时间向量
%p:取样时间间隔
f=conv(f1,f2);
f=f*p;
k0=k1(1)+k2(1);
k3=length(f1)+length(f2)-2;
k=k0:p:k3*p;
subplot(2,2,1);plot(k1,f1);title('f1(t)');xlabel('t');ylabel('f1(t)');
subplot(2,2,2);plot(k2,f2);title('f2(t)');xlabel('t');ylabel('f2(t)');
subplot(2,2,3);plot(k,f);h=get(gca,'position');
h(3)=2.5*h(3);set(gca,'position',h);title('f(t)=f1(t)*f2(t)');
xlabel('t');ylabel('f(t)');
end
1
2
3
4
5
6
p=0.005;
k1=0:p:2;
f1=0.5*k1;
k2=k1;
f2=f1;
[f,k]=sconv(f1,f2,k1,k2,p);

conv()函数本来是用来做多项式乘法的。

  • w = conv(u,v)
  • w = conv(u,v,shape)

({x^2} + 1)(2x + 7) = 2{x^3} + 7{x^2} + 2x + 7

shape:

  • 'full':完整的卷积(默认);
  • 'same':与u相同大小的卷积的中心部分;
  • 'valid':只有那些计算卷积时没有在边缘填充0的部分。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多