• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1. 知识回顾

(1)经典时域分析方法

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

\[\begin{array}{l}
{y^{(n)}}(t) + {a_{n - 1}}{y^{(n - 1)}}(t) + \cdot \cdot \cdot + {a_1}{y^{(1)}}(t) + {a_0}y(t) = \\
{b_m}{f^{(m)}}(t) + {b_{m - 1}}{f^{(m - 1)}}(t) + \cdot \cdot \cdot + {b_1}{f^{(1)}}(t) + {b_0}f(t)
\end{array}\]

齐次解:${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\]

  • 均为单根:\[{y_h}(t) = \sum\limits_{i = 1}^n {{C_i}{e^{{\lambda _i}t}}} \]
  • 有重根($r$重根):\[{y_h}(t) = \sum\limits_{i = 1}^r {{C_i}{t^{i - 1}}{e^{{\lambda _1}t}}} \]
  • 共轭复根(${\lambda _{1,2}} = \alpha  \pm j\beta $):\[{e^{\alpha t}}({C_1}\cos \beta t + {C_2}\sin \beta t)\]
  • $r$重复根:\[{e^{\alpha t}}(\sum\limits_{i = 1}^r {{C_{1i}}{t^{i - 1}}} \cos \beta t + \sum\limits_{i = 1}^r {{C_{2i}}{t^{i - 1}}} \sin \beta t)\]

特解

  • $f(t) = {t^m}$
    • 所有的特征根均不等于0:\[{y_p}(t) = {P_m}{t^m} + {P_{m - 1}}{t^{m - 1}} +  \cdot  \cdot  \cdot  + {P_1}t + {P_0}\]
    • 有$r$重等于0的特征根:\[{y_p}(t) = {t^r}[{P_m}{t^m} + {P_{m - 1}}{t^{m - 1}} +  \cdot  \cdot  \cdot  + {P_1}t + {P_0}]\]
  • $f(t) = {e^{\alpha t}}$:
    • $\alpha $不是特征根:\[{y_p}(t) = P{e^{\alpha t}}\]
    • $\alpha $是特征单根:\[{y_p}(t) = {P_1}t{e^{\alpha t}} + {P_0}{e^{\alpha t}}\]
    • $\alpha $是$r$重特征根:\[{y_p}(t) = ({P_r}{t^r} + {P_{r - 1}}{t^{r - 1}} +  \cdot  \cdot  \cdot  + {P_1}t + {P_0}){e^{\alpha t}}\]
  • $f(t) = \cos \beta t$或$\sin \beta t$:
    • 所有特征根均不等于$ \pm j\beta $:\[{y_p}(t) = {P_1}\cos \beta t + {P_2}\sin \beta t\]
    • $ \pm j\beta $是特征单根:\[{y_p}(t) = t[{P_1}\cos \beta t + {P_2}\sin \beta 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)$

求零状态响应

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)$

求冲激响应和阶跃响应

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

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

  • 对连续信号进行采样,得到离散序列;
  • 构造与输入离散序列相对应的时间向量;
  • 调用conv()函数计算卷积积分;
  • 构造与输出序列对应的时间向量。
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
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人参与评论

请发表评论

全部评论

专题导读
上一篇:
转: 加壳原理与简单实现加壳(delphi源码)发布时间:2022-07-18
下一篇:
delphi播放flash发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap