主要内容

用时域或频域数据估计多项式模型

语法

Sys = polyest(data,[na nb nc nd nf nk])
sys = polyest(data,[na nb nc nd nf nk],Name,Value)
Sys = polyest(data,init_sys)
Sys =聚酯(___选择)
[sys,ic] = polyest(___

描述

sys=保利(数据,[na数控ndnfnk])估计一个多项式模型,sys,利用时域或频域数据,数据

sys形式是

一个 y t B F u t n k + C D e t

一个),B),F),C),D)为多项式矩阵。ut)为输入,且nk是输入延迟。yt)为输出和et)为干扰信号。na数控nd而且nf是命令吗一个),B),C),D),F)多项式,分别。

sys=保利(数据,[na数控ndnfnk],名称,值用一个或多个指定的估计模型结构的附加属性估计一个多项式模型名称,值对参数。

sys=保利(数据init_sys用线性系统估计一个多项式模型init_sys配置初始参数化。

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

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

输入参数

数据

估计数据。

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

您只能使用时域数据估计离散时间模型。有关使用时域数据估计连续时间模型,请参见特遣部队

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

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

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

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

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

    • ——“频率”

    它使用起来可能更方便oe特遣部队估计频域数据的一个模型。

na

多项式的阶一个).

na是一个纽约——- - - - - -纽约非负整数矩阵。纽约输出的数量,和ν是输入的数量。

na如果使用频域数据估计模型,则必须为零。

多项式的阶B) + 1。

是一个纽约——- - - - - -ν非负整数矩阵。纽约输出的数量,和ν是输入的数量。

数控

多项式的阶C).

数控是长度为非负整数的列向量吗纽约纽约是输出的数量。

数控如果使用频域数据估计模型,则必须为零。

nd

多项式的阶D).

nd是长度为非负整数的列向量吗纽约纽约是输出的数量。

nd如果使用频域数据估计模型,则必须为零。

nf

多项式的阶F).

nf是一个纽约——- - - - - -ν非负整数矩阵。纽约输出的数量,和ν是输入的数量。

nk

输入延时的样本数,用固定的前导零点表示B多项式。

nk是一个纽约——- - - - - -ν非负整数矩阵。

nk在估计连续时间模型时必须为零。

选择

估计选项。

选择选项设置,创建使用polyestOptions,指定评估选项,包括:

  • 估计目标

  • 初始条件的处理

  • 数值搜索法用于估计

init_sys

配置初始参数化的线性系统sys

你获得init_sys通过使用测量数据或直接构造来进行估计。

如果init_sys是一个idpoly模型中,中定义的参数和约束init_sys作为初步估计sys

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

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

  • 属性的约束B)期限init_sys

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

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

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

如果init_sys不是idpoly模型,软件先转换init_sys一个多项式模型。使用结果模型的参数作为估计的初始猜测。

如果选择未指定,和init_sys是由估计创建的,那么估计的选项从哪里来呢init_sys.Report.OptionsUsed使用。

名称-值参数

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

IODelay

运输延误。IODelay为每个输入/输出对指定单独的传输延迟的数字数组。

类中存储的时间单位指定传输延迟TimeUnit财产。对于离散时间系统,指定传输延迟为采样时间的整数倍,Ts

对于MIMO系统纽约输出和ν输入,设置IODelay到一个纽约——- - - - - -ν数组中。该数组的每个条目都是一个数值,表示对应输入/输出对的传输延迟。你也可以设置IODelay对所有输入/输出对应用相同的延迟。

默认值:0对于所有输入/输出对

InputDelay

每个输入通道的输入延迟,指定为标量值或数字向量。方法中存储的时间单位指定输入延迟TimeUnit财产。对于离散时间系统,指定输入延迟为采样时间的整数倍Ts.例如,InputDelay = 3表示三次采样时间的延迟。

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

你也可以设置InputDelay到一个标量值,以便对所有通道应用相同的延迟。

默认值:0

IntegrateNoise

在噪声信道中指定积分器的逻辑向量。

IntegrateNoise是长度的逻辑向量吗纽约,在那里纽约是输出的数量。

设置IntegrateNoise真正的对于模型中的特定输出结果:

一个 y t B F u t n k + C D e t 1 1

在那里, 1 1 1 是噪声信道中的积分器,et).

使用IntegrateNoise来创建一个ARIMAX模型。

例如,

负载iddata1z1;z1 = iddata(cumsum(z1.y),cumsum(z1.u),z1. ts,“InterSample”“呸”);Sys = polyest(z1, [2 2 2 0 0 1],“IntegrateNoise”,真正的);

输出参数

sys

多项式模型,返回为idpoly模型。该模型是使用指定的模型顺序、延迟和估计选项创建的。

如果数据。Ts是零,sys是一个连续时间模型,表示:

Y 年代 B 年代 F 年代 U 年代 + E 年代

Y年代),U年代),E年代)为时域信号的拉普拉斯变换yt),ut),et),分别。

有关所使用的估计结果和选项的信息存储在报告模型的属性。报告请填写以下字段:

报告字段 描述
状态

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

方法

使用估计命令。

InitialCondition

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

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

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

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

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

适合

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

描述
FitPercent

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

LossFcn

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

均方误差

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

消防工程

模型的最终预测误差。

另类投资会议

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

AICc

小样本量校正AIC。

保险代理人

标准化的另类投资会议。

BIC

贝叶斯信息准则(BIC)。

参数

模型参数估计值。

OptionsUsed

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

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每个实验的值。

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

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

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

例子

全部折叠

用冗余参数化估计模型。即一个包含所有多项式的模型( 一个 B C D , F )活跃。

负载估计数据。

负载iddata2z2

指定模型顺序和延迟。

Na = 2;Nb = 2;Nc = 3;Nd = 3;Nf = 2;Nk = 1;

估计模型。

Sys = polyest(z2,[na nb nc nd nf nk]);

通过转换正则化ARX模型来估计正则化多项式模型。

负载估计数据。

负载regularizationExampleData.matm0simdata

估计一个20阶的非正则多项式模型。

M1 = polyest(m0simdata(1:50 0),[0 20 20 20 20 1]);

估计一个同阶的正则多项式模型。通过反复试验确定Lambda值。

opt =聚stoptions;opt. regulalizing . lambda = 1;M2 = polyest(m0simdata(1:50 0),[0 20 20 20 20 1],opt);

通过转换正则化ARX模型并降低其阶数,得到低阶多项式模型。使用arxregul确定正则化参数。

[L,R] = arxRegul(m0simdata(1:50 0),[30 30 1]);opt1 = arxOptions;opt1.Regularization。Lambda = L;opt1.Regularization。R = R;M0 = arx(m0simdata(1:50 0),[30 30 1],opt1);Mr = idpoly(balred(idss(m0),7));

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

opt2 = compareOptions(“InitialCondition”“z”);比较(m0simdata(150:结束),m1, m2,先生,opt2);

图中包含一个轴对象。axis对象包含4个line类型的对象。这些对象代表验证数据(y1), m1: 23.82%, m2: 26.09%, mr: 64.91%。

加载输入/输出数据并创建用于估计的累计输入和输出信号。

负载iddata1z1data = iddata(cumsum(z1.y),cumsum(z1.u),z1.Ts,“InterSample”“呸”);

指定模型多项式顺序。设定非活动多项式的阶数, D 而且 F ,0

Na = 2;Nb = 2;Nc = 2;Nd = 0;Nf = 0;Nk = 1;

属性确定ARIMAX模型“IntegrateNoise”选项真正的

Sys = polyest(data,[na nb nc nd nf nk],“IntegrateNoise”,真正的);

估计一个多输入、多输出数据集的多输出ARMAX模型。

负载估计数据。

负载iddata1z1负载iddata2z2数据= [z1 z2(1:300)];

数据是一个有2个输入和2个输出的数据集。第一个输入只影响第一个输出。类似地,第二个输入只影响第二个输出。

指定模型顺序和延迟。的F而且D多项式是无效的。

Na = [2 2;2 2];Nb = [2 2;3 4];Nk = [1 1;0 0];Nc = [2;2];Nd = [0;0];Nf = [0 0;0 0];

估计模型。

Sys = polyest(data,[na nb nc nd nf nk]);

在估计的ARMAX模型中,交叉项,即模拟第一个输入对第二个输出的影响,反之亦然,可以忽略不计。如果你赋予这些动态更高的阶数,他们的估计将显示出高度的不确定性。

分析结果。

H = bodeploy (sys);showConfidence (h, 3)

图中包含8个轴对象。轴对象1 From: u1包含一个line类型的对象。该节点表示sys。坐标轴对象2包含一个line类型的对象。该节点表示sys。Axes对象3包含一个line类型的对象。该节点表示sys。Axes对象4包含一个line类型的对象。该节点表示sys。带有标题From: u2的坐标轴对象5包含一个line类型的对象。 This object represents sys. Axes object 6 contains an object of type line. This object represents sys. Axes object 7 contains an object of type line. This object represents sys. Axes object 8 contains an object of type line. This object represents sys.

交叉项的响应显示出较大的不确定性。

加载数据。

负载iddata1icz1i

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

Na = 2;Nb = 2;Nc = 3;Nd = 3;Nf = 2;Nk = 1;[sys,ic] = polyest(z1i,[na nb nc nd nf nk]);集成电路
A: [7x7 double] X0: [7x1 double] C: [0 000 00 1] Ts: 0.1000

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

提示

  • 在大多数情况下,一个已识别多项式模型的所有多项式不是同时活动的。设置一个或多个顺序na数控nd而且nf以零简化模型结构。

    例如,您可以通过指定来估计输出错误(OE)模型na数控而且nd为零。

    或者,您可以为简化的模型结构使用专用的估计函数。线性多项式估计函数包括oebjarx而且armax

选择

  • 要使用时间序列数据估计多项式模型,请使用基于“增大化现实”技术

  • 使用估计任意结构的多项式如果估计多项式模型的结构是已知的,也就是说,您知道哪些多项式将是活跃的,然后使用适当的专用估计函数。例如,对于ARX模型,使用arx.其他多项式模型估计函数包括:oearmax,bj

  • 要估计一个连续时间传递函数,使用特遣部队.你也可以使用oe,但仅适用于连续时间频域数据。

扩展功能

在R2012a中引入