在线递推最小二乘估计
这个例子展示了如何实现一个在线递推最小二乘估计量。你估计一个内燃机的非线性模型,使用递归最小二乘来检测发动机惯性的变化。
发动机模型
发动机模型包括非线性节流管汇系统元素,和燃烧系统。模型的输入是节气门角度和模型输出转速的发动机转速。
open_system (“iddemo_engine”);sim卡(“iddemo_engine”)
发动机模型建立了一个脉冲序列驱动节气门角度从开放到封闭。发动机的非线性响应,特别是油门时发动机转速响应时间开启和关闭是不同的。
在100秒到模拟一个引擎发生故障导致发动机惯性增加(发动机惯性,J
建模的iddemo_engine /车辆动力学
块)。惯性变更导致引擎在开启和关闭油门位置的响应时间增加。你使用在线递推最小二乘来检测惯性变化。
open_system (“iddemo_engine / trpm”)
估计模型
发动机模型是一个阻尼二阶系统的输入和输出非线性占不同的响应时间在不同的油门位置。使用递归最小二乘的块来识别以下离散系统模型引擎:
自评估模型没有明确包括惯性我们预计值改变随着惯性的变化。我们使用的变化值来检测惯性变化。
发动机有很大的带宽16赫兹。设置采样频率估计量为2 * 160 hz或样品的时间秒。
递归最小二乘估计量块设置
的估计模型模型的解释变量并输入到递归最小二乘估计的块值。你可以实现所示的解释变量iddemo_engine /解释变量
块。
open_system (“iddemo_engine /解释变量”);
配置递归最小二乘估计量:
最初的估计:一个也没有。默认情况下,软件使用一个值为1。
参数的数量:3人回归量系数。
参数协方差矩阵:1、不确定性的量的初始猜测1。具体地说,对估计参数作为随机变量方差1。
样品时间:。
点击算法和块的选择设置评估选项:
估算方法:
遗忘因子
遗忘因子:1-2e-4。自估计预计值与惯性,改变设置的遗忘因子值小于1。选择= 1-2e-4对应于一个内存的时间常数或15秒。15秒记忆时间确保重要数据的开放和关闭油门位置用于估计随着位置改变每10秒。
选择输出估计误差复选框。你用这个块输出验证评估。
选择输出参数协方差矩阵复选框。你用这个块输出验证评估。
清除添加启用端口复选框。
外部复位:
没有一个
。
验证估计模型
的错误
的输出递归最小二乘估计量
块给领先一步误差估计模型。这个误差小于5%,表明领先一步预测估计模型是准确的。
open_system (' iddemo_engine /错误(%)')
参数协方差矩阵的对角的方差参数。的方差很小,相对于参数值显示良好的估计价值的信心。相比之下,相对于参数值差异很大表明这些值低的信心。
而小估计误差协方差给信心,正确地估计模型,有限,错误是一个领先一步预测。更严格的检查使用估计模型在仿真模型与实际模型和比较输出。的估计模型部分的仿真软件实现这个模型。金宝app
的Regressors1
块是相同的解释变量
块使用递归估计量。唯一的区别在于,y测量信号不是来自植物,但反馈的输出估计模型。解释变量的输出块乘以估计值给发动机转速的估计。
open_system (“iddemo_engine / trpm Est”)
估计模型输出与模型输出相当好。稳态值接近和瞬态行为略有不同但不显著。注意,100秒后,发动机惯性变化估计模型输出稍微不同于模型的输出。这意味着选择的解释不能捕获模型的行为惯性后改变。这也表明系统行为的变化。
估计模型结合低领先一步的输出误差和参数协方差递归估计给了我们信心。
检测发动机惯性的变化
设置发动机模型在模拟中引入惯性变化100秒。递归估计可以用来检测惯性的变化。
递归估计需要大约50秒收敛于一组初始的参数值。检测惯性改变我们检查模型系数的影响的估计模型。
open_system (“iddemo_engine /检测惯性变化”)
的协方差,0.05562,0.1246大相对于参数值显示低估计价值的信心。时间的情节显示了协方差大的原因。具体地说不同的油门位置变化表明估计模型不够丰富,完全捕捉不同在不同的油门位置和上升时间需要调整。然而,我们可以用这个来识别惯性变化的平均值变化随着惯性的变化。您可以使用一个阈值检测器的移动平均线参数检测发动机惯性的变化。
bdclose (“iddemo_engine”)