
序言
離散系統和連續系統類似
建立離散狀態空間模型
和上一篇文章中的連續系統一樣,我們首先要做的就是建立狀態空間模型,有多種方法可以用來建立狀態空間模型,我們這里介紹差分方程法和Z傳遞函數法。
由差分方程建立狀態空間模型
我們將系統分為含有高階差分項和不含高階差分項兩種情況,后者是前者的特例
輸入不含有高階差分項
\[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個變量作為系統的一組狀態變量
\[\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} \]
則這些狀態變量之間有如下關系
\[\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) =\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 = \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)=x_{1}(k)\)我們可以表示成\(y(k)=C x(k)\),其中的\(C\)如下所示
\[C= \left[ \begin{matrix} 1&0&\cdots&0 \end{matrix} \right] \]
上面合並一下得到下面的離散系統的狀態空間模型
\[\begin{cases} x(k+1)=Fx(k)+Hu(k)\\ y(k)=Cx(k) \end{cases} \]
輸入不含有高階差分項
差分方程如下
\[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) \]
我們不加推導直接給出建立后的結果,狀態空間模型如下
\[\begin{cases} x(k+1)=Fx(k)+Hu(k)\\ y(k)=Cx(k)+Du(k) \end{cases} \]
各個矩陣如下所示
\[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= \left[ \begin{matrix} 1 & 0 & 0&\cdots&0\\ \end{matrix} \right]\ \ \ \ \ \ \ \ \ \ D=h_{0}=b_{0} \]
其中\(h\)的計算方法如下
\[\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} \]
為了方便記憶,可以寫成矩陣相乘的形式
\[\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] \]
由\(Z\)傳遞函數建立狀態空間模型
有很多種方法可以求出Z傳遞函數的狀態空間模型,實際上,Z傳遞函數是零初始條件下的差分方程,我們目前接觸到的應該都是零初始狀態,所以前面已經說過了一種由差分方程求傳遞函數的方法,而且給出了相應的計算公式。
下面我們給出另一種求解方法,求出來另外兩種狀態空間方程,即能控標准型和能觀標准型,至於這兩種標准型的特殊之處,等到后面零極點配置的時候才會顯現出來。
\[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 = \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 = \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} \]
上面就是所謂的能控標准型
,我們按照如下變換得到四個新的矩陣,如下所示
\[\overline F=F^{T},\ \ \ \ \ \ \ \ \ \ \ \ \ \overline H= C^{T},\ \ \ \ \ \ \ \ \ \ \overline C=H^{T},\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \overline D=b_{0} \]
上面就是所謂的能觀標准型
由狀態空間模型得到Z傳遞函數
在零初始條件下
,我們這里不加推導地直接給出轉換公式,如下所示
\[G(z)=C(zI-F)^{-1}H+D \]
能觀能控性判據
能控性是指系統的狀態是否受輸入量的控制,如果系統的狀態能夠在輸入量的控制下從任意狀態轉移到另一個任意狀態,則系統是能控的,否則是不能控的。
能觀性是指在輸出量的觀測中,是否能重新構建出所有狀態變量,如果能,則系統是能觀的,否則是不能觀的。
能控性是研究極點配置問題的基礎,能觀性在觀測器的設計中,起着重要的作用。
離散系統的能控性判據
分為狀態能控和輸出能控
狀態能控性判據
系統的狀態方程如下所示
\[x(k+1)=Fx(k)+Hu(k) \]
系統狀態完全能控的充分必要條件為由F、H構成的能控矩陣
\[Q_{3}=\left[ \begin{matrix} H&FH&\cdots&F^{n-1}H\end{matrix}\right] \]
的秩等於狀態變量的個數n
輸出完全能控
系統輸出完全能控的充分必要條件為由F、H、C、D構成的矩陣
\[Q_{4}=\left[\begin{matrix}CH&CFH&CF^{2}H&\cdots&CF^{n-1}H&D \end{matrix} \right] \]
的秩為m,m是輸出向量的維數
離散系統的能觀性判據
系統具有能觀性的充分必要條件為由C、F構成的矩陣
\[V_{2}=\left[\begin{matrix}C \\CF\\ \vdots \\CF^{n-1} \end{matrix} \right] \]
的秩等於狀態變量的個數n
離散系統的狀態反饋控制器設計
極點配置設計法
當系統完全能控,我們可以通過狀態反饋任意配置極點。
設被控對象的狀態方程為
\[x(k+1)=Fx(k)+Hu(k) \]
控制框圖如下

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

最終我們得到閉環系統的狀態方程下式
\[x(k+1)=(F-HL)x(k) \]
它的特征方程為
\[a_{c}(z)=\left| zI-F+HL \right|=0 \]
我們知道狀態方程的系統矩陣的特征值就是閉環系統的極點。所以我們可以通過配置\(L\)來配置狀態方程的特征值,從而實現閉環系統的極點配置。
下面用一個例子來說明問題
已知系統狀態方程中兩個矩陣如下為
\[F= \left[ \begin{matrix} 1&-3\\ 0&1 \end{matrix} \right] \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ H= \left[ \begin{matrix} 1\\ 1 \end{matrix} \right] \]
式子中的\(u(k)=-Lx(k)\)狀態反饋閉環系統期望的極點為\(p_{1}=0.6,p_{2}=0.3\)。試設計狀態反饋增益矩陣\(L=[l_{1}\ \ l_{2}]\)
解:閉環系統期望的特征方程為
\[a_{c}(z)=(z-p_{1})(z-p_{2})=(z-0.6)(z-0.3)=z^{2}-0.9z+0.18 \]
這台反饋閉環系統的特征方程為
\[a_{c}(z)=\left| zI-F+HL \right|=z^{2}-(2-l_{1}-l_{2})z+(1-4l_{1}-l_{2}) \]
令上面兩個\(z\)的多項式相等得
\[2-l_{1}-l_{2}=0.9\\ 1-4l_{1}-l_{2}=0.18 \]
得
\[l_{1}=-0.093\\ l_{2}=1.1933\\ L=[l_{1}\ \ l_{2}]=[-0.0933\ \ 1.1933] \]
狀態觀測器設計
全維觀測器
用極點配置方法進行系統設計時,我們需要測量全部的狀態變量,但是在實際系統中,要測量全部狀態量是困難的。對那些不能直接測量的狀態,用估計的方法得到,從而實現狀態反饋。完成這種估計的過程的實際裝置叫做狀態觀測器,或稱狀態估計器,或稱狀態重構,下面我們介紹全維觀測器。
我們有一個被控對象,其狀態方程如下
\[\begin{cases} x(k+1)=Fx(k)+Hu(k) \\ y(k)=Cx(k) \end{cases}\tag{1} \]
再建立一個狀態方程,矩陣參數和被控對象完全相同
\[\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)\)得到了\(x(k)\)和\(y(k)\),但是我們雖然知道它是這樣的結果,但是我們總得有個裝置去計算這個結果吧,那么下面的狀態方程(2)就是用來計算這個結果的。但是計算出來的結果和物理上的真實結果不一定相同,可能存在滯后,偏差,畢竟我們無法精確地復現物理模型。所以我們需要將它的輸出結果與實際結果進行比較,將差值反饋到觀測器狀態空間方程的輸入端構成閉環反饋,這樣是為了盡可能地讓狀態觀測器的輸出與真實的輸出相近。具體圖形說明請看陳炳和先生所著《計算機控制系統原理與應用》第一版第432頁。
這里要跳一大段,詳情請看書!!!
最終狀態觀測器誤差的狀態方程方程如下
\[\tilde x(k+1)=(F-K_{e}C)\tilde x(k) \]
它的特征方程為
\[a_{e}(z)=\left| zI-F+K_{e}C \right|=0 \]
其中的\(K_{e}\)為觀測器增益矩陣,我們看到\(\tilde x(k)\)的動態特性僅與\(F、C、K_{e}\)有關,在系統狀態方程已知的情況下,我們僅需要配置\(K_{e}\)就可以了。配置的過程為
- 明確觀測器所要達到的控制性能指標
- 設計出觀測器相應閉環極點
- 列出觀測器需要的特征方程
- 通過待定系數列出我們設計的觀測器的特征方程
- 讓二者對應系數相同即可
降維觀測器
關於這個部分,我在網上找了一個浙大的PPT,放到這里,感興趣的可以看一下
浙大-降維觀測器
坦盪做人
用心做事