滾動時域估計

滾動時域估計（Moving horizon estimation、MHE）是一種利用一連串量測的信號進行最优化的作法，量測的信號中包括（隨機變異）以及其他的不準確性，根據這些信號產生未知參數或是變數的估計值。滾動時域估計和確定性的作法不同，滾動時域估計需要遞迴式的求解法，利用线性规划或非线性规划來找到對應的解。

若在一些可以簡化的條件下，滾動時域估計可以簡化成卡尔曼滤波。在針對及滾動時域估計的評估中，發現滾動時域估計的性能有所提昇，唯一需要付出的代價是其計算成本。因為滾動時域估計在計算上的成本較高，因此一般會應用在運算資源較充裕的系統，而且是反應較慢的系統。不過在文獻中已有不少加速的方法。

簡介 
滾動時域估計一般會用在动力系统中，估計一些有量測或是無法量測的狀態。會透過滾動時域估計來調整模型的初始狀態以及參數，讓估計結果接近量測結果。滾動時域估計是以在有限時間區間內，對程序模型及量測的最佳化為基礎。在時間時，針對當前程序狀態進行取樣，再針對包括過去在內，較短的時間區間 計算可以最小化策略（會使用數值的最小化）。滾動時域估計會用即時運算（透過歐拉-拉格朗日方程）來找到在時間之間可以讓目標函數最小化的策略。但只有估計策略中的最後一步會用到，之後再針對滾動後的時域重新對程序數據取樣，再進行計算，得到新的狀態路徑以及估測參數。因為估計的時間區間會一直往前移動，因此此法會稱為滾動時域估計。此作法不一定是最佳的，但在實務上和卡尔曼滤波及其他估計策略比較，有不錯的結果。

原理
滾動時域估計是多變數的估計演算法，會用到
 程序的內在動態模型
 過去量測值的歷史
 在估計時間區間內的最佳化費用函數
來計算最佳的狀態及參數

其最佳化估計函數為

並且沒有違反狀態或是參數的限制條件（例如上下限）

其中

 = 第i個模型估計變數（例如估計溫度）

 = 第i個量測變數（例如實測估計溫度）

 = 第i個估計參數（例如熱傳係數）

 = 加權係數，反應量測值的相對重要性

 = 加權係數，反應之前模型預測的相對重要性

 = 加權係數，避免的大幅變化

滾動時域估計使用滾動的時間區間。在每一次取樣時，時間區間會往前前進一個時間間隔，會分析量測的輸出信號以及最近的輸出信號，來估測目前時間區間的狀態。

應用
 MATLAB、Python及Simulink都已有滾動時域估計的程式碼 
 監控工業製程的污染
 石油及天然氣產業
 聚合物製造
 無人航空系統

相關條目
 
 数据同化
 
 
 
 
 濾波問題
 
 
 粒子濾波器
 
 
 施密特–卡尔曼滤波器
 滑動模式控制
 维纳滤波

參考資料

延伸閱讀

外部連結
 MHE Tutorial in Simulink and MATLAB 
 MHE lecture material 
 Online Course:  MHE in Simulink, MATLAB and Python

控制理论
非線性濾波器
线性滤波器
信號估測