MPC特點原理以及各項參數的選擇--引用別人的博客網址


   參見:MATLAB techtalk 中關於MPC的講解視頻:

               https://www.mathworks.com/videos/series/understanding-model-predictive-control.html 

   或者: Understanding Model Predictive Control(B站 )

             下面是轉載別人參照視頻所作的筆記記錄:https://zhkmxx9302013.github.io/post/10696.html

參見網址:https://zhuanlan.zhihu.com/p/139833089

                  https://blog.csdn.net/u013414501/article/details/82657583

                 https://blog.csdn.net/u013414501/article/details/51772672

MPC的三大要素:

          預測模型——對未來一段時間內的輸出進行預測;

          滾動優化——滾動進行有限時域在線優化(最優控制);

          反饋校正——通過預測誤差反饋,修正預測模型,提高預測精度。

        

        Mo(measured output): 當前可測量的輸出信號
        Ref(Reference signa): 參考信號
        Md(optional measured disturbance signa): 可選的測量干擾信號
        Mv(optimal manipulated variables ):最優操縱變量
        MPC一般通過求解一個二次規划來計算最優操縱變量


MPC作用機理為

在每一個采用時刻,根據獲得的當前測量信息,在線求解一個有限時間開環優化問題,並將得到的控制序列的第一個元素作用於被控對象。在下一個采樣時刻,重復上述過程:用新的測量值作為此時預測系統未來動態的初始條件,刷新優化問題並重新求解 。即MPC算法包括三個步驟:

(1)預測系統未來動態;

(2)(數值)求解開環優化問題;

(3)將優化解的第一個元素(或者說第一部分)作用於系統

這三步是在每個采樣時刻重復進行的,且無論采用什么樣的模型,每個采樣時刻得到的測量值都作為當前時刻預測系統未來動態的初始條件

在線求解開環優化問題獲得開環優化序列是MPC和傳統控制方法的主要區別,因為后者通常是離線求解一個反饋控制律,並將得到的反饋控制律一直作用於系統。

在這里給出兩點說明:

      1.MPC是一個反饋控制策略,但是之前不是說將得到的控制序列中的第一個元素作用於被控對象,求解開環問題。那么哪來的反饋呢?

實際上在下一個采樣周期,下一時刻的測量值又被使用上了,用下一時刻的測量值求解下一時刻的控制值。故這是一個反饋控制策略

      2.傳統的控制方法為什么被稱為離線控制?

設計變阻器應有的級數來達到控制並勵直流電動機啟動的例子,那么如何看的出來是離線控制呢?其實很簡單,在起始的時候就已經把每級電阻值就給定出來了,

但是實際上是否能如理論計算的這樣呢?比如我電壓突然受到了擾動了怎么辦?那么這個計算的每級電阻值肯定不對了啦,但是傳統的控制方法對此確是無能為力的,因為每級啟動電阻在最早的時候已經計算好了的。

   MPC的基本特點

不管是何種算法,他們的基本特點都是:基於模型的預測、滾動優化和前饋-反饋的控制結構。

     1.基於模型的預測

在MPC算法中,需要一個描述對象動態行為的模型,這個模型的作用是預測系統未來的動態。即能夠根據系統k時刻的狀態和k時刻的控制輸入,

預測到k+1時刻的輸出。在這里k時刻的輸入正是用來控制系統k+1時間的輸出,使其最大限度的接近k+1時刻的期望值。故我們強調的是該模型的預測作用,而不是模型的形式。

在這里我重點講解一下狀態空間模型。那么什么是狀態?輸出是不是也是狀態的一種?對的,輸出也是一種狀態,只不過我們賦予了這個狀態特殊的意義。

舉個例子來說,舞龍,假設是只能通過龍尾的人A指揮前面一個人B動作,然后B指揮他前面的一個人C動作….依次如此,達到控制龍頭的人F叼住綉球的動作。

如果只關注龍頭的人(輸出)和龍尾的人(輸入),而忽略龍身子的動態,那就是所謂的輸入—輸出系統。經典控制理論就是建立在輸入—輸出系統的基礎上面的。

但是我如果不管要管龍尾和龍頭的人,我連龍身子上面的人也要要求在固定的位置,那么這就是狀態空間的概念,即我對系統中的每一個狀態都要控制到。

龍頭位置的人也是一個狀態,故輸出本身就是一個狀態,或者說是狀態的一個組合。

     2.滾動優化

因為外部干擾和模型失配的影響,系統的預測輸出和實際輸出存在着偏差,如果測量值能測到這個偏差,那么在下一時刻能根據這個測量到偏差的測量值在線求解下一時刻的控制輸入,

即優化掉了這個偏差值。若將求解的控制輸出的全部序列作用於系統,那么k+1時刻的測量值不能影響控制動作,也就是說測量值所包括的外部干擾或模型誤差信息得不到有效利用。

故我們將每個采樣時刻的優化解的第一個分量作用於系統,在下一個采用時刻,根據新得到的測量值為初始條件重新預測系統的未來輸出並求解優化解,繼續講這個時刻的優化解

的第一個分量作用於系統,這樣重復至無窮。故預測控制不是采用一個不變的全局優化目標,而是采用時間向前滾動式的有限時域優化策略。

這也就是意味着優化過程不是一次離線進行,而是反復在線進行的。

 

 下面是轉載別人參照視頻所作的筆記記錄:https://zhkmxx9302013.github.io/post/10696.html  

一、什么是MPC模型預測控制

MPC(Model Predict Control)是一種反饋控制(feedback control)算法, 使用模型來預測過程的未來輸出。

舉例:
[場景] 車道保持
[已知模型] 車輛模型,比如速度控制, 轉向控制對應的偏航量
[預測] 根據已知模型和所選的控制策略(action),進行軌跡預測
[優化] 通過優化控制策略,來盡可能的擬合預測的軌跡。

如下圖所示為一個MIMO系統u1,u2輸入與y1,y2輸出相互影響。如果使用PID控制的話,每一個子系統單獨設計一個PID控制器,

兩個相互影響的子系統沒有任何的交聯,使得系統難以設計,如果像圖二一樣設計一個較大的系統,則參數較多難以實現,

而使用MPC控制器的話可以較好的解決兩種問題,綜合相互間的影響來設計參數。
MIMO

MIMO BIG
MPC控制
MIMO MPC

此外MPC控制還可以方便的支持各種約束條件,具備一定的預測能力(有點像前饋feedforward控制)。

二、MPC的特點

綜合上述,總結一下MPC的特點:

  • 支持MIMO系統,便於構建輸入輸出間的相互影響參數
  • 支持方便添加約束條件
  • 具有預測能力、
  • 需要較好的處理器和較大的內存,因為需要大量的在線優化,存儲大量的變量
  • MPC相對於LQR控制而言,MPC可以考慮空間狀態變量的各種約束,而LQR,PID等控制只能夠考慮輸入輸出變量的各種約束。

    MPC可應用於線性和非線性系統

Onlineopt

 

 

 

 

三、MPC參數選擇

選擇一個好的參數不僅影響MPC控制的性能,而且還會影響到MPC每一個timestep內進行在線優化的計算復雜度。

這里將會給出關於控制器采樣周期、預測及控制范圍(prediction and control)、約束及權重。

采樣周期的選擇

采樣周期過大,則系統反應過慢導致難以及時進行修正控制,而采樣周期過小,則會導致系統產生大量的在線優化計算,給系統帶來較大的開銷。

因而建議采樣周期設計采用開環響應時間(10~90%上升時間)的十分之一或二十分之一
timestep

預測范圍(prediction horizon)的選擇

預測范圍指的是一次優化后預測未來輸出的時間步的個數。建議范圍:在開環響應時間內采樣20-30個樣本的范圍
predhorizon

控制范圍(control horizon)的選擇

如下圖 [k, k+m]范圍為控制范圍,之后的紅色部分稱為 held constant,其中控制范圍是要通過優化器來進行優化的參數動作。
ctrlhorizon

過小的控制范圍,可能無法做到較好的控制,而較大的控制范圍,比如與預測范圍相等,則會導致只有前一部分的控制范圍才會有較好的效果,

 而后一部分的控制范圍則收效甚微,而且將帶來大量的計算開銷。
consrtgr

建議控制范圍應該在預測范圍的10~20%之間,最小值為2~3個timestep時間步
sujest

約束

對於約束,一般分為Hard約束和Soft約束,Hard約束是不可違背必須遵守的,在控制系統中,輸入輸出都可能會有約束限制,

但是在設計時不建議將輸入輸出都給予Hard約束,因為這兩部的約束有可能是有重疊的,導致優化器會產生不可行解。
建議輸出采用較小容忍度的Soft約束,而輸入的話建議輸入和輸入參數變化率二者之間不要同時為Hard約束,可以一個Hard一個Soft。
costraint

四、Linear MPC (Adaptive MPC 與 Gain-Scheduled MPC)

Linear MPC適用於:

對於非線性系統而言,需要在不同的operating point處進行線性化處理如下圖。
op

Adaptive MPC

在 Adaptive MPC中,當operating condition發生變化的時候,需要進行一次近似線性化計算,在每個時間步中,

使用其近似線性模型來更新內部的平台模型(plant model,比如飛控模型,自行車模型等)。
在 Adaptive MPC中,在不同的operating point條件下,其優化問題的結構保持不變,即狀態數量,約束數量不會隨着operating condition而改變。
adaptivempc

Gain-Scheduled MPC

在 Gain-Scheduled MPC中,在不同的operating point條件下,其優化問題的結構會發生變化,需要為每一個operating point構建一個MPC控制器,且相互之間獨立,其狀態數量約束數量也可能不同。
在 Gain-Scheduled MPC模式下,需要設計調度算法來切換不同的MPC模型。
GMPC

二者選型

[Adaptive MPC] 當能夠構建平台(如飛行器,自動車等)的runtime線性模型,且在不同的operating point下優化問題的結構不變。

[Gain-Scheduled MPC] 當能夠構建平台(如飛行器,自動車等)的runtime線性模型,且在不同的operating point下優化問題的結構發生變化。

五、Non-Linear MPC (Adaptive MPC 與 Gain-Scheduled MPC)

Non-Linear MPC適用於(相對強大,能夠提供更准確的預測能力,與決策支持,但是非線性優化的計算開銷較大)

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM