佛山网站开发招聘,网上找设计师,wordpress功能图,手机网页无法打开是什么原因系列文章目录
MATLAB 模型参考自适应控制 - Model Reference Adaptive Control
MATLAB 自抗扰控制 - Active Disturbance Rejection Control 文章目录 系列文章目录前言一、在线参数估计二、使用步骤 前言
在线估计#xff08;Online estimation#xff09;算法是在物理系…系列文章目录
MATLAB 模型参考自适应控制 - Model Reference Adaptive Control
MATLAB 自抗扰控制 - Active Disturbance Rejection Control 文章目录 系列文章目录前言一、在线参数估计二、使用步骤 前言
在线估计Online estimation算法是在物理系统运行期间获得新数据时对模型的参数和状态进行估计。系统识别工具箱The System Identification Toolbox™ 软件使用线性linear、扩展extended和无迹卡尔曼滤波unscented Kalman filter或粒子滤波particle filter算法进行在线状态估计。工具箱使用递归预测误差最小化recursive prediction error minimization算法进行在线参数估计。
考虑一个事先不知道运行环境信息的供暖和制冷系统。假设该系统必须在一定时间内加热或冷却一个房间使其达到一定温度。为了实现目标系统必须了解房间的温度和隔热特性。您可以在系统online在线运行时估算房间的保温特性。在估算时可以将系统工作作为输入将房间温度作为输出。您可以使用估算的模型来改进系统性能。在线估算非常适合估算已知运行点operating point下系统参数值的微小偏差small deviations。
在线估计的常见应用包括 自适应控制Adaptive control - 根据被控对象模型的变化估计工厂模型以修改控制器。 故障检测Fault detection - 将在线工厂模型与理想化或参考工厂模型进行比较以检测工厂中的故障异常。 软传感Soft sensing - 根据估算的工厂模型生成 “测量值”并利用该测量值进行反馈控制或故障检测。 在开始离线估算之前验证实验数据的质量 - 在使用测量数据进行离线估算之前先进行几次迭代的在线估算。在线估算可快速检查实验所使用的激励信号是否捕捉到了相关的系统动态。 一、在线参数估计
在线参数估计通常采用递归算法recursive algorithm。递归算法使用当前的测量值current measurements和之前的参数估计值previous parameter estimates来估计每一步的参数值。因此递归算法的内存使用效率很高。此外递归算法的计算需求也较小。这种效率使其适合在线和嵌入式应用。有关算法的更多信息请参阅在线参数估计递归算法Recursive Algorithms for Online Parameter Estimation。
在系统识别工具箱System Identification Toolbox中您可以在 Simulink® 或命令行中执行在线参数估计
在 Simulink 中使用递归最小二乘估计器Recursive Least Squares Estimator和递归多项式模型估计器Recursive Polynomial Model Estimator模块执行在线参数估计。您还可以同时使用递归多项式模型估计器和模型类型转换器Model Type Converter模块根据这些模型在线估计状态空间模型。您可以使用 Simulink Coder™ 和 Simulink PLC Coder™ 软件为这些模块生成 C/C 代码和结构化文本。
在命令行中使用 recursiveAR、recursiveARMA、recursiveARX、recursiveARMAX、recursiveOE、recursiveBJ 和 recursiveLS 命令来估计模型结构的模型参数。与 Simulink 中的估算不同您可以在在线估算过程中更改递归估算算法的属性。您可以使用 MATLAB® Coder 和 MATLAB Compiler™ 软件生成代码和独立应用程序。
在 Simulink 或命令行中执行在线参数估计时需要满足以下要求
模型必须是离散时间线性discrete-time linear或近似线性参数随时间缓慢变化。
估计期间估计模型的结构必须固定fixed。
在线参数估计期间不支持 iddata 对象。将估计输出数据指定为实数标量real scalar将输入数据指定为实数标量或向量real scalar or vector。
二、使用步骤
您可以在命令行和 Simulink 中对系统进行在线状态估计
在 Simulink 中使用卡尔曼滤波器 Kalman Filter、扩展卡尔曼滤波器Extended Kalman Filter、无迹卡尔曼滤波器Unscented Kalman Filter或粒子滤波器Particle Filter模块对离散时间线性和非线性系统进行在线状态估计。您可以使用 Simulink Coder 软件为这些模块生成 C/C 代码。对于卡尔曼滤波块您还可以使用 Simulink PLC Coder 软件生成结构化文本。
在命令行中使用 extendedKalmanFilter、uncentedKalmanFilter 和 particleFilter 命令估计离散时间非线性系统的状态。这些命令实现了离散时间扩展卡尔曼滤波EKF、非特征卡尔曼滤波UKF和粒子滤波算法。有关这些算法的更多信息请参阅在线状态估计的扩展卡尔曼滤波算法和无迹卡尔曼滤波算法。您可以使用 MATLAB Coder 和 MATLAB Compiler 软件生成代码和独立应用程序。
在 Simulink 或命令行中执行在线状态估计时需要满足以下要求
系统必须是离散时间的。如果使用卡尔曼滤波块系统也可以是连续时间的。
在线状态估计期间不支持 iddata 对象。将估计输入输出数据指定为实数标量或矢量。
参考文献 [1] Ljung, L. System Identification: Theory for the User. Upper Saddle River, NJ: Prentice-Hall PTR, 1999, pp. 428–440.
[2] Simon, D. Optimal State Estimation: Kalman, H Infinity, and Nonlinear Approaches. John Wiley and Sons Inc., 2006.