什么是在线评估?
在线评估当物理系统运行过程中有新的数据可用时,算法估计模型的参数和状态。系统识别工具箱™软件使用线性、扩展和无气味卡尔曼滤波或粒子滤波算法进行在线状态估计。该工具箱使用递归预测误差最小化算法进行在线参数估计。
考虑一个加热和冷却系统,它没有关于其运行环境的先验信息。假设这个系统必须加热或冷却一个房间,以在给定的时间内达到一定的温度。为了实现它的目标,系统必须获得房间的温度和绝缘特性的知识。当系统运行时,您可以估计房间的绝缘特性在线(操作)。在这个估计中,用系统的努力作为输入,用室温作为输出。您可以使用估计的模型来改进系统行为。在线估计对于估计系统在已知操作点上的参数值的小偏差是理想的。
在线评估的常见应用包括:
自适应控制-估计一个植物模型,根据植物模型的变化修改控制器。
故障检测—将在线设备模型与理想化或参考设备模型进行比较,检测设备中的故障(异常)。
软测量——基于估计的工厂模型生成“测量”,并使用该测量进行反馈控制或故障检测。
在开始脱机估计之前验证实验数据的质量——在使用测量数据进行脱机估计之前,执行一些迭代的在线估计。在线估计提供了一个快速检查实验是否使用了捕获相关系统动态的激励信号。
在线参数估计
在线参数估计通常使用递归算法进行。为了估计一个时间步上的参数值,递归算法使用当前测量值和以前的参数估计。因此,递归算法在内存使用方面是有效的。此外,递归算法的计算需求更小。这种效率使它们适合在线和嵌入式应用程序。有关算法的更多信息,请参见在线参数估计的递归算法.
在“系统识别工具箱”中,您可以在Simulink中进行在线参数估计万博1manbetx®或者在命令行中:
在Si万博1manbetxmulink中,使用递归最小二乘估计而且递归多项式模型估计器块执行在线参数估计。方法还可以从这些模型在线估计状态空间模型递归多项式模型估计器而且型号类型转换器块在一起。您可以为这些块生成C/ c++代码和结构化文本万博1manbetx仿真软件编码器™而且万博1manbetxSimulink PLC Coder™软件
在命令行,使用
recursiveAR
,recursiveARMA
,recursiveARX
,recursiveARMAX
,recursiveOE
,recursiveBJ
,recursiveLS
命令来估计模型结构的模型参数。与Simulink中的估计不同,您可以在在万博1manbetx线估计期间更改递归估计算法的属性。可以使用。生成代码和独立应用程序MATLAB®编码器而且MATLAB编译器™软件
在Simulink中或在命令行中进行在线参数估计时,需要满足以下要求:万博1manbetx
模型必须是离散时间线性或近似线性的,参数随时间变化缓慢。
在估计过程中,估计模型的结构必须是固定的。
iddata
对象在进行在线参数估计时不支万博1manbetx持。将估计输出数据指定为实标量,将输入数据指定为实标量或向量。
在线状态估计
您可以在命令行和Simulink中执行系统的在线状态估计:万博1manbetx
在Si万博1manbetxmulink中,使用卡尔曼滤波器,扩展卡尔曼滤波器,无香味卡尔曼滤波器或粒子滤波块执行在线状态估计的离散时间线性和非线性系统。可以为这些块生成C/ c++代码万博1manbetx仿真软件编码器软件为卡尔曼滤波器块,您还可以使用生成结构化文本万博1manbetxSimulink PLC编码器软件
在命令行,使用
extendedKalmanFilter
,unscentedKalmanFilter
而且particleFilter
用于估计离散非线性系统状态的命令。这些命令实现离散时间扩展卡尔曼滤波(EKF),无气味卡尔曼滤波(UKF)和粒子滤波算法。有关算法的更多信息,请参见在线状态估计的扩展和无气味卡尔曼滤波算法.可以使用。生成代码和独立应用程序MATLAB编码器而且MATLAB编译器软件
在Simulink中或在命令行中进行在线状态估计时,需要满足以下要求:万博1manbetx
系统必须是离散时间的。如果您正在使用卡尔曼滤波器块,系统也可以连续时间。
iddata
对象在在线状态估计期间不支持万博1manbetx。将估计输入输出数据指定为实标量或向量。
参考文献
Ljung, L。系统识别:用户的理论.上马鞍河,新泽西州:Prentice-Hall PTR, 1999,第428-440页。
[2]西蒙D。最优状态估计:卡尔曼,H∞和非线性方法.约翰·威利父子公司,2006年。
另请参阅
功能
recursiveAR
|recursiveARMA
|recursiveARX
|recursiveARMAX
|recursiveOE
|recursiveBJ
|recursiveLS
|extendedKalmanFilter
|unscentedKalmanFilter
|particleFilter