主要内容

recursiveARX

创建系统对象ARX模型的在线参数估计

语法

obj = recursiveARX
obj = recursiveARX(订单)
obj = recursiveARX(订单、A0 B0)
obj = recursiveARX (___、名称、值)

描述

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

obj= recursiveARX创建一个系统对象™的在线参数估计违约ARX模型结构。订单1的默认模型结构具有多项式和初始多项式系数值每股收益

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

obj= recursiveARX (订单)指定了多项式订单ARX模型的估计。

obj= recursiveARX (订单,A0,)指定了多项式订单和初始值的多项式系数。

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

对象描述

recursiveARX创建一个系统对象的在线参数估计对于单输入(输出)或对于多变量(味噌)ARX模型使用递归估计算法。

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

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

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

命令 描述
一步

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

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

释放

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

重置

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

克隆

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

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

isLocked

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

使用recursiveARX命令来创建一个在线估计系统对象。然后估计ARX模型参数(一个B)和输出使用一步命令的输入和输出数据,uy

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

recursiveARX对象属性,看属性

例子

全部折叠

创建一个系统对象的在线参数估计的输出ARX模型。

obj = recursiveARX;

多项式的ARX模型有一个默认的结构顺序1和初始多项式系数值,每股收益

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

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

估计ARX模型参数在线使用一步

i = 1:元素个数(输入)[A, B, EstimatedOutput] =步骤(obj,输出(i),输入(我));结束

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

obj.B
ans =1×20 0.7974

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

obj.ParameterCovariance
ans =2×20.0002 0.0001 0.0001 0.0034

查看当前估计输出。

EstimatedOutput
EstimatedOutput = -4.7766

指定ARX模型订单和延迟。

na = 1;nb = 2;nk = 1;

创建一个系统对象的在线估计输出ARX模型与已知初始多项式系数。

A0 = 0.5 [1];B0 = [0 1 1];obj = recursiveARX (na nb nk, A0, B0);

指定初始参数协方差。

obj。InitialParameterCovariance = 0.1;

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

指定订单和延迟ARX模型与两个输入和一个输出。

na = 1;nb = 1 [2];nk = [1 3];

nk被指定为行向量的长度等于输入的数量,ν

指定初始多项式系数。

A0 = 0.5 [1];B0 = [0 1 1 0;0 0 0 0.8);

B0ν行和马克斯(nb + nk)列。的th行对应于th输入和被指定为nk(我)0,紧随其后的是nb(我)初始值。值后nb(我)+ nk(我)将被忽略。

创建一个系统对象在线ARX模型与已知的初始估计多项式系数。

obj = recursiveARX (na nb nk, A0, B0);

创建一个系统对象,使用归一化梯度算法在线ARX模型的参数估计。

obj = recursiveARX ((1 2)“EstimationMethod”,“NormalizedGradient”);

输入参数

全部折叠

订单和延迟的模型ARX模型指定为一个整数1×3向量或向量,(na nb nk)

  • na——多项式的顺序一个(),指定为一个非负整数。

  • ——多项式的顺序B()+ 1,指定为1×-ν向量的正整数。ν输入的数量。

    味噌模型,有很多B()多项式作为输入的数量。nb(我)的顺序是th多项式B()+ 1输入。

  • nk——指定为1×-输入-输出延迟ν向量的非负整数。ν输入的数量。

    味噌模型,有很多B()多项式作为输入的数量。nk(我)相对应的输入输出延迟时间吗输入。

初始值的系数一个(),B()多项式,指定为行向量和矩阵或实际值,分别。为了提升力量的指定元素1

  • A0——初始值的多项式的系数一个(),指定为1 - (na + 1)与1行向量的第一个元素。

  • B0——初始值的多项式的系数B(),指定为ν——- - - - - -马克斯(nb + nk)矩阵。ν输入的数量。

    味噌模型,有很多B()多项式作为输入的数量。的th排B0对应于输入和必须包含nk(我)前导零,紧随其后nb(我)初始参数值。条目之外nk(我)+ nb(我)将被忽略。

na,,nk订单的模型。

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

如果初始参数值远小于InitialParameterCovariance,这些初始值给出了评估期间没有那么重要。指定一个较小的初始参数协方差,如果你有很高的信心在初始参数值。这句话只适用于无穷历史估计。Finite-history估计不使用InitialParameterCovariance

名称-值对的观点

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

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

属性

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

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

obj = recursiveARX;obj。为gettingFactor = 0.99;

一个

估计系数多项式一个(),返回一个行向量的值中指定的顺序升序的权力1

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

B

估计系数多项式B(),作为一个返回ν——- - - - - -马克斯(nb + nk)矩阵的值。ν输入的数量。

th排B对应于th输入和包含nk(我)前导零,紧随其后nb(我)估计参数,指定的顺序升序的权力1。忽略零条目之外nk(我)+ nb(我)

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

InitialA

初始值的多项式的系数一个()的顺序na,指定为行向量的长度na + 1以1为第一个元素。指定系数提升力量的1

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

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

默认值:[1 eps]

InitialB

初始值的多项式的系数B(),指定为一个ν——- - - - - -马克斯(nb + nk)矩阵。ν输入的数量。

味噌模型,有很多B()多项式作为输入的数量。的th排B0对应于输入和必须包含nk(我)0,紧随其后的是nb(我)初始参数值。条目之外nk(我)+ nb(我)将被忽略。

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

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

默认值:[0 eps]

InitialOutputs

初始值的测量输出缓冲区finite-history估计,指定为0或作为一个(W+na)1的向量,W窗口长度和吗na多项式的顺序吗一个(),指定当构建对象。

InitialOutputs属性提供了一种控制算法的初始行为。

InitialOutputs被设置为0,对象用0填充缓冲区。

如果最初的缓冲区设置为0或不包含足够的信息,你看到一个警告消息在你估计的初始阶段。警告应明确几个周期。周期的数量需要足够的信息缓冲取决于多项式和输入延迟的顺序。如果警告一直持续,你应该评估你的信号内容。

指定InitialOutputs只有当历史有限的

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

默认值:0

InitialInputs

初始值的输入在有限的历史窗口中,指定为0或作为一个(W1 + max ()+马克斯(nk))———ν矩阵,W窗口长度和吗ν输入的数量。的向量B()多项式订单和nk向量的输入延迟指定构建recursiveARX对象。

InitialInputs属性提供了一种控制算法的初始行为。

InitialInputs被设置为0,对象用0填充缓冲区。

如果最初的缓冲区设置为0或不包含足够的信息,你看到一个警告消息在你估计的初始阶段。警告应明确几个周期。周期的数量需要足够的信息缓冲取决于多项式和输入延迟的顺序。如果警告一直持续,你应该评估你的信号内容。

指定InitialInputs只有当历史有限的

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

默认值:0

ParameterCovariance

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

ParameterCovariance只有当适用EstimationMethod“ForgettingFactor”“KalmanFilter”或者当历史有限的

的解释P取决于你的设置历史EstimationMethod属性。

  • 如果历史无限,那么你的EstimationMethod选择结果是下列之一:

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

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

  • 如果历史有限的(滑动窗口估计)R2P的协方差估计的参数。滑动窗口算法不使用的协方差参数估计过程。然而,该算法并计算输出的协方差,这样您就可以用它来统计评估。

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财产。你不能改变它在执行期间,在对象被锁使用一步命令。

默认值:遗忘因子

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是一个可调的特性。你可以改变它的对象是处于锁定状态。

默认值:每股收益

历史

历史数据类型定义您使用哪种类型的递归算法,指定为:

  • “无限”-使用一个算法,旨在观察和预测输出之间的误差最小化的步骤从一开始的模拟。

  • “有限”-使用一个算法,旨在观察和预测输出之间的误差最小化有限数量的过去一段时间的步骤。

算法与无限的历史目标参数估计解释开始以来的所有数据仿真。这些算法仍在使用一个固定数量的内存,不随着时间的推移而增长。对象提供的多个算法“无限”历史类型。指定这个选项激活EstimationMethod属性指定一个算法。

算法与有限的历史目标参数估计,解释过去只有有限数量的数据样本。这种方法也被称为滑动窗口估计。的对象提供了一个算法“有限”类型。指定这个选项激活WindowLength大小的属性窗口。

关于递归估计方法的更多信息,请参阅在线参数估计的递归算法

历史是一个nontunable财产。它只可以设置对象构造期间使用名称,值参数,之后不能更改。

默认值:“无限”

WindowLength

窗口大小确定样本数量的时间使用滑动窗口的估算方法,指定为一个正整数。指定WindowLength只有当历史有限的

选择平衡的窗口大小估计性能计算和内存负担。分级因素包括数量和时间在您的模型中参数的方差。总是指定窗口长度在样品,即使您使用的是框架的输入处理。

WindowLength必须大于或等于参数估计的数量。

合适的窗口长度是否使用纸浆包或独立的框架(见输入处理InputProcessing)。然而,当使用框架处理,你的窗口长度必须大于或等于样本的数量(时间步骤)中包含的框架。

WindowLength是一个nontunable财产。它只可以设置对象构造期间使用名称,值参数,之后不能更改。

默认值:200年

InputProcessing

选择或输入不定位处理纸浆包,指定为一个字符或字符串向量。

  • 纸浆包处理操作信号流一次一个样本。

  • 框架处理操作信号包含多个样本的时间步骤。许多机器传感器接口包多个样本和传输这些样本在帧。框架处理允许您直接输入数据,而不必首先解压缩它。

你的InputProcessing规范影响的维度在使用输入和输出信号一步命令:

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

  • 纸浆包

    • yEstimatedOutput是标量。

    • u是1 -ν向量,ν输入的数量。

    • 框架样品每帧

      • yEstimatedOutput1的向量。

      • u是一个——- - - - - -ν矩阵。

InputProcessing是一个nontunable财产。它只可以设置对象构造期间使用名称,值参数,之后不能更改。

默认值:“纸浆包”

输出参数

全部折叠

系统对象的在线参数估计ARX模型,作为一个返回recursiveARX系统对象。创建这个对象使用指定的命令和属性模型。使用一步命令来估计ARX模型多项式的系数。然后您可以使用点符号访问协方差估计的系数和参数。例如,类型obj.A查看估计一个多项式系数。

更多关于

全部折叠

ARX模型结构

ARX模型结构是:

y ( t ) + 一个 1 y ( t 1 ) + + 一个 n 一个 y ( t n 一个 ) = b 1 u ( t n k ) + + b n b u ( t n b n k + 1 ) + e ( t )

的参数na的订单ARX模型,nk是延迟。

  • y ( t ) ——输出时间 t

  • n 一个 ——极数。

  • n b - 0 + 1。

  • n k ——发生在输入之前的输入样本数量影响输出,也叫了死时间在系统中。

  • y ( t 1 ) y ( t n 一个 ) ——以前的输出电流输出所依赖。

  • u ( t n k ) u ( t n k n b + 1 ) ——以前和延迟输入输出的电流所依赖。

  • e ( t ) ——白噪音干扰值。

更紧凑的方式写的差分方程

一个 ( ) y ( t ) = B ( ) u ( t n k ) + e ( t )

是延迟算子。具体地说,

一个 ( ) = 1 + 一个 1 1 + + 一个 n 一个 n 一个

B ( ) = b 1 + b 2 1 + + b n b n b + 1

提示

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

扩展功能

介绍了R2015b