CCS之離散系統的狀態空間模型

序言

離散系統和連續系統類似

建立離散狀態空間模型

和上一篇文章中的連續系統一樣,我們首先要做的就是建立狀態空間模型,有多種方法可以用來建立狀態空間模型,我們這裏介紹差分方程法和Z傳遞函數法。

由差分方程建立狀態空間模型

我們將系統分爲含有高階差分項和不含高階差分項兩種情況,後者是前者的特例

輸入不含有高階差分項

y(k+n)+a1y(k+n1)+a2y(k+n2)++an1y(k+1)+any(k)=bu(k) y(k+n)+a_{1}y(k+n-1)+a_{2}y(k+n-2)+\cdots+a_{n-1}y(k+1)+a_{n}y(k)=bu(k)

選取如下n個變量作爲系統的一組狀態變量
{x1(k)=y(k)x2(k)=y(k+1)x3(k)=y(k+2)                   xn(k)=y(k+n1) \begin{cases} x_{1}(k)=y(k)\\ x_{2}(k)=y(k+1)\\ x_{3}(k)=y(k+2)\\ \ \ \ \vdots \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \vdots\\ x_{n}(k)=y(k+n-1)\\ \end{cases}
則這些狀態變量之間有如下關係
{x1(k+1)=x2(k)x2(k+1)=x3(k)                        xn1(k+1)=xn(k)xn(k+1)=anx1(k)an1x2(k)a1xn(k)+bu(k) \begin{cases} x_{1}(k+1)=x_{2}(k)\\ x_{2}(k+1)=x_{3}(k)\\ \ \ \ \vdots \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \vdots\\ x_{n-1}(k+1)=x_{n}(k)\\ x_{n}(k+1)=-a_{n}x_{1}(k)-a_{n-1}x_{2}(k)-\cdots-a_{1}x_{n}(k)+bu(k) \end{cases}
將上式寫成矩陣向量形式,得到離散狀態空間方程,即
x(k+1)=Fx(k)+Hu(k) x(k+1)=Fx(k)+Hu(k)
式子中的兩個向量如下所示
x(k)=[x1(k)x2(k)xn(k)]                 x(k+1)=[x1(k+1)x2(k+1)xn(k+1)] x(k) =\left[ \begin{matrix} x_{1}(k) \\ x_{2}(k) \\ \vdots \\ x_{n}(k) \\ \end{matrix} \right] \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x(k+1) = \left[ \begin{matrix} x_{1}(k+1) \\ x_{2}(k+1) \\ \vdots \\ x_{n}(k+1) \\ \end{matrix} \right]
其中F、H是兩個矩陣,如下所示
F=[010000100001anan1an2a1]                             H=[000b] F = \left[ \begin{matrix} 0 & 1 & 0 & \cdots & 0 \\ 0 & 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \cdots & 1 \\ -a_{n} & -a_{n-1} & a_{n-2} & \cdots & -a_{1} \\ \end{matrix} \right] \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ H = \left[ \begin{matrix} 0\\ 0\\ \vdots \\ 0\\ b\\ \end{matrix} \right]
系統的輸出y(k)=x1(k)y(k)=x_{1}(k)我們可以表示成y(k)=Cx(k)y(k)=C x(k),其中的CC如下所示
C=[100] C= \left[ \begin{matrix} 1&0&\cdots&0 \end{matrix} \right]
上面合併一下得到下面的離散系統的狀態空間模型
{x(k+1)=Fx(k)+Hu(k)y(k)=Cx(k) \begin{cases} x(k+1)=Fx(k)+Hu(k)\\ y(k)=Cx(k) \end{cases}

輸入不含有高階差分項

差分方程如下
y(k+n)+a1y(k+n+1)+a2y(k+n2)++any(k)=b0u(k+n)+b1u(k+n1)+b2u(k+n2)++bnu(k) y(k+n)+a_{1}y(k+n+1)+a_{2}y(k+n-2)+\cdots+a_{n}y(k)=\\b_{0}u(k+n)+b_{1}u(k+n-1)+b_{2}u(k+n-2)+\cdots+b_{n}u(k)
我們不加推導直接給出建立後的結果,狀態空間模型如下
{x(k+1)=Fx(k)+Hu(k)y(k)=Cx(k)+Du(k) \begin{cases} x(k+1)=Fx(k)+Hu(k)\\ y(k)=Cx(k)+Du(k) \end{cases}
各個矩陣如下所示
F=[010000100001anan1an2a1]                             H=[h1h2h3hn] F = \left[ \begin{matrix} 0 & 1 & 0 & \cdots & 0 \\ 0 & 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \cdots & 1 \\ -a_{n} & -a_{n-1} & a_{n-2} & \cdots & -a_{1} \\ \end{matrix} \right] \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ H = \left[ \begin{matrix} h_{1} \\ h_{2} \\ h_{3} \\ \vdots \\ h_{n} \\ \end{matrix} \right] \\

C=[1000]          D=h0=b0 C= \left[ \begin{matrix} 1 & 0 & 0&\cdots&0\\ \end{matrix} \right]\ \ \ \ \ \ \ \ \ \ D=h_{0}=b_{0}

其中hh的計算方法如下
{h0=b0h1=b1a1h0h2=b2a1h1a2h0                hn=bna1hn1an1h1anh0 \begin{cases} h_{0}=b_{0}\\ h_{1}=b_{1}-a_{1}h_{0}\\ h_{2}=b_{2}-a_{1}h_{1}-a_{2}h_{0}\\ \ \ \vdots\ \ \ \ \ \ \ \ \ \ \ \ \ \ \vdots\\ h_{n}=b_{n}-a_{1}h_{n-1}-\cdots-a_{n-1}h_{1}-a_{n}h_{0} \end{cases}
爲了方便記憶,可以寫成矩陣相乘的形式
[1000a1100a2a110anan1a11][h0h1h2hn]=[b0b1b2bn] \left[ \begin{matrix} 1&0&0&\cdots&0\\ a_{1}&1&0&\cdots&0\\ a_{2}&a_{1}&1&\cdots&0\\ \vdots&\vdots&\vdots&\ddots&\vdots\\ a_{n}&a_{n-1}&\cdots&a_{1}&1 \end{matrix} \right] \left[ \begin{matrix} h_{0}\\ h_{1}\\ h_{2}\\ \vdots\\ h_{n} \end{matrix} \right]=\left[ \begin{matrix} b_{0}\\ b_{1}\\ b_{2}\\ \vdots\\ b_{n} \end{matrix} \right]

ZZ傳遞函數建立狀態空間模型

有很多種方法可以求出Z傳遞函數的狀態空間模型,實際上,Z傳遞函數是零初始條件下的差分方程,我們目前接觸到的應該都是零初始狀態,所以前面已經說過了一種由差分方程求傳遞函數的方法,而且給出了相應的計算公式。

下面我們給出另一種求解方法,求出來另外兩種狀態空間方程,即能控標準型和能觀標準型,至於這兩種標準型的特殊之處,等到後面零極點配置的時候纔會顯現出來。
G(z)=b0zn+b1zn1++bnzn+a1zn1++an G(z)=\frac{b_{0}z^{n}+b_{1}z^{n-1}+\cdots+b_{n}}{z^{n}+a_{1}z^{n-1}+\cdots+a_{n}}
我們不加推導地直接給出計算公式
F=[010000100001anan1an2a1]                             H=[0001] F = \left[ \begin{matrix} 0 & 1 & 0 & \cdots & 0 \\ 0 & 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \cdots & 1 \\ -a_{n} & -a_{n-1} & a_{n-2} & \cdots & -a_{1} \\ \end{matrix} \right] \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ H = \left[ \begin{matrix} 0\\ 0\\ \vdots \\ 0\\ 1\\ \end{matrix} \right]

C=[bnanb0bn1an1b0b1a1b0]           D=b0 C = \left[ \begin{matrix} b_{n}-a_{n}b_{0}&b_{n-1}-a_{n-1}b_{0}&\cdots&b_{1}-a_{1}b_{0} \end{matrix} \right],\ \ \ \ \ \ \ \ \ \ \ D=b_{0}

上面就是所謂的能控標準型,我們按照如下變換得到四個新的矩陣,如下所示
F=FT             H=CT          C=HT,               D=b0 \overline F=F^{T},\ \ \ \ \ \ \ \ \ \ \ \ \ \overline H= C^{T},\ \ \ \ \ \ \ \ \ \ \overline C=H^{T},\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \overline D=b_{0}
上面就是所謂的能觀標準型

由狀態空間模型得到Z傳遞函數

在零初始條件下,我們這裏不加推導地直接給出轉換公式,如下所示
G(z)=C(zIF)1H+D G(z)=C(zI-F)^{-1}H+D

能觀能控性判據

能控性是指系統的狀態是否受輸入量的控制,如果系統的狀態能夠在輸入量的控制下從任意狀態轉移到另一個任意狀態,則系統是能控的,否則是不能控的。

能觀性是指在輸出量的觀測中,是否能重新構建出所有狀態變量,如果能,則系統是能觀的,否則是不能觀的。

能控性是研究極點配置問題的基礎,能觀性在觀測器的設計中,起着重要的作用。

離散系統的能控性判據

分爲狀態能控和輸出能控

狀態能控性判據

系統的狀態方程如下所示
x(k+1)=Fx(k)+Hu(k) x(k+1)=Fx(k)+Hu(k)
系統狀態完全能控的充分必要條件爲由F、H構成的能控矩陣
Q3=[HFHFn1H] Q_{3}=\left[ \begin{matrix} H&FH&\cdots&F^{n-1}H\end{matrix}\right]
的秩等於狀態變量的個數n

輸出完全能控

系統輸出完全能控的充分必要條件爲由F、H、C、D構成的矩陣
Q4=[CHCFHCF2HCFn1HD] Q_{4}=\left[\begin{matrix}CH&CFH&CF^{2}H&\cdots&CF^{n-1}H&D \end{matrix} \right]
的秩爲m,m是輸出向量的維數

離散系統的能觀性判據

系統具有能觀性的充分必要條件爲由C、F構成的矩陣
V2=[CCFCFn1] V_{2}=\left[\begin{matrix}C \\CF\\ \vdots \\CF^{n-1} \end{matrix} \right]
的秩等於狀態變量的個數n

離散系統的狀態反饋控制器設計

極點配置設計法

當系統完全能控,我們可以通過狀態反饋任意配置極點。

設被控對象的狀態方程爲
x(k+1)=Fx(k)+Hu(k) x(k+1)=Fx(k)+Hu(k)
控制框圖如下

若選擇控制信號
u(k)=Lx(k) u(k)=-Lx(k)
式中L=[l1   l2      ln]L=[l_{1} \ \ \ l_{2}\ \ \ \cdots \ \ \ l_{n}]爲狀態反饋增益矩陣。採用線性狀態反饋後,得到了閉環控制系統,如下是閉環後的框圖

最終我們得到閉環系統的狀態方程下式
x(k+1)=(FHL)x(k) x(k+1)=(F-HL)x(k)
它的特徵方程爲
ac(z)=zIF+HL=0 a_{c}(z)=\left| zI-F+HL \right|=0
我們知道狀態方程的系統矩陣的特徵值就是閉環系統的極點。所以我們可以通過配置LL來配置狀態方程的特徵值,從而實現閉環系統的極點配置。

下面用一個例子來說明問題

已知系統狀態方程中兩個矩陣如下爲
F=[1301]                 H=[11] F= \left[ \begin{matrix} 1&-3\\ 0&1 \end{matrix} \right] \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ H= \left[ \begin{matrix} 1\\ 1 \end{matrix} \right]
式子中的u(k)=Lx(k)u(k)=-Lx(k)狀態反饋閉環系統期望的極點爲p1=0.6p2=0.3p_{1}=0.6,p_{2}=0.3。試設計狀態反饋增益矩陣L=[l1  l2]L=[l_{1}\ \ l_{2}]

解:閉環系統期望的特徵方程爲
ac(z)=(zp1)(zp2)=(z0.6)(z0.3)=z20.9z+0.18 a_{c}(z)=(z-p_{1})(z-p_{2})=(z-0.6)(z-0.3)=z^{2}-0.9z+0.18
這臺反饋閉環系統的特徵方程爲
ac(z)=zIF+HL=z2(2l1l2)z+(14l1l2) a_{c}(z)=\left| zI-F+HL \right|=z^{2}-(2-l_{1}-l_{2})z+(1-4l_{1}-l_{2})
令上面兩個zz的多項式相等得
2l1l2=0.914l1l2=0.18 2-l_{1}-l_{2}=0.9\\ 1-4l_{1}-l_{2}=0.18

l1=0.093l2=1.1933L=[l1  l2]=[0.0933  1.1933] l_{1}=-0.093\\ l_{2}=1.1933\\ L=[l_{1}\ \ l_{2}]=[-0.0933\ \ 1.1933]

狀態觀測器設計

全維觀測器

用極點配置方法進行系統設計時,我們需要測量全部的狀態變量,但是在實際系統中,要測量全部狀態量是困難的。對那些不能直接測量的狀態,用估計的方法得到,從而實現狀態反饋。完成這種估計的過程的實際裝置叫做狀態觀測器,或稱狀態估計器,或稱狀態重構,下面我們介紹全維觀測器。

我們有一個被控對象,其狀態方程如下
{x(k+1)=Fx(k)+Hu(k)y(k)=Cx(k)(1) \begin{cases} x(k+1)=Fx(k)+Hu(k) \\ y(k)=Cx(k) \end{cases}\tag{1}
再建立一個狀態方程,矩陣參數和被控對象完全相同
{x^(k+1)=Fx^(k)+Hu(k)y^(k)=Cx^(k)+Du(k)(2) \begin{cases} \hat x(k+1)=F\hat x(k)+Hu(k)\\ \hat y(k)=C\hat x(k)+Du(k) \end{cases}\tag{2}
我們看狀態方程(1)它由u(k)u(k)得到了x(k)x(k)y(k)y(k),但是我們雖然知道它是這樣的結果,但是我們總得有個裝置去計算這個結果吧,那麼下面的狀態方程(2)就是用來計算這個結果的。但是計算出來的結果和物理上的真實結果不一定相同,可能存在滯後,偏差,畢竟我們無法精確地復現物理模型。所以我們需要將它的輸出結果與實際結果進行比較,將差值反饋到觀測器狀態空間方程的輸入端構成閉環反饋,這樣是爲了儘可能地讓狀態觀測器的輸出與真實的輸出相近。具體圖形說明請看陳炳和先生所著《計算機控制系統原理與應用》第一版第432頁。

這裏要跳一大段,詳情請看書!!!

最終狀態觀測器誤差的狀態方程方程如下
x~(k+1)=(FKeC)x~(k) \tilde x(k+1)=(F-K_{e}C)\tilde x(k)
它的特徵方程爲
ae(z)=zIF+KeC=0 a_{e}(z)=\left| zI-F+K_{e}C \right|=0
其中的KeK_{e}爲觀測器增益矩陣,我們看到x~(k)\tilde x(k)的動態特性僅與FCKeF、C、K_{e}有關,在系統狀態方程已知的情況下,我們僅需要配置KeK_{e}就可以了。配置的過程爲

  • 明確觀測器所要達到的控制性能指標
  • 設計出觀測器相應閉環極點
  • 列出觀測器需要的特徵方程
  • 通過待定係數列出我們設計的觀測器的特徵方程
  • 讓二者對應係數相同即可

降維觀測器

關於這個部分,我在網上找了一個浙大的PPT,放到這裏,感興趣的可以看一下

浙大-降維觀測器


坦蕩做人
用心做事

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章