Z变换解差分方程的思考

雨燕双飞 提交于 2020-02-28 11:08:16

问题描述

今日碰到一道差分方程的题目,如下 [ y(n + 2) - cfrac{7}{10}y(n + 1) + cfrac{1}{10}y(n) = 7x(n+2) -2 x(n + 1) ] 已知(x(n) = left(cfrac{1}{2}right)^n u(n) , y(0) = 2, y(1) = 4​),求全响应。

一般求解这种题目的思路很清晰,首先根据特征方程求出特征根,从而得出零输入解的形式,但是这个时候给的条件是(y(0))(y(1)),而不是(y_{zi}(0))(y_{zi}(1)),这意味着此时我们不能直接得出零输入解的系数。这个时候我们可以求出系统的零状态响应,然后可以得出(y_{zs}(0))(y_{zs}(1)),然后根据(y_{zi}(0) = y(0) - y_{zs}(0))(y_{zi}(1) = y(1) - y_{zs}(1)),然后得出零输入响应的系数,然后将零输入响应和零状态响应相加得到全响应。

上面的思路很清晰,但是却是有点麻烦,我们可以根据 [ begin{aligned} Z{y(n + 2) } &= z^2(Y(z) - y(0) - y(1)z^{-1}) \ Z{y(n + 1) } &= z(Y(z) - y(0)) end{aligned} ] 对上面同时进行(Z)变换 [ z^2(Y(z) - y(0) - y(1)z^{-1}) - cfrac{7}{10}z(Y(z) - y(0)) + cfrac{1}{10}Y(z) = 7z^2X(z) - 2zX(z) ] 上面的式子是我在答案(不一定正确的答案)上看到的,但是你没有发现有没有一丝丝的不对,怎么 [ Z{x(n + 2)} = z^2X(z) neq z^2(X(z) - x(0) - x(1)z^{-1}) ] 那么问题来了,哪种是对的呢?

我认为(Z{x(n + 2)} = z^2(X(z) - x(0) - x(1)z^{-1}))是对的。但是我们经常见到好像是(Z{x(n + 2)} = z^2X(z))的形式,这是怎么回事,这是因为在课本上我们见到的都是(y(n - n_0), x(n - n_0))这种后向差分的形式,因为这时做(Z)变换与(x(-n_0))有关,而(x(n) = 0 , n < 0),所以后面就没有长长的"尾巴"。我们将上面的差分方程改写为 [ y(n) - cfrac{7}{10}y(n - 1) + cfrac{1}{10}y(n - 2) = 7x(n) -2 x(n - 1) ] 然后对两边进行(Z)变换得到 [ Y(z) - cfrac{7}{10}z^{-1}(Y(z) + y(-1)z) + cfrac{1}{10}z^{-2}(Y(z) + y(-1)z + y(-2)z^2) = 7X(z) - 2z^{-1}X(z) ] 因为(x(-1) = x(-2) = 0),所以后面就没有"尾巴",然后两边同时乘以(z^2)得到

[ z^2Y(z) - cfrac{7}{10}z(Y(z) + y(-1)z) + cfrac{1}{10}(Y(z) + y(-1)z + y(-2)z^2) = 7z^2X(z) - 2zX(z) ]

求证想法

为了验证我的说法,这里使用最前面提到的方法(分别求零输入和零状态)和上面我的想法求解,看看答案是否一致,如果一致的话,说明我的想法是正确的。

解法一:

由特征方程 [ r^2 - cfrac{7}{10}r + cfrac{1}{10} = (r - cfrac{1}{2})(r - cfrac{1}{5}) = 0 Rightarrow r = cfrac{1}{2},cfrac{1}{5} ]

于是设零输入响应的解为 [ y_{zi}(n) = C_1 left( cfrac{1}{2} right)^nu(n) + C_2 left( cfrac{1}{5} right)^nu(n) ]

由差分方程知 [ H(z) = cfrac{7z^2 - 2z}{(z - cfrac{1}{2})(z - cfrac{1}{5})} ]

[ X(z) = cfrac{z}{z - cfrac{1}{2}} ]

[ Y(z) = H(z)X(z) = cfrac{z(7z^2 - 2z)}{(z - cfrac{1}{2})^2(z - cfrac{1}{5})} = cfrac{5}{2} cfrac{z}{(z - cfrac{1}{2})^2} + cfrac{25}{3}cfrac{z}{z - cfrac{1}{2}} - cfrac{4}{3} cfrac{z}{z - cfrac{1 大专栏  Z变换解差分方程的思考}{5}} ]

[ y_{zs}(n) = 5nleft( cfrac{1}{2} right)^nu(n) + cfrac{25}{3}left( cfrac{1}{2} right)^nu(n) - cfrac{4}{3}left( cfrac{1}{5} right)^nu(n) ]

[ begin{aligned} y_{zi}(0) &= C_1 + C_2 &= y(0) - y_{zs}(0) &= -5 \ y_{zi}(1) &= cfrac{1}{2}C_1 + cfrac{1}{5}C_2 &= y(1) - y_{zs}(1) & = -cfrac{12}{5} end{aligned} ]

得到 [ C_1 = -cfrac{14}{3} \ C_2 = -cfrac{1}{3} ]

[ y_{zi}(n) = -cfrac{14}{3} left( cfrac{1}{2} right)^nu(n) -cfrac{1}{3} left( cfrac{1}{5} right)^nu(n) ]

解法二: [ y(n + 2) - cfrac{7}{10}y(n + 1) + cfrac{1}{10}y(n) = 7x(n+2) -2 x(n + 1) ]

两边同时求(Z)变换 [ z^2(Y(z) - y(0) - y(1)z^{-1}) - cfrac{7}{10}z(Y(z) - y(0)) + cfrac{1}{10}Y(z) = 7z^2(X(z) - x(0) - x(1)z^{-1}) - 2z(X(z) - x(0)) ]

得到 [ Y(z) = cfrac{(y(0) - 7x(0))z^2 + (y(1) - cfrac{7}{10} y(0) - 7x(1) + 2x(0))z}{(z - cfrac{1}{2})(z - cfrac{1}{5})} + H(z)X(z) ]

可知 [ Y_{zi}(z) = cfrac{(y(0) - 7x(0))z^2 + (y(1) - cfrac{7}{10} y(0) - 7x(1) + 2x(0))z}{(z - cfrac{1}{2})(z - cfrac{1}{5})} = cfrac{-5z^2 + cfrac{11}{10}z}{(z - cfrac{1}{2})(z - cfrac{1}{5})} = -cfrac{14}{3}cfrac{z}{z - cfrac{1}{2}} - cfrac{1}{3}cfrac{z}{z - cfrac{1}{5}} ]

所以 [ y_{zi}(n) = -cfrac{14}{3} left( cfrac{1}{2} right)^nu(n) -cfrac{1}{3} left( cfrac{1}{5} right)^nu(n) ]

同第一种解法一样,所以我的想法是正确的(小声BB答案错了)。

总结

其实根据题目给的初始条件不同,我们的解法也不相同,这里总结一下如果给出不同的初始条件应当采取什么解法(以二阶为例):

  1. 给出(y(0), y(1)),就是我上面提到的情况,有两种方法

    1. 分别求零输入响应和零状态响应,此时零输入响应的系数需要求出零状态响应后才能知道
    2. 直接进行(Z)变换
  2. 给出(y_{zi}(0), y_{zi}(1)​),同样也有两种方法,不过与上面有所不同(实际上是简单了)

    1. 分别求零输入响应和零状态响应,此时由于直接给出了(y_{zi}(0), y_{zi}(1)​),所以可以直接求出零输入响应的系数
    2. 直接进行(Z)变换,此时的形式与上面又有所不同,这时不是

    [ z^2(Y(z) - y(0) - y(1)z^{-1}) - cfrac{7}{10}z(Y(z) - y(0)) + cfrac{1}{10}Y(z) = 7z^2(X(z) - x(0) - x(1)z^{-1}) - 2z(X(z) - x(0)) ]

    而是 [ z^2(Y(z) - y_{zi}(0) - y_{zi}(1)z^{-1}) - cfrac{7}{10}z(Y(z) - y_{zi}(0)) + cfrac{1}{10}Y(z) = 7z^2X(z) - 2zX(z) ]

  3. 给出(y(-2), y(-1)),同样两种解法,因为(y_{zs}(-2) = y_{zs}(-1) = 0),所以(y_{zi}(-2) = y(-2), y_{zi}(-1) = y(-1)),这时同第二种情况是一样的了

    1. 分别求零输入响应和零状态响应,过程同第二种情况一样

    2. 直接进行(Z)变换,此时的形式为 [ Y(z) - cfrac{7}{10}z^{-1}(Y(z) + y(-1)z) + cfrac{1}{10}z^{-2}(Y(z) + y(-1)z + y(-2)z^2) = 7X(z) - 2z^{-1}X(z) ]

  4. 给出(y(-1), y(0)​),这时我们可以将值代入方程迭代处(y(1)​)从而转变为第一种情况,或者迭代出(y(-2)​)转变为第三种情况。鉴于求解的复杂性,最好迭代出(y(-2)​)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!