文档

recursiveLS

创建系统对象在线参数估计使用递归最小二乘算法

使用recursiveLS命令参数估计的实时数据。如果所有必要数据估计是可用的,你估计一个定常模型,使用mldivide, \

语法

obj = recursiveLS
obj = recursiveLS (Np)
theta0 obj = recursiveLS (Np)
obj = recursiveLS (___、名称、值)

描述

obj= recursiveLS创建一个系统对象™在线参数估计的一个默认的单输出系统线性估计参数。这样一个系统可以表示为:

y(t)=H(t)θ(t)+e(t)

在这里,y是输出,θ的参数,H是解释变量,e是白噪音干扰。系统默认有一个参数初始参数值1

在创建对象时,使用一步命令来更新模型参数估计使用递归最小二乘算法和实时数据。

obj= recursiveLS (Np)还指定了参数估计的数量。

obj= recursiveLS (Np,theta0)还指定了参数和初始值的参数的数量。

obj= recursiveLS (___,名称,值)指定附加的属性使用一个或多个系统和递归估计算法名称,值对参数。

对象描述

recursiveLS创建一个系统对象的在线参数估计的单一输出系统是线性的参数。

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

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

您可以使用以下命令的在线估计系统在系统辨识工具箱™对象:

命令 描述
一步

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

一步将对象放入一个锁定的状态。在一个锁定的状态,你不能改变任何nontunable属性或输入规范,如模型,数据类型,或估计算法。在执行期间,你只能改变可调特性。

释放

解锁系统对象。使用此命令来启用nontunable模型参数的设定。

重置

锁定系统对象的内部状态重置为初始值,并且把对象锁。

克隆

创建另一个系统对象相同的对象属性值。

不使用语法创建额外的对象methoda = obj。任何更改,这样新创建的对象的属性(methoda)也改变原始对象的属性(obj)。

isLocked

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

使用recursiveLS命令来创建一个在线估计系统对象。然后估计系统参数(θ)和输出使用一步命令解释变量和输入输出数据,Hy

[θ,EstimatedOutput] = (obj, y, H)步

recursiveLS对象属性,看属性

例子

全部折叠

obj = recursiveLS
obj = recursiveLS属性:NumberOfParameters: 1参数:[]InitialParameters: 1 ParameterCovariance: [] InitialParameterCovariance: 10000 EstimationMethod:“ForgettingFactor”ForgettingFactor: 1 EnableAdaptation:真正的数据类型:“双”

系统有两个参数,表示为:

在这里,

  • 分别实时输入和输出数据。

  • 解释变量,H的系统。

  • 的参数,θ的系统。

创建一个系统对象使用递归最小二乘算法在线估计。

obj = recursiveLS (2);

负荷估算数据。在这个例子中,我们使用的是静态数据集的例子。

负载iddata3输入= z3.u;输出= z3.y;

创建一个变量来存储u (t - 1)。此变量在每个时间步长更新。

oldInput = 0;

估计的参数和输出使用一步和输入-输出数据。

i = 1:元素个数(输入)H =[输入(i) oldInput];[θ,EstimatedOutput] =步骤(obj,输出(i), H);estimatedOut (i) = EstimatedOutput;oldInput =输入(i);结束

情节测量和估计的输出数据。

numSample = 1:元素个数(输入);情节(numSample、输出“b”numSample estimatedOut,“r——”);传奇(测量输出的,“估计输出”);

创建系统对象的在线参数估计使用递归最小二乘算法的系统有两个已知参数和初始参数值。

obj = recursiveLS (2 (0.8 - 1)“InitialParameterCovariance”,0.1);

InitialParameterCovariance代表了你猜对初始参数的不确定性。通常情况下,默认的InitialParameterCovariance(10000)太大相对于参数值。这导致在估计初始猜测的重要性减少。如果你有信心在初始参数的猜测,指定一个较小的初始参数协方差。

输入参数

全部折叠

系统中参数的数量,指定为一个正整数。所有参数的初始值1

初始值的参数,指定为以下之一:

  • 标量——所有的参数初始值相同。

  • 向量的长度值Np- - -参数初始值theta0(我)

请注意

如果最初的猜测比默认小得多InitialParameterCovariance,10000年,最初的猜测在估计没有那么重要。在这种情况下,指定一个较小的初始参数协方差。

名称-值对的观点

指定可选的逗号分隔条名称,值参数。的名字参数名称和吗价值相应的价值。的名字必须出现在单引号(' ')。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家

使用名称,值参数指定可写的属性recursiveLS系统对象在对象创建。例如,obj = recursiveLS (2“EstimationMethod”“梯度”)创建一个系统对象来估计系统参数使用“梯度”递归估计算法。

属性

recursiveLS系统对象属性由只读和可写属性。可写属性是可调,nontunable属性。nontunable属性无法改变时,对象是锁着的,也就是说,当你使用一步命令。

使用名称,值参数指定的可写属性recursiveLS在对象创建对象。对象创建后,使用点符号修改可调特性。

obj = recursiveLS;obj。为gettingFactor = 0.99;

NumberOfParameters

参数的数量是估计的,作为一个正整数返回。

NumberOfParameters是一个只读属性。如果Np指定对象建设期间,NumberOfParameters价值分配Np

默认值:1

参数

估计参数,作为一个列向量的值返回。

参数是一个只读属性,最初是空的之后创建对象。您使用后填充它一步命令的在线参数估计。

InitialParameters

初始值的参数,指定为以下之一:

  • 标量——所有的参数初始值相同。

  • 向量的长度值Np- - -参数初始值InitialParameters(我)

如果最初的猜测比默认小得多InitialParameterCovariance,10000年,最初的猜测在估计没有那么重要。在这种情况下,指定一个较小的初始参数协方差。

InitialParameters是一个可调的特性。你可以改变InitialParameters当对象处于锁定状态。

默认值:1

ParameterCovariance

估计的协方差P的参数,作为一个返回N——- - - - - -N对称正定矩阵。N参数的数量是估计的。软件计算P假设残差(估计和测量输出)的区别是白噪声,而这些残差的方差是1。ParameterCovariance只有当适用EstimationMethod“ForgettingFactor”“KalmanFilter”

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

  • “ForgettingFactor”- - - - - -R2/ 2*P约等于的协方差矩阵估计参数,在哪里R2是真正的残差的方差。

  • “KalmanFilter”- - - - - -R2*P的协方差矩阵估计参数,然后呢R1/R2的协方差矩阵参数的变化。在那里,R1您所指定的协方差矩阵,在吗ProcessNoiseCovariance

ParameterCovariance是一个只读属性,最初是空的之后创建对象。您使用后填充它一步命令的在线参数估计。

InitialParameterCovariance

初始参数的协方差估计,指定为以下之一:

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

  • 真正积极的标量,矢量(α1、……αN)——协方差矩阵是一个N——- - - - - -N对角矩阵,(α1、……αN对角元素)。

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

InitialParameterCovariance代表了初始参数估计的不确定性。对于大的值InitialParameterCovariance,更少的重要性放在初始参数值和测量数据在评估使用的开始一步

只使用当EstimationMethod“ForgettingFactor”“KalmanFilter”

InitialParameterCovariance是一个可调的特性。你可以改变它的对象是处于锁定状态。

默认值:10000年

EstimationMethod

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

  • “ForgettingFactor”——用于参数估计算法

  • “KalmanFilter”——用于参数估计算法

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

  • “梯度”——非规范梯度算法用于参数估计

遗忘因子和卡尔曼滤波算法计算量比梯度和非规范梯度方法。然而,他们有更好的收敛特性。这些算法的信息,请参阅在线参数估计的递归算法

EstimationMethod是一个nontunable财产。你不能改变它在执行期间,在对象是锁使用一步命令。如果你想使用部署代码MATLAB编码器™,EstimationMethod只能赋值一次。

ForgettingFactor

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

假设体系仍近似恒定T0样本。你可以选择λ这样:

T 0 = 1 1 λ

  • 设置λ= 1对应于“不忘”,估计常系数。

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

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

只使用当EstimationMethod“ForgettingFactor”

ForgettingFactor是一个可调的特性。你可以改变它的对象是处于锁定状态。

默认值:1

EnableAdapation

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

  • 真正的1- - -一步命令估计参数值在该时间步骤并更新参数值。

  • 0- - -一步命令不更新时间步的参数,而输出最后估计价值。您可以使用这个选项,当您的系统进入模式的参数值不随时间变化。

    请注意

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

EnableAdapation是一个可调的特性。你可以改变它的对象是处于锁定状态。

默认值:真正的

数据类型

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

  • “双”——双精度浮点

  • “单一”——单精度浮点

设置数据类型“单一”节省了内存,但是会导致精度的损失。指定数据类型根据精度要求的目标处理器,您将生成部署代码。

数据类型是一个nontunable财产。它只能在对象构造使用名称,值参数,之后不能更改。

默认值:“双”

ProcessNoiseCovariance

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

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

  • 真正的负的标量,矢量(α1、……αN)——协方差矩阵是一个N——- - - - - -N对角矩阵,(α1、……αN对角元素)。

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

N参数的数量是估计的。

ProcessNoiseCovariance适用时,EstimationMethod“KalmanFilter”

卡尔曼滤波算法对参数作为一个动态系统的状态和使用卡尔曼滤波器估计这些参数。ProcessNoiseCovariance是过程噪声协方差的作用在这些参数。零值的噪声协方差矩阵对应于估计常系数。大于0的值对应于时变参数。使用大型快速变化的参数的值。然而,更大的值导致参数估计吵着。

ProcessNoiseCovariance是一个可调的特性。你可以改变它的对象是处于锁定状态。

默认值:0.1

AdaptationGain

适应增益,γ递归估计,用于梯度算法,指定为一个积极的标量。

AdaptationGain适用时,EstimationMethod“梯度”“NormalizedGradient”

指定一个较大的值AdaptationGain当你的测量数据具有较高的信噪比。

AdaptationGain是一个可调的特性。你可以改变它的对象是处于锁定状态。

默认值:1

NormalizationBias

偏见在适应增益扩展中使用“NormalizedGradient”方法,指定为负的标量。

NormalizationBias适用时,EstimationMethod“NormalizedGradient”

归一化梯度算法把适应获得每一步的广场two-norm梯度向量。如果梯度接近于零,这可能会导致跳跃的估计参数。NormalizationBias这个术语介绍了分母,以防止这些跳跃。增加NormalizationBias如果你观察跳跃在估计参数。

NormalizationBias是一个可调的特性。你可以改变它的对象是处于锁定状态。

默认值:每股收益

输出参数

全部折叠

系统对象的在线参数估计,作为一个返回recursiveLS系统对象。使用一步系统的命令来估计参数。然后您可以使用点符号访问协方差估计的参数和参数。例如,类型obj.Parameters查看估计参数。

提示

  • 从R2016b开始,而不是使用一步命令来更新模型参数估计,你可以叫输入参数的系统对象,就好像它是一个函数。例如,[θ,EstimatedOutput] = (obj, y, H)步[θ,EstimatedOutput] = obj (y, H)执行相同操作。

扩展功能

介绍了R2015b

这个主题有帮助吗?