自学内容网 自学内容网

MATLAB filtic函数使用详解

MATLAB filtic函数使用详解


提示:以下是本篇文章正文内容,转载请附上链接!

一、filtic函数输入输出说明

           \;\;\;\;\; filtic函数的调用格式为z = filtic(b,a,y,x)。其中
向量b是差分方程分子的系数;
向量a是差分方程分母的系数;
向量y是输出在0时刻之前的初始条件,即
y = [ y ( − 1 ) ,   y ( − 2 ) ,   y ( − 3 ) ,   . . .   ,   y ( − m ) ] y = [ y(-1),\ y(-2),\ y(-3),\ ...\ ,\ y(-m)] y=[y(1), y(2), y(3), ... , y(m)]
向量x是输出在0时刻之前的初始条件,即
x = [ x ( − 1 ) ,   x ( − 2 ) ,   x ( − 3 ) ,   . . .   ,   x ( − n ) ] x = [ x(-1),\ x(-2),\ x(-3),\ ...\ ,\ x(-n)] x=[x(1), x(2), x(3), ... , x(n)]
向量z是系统的初始状态,长度是向量x和向量y中长度的最大值。
           \;\;\;\;\; 如果系统是因果系统,则向量x显然为0,此时可省略x,直接用z = filtic(b,a,y)。

二、数值计算例子

           \;\;\;\;\; 假设现在有一个差分方程:
u ( n ) = − u ( n − 1 ) − 2 u ( n − 2 ) + v ( n ) + v ( n − 1 ) u(n) = -u(n-1)-2u(n-2)+v(n)+v(n-1) u(n)=u(n1)2u(n2)+v(n)+v(n1)
初始条件为:
u ( − 1 ) = u ( − 2 ) = v ( − 1 ) = 1 u(-1)=u(-2)=v(-1)=1 u(1)=u(2)=v(1)=1
假设激励全为1,现在求全响应,则我们可以写出下面这些式子:
{ u ( 0 ) = − u ( − 1 ) − 2 u ( − 2 ) + v ( 0 ) + v ( − 1 ) = − 1 u ( 1 ) = − u ( 0 ) − 2 u ( − 1 ) + v ( 1 ) + v ( 0 ) = 1 u ( 2 ) = − u ( 1 ) − 2 u ( 0 ) + v ( 2 ) + v ( 1 ) = 3 . . . \left\{ \begin{aligned} &u(0) = -u(-1)-2u(-2)+v(0)+v(-1) = -1&& \\ &u(1) = -u(0)-2u(-1)+v(1)+v(0) = 1 &&\\ &u(2) = -u(1)-2u(0)+v(2)+v(1) = 3 &&\\ &... &&\\ \end{aligned} \right. u(0)=u(1)2u(2)+v(0)+v(1)=1u(1)=u(0)2u(1)+v(1)+v(0)=1u(2)=u(1)2u(0)+v(2)+v(1)=3...
假设激励全为1,现在求零状态响应( u ( − 1 ) = u ( − 2 ) = v ( − 1 ) = 0 u(-1)=u(-2)=v(-1)=0 u(1)=u(2)=v(1)=0 ),则我们可以写出下面这些式子:
{ u ( 0 ) = − u ( − 1 ) − 2 u ( − 2 ) + v ( 0 ) + v ( − 1 ) = 1 u ( 1 ) = − u ( 0 ) − 2 u ( − 1 ) + v ( 1 ) + v ( 0 ) = 1 u ( 2 ) = − u ( 1 ) − 2 u ( 0 ) + v ( 2 ) + v ( 1 ) = − 1 . . . \left\{ \begin{aligned} &u(0) = -u(-1)-2u(-2)+v(0)+v(-1) = 1&& \\ &u(1) = -u(0)-2u(-1)+v(1)+v(0) = 1 &&\\ &u(2) = -u(1)-2u(0)+v(2)+v(1) = -1 &&\\ &... &&\\ \end{aligned} \right. u(0)=u(1)2u(2)+v(0)+v(1)=1u(1)=u(0)2u(1)+v(1)+v(0)=1u(2)=u(1)2u(0)+v(2)+v(1)=1...
filtic函数求得的初始状态为:
{ i n i t i a l ( 1 ) = − u ( − 1 ) − 2 u ( − 2 ) + v ( − 1 ) = − 2 i n i t i a l ( 2 ) = − 2 u ( − 1 ) = − 2 \left\{ \begin{aligned} &initial(1) = -u(-1)-2u(-2)+v(-1) = -2&& \\ &initial(2) = -2u(-1) = -2 &&\\ \end{aligned} \right. {initial(1)=u(1)2u(2)+v(1)=2initial(2)=2u(1)=2
u ( − 1 ) = u ( − 2 ) = v ( − 1 ) = 0 u(-1)=u(-2)=v(-1)=0 u(1)=u(2)=v(1)=0 的条件下,我们现在来求零输入响应(激励全为0,由起始状态带来的响应),则为:
{ u ( 0 ) = − u ( − 1 ) − 2 u ( − 2 ) + v ( 0 ) + v ( − 1 ) = i n i t i a l ( 1 ) + v ( 0 ) = − 2 u ( 1 ) = − u ( 0 ) − 2 u ( − 1 ) + v ( 1 ) + v ( 0 ) = i n i t i a l ( 2 ) − u ( 0 ) + v ( 1 ) + v ( 0 ) = − 2 − ( − 2 ) + 0 + 0 = 0 u ( 2 ) = − u ( 1 ) − 2 u ( 0 ) + v ( 2 ) + v ( 1 ) = − 0 − 2 ∗ ( − 2 ) + 0 + 0 = 4 . . . \left\{ \begin{aligned} &u(0) = -u(-1)-2u(-2)+v(0)+v(-1) = initial(1)+v(0) = -2&& \\ &u(1) = -u(0)-2u(-1)+v(1)+v(0) = initial(2)-u(0)+v(1)+v(0)=-2-(-2)+0+0 = 0 &&\\ &u(2) = -u(1)-2u(0)+v(2)+v(1) = -0-2*(-2)+0+0 = 4 &&\\ &... &&\\ \end{aligned} \right. u(0)=u(1)2u(2)+v(0)+v(1)=initial(1)+v(0)=2u(1)=u(0)2u(1)+v(1)+v(0)=initial(2)u(0)+v(1)+v(0)=2(2)+0+0=0u(2)=u(1)2u(0)+v(2)+v(1)=02(2)+0+0=4...
以上就是数值计算例子,另外显然有全响应 = 零输入响应+零状态响应,上面的计算就能看出来。

三、MATLAB验证

以上面数值计算例子的差分方程为例,假设激励为全1,则有:
在这里插入图片描述
显然有:全响应 = 零输入响应+零状态响应。


原文地址:https://blog.csdn.net/m0_66360845/article/details/143492750

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!