oe
利用时域或频域数据估计输出误差多项式模型
语法
描述
输出误差(OE)模型是多项式模型的一种特殊配置,只有两个活动多项式-B而且F.OE模型表示将测量输入与输出联系起来的传统传递函数,同时还包括白噪声作为可添加的输出扰动。您可以使用时间和频域数据估计OE模型。的特遣部队
命令提供的功能与oe
.为特遣部队
,您可以使用极点和零的数量而不是多项式度来指定模型的顺序。对于连续时间估计,特遣部队
提供更快更准确的结果,推荐使用。
OE模型
OE模型估计sys
= oe (tt
,[nb nf nk]
)sys
利用数据中所包含的时间表变量tt
.软件使用第一种方法ν变量作为输入和下一个纽约变量作为输出,其中ν而且纽约由指定多项式阶的维数确定。
sys
是由方程表示的
在这里,y(t)为输出,u(t)为输入,且e(t)是误差。
的订单[nb nf nk]
定义估计多项式的每个分量的参数数。
从中选择特定的输入和输出通道tt
,使用名称-值语法进行设置“InputName”
而且“OutputName”
对应的时间表变量名。
在逗号分隔的矩阵中使用时域输入和输出信号sys
= oe (u
,y
,[nb nf nk]
)u
,y
.软件假设数据采样时间为1秒。若要更改采样时间,请设置Ts
使用名称-值语法。
使用数据对象中的时域或频域数据sys
= oe (数据
,[nb nf nk]
)数据
.
初始参数配置
初始条件估计
[
返回估计的初始条件sys
,集成电路
= oe(___)initialCondition
对象。如果您计划使用相同的估计输入数据模拟或预测模型响应,然后将响应与相同的估计输出数据进行比较,请使用此语法。在模拟的第一部分中,结合初始条件产生了更好的匹配。
例子
OE多项式估计模型
使用两种方法从时域数据估计OE多项式来指定输入延迟。
加载估计数据。
负载iddata1z1
的顺序B而且F多项式注
而且nf
.设置输入延迟nk
一个样本。计算模型sys
.
Nb = 2;Nf = 2;Nk = 1;Sys = oe(z1,[nb nf nk]);
将模拟模型响应与实测输出进行比较。
比较(z1, sys)
结果表明,模拟模型与估计数据的拟合率大于70%。
而不是使用nk
,也可以使用名称-值对参数“InputDelay”
指定单样本延迟。
Nk = 0;Sys1 = oe(z1,[nb nf nk],“InputDelay”1);图比较(z1, sys1)
结果是相同的。
的方法可以查看有关评估的更多信息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模型
加载估计数据。
负载oe_data1数据;
的idfrd
对象数据
包含以下模型的连续时间频率响应:
估计模型。
Nb = 2;Nf = 3;Sys = oe(data,[nb nf]);
评估拟合的优度。
比较(数据、系统);
使用正则化估计OE模型
通过模拟一个高阶系统,从收集到的数据估计一个高阶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,选择);
正则化模型平方米
产生比非正则模型更好的拟合m1
.
比较模型响应中的方差。
H = bodeploy (m1,m2);Opt = getoptions(h);opt.PhaseMatching =“上”;opt.ConfidenceRegionNumberSD = 3;opt.PhaseMatching =“上”;setoption (h,选择);showConfidence (h);
正则化模型平方米
与非正则模型相比方差是否减小m1
.
利用带限离散频域数据估计连续模型
加载估计数据数据
和采样时间Ts
.
负载oe_data2.mat数据Ts
一个iddata
对象数据
包含以下模型的离散时间频率响应:
查看估计样本时间Ts
你装了子弹。
Ts
Ts = 1.0000 -03
此值与属性匹配数据。Ts
.
数据。Ts
Ans = 1.0000 -03
你可以估计一个连续模型数据
通过将输入和输出频段限制在奈奎斯特频率。为此,指定估计预筛选器选项“WeightingFilter
来定义一个通带0
来0.5 *π/ Ts
rad / 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
.你可以合并集成电路
当你模拟的时候sys
与z1i
输入信号,并与响应进行比较z1i
输出信号。
输入参数
tt
- - - - - -基于时间表的估计数据
时间表|单元格时间表数组。
估计数据,指定为a时间表
它使用了一个规则间隔的时间向量。tt
包含表示输入和输出通道的变量。对于多实验数据,tt
单元格数组的时间表的长度不
,在那里不
是实验的数量吗
该软件确定输入和输出通道的数量,用于从指定的多项式顺序的维度进行估计。输入/输出通道的选择取决于是否“InputName”
而且“OutputName”
指定名称-值参数。
如果
“InputName”
而且“OutputName”
没有指定,那么软件使用第一种ν的变量tt
作为输入和下一个纽约的变量tt
作为输出。如果
“InputName”
而且“OutputName”
,然后软件使用指定的变量。指定的输入和输出名称的个数必须与ν而且纽约.对于可以估计没有输入的时间序列模型的函数,
“InputName”
不需要指定。
有关使用估计数据类型的详细信息,请参见系统标识工具箱中的数据类型.
u
,y
- - - - - -矩阵估计数据
矩阵|矩阵单元阵列
估计数据,为SISO系统指定为逗号分隔的对N年代-by-1实值矩阵,包含均匀采样的输入和输出时域信号值。在这里,N年代是样本的数量。
对于MIMO系统,请指定u
,y
作为一个输入/输出矩阵对,具有以下维度:
u
- - - - - -N年代——- - - - - -Nu,在那里Nu是输入的数量。y
- - - - - -N年代——- - - - - -Ny,在那里Ny是输出的数量。
对于多实验数据,请指定u
,y
作为一对1 × -Ne单元格数组,其中Ne是实验的次数。所有实验的采样次数必须匹配。
对于只包含输出而没有输入的时间序列数据,请指定y
只有。
限制
有关使用估计数据类型的详细信息,请参见系统标识工具箱中的数据类型.
[nb nf nk]
- - - - - -OE型号订单
整行向量|整数矩阵的行向量
OE模型顺序,指定为1 × 3向量或整数矩阵的向量。
对于表示为
在哪里y(t)为输出,u(t)为输入,且e(t)为误差,元素为[nb nf nk]
分别如下:
注
-法庭秩序B(问多项式+ 1,它等价于的长度B(问)多项式。注
是一个Ny——- - - - - -Nu矩阵。Ny输出的数量和Nu是输入的数量。nf
-法庭秩序F多项式。nf
是一个Ny——- - - - - -Nu矩阵。nk
-输入延迟,用样本数表示。nk
是一个Ny——- - - - - -Nu矩阵。的前导零表示延迟B多项式。
对于使用连续时间频域数据的估计,只指定(nb nf)
和省略nk
.有关示例,请参见利用频率响应估计连续时间OE模型.
init_sys
- - - - - -线性系统
idpoly
模型|线性模型|结构
配置初始参数化的线性系统sys
,指定为idpoly
模型,另一个线性模型,或者结构。你获得init_sys
通过使用测量数据或直接构造来进行估计。
如果init_sys
是一个idpoly
OE结构模型,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
InputName
- - - - - -输入通道名称
”“
(默认)|字符串|特征向量|字符串数组|字符向量的单元格数组
输入时间表数据的通道名称,指定为字符串、字符向量、字符串或字符向量的数组或单元格数组。默认情况下,该软件解释除最后一个变量以外的所有变量tt
作为输入通道。当您希望选择时间表变量的子集作为输入通道使用时“InputName”
来识别他们。例如,sys = oe(tt,__,'InputName',["u1" "u2"])
选择变量u1
而且u2
作为估计的输入通道。
OutputName
- - - - - -输出信号名称
”“
(默认)|特征向量|字符串|字符向量或字符串的单元格数组
时间表数据的输出通道名称,指定为字符串、字符向量、字符串或字符向量的数组或单元格数组。默认情况下,软件解释中的最后一个变量tt
作为唯一的输出通道。当您希望选择时间表变量的子集作为输出通道时,请使用“OutputName”
来识别他们。例如,sys = oe(tt,__,'OutputName',["y1" "y3"])
选择变量日元
而且y3
作为估计的输出通道。
InputDelay
- - - - - -输入延迟
0(默认)|正整数向量|整数标量
IODelay
- - - - - -运输延误
0(默认)|标量|数字数组
每个输入-输出对的传输延迟,指定为逗号分隔的对,由“IODelay”
和一个数字数组。
对于连续时间模型,请指定
“IODelay”
在时间单位中存储TimeUnit
财产。对于离散时间模型,指定
“IODelay”
是采样时间的整数倍Ts
.例如,设置“IODelay”
来4
指定四个采样周期的传输延迟。
对于一个系统Nu输入和Ny输出,“IODelay”
到一个Ny——- - - - - -Nu矩阵。每个条目都是一个整数值,表示对应输入-输出对的传输延迟。
若要对所有通道应用相同的延迟,请指定“IODelay”
作为一个标量。
你可以指定“IODelay”
作为一种替代nk
价值。中前导零的数量减少,从而简化了模型结构B多项式。特别地,你可以表示max (nk-1, 0)
前导零作为输入输出延迟使用“IODelay”
代替。
输出参数
sys
- OE多项式模型
idpoly
对象
OE多项式模型,拟合估计数据,返回为idpoly
模型对象。该模型是使用指定的模型顺序、延迟和估计选项创建的。的采样时间sys
匹配估计数据的采样时间。因此,sys
当从时域数据估计时,总是一个离散时间模型。对于使用时域数据的连续时间模型识别,请使用特遣部队
.
的报告
属性存储有关所使用的估计结果和选项的信息。报告
具有以下字段。
报告字段 | 描述 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
状态 |
模型状态的总结,表明模型是通过构造创建的还是通过估计获得的。 |
||||||||||||||||||
方法 |
使用估计命令。 |
||||||||||||||||||
InitialCondition |
在模型估计期间对初始条件的处理,作为以下值之一返回:
属性时如何处理初始条件,此字段特别有用 |
||||||||||||||||||
适合 |
估计的定量评估,作为结构返回。看到损失函数和模型质量度量有关这些质量度量的更多信息。该结构有以下字段:
|
||||||||||||||||||
参数 |
模型参数估计值。 |
||||||||||||||||||
OptionsUsed |
用于估计的选项集。如果没有配置自定义选项,则这是一组默认选项。看到 |
||||||||||||||||||
RandState |
估计开始时随机数流的状态。空的, |
||||||||||||||||||
DataUsed |
用于估计的数据的属性,作为具有以下字段的结构返回。
|
||||||||||||||||||
终止 |
用于预测误差最小化的迭代搜索的终止条件,作为具有以下字段的结构返回:
对于不需要数值搜索优化的估计方法,请使用 |
有关使用的更多信息报告
,请参阅评估报告.
集成电路
-初始条件
initialCondition
对象|对象数组initialCondition
值
估计的初始条件,返回为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)模型
一般输出误差模型结构为:
输出误差模型的阶为:
连续时间输出误差模型
如果数据
为连续时间频域数据,oe
用以下传递函数估计一个连续时间模型:
分子和分母的阶是注
而且nf
,类似于离散时间的情况。然而,样本延迟nk
不存在连续的情况下,你不应该指定nk
当您命令评估时。相反,使用名称-值对参数表示任何系统延迟“IODelay”
与存储在属性中的时间单位中的系统延迟一起TimeUnit
.例如,假设连续系统的延迟为iod的
秒。使用model = oe(data,[nb nf],'IODelay',iod)
.
版本历史
R2006a之前介绍MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。