文档

递归

创建系统对象用于输出误差多项式模型的在线参数估计

递归使用实时数据的参数估计命令。如果一次可用估计所需的所有数据,并且您估计时间不变模型,请使用脱机估计命令,OE.

语法

obj = recursiveoe.
obj = recursiveOE(订单)
obj = recursiveOE(订单、B0 F0)
obj = recursiveoe(___、名称、值)

描述

obj= recursiveoe.创建一个系统对象™,用于在线估计默认单输入单输出(SISO)的参数输出误差模型结构默认模型结构具有1阶多项式和初始多项式系数值每股收益

创建对象后,使用命令使用递归估计算法和实时数据更新模型参数估计。

obj=递归(命令指定待估计输出误差模型的多项式阶数。

obj=递归(命令B0,F0指定多项式阶数和多项式系数的初始值。指定初始值以避免估计过程中的局部极小值。如果初始值比默认值小InitialParameterCovariance属性值,您对初始值有信心,还指定了较小的值InitialParameterCovariance

obj=递归(___名称,值使用一个或多个指定输出误差模型结构和递归估计算法的附加属性名称,值对参数。

对象描述

递归使用递归估计算法,为SISO输出误差多项式模型的在线参数估计创建一个System对象。

系统对象是一个专门的MATLAB®对象,专门用于实现和模拟具有随时间变化的输入的动态系统。系统对象使用内部状态来存储过去的行为,这将在下一个计算步骤中使用。

创建系统对象后,使用命令处理数据或从对象获取信息。系统对象至少使用两个命令处理数据-一个构造函数创建对象和命令,使用实时数据更新对象参数。这种声明与执行的分离允许您创建多个持久的、可重用的对象,每个对象都有不同的设置。

您可以使用以下命令对系统识别工具箱™中的在线评估系统对象进行评估:

命令 描述

使用递归估计算法和实时数据更新模型参数估计。

将对象置于锁定状态。在锁定状态下,您不能更改任何不可调优的属性或输入规范,如模型顺序、数据类型或估计算法。在执行期间,您只能更改可调属性。

释放

解锁系统对象。使用此命令启用无法设置的临界参数。

重置

将锁定的System对象的内部状态重置为初始值,并保持锁定状态。

克隆

使用相同的对象属性值创建另一个System对象。

不使用语法创建其他对象methoda = obj.对以这种方式创建的新对象的属性所做的任何更改(obj2)还可以更改原始对象的属性(obj).

锁住了

查询输入属性的锁定状态和系统对象的无因素属性。

使用递归命令创建一个在线估计系统对象。然后估计输出误差多项式模型参数(BF)并使用输入和输出数据的命令,uy

[B, F, EstimatedOutput] = (obj, y, u)步

递归对象属性,见性质

例子

全部收缩

使用递归估计算法创建用于输出误差多项式模型的在线参数估计的系统对象。

obj = recursiveOE;

输出误差模型有一个默认的结构,它的多项式是阶1和初始多项式系数值,每股收益

加载估计数据。在此示例中,使用静态数据集用于插图。

负载iddata1z1;输出=z1.y;输入=z1.u;

在线估计输出误差模型参数

i=1:numel(输入)[B,F,估计输出]=step(obj,输出(i),输入(i));结束

查看多项式的当前估计值F系数。

obj。F
ans =1×21.0000 - -0.7618

查看当前参数的协方差估计。

对象参数协方差
ans =2×20.0024 0.0002 0.0002 0.0001

查看当前估计输出。

估计输出
ExplatedOutput = -4.1866.

指定输出误差多项式模型阶数和延迟。

nb=1;nf=2;nk=1;

创建一个系统对象,在线估计输出误差多项式模型与指定的订单和延迟。

obj=递归的OE([nb nf nk]);

指定输出误差多项式模型阶数和延迟。

nb=1;nf=2;nk=1;

创建具有已知初始多项式系数的输出错误模型的在线估计系统对象。

B0=[01];F0=[10.70.8];obj=recursiveOE([nb nf nk],B0,F0);

指定初始参数协方差。

obj.InitialParameterCovariance=0.1;

InitialParameterCovariance表示您对初始参数猜测的不确定性。通常情况下,默认的InitialParameterCovariance(10000)相对于参数值过大。这导致最初的猜测在估计过程中变得不那么重要。如果您对初始参数猜测有信心,请指定较小的初始参数协方差。

创建一个系统对象,该对象使用Unormalized梯度算法进行输出错误模型的在线参数估计。

obj = recursiveOE([1 2 1],“EstimationMethod”“梯度”);

输入参数

全部收缩

模型订单和延迟输出误差多项式模型,指定为1×3向量的整数矢量,(nb nf nk)

  • NB.-多项式的阶B)+ 1,指定为正整数。

  • NF.-多项式的阶F),指定为非负整数。

  • NK.-输入输出延迟,指定为正整数。NK.是在输入影响输出之前发生的输入样本的数量。NK.表示为固定领先的零B多项式。

多项式系数的初始值,指定为具有元素的实际值的行向量,以升序的升序-1

  • B0-多项式系数的初始猜想B),指定为1-by-(nb+nk)向量NK.领先的零。

  • F0-多项式系数的初始猜想F),指定为1-by-(nf + 1)以1为第一个元素的向量。

    中的系数F0必须在单元盘中定义具有根的稳定的离散时间多项式。例如,

    F0=[10.50.5];全部(abs(根(F0))<1)
    ans=1

指定为[],使用默认值每股收益对于多项式系数。

请注意

如果初始猜测远小于默认值InitialParameterCovariance,10000,初始猜测在估计期间略显重要。在这种情况下,指定较小的初始参数协方差。

名称值对参数

指定可选的逗号分隔的对名称,值参数。名称参数名和价值是相应的价值。名称必须出现在单引号内(' ')。您可以按以下任意顺序指定多个名称和值对参数:Name1, Value1,…,的家

名称,值参数指定可写特性递归对象创建期间的系统对象。例如,obj = recursiveOE([1 2 1],'EstimationMethod','Gradient')创建一个System对象来估计输出误差多项式模型“梯度”递归估计算法。

性质

递归系统对象属性包括只读属性和可写属性。可写属性分为可调属性和不可调属性。对象被锁定时,即在使用命令。

名称,值用于指定的可写属性的参数递归对象创建过程中的对象。对象创建后,使用点表示法修改可调属性。

obj = recursiveOE;obj。为gettingFactor = 0.99;

B

多项式估计系数B),返回实值向量,该实值按的升序幂指定-1

B是只读属性,创建对象后初始为空。使用命令,进行在线参数估计。

F

多项式估计系数F),返回实值向量,该实值按的升序幂指定-1

F是只读属性,创建对象后初始为空。使用命令,进行在线参数估计。

首字母B

多项式系数的初值B)正常的nb-1,指定为长度的行向量nb+nk, 和NK.领先的零。NK.为输入输出延迟。指定系数的升序幂-1

如果初始猜测远小于默认值InitialParameterCovariance,10000,初始猜测在估计期间略显重要。在这种情况下,指定较小的初始参数协方差。

首字母B是可调属性。当对象处于锁定状态时,可以更改它。

默认值:[0 eps]

首字母F

多项式系数的初值F)正常的NF.,指定为长度的行向量nf + 1,以1作为第一个元素。按-1

中的系数首字母F必须在单位圆圈内定义一个稳定的离散时间多项式。例如,

initialf = [1 0.9 0.8];全部(ABS(根(initialf))<1)
ans=1

如果初始猜测远小于默认值InitialParameterCovariance,10000,初始猜测在估计期间略显重要。在这种情况下,指定较小的初始参数协方差。

首字母F是可调属性。当对象处于锁定状态时,可以更改它。

默认值:[1 eps]

ParameterCovariance

估计协方差P参数的,作为N——- - - - - -N对称正定矩阵。N是要估计的参数数。软件计算P假设残差(估计输出与测量输出之间的差)为白噪声,这些残差的方差为1。ParameterCovariance仅在以下情况下适用:EstimationMethod'忘记就活跃'或者“卡尔曼过滤器”

的解释P取决于估算方法:

  • '忘记就活跃'- - - - - -R2/ 2.P近似等于估计参数的协方差矩阵,在哪里R2是残差的真实方差。

  • “卡尔曼过滤器”- - - - - -R2P是估计参数的协方差矩阵,和R1/R2为参数变化的协方差矩阵。在那里,R1是你指定的协方差矩阵吗过程噪声方差

ParameterCovariance是只读属性,创建对象后初始为空。使用命令,进行在线参数估计。

InitialParameterCovariance

初始参数估计的协方差,其中之一:

  • 真正积极的标量,α-协方差矩阵是一个N——- - - - - -N对角矩阵α作为对角线元素。N是要估计的参数的数量。

  • 实正标量向量[α1,...,αN]-协方差矩阵是一个N——- - - - - -N对角线矩阵,[α1,...,αN]作为对角线元素。

  • N——- - - - - -N对称正定矩阵。

InitialParameterCovariance表示初始参数估计中的不确定性。对于InitialParameterCovariance,在开始使用估计时,初始参数值的重要性较小,而更重要的是测量数据

只使用当EstimationMethod'忘记就活跃'或者“卡尔曼过滤器”

InitialParameterCovariance是可调属性。当对象处于锁定状态时,可以更改它。

默认值:10000

EstimationMethod

用于在线估计模型参数的递归估计算法,指定为以下值之一:

  • '忘记就活跃'-用于参数估计的算法

  • “卡尔曼过滤器”-用于参数估计的算法

  • “NormalizedGradient”-用于参数估计的算法

  • “梯度”- 用于参数估计的非正规化梯度算法

遗忘因子和卡尔曼滤波器算法比梯度和非正式化梯度方法更加计算密集。但是,它们具有更好的收敛性。有关这些算法的信息,请参阅在线参数估计的递归算法

EstimationMethod是一个不可调优的属性。您无法在执行期间更改它,即使用该对象锁定后命令。如果您想使用MATLAB编码器™EstimationMethod只能分配一次。

默认值:'忘记就活跃'

遗忘因子

遗忘因子,λ,与参数估计相关,指定为(0,1]范围内的标量。

假设系统在一段时间内保持近似恒定T0样本。你可以选择λ这样:

T 0 1 1 - λ

  • 设置λ= 1对应于“否忘记”和估计恒定系数。

  • 设置λ<1这意味着过去的测量对参数估计不太重要,可能会被“遗忘”。设置λ<1估计时变系数。

典型的选择λ都在范围内(0.98 - 0.995)

只使用当EstimationMethod'忘记就活跃'

遗忘因子是可调属性。当对象处于锁定状态时,可以更改它。

默认值:1

EnableAdapation.

启用或禁用参数估计,指定为以下之一:

  • 真的或者1-命令估计该时间步长的参数值并更新参数值。

  • 或者0-命令不会更新该时间步骤的参数,而是输出最后一个估计值。当系统进入参数值不会随时间而异的模式时,可以使用此选项。

    请注意

    如果你设置了EnableAdapation.,您仍然必须执行命令。不要跳过保持参数值不变,因为参数估计取决于当前和过去的I/O测量。确保存储过去的I/O数据,即使它不更新参数。

EnableAdapation.是可调属性。当对象处于锁定状态时,可以更改它。

默认值:真的

数据类型

浮点的参数精度,指定为以下值之一:

  • “双”-双精度浮点

  • “单身”—单精度浮点数

设置数据类型“单身”节省内存,但导致精度的损失。指定数据类型基于将在其中部署生成代码的目标处理器所需的精度。

数据类型是一个不可调优的属性。只能在使用对象构造时设置名称,值参数,以后不能更改。

默认值:“双”

过程噪声方差

参数变体的协方差矩阵,指定为以下之一:

  • 真正的负的标量,α-协方差矩阵是一个N——- - - - - -N对角矩阵α作为对角线元素。

  • 真正的非负标量向量,[α1,...,αN]-协方差矩阵是一个N——- - - - - -N对角线矩阵,[α1,...,αN]作为对角线元素。

  • N——- - - - - -N对称的正半纤维矩阵。

N是要估计的参数的数量。

过程噪声方差适用时,EstimationMethod“卡尔曼过滤器”

卡尔曼滤波算法将参数视为动态系统的状态,并利用卡尔曼滤波对这些参数进行估计。过程噪声方差是作用于这些参数的过程噪声的协方差。噪声协方差矩阵中的零值对应于估计常系数。大于0的值对应于时变参数。对快速变化的参数使用较大的值。但是,较大的值会导致噪声较大的参数估计。

过程噪声方差是可调属性。当对象处于锁定状态时,可以更改它。

默认值:0.1

适应所

适应增益,γ,用于梯度递归估计算法,指定为正标量。

适应所适用时,EstimationMethod“梯度”或者“NormalizedGradient”

指定大量值适应所当您的测量具有高信噪比时。

适应所是可调属性。当对象处于锁定状态时,可以更改它。

默认值:1

NormalizationBias

适应增益缩放的偏差“NormalizedGradient”方法,指定为非负标量。

NormalizationBias适用时,EstimationMethod“NormalizedGradient”

归一化梯度算法将每一步的自适应增益除以梯度向量的两个范数的平方。如果梯度接近零,则可能导致估计参数跳变。NormalizationBias分母中引入的术语是为了防止这些跳跃。增加NormalizationBias如果您观察到估计参数跳跃。

NormalizationBias是可调属性。当对象处于锁定状态时,可以更改它。

默认值:每股收益

输出参数

全部收缩

SISO输出误差多项式模型的在线参数估计系统对象,作为一个递归系统对象。此对象是使用指定的模型订单和属性创建的。用命令来估计Output-Error模型多项式的系数。然后您可以使用点符号访问估计的系数和参数协方差。例如,类型obj。B查看估计B多项式系数。

更多关于

全部收缩

输出误差模型结构

常规输出错误模型结构是:

y t B F u t - n k + e t

输出误差模型的顺序为:

n b B b 1 + b 2 - 1 + ... + b n b - n b + 1 n f F 1 + f 1 - 1 + ... + f n f - n f

提示

  • 从R2016b开始,不再使用命令要更新模型参数估计,可以使用输入参数调用系统对象,就像它是一个函数一样。例如,[B, F, EstimatedOutput] = (obj, y, u)步[B,F,估计输出]=obj(y,u)执行等效操作。

扩展能力

在R2015B中介绍

这个主题有用吗?