recursiveOE
创建系统对象用于输出误差多项式模型的在线参数估计
语法
obj = recursiveOE
obj = recursiveOE(Orders)
obj = recursiveOE(Orders,B0,F0)
obj =递归oe (___、名称、值)
描述
使用recursiveOE
命令用于实时数据的参数估计。如果估计所需的所有数据都一次性可用,并且您正在估计一个时不变模型,则使用离线估计命令,oe
.
创建一个系统对象™,用于默认单输入单输出(SISO)的在线参数估计输出-误差模型结构.默认模型结构具有1阶多项式和初始多项式系数值obj
= recursiveOE每股收益
.
创建对象后,使用一步
命令使用递归估计算法和实时数据更新模型参数估计。
指定要估计的输出误差模型的多项式阶数。obj
= recursiveOE (订单
)
指定多项式系数的多项式阶数和初始值。指定初始值以避免估计过程中的局部极小值。如果初始值比默认值小obj
= recursiveOE (订单
,B0, F0
)InitialParameterCovariance
属性值,你有信心你的初始值,也指定较小InitialParameterCovariance
.
使用一个或多个输出错误模型结构和递归估计算法指定附加属性obj
= recursiveOE (___,名称,值
)名称,值
对参数。
对象描述
recursiveOE
创建一个System对象,用于使用递归估计算法对SISO输出误差多项式模型进行在线参数估计。
System对象是一个专门的MATLAB®对象,专门为实现和模拟输入随时间变化的动态系统而设计。系统对象使用内部状态来存储过去的行为,这将在下一个计算步骤中使用。
创建System对象后,可以使用命令处理数据或从该对象获取信息或关于该对象的信息。系统对象至少使用两个命令来处理数据—构造函数用于创建对象和一步
命令使用实时数据更新对象参数。声明与执行的分离允许您创建多个持久的可重用对象,每个对象具有不同的设置。
您可以对系统识别工具箱™中的在线估计系统对象使用以下命令:
命令 | 描述 |
---|---|
一步 |
使用递归估计算法和实时数据更新模型参数估计。
|
释放 |
解锁System对象。使用此命令开启不可调参数的设置。 |
重置 |
将锁定的System对象的内部状态重置为初始值,并保持锁定状态。 |
克隆 |
创建另一个具有相同对象属性值的System对象。 不使用语法创建额外的对象 |
isLocked |
查询System对象的输入属性和不可调属性的锁定状态。 |
使用recursiveOE
命令,创建在线评估系统对象。然后估计输出误差多项式模型参数(B
而且F
),并使用一步
命令的输入和输出数据,u
而且y
.
[B,F,EstimatedOutput] = step(obj,y,u)
为recursiveOE
对象属性,请参见属性.
例子
输入参数
属性
recursiveOE
系统对象属性由只读和可写属性组成。可写属性分为可调属性和不可调属性。方法锁定对象后,不可调属性不能更改一步
命令。
使用名称,值
的可写属性recursiveOE
对象创建过程中的对象。创建对象后,使用点表示法修改可调属性。
obj = recursiveOE;obj。为gettingFactor = 0.99;
|
多项式估计系数B(问),以实值的向量形式返回,这些实值按的升序排列问-1.
|
|
多项式估计系数F(问),以实值的向量形式返回,这些实值按的升序排列问-1.
|
|
多项式系数的初值B(问)秩序 如果初始猜测值远小于默认值
默认值: |
|
多项式系数的初值F(问)秩序 里面的系数 InitialF = [1 0.9 0.8];所有(abs(根(InitialF)) < 1) Ans = 1 如果初始猜测值远小于默认值
默认值: |
|
测量输出的初始值缓冲在有限历史估计中,指定为 的 当 如果初始缓冲区设置为 指定
默认值: |
|
有限历史窗口中输入的初始值,指定为 的 当 如果初始缓冲区设置为 指定
默认值: |
|
估计的协方差
的解释
|
|
初始参数估计的协方差,指定为下列之一:
仅在以下情况下使用
默认值: |
|
递归估计算法用于模型参数的在线估计,指定为以下值之一:
遗忘因子和卡尔曼滤波算法比梯度法和非归一化梯度法计算量更大。然而,它们具有更好的收敛性。有关这些算法的信息,请参见在线参数估计的递归算法. 这些方法都使用无限的数据历史,并且仅在以下情况下可用
默认值: |
|
遗忘因子,λ,与参数估计相关,指定为范围(0,1]中的标量。 假设系统大致保持不变T0样本。你可以选择λ这样:
典型的选择λ都在这个范围内 仅在以下情况下使用
默认值: |
|
启用或禁用参数估计,指定为以下之一:
默认值: |
|
参数的浮点精度,指定为以下值之一:
设置
默认值: |
|
参数变化的协方差矩阵,指定为下列之一:
N是要估计的参数的数目。
卡尔曼滤波算法将参数视为动态系统的状态,利用卡尔曼滤波对这些参数进行估计。
默认值: |
|
适应增益,γ,用于梯度递归估计算法,指定为正标量。
为指定一个大值
默认值: |
|
偏差在自适应增益缩放中使用
归一化梯度算法将每一步的自适应增益除以梯度向量的双范数的平方。如果梯度接近于零,这可能会导致估计参数的跳跃。
默认值: |
|
定义使用哪种递归算法的数据历史类型,指定为:
具有无限历史记录的算法旨在产生参数估计,以解释自模拟开始以来的所有数据。这些算法仍然使用固定数量的内存,不会随着时间的推移而增长。对象的多种算法 具有有限历史的算法旨在产生只能解释有限数量的过去数据样本的参数估计。这个方法也被称为滑动窗口估计。对象提供了一种算法 有关递归估计方法的更多信息,请参见在线参数估计的递归算法.
默认值: |
|
窗口大小决定用于滑动窗口估计方法的时间样本数量,指定为正整数。指定 选择一个能够平衡估计性能与计算和内存负担的窗口大小。规模因素包括模型中参数的数量和时间方差。总是指定窗口长度在示例中,即使使用基于帧的输入处理。
合适的窗口长度与您使用的是基于样本的输入处理还是基于帧的输入处理无关
默认值: |
|
选项,用于基于样本或基于帧的输入处理,指定为字符向量或字符串。
你的 [theta,EstimatedOutput] = step(obj,y,u)
默认值: |
输出参数
更多关于
提示
从R2016b开始,而不是使用
一步
命令来更新模型参数估计值,您可以调用带有输入参数的System对象,就像调用函数一样。例如,[B,F,EstimatedOutput] = step(obj,y,u)
而且[B,F,EstimatedOutput] = obj(y,u)
请执行相同的操作。
扩展功能
版本历史
在R2015b中引入