热门问题
时间线
聊天
视角

滚动时域估计

来自维基百科,自由的百科全书

Remove ads

滚动时域估计(Moving horizon estimation、MHE)是一种利用一连串量测的信号进行最优化的作法,量测的信号中包括噪声(随机变异)以及其他的不准确性,根据这些信号产生未知参数或是变数的估计值。滚动时域估计和确定性的作法不同,滚动时域估计需要递回式的求解法,利用线性规划非线性规划来找到对应的解[1]

若在一些可以简化的条件下,滚动时域估计可以简化成卡尔曼滤波[2]。在针对扩展卡尔曼滤波器英语Extended Kalman filter及滚动时域估计的评估中,发现滚动时域估计的性能有所提升,唯一需要付出的代价是其计算成本[3]。因为滚动时域估计在计算上的成本较高,因此一般会应用在运算资源较充裕的系统,而且是反应较慢的系统。不过在文献中已有不少加速的方法[4][5]

简介

滚动时域估计一般会用在动力系统中,估计一些有量测或是无法量测的状态。会透过滚动时域估计来调整模型的初始状态以及参数,让估计结果接近量测结果。滚动时域估计是以在有限时间区间内,对程序模型及量测的最佳化为基础。在时间t时,针对当前程序状态进行取样,再针对包括过去在内,较短的时间区间 计算可以最小化策略(会使用数值的最小化)。滚动时域估计会用即时运算(透过欧拉-拉格朗日方程)来找到在时间之间可以让目标函数最小化的策略。但只有估计策略中的最后一步会用到,之后再针对滚动后的时域重新对程序数据取样,再进行计算,得到新的状态路径以及估测参数。因为估计的时间区间会一直往前移动,因此此法会称为滚动时域估计。此作法不一定是最佳的,但在实务上和卡尔曼滤波及其他估计策略比较,有不错的结果。

Remove ads

原理

滚动时域估计是多变数的估计算法,会用到

  • 程序的内在动态模型
  • 过去量测值的历史
  • 在估计时间区间内的最佳化费用函数

来计算最佳的状态及参数

Thumb
滚动时域估计的架构[4]

其最佳化估计函数为

并且没有违反状态或是参数的限制条件(例如上下限)

其中

= 第i个模型估计变数(例如估计温度)

= 第i个量测变数(例如实测估计温度)

= 第i个估计参数(例如热传系数)

= 加权系数,反应量测值的相对重要性

= 加权系数,反应之前模型预测的相对重要性

= 加权系数,避免的大幅变化

滚动时域估计使用滚动的时间区间。在每一次取样时,时间区间会往前前进一个时间间隔,会分析量测的输出信号以及最近的输出信号,来估测目前时间区间的状态。

Remove ads

应用

  • MATLAB、Python及Simulink都已有滚动时域估计的程式码[6]
  • 监控工业制程的污染[7]
  • 石油及天然气产业[8]
  • 聚合物制造[9]
  • 无人航空系统[10][11]

相关条目

参考资料

Loading content...

延伸阅读

外部链接

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads