使用 Simulink 递归估计器模块估计系统参数
此示例说明如何估计双参数系统的参数并比较测量和估计的输出。
此示例是recursiveLS中提供的命令行参数估计示例的 Simulink® 版本。
该系统有两个参数,表示为:

其中,
和
分别是实时输入和输出数目据。
和
是系统的回归量,
。
和
是系统的参数,
。
加载数据并提取输入、输出和时间信息。
为了直接将此示例与命令行 recursiveLS 示例进行比较,请将时间向量移动一个位置。此转变将 Simulink 输入(时间从 0 开始)与命令行输入(时间从第一个采样时间开始)同步。
load iddata3
input = z3.u;
output = z3.y;
time = z3.SamplingInstants-1;
为 Simulink 构建输入和输出信号。
input_sig = timeseries(input,time); output_sig = timeseries(output,time);
打开基于 Recursive Least Squares Estimator 模块的预配置 Simulink 模型。在此模型中:
input_sig 和 output_sig 模块导入
input_sig和output_sig。
该模型通过将
input_sig路由到延迟线模块来构建 Regressors 信号,然后将延迟信号与原始信号多路复用。
Error 端口提供估计的误差信号。Sum 模块从
input_sig中减去此误差以产生估计的输出。
然后,Mux 模块将测量的 (
output_sig) 和估计的输出信号组合在一起,以便您可以在示波器上一起查看它们。
rls = 'ex_RLS_Estimator_Block_sb_inf';
open_system(rls)

运行仿真。Parameter Scope 显示估计的进展。相邻的 Parameter Display 显示最终的值。Outputs Scope 将测量和估计的输出绘制在一起。
sim(rls) open_system([rls '/Parameter Scope']) open_system([rls '/Outputs Scope'])


您可以通过修改模型参数来探索其他模块配置。例如,
更改 Estimation Method 以查看您的算法选择如何影响您的结果。
将 History 更改为
finite,将 Window Length 更改为30,以应用滑动窗口算法。
另请参阅
Recursive Least Squares Estimator | Recursive Polynomial Model Estimator | recursiveLS