模型預測控制(MPC)簡介
1.引言
在當今過程控制中,PID當然是用的最多的控制方法,但MPC也超過了10%的佔有率。MPC是一個總稱,有著各種各樣的演算法。其動態矩陣控制(DMC)是代表作。DMC採用的是系統的階躍響應曲線,其突出的特點是解決了約束控制問題。那麼是DMC是怎麼解決約束的呢?在這裡只給出巨集觀的解釋,而不做詳細的說明。DMC把線性規劃和控制問題結合起來,用線性規劃解決輸出約束的問題,同時解決了靜態最優的問題,一石二鳥,在工業界取得了極大的成功。
2.作用機理
MPC作用機理描述為:在每一個採用時刻,根據獲得的當前測量資訊,線上求解一個有限時間開環優化問題,並將得到的控制序列的第一個元素作用於被控物件。在下一個取樣時刻,重複上述過程:用新的測量值作為此時預測系統未來動態的初始條件,重新整理優化問題並重新求解 。 即MPC演算法包括三個步驟: (1)預測系統未來動態; (2)(數值)求解開環優化問題; (3)將優化解的第一個元素(或者說第一部分)作用於系統 這三步是在每個取樣時刻重複進行的,且無論採用什麼樣的模型,每個取樣時刻得到的測量值都作為當前時刻預測系統未來動態的初始條件 線上求解開環優化問題獲得開環優化序列是MPC和傳統控制方法的主要區別,因為後者通常是離線求解一個反饋控制律,並將得到的反饋控制律一直作用於系統。
在這裡給出兩點說明: 1.MPC是一個反饋控制策略,但是之前不是說將得到的控制序列中的第一個元素作用於被控物件,求解開環問題。那麼哪來的反饋呢? 實際上在下一個取樣週期,下一時刻的測量值又被使用上了,用下一時刻的測量值求解下一時刻的控制值。故這是一個反饋控制策略 2.傳統的控制方法為什麼被稱為離線控制? 舉例說明:
上面幾張圖片是設計變阻器應有的級數來達到控制並勵直流電動機啟動的例子,那麼如何看的出來是離線控制呢?其實很簡單,在起始的時候就已經把每級電阻值就給定出來了,但是實際上是否能如理論計算的這樣呢?比如我電壓突然受到了擾動了怎麼辦?那麼這個計算的每級電阻值肯定不對了啦,但是傳統的控制方法對此確是無能為力的,因為每級啟動電阻在最早的時候已經計算好了的。
3.MPC的基本特點
不管是何種演算法,他們的基本特點都是:基於模型的預測、滾動優化和前饋-反饋的控制結構。
1.基於模型的預測 在MPC演算法中,需要一個描述物件動態行為的模型,這個模型的作用是預測系統未來的動態。即能夠根據系統k時刻的狀態和k時刻的控制輸入,預測到k+1時刻的輸出。在這裡k時刻的輸入正是用來控制系統k+1時間的輸出,使其最大限度的接近k+1時刻的期望值。故我們強調的是該模型的預測作用,而不是模型的形式。
在這裡我重點講解一下狀態空間模型。那麼什麼是狀態?輸出是不是也是狀態的一種?對的,輸出也是一種狀態,只不過我們賦予了這個狀態特殊的意義。舉個例子來說,舞龍,假設是隻能通過龍尾的人A指揮前面一個人B動作,然後B指揮他前面的一個人C動作….依次如此,達到控制龍頭的人F叼住繡球的動作。如果只關注龍頭的人(輸出)和龍尾的人(輸入),而忽略龍身子的動態,那就是所謂的輸入—輸出系統。經典控制理論就是建立在輸入—輸出系統的基礎上面的。 但是我如果不管要管龍尾和龍頭的人,我連龍身子上面的人也要要求在固定的位置,那麼這就是狀態空間的概念,即我對系統中的每一個狀態都要控制到。龍頭位置的人也是一個狀態,故輸出本身就是一個狀態,或者說是狀態的一個組合。
2.滾動優化 因為外部干擾和模型失配的影響,系統的預測輸出和實際輸出存在著偏差,如果測量值能測到這個偏差,那麼在下一時刻能根據這個測量到偏差的測量值線上求解下一時刻的控制輸入,即優化掉了這個偏差值。若將求解的控制輸出的全部序列作用於系統,那麼k+1時刻的測量值不能影響控制動作,也就是說測量值所包括的外部干擾或模型誤差資訊得不到有效利用。故我們將每個取樣時刻的優化解的第一個分量作用於系統,在下一個採用時刻,根據新得到的測量值為初始條件重新預測系統的未來輸出並求解優化解,繼續講這個時刻的優化解的第一個分量作用於系統,這樣重複至無窮。
故預測控制不是採用一個不變的全域性優化目標,而是採用時間向前滾動式的有限時域優化策略。這也就是意味著優化過程不是一次離線進行,而是反覆線上進行的。
3.前饋-反饋的控制結構 這個在前面給出的兩點說明中的第一點就已經給出了。