← 全部概念地圖
標準

概念地圖・模型預測控制後退視界

分類:系統

這一頁不只是把一個概念解釋一遍——一張自己畫的結構圖,加上拿台灣情境從頭走一次的實例演練、這個框架什麼時候會騙你,以及它接回 P.A.I.N. 之後長什麼樣。一頁必須交付的三層 →

模型預測控制:先走一拍,下一拍再重算

孵化場控制室裡,剛算完的設備設定又重排了一次。量測值更新了,下一段計畫也跟著更新——這正是後退視界的日常。模型預測控制(MPC)會朝未來排出一串動作,把限制與目標一起放進計算;真正送往現場的先取第一拍。等下一個控制週期到來,新的量測或估測狀態接手,整個預測窗再往前移。留下的那些動作,還有修正的餘地。

兩個控制週期的預測窗:各排只執行第一格 上排從當下k預測到k加三,下排從k加一預測到k加四,視窗右移一拍。紅色實點是量測或估測起點,金色虛線是狀態預測;每排三個控制格,首格實心、後兩格虛線。下排新量測高於前次預測空心點,後續軌跡隨之重算。高度僅表相對關係。 後退視界:每個週期,重算一整窗 量測/估測 狀態預測 本拍執行 後續暫訂 k k+1 k+2 k+3 k+4 當下 k 看往後三拍 執行 暫訂 暫訂 一拍過去,預測窗右移 當下 k+1 新狀態進入計算 前次預測 新量測偏高 執行 暫訂 暫訂 k+1 k+2 k+3 k+4 各排高度僅示意;每拍均重算,無偏差時也更新。
虛線保留修正空間;時間前進一拍,量測起點與整段計畫一起更新。

預測一串動作,先執行最前面那拍

讀這張圖,先把狀態與動作分開:曲線畫狀態會怎麼走,方格表示哪個動作要送出。

圖上元素它在控制流程裡的工作讀圖時留意
紅色實點這一拍取得的量測或估測狀態,提供預測起點資料要有時間戳記
金色虛線把候選控制序列代入模型,得到窗內狀態預測高度呈相對關係,圖中未設物理單位
首個實心控制格本次求解後先執行的第一拍動作下一個週期會再產生新的首拍
兩個虛線控制格求解時共同考量的後續動作送出前仍會經過新的計算
下排右移的窗從k+1重新預測到k+4,維持相同的三拍長度圖中特別放大新量測偏離前次預測的情況

MIT《最適控制原理》第十六講將MPC整理成有限視界的含約束最佳化:由當下狀態規劃控制序列,通常只執行首拍,下一拍再求解。這裡的「後退」描述視界終點持續向未來延伸——控制器每次朝前看,預測窗也持續朝前走。新量測即使吻合預測,下一個控制週期仍會重算。

模型、限制與量測要對得上的地方

一、起點要趕得上這一拍。孵化場人員先核對感測時間、通訊時間與控制器讀到的時間。某個狀態若靠估測取得,交班紀錄也要交代估測依據;把上一輪留在螢幕上的數值直接沿用,新計畫就從過期的起點出發——算得再細也會偏。自問:每個控制週期所需的狀態,能及時量測或可靠估計嗎?

二、做得到與想做到都要寫進去。設備可接受的輸入幅度、調整速度及保護條件,要交給模型同一份規格;追蹤偏差、耗用資源與動作平順之間的權重,則交給目標函數。控制室只喊「趕快回正常」,求解器還缺一把比較候選方案的尺——誰來定義代價,誰就要說明取捨。自問:限制條件與目標函數是否明確,而且與現場要求一致?

三、替模型失準留一個處理入口。同一套孵化設備在不同負載、保養前後,反應可能改變。每拍更新狀態之外,值班人員還需要追蹤預測誤差何時持續超標,並決定何時重估模型、檢查感測器或切換控制方式——例行重算與模型重估各有自己的工作。自問:模型失準到什麼程度時,需要重新辨識、校正或切換策略?

四、答案要在送出前抵達。現場把取樣、估測、求解、通訊到設備接受命令的時間接起來量。孵化場排程畫面上顯示「計算完成」,還要確認那筆命令趕上原定控制週期;求解逾時時沿用什麼指令,也得預先演練——延後送出的精算結果,可能已經對著另一個狀態。自問:含資料處理與送出延遲的計算時間,是否短於更新週期?

孵化場設備調度的下一個控制週期

實例演練

底下這家台灣中部的孵化場,是為了把這個結構講清楚而編出來的示意情境,沒有指涉任何真實公司。延續控制室的重排動作,設備調度人員用一個抽象偏差模型教新同事看懂計畫更新。x與u均為無物理單位的教學量,數字只用來演練滾動步驟,勿換算成溫度、風量或真機設定。

  • 先訂同一套計算規則:x下一拍=0.8×x當下−u+d。x是狀態偏差,u是控制輸入,d是外來擾動;輸入範圍固定為0≤u≤0.6,希望x回到0。預測時先取d=0。這裡沒有指定代價函數,底下列的是手算可行序列,最佳性仍需目標函數與求解器驗證。先把示意模型的適用邊界寫出來。
  • 當下k,從x=2排三拍:取u依序為0.6、0.6、0.16。逐拍代入得到0.8×2−0.6=1,接著0.8×1−0.6=0.2,最後0.8×0.2−0.16=0。三個控制值都落在同一個0.6上限內;這串計畫此刻只送出第一個u=0.6。後兩拍一起被規劃,仍留在待更新狀態。
  • 到k+1,量到的起點變了:第一拍執行期間碰上d=0.4,於是新量測為0.8×2−0.6+0.4=1.4。舊預測寫的是1,現場帶回來的是1.4——下一輪要從這個新值重算。如果還把舊預測當起點,偏差就被藏進計畫。
  • 同樣三拍,再排一份可行序列:接下來預測仍取d=0,由x=1.4改排u為0.6、0.416、0。代入後依序為0.8×1.4−0.6=0.52、0.8×0.52−0.416=0、0.8×0−0=0。此輪仍只執行首個0.6,其餘待下一週期重算——此刻首拍相同,後段計畫已因新起點改變。檢查整段序列,才看得見更新的效果。

交班時最值得留下的是同一個時間點的兩份資訊:上一輪預測它會到哪裡、這一輪量到它在哪裡。這次首拍控制恰好都碰到0.6的輸入上限,光看第一個指令,容易漏掉後續計畫已經改寫。人員把兩個起點與新的後段序列一起存入紀錄,才能追查偏差如何進入計算。手算數字只證明這兩串動作符合本例的輸入範圍與狀態遞推式;要比較哪串更好,還得補上代價。以上為說明結構用的示意情境,僅供理解框架之用。

後退視界什麼時候會騙你

  1. 起點與模型一起歪,重算會反覆放大誤判。感測器偏移時,孵化場的控制紀錄可能看起來一直在修正偏差,實際設備已被錯誤資料推著走。先把量測校正、估測誤差與模型預測誤差分開檢查,再決定要改哪一層——每拍重新計算,並不會自動修復輸入資料。
  2. 求解趕不上週期,新方案就失去即時性。視窗拉長、限制增加,都可能增加計算負擔。設備已等著下一道指令時,人員需要清楚的逾時處理:哪個已驗證的備援方式接手、何時恢復正常求解。把這條路徑也放進演練——畫面出現一條漂亮曲線,現場才有機會接得住。
  3. 有限視界留下的尾端,需要另外設計。窗外的後果可能被推到下一次再處理;這一拍可行,也還要檢查下一拍是否有可行解。Rawlings、Mayne與Diehl的MPC教材說明,有限視界本身不保證穩定性。終端條件、代價與可行性設計需要共同考量——「會重算」只交代了更新程序。

重算的價值落在偏差被看見之後

痛點視角

每次只送一拍,後續計畫就保有吸收新資訊的空間。

孵化場交班的人會在意:這次更新又讓誰多等了一輪,哪個警報讓值班人員整夜盯著螢幕。P.A.I.N.要追的,是這些負擔落在哪個人身上、他願意為減輕負擔付出什麼。這張圖畫得出預測窗如何隨量測推進,畫不出客戶為一次設備異常承受的焦慮。模型裡選擇哪種誤差、給多少權重,都包含了對現場代價的判斷。工程端可以把指令變化壓得很平順,交班端仍可能被反覆確認狀態拖住——這份工時需要另外記錄。今晚抽一筆設備偏差紀錄,把量測更新、計畫生成、指令接受的時間排在一起,再請當班人補上一句:他是在其中哪一段開始不得不守著設備。

MPC,常被問到的幾件事

後退視界是等發現預測錯誤,才重新計算嗎?

標準的這套流程在每個控制週期都以最新量測或估測狀態重新求解。圖把偏差放大,是為了看清更新有何影響。量測即使剛好吻合上一輪預測,時間仍已前進,視窗要納入更後面的一拍;設備限制、參考目標或擾動預測也可能更新——重算是例行工作。

一次只執行第一拍,為什麼還要算後面幾拍?

當下的動作會影響後續狀態與限制,求解時先往後看,才能把這些影響納入比較。窗內的後段動作參與這次決策,下一次又能依新資訊調整。孵化場的教學例子裡,新的首拍仍是0.6,第二拍已改成0.416——只盯第一個輸出,會低估計畫已經更新的程度。

孵化場例子的兩串控制值就是MPC最佳解嗎?

兩串值僅示範滾動流程,是符合本例輸入範圍的手算可行序列。最佳解必須相對於明確的目標函數來談,還要用求解結果驗證。偏差大小、控制用量與動作變化可以有不同代價;改變權重就可能改變序列。這份示意沒有提供那套代價定義,也沒有設定真機操作參數。

預測窗拉得更長,控制就會更穩嗎?

視窗長度需要配合設備反應、延遲、限制與可用計算時間來選。看得更遠會納入更多後果,也增加計算負擔,遠期模型誤差仍要面對。穩定性還涉及終端條件與可行性等設計。實務評估應把不同視窗長度放進相同測試條件,連同逾時與擾動情況一起比較。

控制器需要預測多遠,也取決於回饋延遲;PID則提供另一種以誤差持續修正的結構。沿著回饋延遲與振盪看時間差怎麼改變追趕,再對照PID回饋迴路,把現場的量測、決策與動作接回同一條時間線。

發現引用或事實有誤?請寫信回報,我會依更正政策修正。