主要内容

oe

利用时域或频域数据估计输出误差多项式模型

描述

输出误差(OE)模型是多项式模型的一种特殊配置,只有两个活动多项式-B而且F.OE模型表示将测量输入与输出联系起来的传统传递函数,同时还包括白噪声作为可添加的输出扰动。您可以使用时间和频域数据估计OE模型。的特遣部队命令提供的功能与oe.为特遣部队,您可以使用极点和零的数量而不是多项式度来指定模型的顺序。对于连续时间估计,特遣部队提供更快更准确的结果,推荐使用。

OE模型

sys= oe (tt[nb nf nk]OE模型估计sys利用数据中所包含的时间表变量tt.软件使用第一种方法ν变量作为输入和下一个纽约变量作为输出,其中ν而且纽约由指定多项式阶的维数确定。

sys是由方程表示的

y t B F u t n k + e t

在这里,yt)为输出,ut)为输入,且et)是误差。

的订单[nb nf nk]定义估计多项式的每个分量的参数数。

从中选择特定的输入和输出通道tt,使用名称-值语法进行设置“InputName”而且“OutputName”对应的时间表变量名。

sys= oe (uy[nb nf nk]在逗号分隔的矩阵中使用时域输入和输出信号uy.软件假设数据采样时间为1秒。若要更改采样时间,请设置Ts使用名称-值语法。

例子

sys= oe (数据[nb nf nk]使用数据对象中的时域或频域数据数据

例子

sys= oe (___名称,值使用由一个或多个名-值对参数指定的附加选项指定模型结构属性。您可以将此语法用于前面的任何输入-参数组合。

初始参数配置

sys= oe (ttinit_sys使用线性系统init_sys的初始参数化sys使用时间表进行估计tt

sys= oe (uyinit_sys使用矩阵数据uy为估计

sys= oe (数据init_sys使用数据对象数据估计。

指定额外的评估选项

例子

sys= oe (___选择使用选项集估计多项式模型选择指定估计行为。

初始条件估计

例子

sys集成电路= oe(___返回估计的初始条件initialCondition对象。如果您计划使用相同的估计输入数据模拟或预测模型响应,然后将响应与相同的估计输出数据进行比较,请使用此语法。在模拟的第一部分中,结合初始条件产生了更好的匹配。

例子

全部折叠

使用两种方法从时域数据估计OE多项式来指定输入延迟。

加载估计数据。

负载iddata1z1

的顺序B而且F多项式而且nf.设置输入延迟nk一个样本。计算模型sys

Nb = 2;Nf = 2;Nk = 1;Sys = oe(z1,[nb nf nk]);

将模拟模型响应与实测输出进行比较。

比较(z1, sys)

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示验证数据(y1), sys: 70.77%。

结果表明,模拟模型与估计数据的拟合率大于70%。

而不是使用nk,也可以使用名称-值对参数“InputDelay”指定单样本延迟。

Nk = 0;Sys1 = oe(z1,[nb nf nk],“InputDelay”1);图比较(z1, sys1)

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示验证数据(y1), sys1: 70.77%。

结果是相同的。

的方法可以查看有关评估的更多信息idpoly财产sys。报告

sys。报告
ans =状态:'估计使用OE'方法:'OE' InitialCondition: '零'适合:[1x1 struct]参数:[1x1 struct] OptionsUsed: [1x1 idoptions。polyest] RandState: [1x1 struct] DataUsed: [1x1 struct] terminate: [1x1 struct]

例如,查找有关终止条件的更多信息。

sys.Report.Termination
ans =带字段的结构:WhyStop: '接近(局部)最小值,(范数(g) < tol)。'迭代:3 FirstOrderOptimality: 0.0708 FcnCount: 7 UpdateNorm: 1.4809e-05 lasttimprovement: 5.1744e-06

该报告包括关于迭代次数和评估停止迭代的原因的信息。

加载估计数据。

负载oe_data1数据

的idfrd对象数据包含以下模型的连续时间频率响应:

G 年代 年代 + 3. 年代 3. + 2 年代 2 + 年代 + 1

估计模型。

Nb = 2;Nf = 3;Sys = oe(data,[nb nf]);

评估拟合的优度。

比较(数据、系统);

图中包含2个轴对象。From: u1包含2个line类型的对象。这些对象表示Data, sys: 100%。坐标轴对象2包含2个line类型的对象。这些对象表示Data, sys: 100%。

通过模拟一个高阶系统,从收集到的数据估计一个高阶OE模型。通过试错确定正则化常数,并使用这些值进行模型估计。

加载数据。

负载regularizationExampleData.matm0simdata

估计一个30阶的不规则OE模型。

M1 = oe(m0simdata,[30 30 1]);

通过试验和错误确定Lambda值来获得正则化的OE模型。

opt = oeOptions;opt. regulalizing . lambda = 1;M2 = oe(m0simdata,[30 30 1],opt);

将模型输出与估计数据进行比较。

opt = compareOptions(“InitialCondition”“z”);比较(m0simdata, m1, m2,选择);

图中包含一个轴对象。axis对象包含3个line类型的对象。这些对象表示验证数据(y1), m1: 62.27%, m2: 65.74%。

正则化模型平方米产生比非正则模型更好的拟合m1

比较模型响应中的方差。

H = bodeploy (m1,m2);Opt = getoptions(h);opt.PhaseMatching =“上”;opt.ConfidenceRegionNumberSD = 3;opt.PhaseMatching =“上”;setoption (h,选择);showConfidence (h);

图中包含2个轴对象。从:u1到:y1的轴对象1包含2个line类型的对象。这些物体代表m1 m2。坐标轴对象2包含2个line类型的对象。这些物体代表m1 m2。

正则化模型平方米与非正则模型相比方差是否减小m1

加载估计数据数据和采样时间Ts

负载oe_data2.mat数据Ts

一个iddata对象数据包含以下模型的离散时间频率响应:

G 年代 1 0 0 0 年代 + 5 0 0

查看估计样本时间Ts你装了子弹。

Ts
Ts = 1.0000 -03

此值与属性匹配数据。Ts

数据。Ts
Ans = 1.0000 -03

你可以估计一个连续模型数据通过将输入和输出频段限制在奈奎斯特频率。为此,指定估计预筛选器选项“WeightingFilter来定义一个通带00.5 *π/ Tsrad / s。软件忽略任何频率超出该通带的响应值。

opt = oeOptions(“WeightingFilter”, 0 0.5 *π/ Ts);

设置Ts财产0治疗数据作为连续时间数据。

数据。Ts=0;

估计连续模型。

Nb = 1;Nf = 3;Sys = oe(data,[nb nf],opt);

加载数据。

负载iddata1icz1i

估计OE多项式模型sys返回初始条件集成电路

Nb = 2;Nf = 2;Nk = 1;[sys,ic] = oe(z1i,[nb,nf,nk]);集成电路
ic = initialCondition with properties: A: [2x2 double] X0: [2x1 double] C: [0.9428 0.4824] Ts: 0.1000

集成电路是一个initialCondition的空闲响应sys的初始状态向量X0.你可以合并集成电路当你模拟的时候sysz1i输入信号,并与响应进行比较z1i输出信号。

输入参数

全部折叠

估计数据,指定为a时间表它使用了一个规则间隔的时间向量。tt包含表示输入和输出通道的变量。对于多实验数据,tt单元格数组的时间表的长度,在那里是实验的数量吗

该软件确定输入和输出通道的数量,用于从指定的多项式顺序的维度进行估计。输入/输出通道的选择取决于是否“InputName”而且“OutputName”指定名称-值参数。

  • 如果“InputName”而且“OutputName”没有指定,那么软件使用第一种ν的变量tt作为输入和下一个纽约的变量tt作为输出。

  • 如果“InputName”而且“OutputName”,然后软件使用指定的变量。指定的输入和输出名称的个数必须与ν而且纽约

  • 对于可以估计没有输入的时间序列模型的函数,“InputName”不需要指定。

有关使用估计数据类型的详细信息,请参见系统标识工具箱中的数据类型

估计数据,为SISO系统指定为逗号分隔的对N年代-by-1实值矩阵,包含均匀采样的输入和输出时域信号值。在这里,N年代是样本的数量。

对于MIMO系统,请指定uy作为一个输入/输出矩阵对,具有以下维度:

  • u- - - - - -N年代——- - - - - -Nu,在那里Nu是输入的数量。

  • y- - - - - -N年代——- - - - - -Ny,在那里Ny是输出的数量。

对于多实验数据,请指定uy作为一对1 × -Ne单元格数组,其中Ne是实验的次数。所有实验的采样次数必须匹配。

对于只包含输出而没有输入的时间序列数据,请指定y只有。

限制

  • 基于矩阵的数据不支持频域数据的估计。金宝app必须使用数据对象,例如iddata对象或idfrd对象(如数据).

有关使用估计数据类型的详细信息,请参见系统标识工具箱中的数据类型

估计数据,指定为iddata对象,一个的朋友对象,或idfrd对象。

对于时域估计,数据一定是iddata对象,其中包含输入和输出信号值。

对于频域估计,数据可以是以下之一:

  • 记录的频率响应数据(的朋友(控制系统工具箱)idfrd

  • iddata对象,其属性指定如下:

    • InputData-输入信号的傅里叶变换

    • OutputData-输出信号的傅里叶变换

    • - - - - - -“频率”

时域估计数据必须统一采样。软件默认将模型的采样时间设置为估计数据的采样时间。

对于多实验数据,所有实验的样本次数和样本间行为必须匹配。

您可以从时域数据或离散频域数据计算离散时间模型。使用特遣部队计算连续时间模型。

OE模型顺序,指定为1 × 3向量或整数矩阵的向量。

对于表示为

y t B F u t n k + e t

在哪里yt)为输出,ut)为输入,且et)为误差,元素为[nb nf nk]分别如下:

  • -法庭秩序B多项式+ 1,它等价于的长度B)多项式。是一个Ny——- - - - - -Nu矩阵。Ny输出的数量和Nu是输入的数量。

  • nf-法庭秩序F多项式。nf是一个Ny——- - - - - -Nu矩阵。

  • nk-输入延迟,用样本数表示。nk是一个Ny——- - - - - -Nu矩阵。的前导零表示延迟B多项式。

对于使用连续时间频域数据的估计,只指定(nb nf)和省略nk.有关示例,请参见利用频率响应估计连续时间OE模型

配置初始参数化的线性系统sys,指定为idpoly模型,另一个线性模型,或者结构。你获得init_sys通过使用测量数据或直接构造来进行估计。

如果init_sys是一个idpolyOE结构模型,oe的参数值init_sys作为初步估计sys.的采样时间init_sys必须与数据的采样时间相匹配。

使用结构的属性init_sys来配置的初始猜测和约束B),F).例如:

  • 来指定的初始猜测F)期限init_sys,设置init_sys.Structure.F.Value作为最初的猜测。

  • 属性的约束B)期限init_sys

    • init_sys.Structure.B.Minimum到最低限度B)系数值。

    • init_sys.Structure.B.Maximum到最大限度B)系数值。

    • init_sys.Structure.B.Free来表明B)系数可以自由估计。

如果init_sys是不是OE结构的多项式模型,软件先转换init_sys到OE结构模型。oe使用结果模型的参数作为估计的初始猜测sys

如果您没有指定选择而且init_sys是通过估计得到的,那么软件使用估计选项从init_sys.Report.OptionsUsed

的估计选项oeOptions选项设置。指定的选项选择包括:

  • 估计目标

  • 初始条件的处理

  • 数值搜索方法及相关选项

有关指定估计选项的示例,请参见利用带限离散频域数据估计连续模型

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:“InputDelay”,1

输入时间表数据的通道名称,指定为字符串、字符向量、字符串或字符向量的数组或单元格数组。默认情况下,该软件解释除最后一个变量以外的所有变量tt作为输入通道。当您希望选择时间表变量的子集作为输入通道使用时“InputName”来识别他们。例如,sys = oe(tt,__,'InputName',["u1" "u2"])选择变量u1而且u2作为估计的输入通道。

时间表数据的输出通道名称,指定为字符串、字符向量、字符串或字符向量的数组或单元格数组。默认情况下,软件解释中的最后一个变量tt作为唯一的输出通道。当您希望选择时间表变量的子集作为输出通道时,请使用“OutputName”来识别他们。例如,sys = oe(tt,__,'OutputName',["y1" "y3"])选择变量日元而且y3作为估计的输出通道。

采样时间,由逗号分隔的对组成“t”采样时间以秒为单位。使用基于矩阵的数据时(uy),你必须指定“t”如果你需要一个采样时间,而不是假设的1秒采样时间。

获取时间表的数据采样时间tt,使用时间表属性tt.Properties.Timestep

例子:oe (umat1 ymat1 ___, Ts, 0.08)计算一个样本时间为0.08秒的模型。

每个输入通道的输入延迟,由逗号分隔的对组成“InputDelay”和一个数值向量。

  • 对于连续时间模型,请指定“InputDelay”在时间单位中存储TimeUnit财产。

  • 对于离散时间模型,指定“InputDelay”是采样时间的整数倍Ts.例如,设置“InputDelay”3.指定三个采样周期的延迟。

对于一个系统Nu输入,设置InputDelay到一个Nu1的向量。该向量的每一项都是一个数值,表示对应输入通道的输入延迟。

若要对所有通道应用相同的延迟,请指定“InputDelay”作为一个标量。

有关示例,请参见OE多项式估计模型

每个输入-输出对的传输延迟,指定为逗号分隔的对,由“IODelay”和一个数字数组。

  • 对于连续时间模型,请指定“IODelay”在时间单位中存储TimeUnit财产。

  • 对于离散时间模型,指定“IODelay”是采样时间的整数倍Ts.例如,设置“IODelay”4指定四个采样周期的传输延迟。

对于一个系统Nu输入和Ny输出,“IODelay”到一个Ny——- - - - - -Nu矩阵。每个条目都是一个整数值,表示对应输入-输出对的传输延迟。

若要对所有通道应用相同的延迟,请指定“IODelay”作为一个标量。

你可以指定“IODelay”作为一种替代nk价值。中前导零的数量减少,从而简化了模型结构B多项式。特别地,你可以表示max (nk-1, 0)前导零作为输入输出延迟使用“IODelay”代替。

输出参数

全部折叠

OE多项式模型,拟合估计数据,返回为idpoly模型对象。该模型是使用指定的模型顺序、延迟和估计选项创建的。的采样时间sys匹配估计数据的采样时间。因此,sys当从时域数据估计时,总是一个离散时间模型。对于使用时域数据的连续时间模型识别,请使用特遣部队

报告属性存储有关所使用的估计结果和选项的信息。报告具有以下字段。

报告字段 描述
状态

模型状态的总结,表明模型是通过构造创建的还是通过估计获得的。

方法

使用估计命令。

InitialCondition

在模型估计期间对初始条件的处理,作为以下值之一返回:

  • “零”—初始条件设置为零。

  • “估计”初始条件被视为独立的估计参数。

  • “展望”-初始条件估计使用最佳最小二乘拟合。

属性时如何处理初始条件,此字段特别有用InitialCondition选项中的值为“汽车”

适合

估计的定量评估,作为结构返回。看到损失函数和模型质量度量有关这些质量度量的更多信息。该结构有以下字段:

描述
FitPercent

归一化均方根误差(NRMSE)衡量模型响应与估计数据的吻合程度,以百分比表示fitpercent= 100 (1-NRMSE)。

LossFcn

估计完成时损失函数的值。

均方误差

均方误差(MSE)衡量模型的响应与估计数据的吻合程度。

消防工程

模型的最终预测误差。

另类投资会议

原始赤池信息标准(AIC)是模型质量的度量标准。

AICc

小样本量校正AIC。

保险代理人

标准化的另类投资会议。

BIC

贝叶斯信息准则(BIC)。

参数

模型参数估计值。

OptionsUsed

用于估计的选项集。如果没有配置自定义选项,则这是一组默认选项。看到oeOptions获取更多信息。

RandState

估计开始时随机数流的状态。空的,[],如果在估计过程中没有使用随机化。有关更多信息,请参见rng

DataUsed

用于估计的数据的属性,作为具有以下字段的结构返回。

描述
的名字

数据集的名称。

类型

数据类型。

长度

数据样本数量。

Ts

样品时间。

InterSample

输入样例间行为,作为以下值之一返回:

  • “zoh”-零阶保持器在样本之间保持分段恒定的输入信号。

  • “呸”-一阶保持器在样本之间保持分段线性输入信号。

  • “提单”—限带行为指连续时间输入信号在奈奎斯特频率以上的功率为零。

InputOffset

在估计过程中从时域输入数据中删除的偏移量。对于非线性模型,它是[]

OutputOffset

在估计过程中从时域输出数据中删除的偏移量。对于非线性模型,它是[]

终止

用于预测误差最小化的迭代搜索的终止条件,作为具有以下字段的结构返回:

描述
WhyStop

终止数值搜索的原因。

迭代

由估计算法执行的搜索迭代次数。

FirstOrderOptimality

-搜索算法结束时梯度搜索向量的norm。

FcnCount

目标函数被调用的次数。

UpdateNorm

最后一次迭代中梯度搜索向量的范数。搜索方法为时省略“lsqnonlin”“fmincon”

LastImprovement

最后一次迭代中的标准改进,以百分比表示。搜索方法为时省略“lsqnonlin”“fmincon”

算法

使用的算法“lsqnonlin”“fmincon”搜索方法。使用其他搜索方法时省略。

对于不需要数值搜索优化的估计方法,请使用终止字段省略。

有关使用的更多信息报告,请参阅评估报告

估计的初始条件,返回为initialCondition对象的对象数组initialCondition值。

  • 对于单个实验数据集,集成电路以状态空间形式表示传递函数模型的自由响应(一个而且C矩阵)到估计的初始状态(x0).

  • 对于一个多实验数据集用Ne实验中,集成电路对象数组是长度的吗Ne其中包含一组initialCondition每个实验的值。

如果oe返回集成电路的值0你知道你有非零的初始条件,设置“InitialCondition”选项oeOptions“估计”并将更新后的选项集传递给oe.例如:

opt = oeOptions(“InitialCondition”“估计”) [sys,ic] = oe(data,np,nz,opt)
默认的“汽车”设置“InitialCondition”使用“零”初始条件对整个估计误差最小化过程的影响可以忽略不计时的方法。指定“估计”确保软件估计值集成电路

有关更多信息,请参见initialCondition.有关使用此参数的示例,请参见获得初始条件

更多关于

全部折叠

输出误差(OE)模型

一般输出误差模型结构为:

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

连续时间输出误差模型

如果数据为连续时间频域数据,oe用以下传递函数估计一个连续时间模型:

G 年代 B 年代 F 年代 b n b 年代 n b 1 + b n b 1 年代 n b 2 + ... + b 1 年代 n f + f n f 年代 n f 1 + ... + f 1

分子和分母的阶是而且nf,类似于离散时间的情况。然而,样本延迟nk不存在连续的情况下,你不应该指定nk当您命令评估时。相反,使用名称-值对参数表示任何系统延迟“IODelay”与存储在属性中的时间单位中的系统延迟一起TimeUnit.例如,假设连续系统的延迟为iod的秒。使用model = oe(data,[nb nf],'IODelay',iod)

版本历史

R2006a之前介绍

全部展开