主要内容

线性灰度盒模型估计

语法

sys =老龄化最严重的(数据、init_sys)
sys = greyest(数据,init_sys,opt)
[sys,x0] = greyest(___

描述

SYS.=感动(数据init_sys.估计一个线性灰盒模型,SYS.,使用时间或频域数据,数据.输入和输出的尺寸数据init_sys.,一个idgrey.模型,必须匹配。SYS.是一个确定的idgrey.具有相同结构的模型init_sys.

SYS.=感动(数据init_sys.选择使用选项集估计线性灰盒模型,选择,配置估计选项。

SYS.X0.) =感动(___返回估算期间计算的初始状态的值。您可以将此语法与前面的任何输入参数组合一起使用。

输入参数

数据

估计数据。

输入和输出的尺寸数据init_sys.必须匹配。

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

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

  • 录制的频率响应数据(的朋友(控制系统工具箱)或者IDFRD.

  • iddata.对象的领域属性设置为“频率”

init_sys.

识别的线性灰度框模型,用于配置初始参数化SYS.

init_sys.,一个idgrey.模型,必须具有相同的输入和输出尺寸为数据

选择

估算选项。

选择是一个选项集,使用greyestOptions,其中指定的选项包括:

  • 估计目标

  • 初始化选择

  • 干扰模型处理

  • 估计中使用的数值搜索方法

输出参数

SYS.

估计灰度盒模型,作为一个返回idgrey.模型。这个模型是使用指定的初始系统和评估选项创建的。

有关使用的估计结果和选项的信息存储在报告模型的财产。报告有以下字段:

报告领域 描述
状态

模型状态摘要,指示模型是由施工创建还是通过估计获得。

方法

评估使用的命令。

Initimstate.

在估计期间处理初始状态,作为以下内容之一返回:

  • '模型'- 初始状态由使用的ode文件进行参数化idgrey.模型。

  • '零'- 初始状态设置为零。

  • '估计'- 初始状态被视为独立估计参数。

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

  • 长度的双倍向量NX., 在哪里NX.是州的数量。对于多分水管数据,具有矩阵NE.列,其中NE.为实验的次数。

该字段对于查看初始状态是如何处理的特别有用Initimstate.估计选项集中的选项为“汽车”

DisturbanceModel

处理扰动组件(K),返回为以下值之一:

  • '模型'- - - - - -K属性使用的ODE文件对值进行参数化idgrey.模型。

  • “固定”—取值K财产的财产idgrey.模型固定于其原始值。

  • “没有”- - - - - -K固定为零。

  • '估计'- - - - - -K被视为独立估计参数。

该字段特别有用,可查看如何处理干扰组件DisturbanceModel估计选项集中的选项为“汽车”

合身

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

描述
fitpercent.

归一化的根均匀平方误差(NRMSE)衡量模型的响应如何适合估计数据,表示为百分比fitpercent.= 100(1-Nrmse)。

LossFcn

估计完成时损失功能的值。

MSE

均方误差(MSE)测量模型的响应如何适合估计数据。

消防工程

模型的最终预测误差。

另类投资会议

原始的模型质量的原始Akaike信息标准(AIC)测量。

AICC.

小样本尺寸校正AIC。

奈西

归一化的AIC。

BIC

贝叶斯信息准则(BIC)。

参数

模型参数的估计值。

OptionsUsed

选项集用于估计。如果未配置自定义选项,则这是一组默认选项。看到greyestOptions想要查询更多的信息。

兰特泰特

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

DataUsed

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

描述
姓名

数据集的名称。

类型

数据类型。

长度

数据样本数量。

TS.

样品时间。

InterSample

输入InterSample行为,作为以下值之一返回:

  • “zoh”零阶保持保持采样之间的输入信号分段常数。

  • 'foh'-一阶保持保持样本间的分段线性输入信号。

  • 'BL'- 带限量的行为指定连续时间输入信号具有高于奈奎斯特频率的零功率。

InputOffset

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

outputOffset.

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

终止

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

描述
WhyStop

终止数值搜索的原因。

迭代

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

FirstOrderOptimality.

-当搜索算法终止时梯度搜索向量的范数。

FcnCount

调用目标函数的次数。

UpdateNorm

最后迭代中梯度搜索矢量的常态。搜索方法是时省略'lsqnonlin'或者'粉丝'

最后的服务

最后迭代的标准改进,表示为百分比。搜索方法是时省略'lsqnonlin'或者'粉丝'

算法

使用算法'lsqnonlin'或者'粉丝'搜索方法。使用其他搜索方法时省略。

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

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

X0.

在估计期间计算的初始状态,作为包含与每个实验相对应的列向量的矩阵。

该数组也存储在参数模型的领域报告财产。

例子

全部折叠

使用线性灰盒框架估算DC电机的参数。

加载测量数据。

加载(全氟(MatlaBroot,'工具箱'“识别”“iddemos”'数据''dcmotordata'));数据= IDDATA(Y,U,0.1,“名字”直流电机的);数据。InputName ='电压';data.inputunit =.“V”;data.outputname = {'角度位置''角速度'};data.outputunit = {rad的'rad / s'};data.tstart = 0;data.timeUnit =.“年代”

数据是一个iddata.包含输出的测量数据的对象,角度位置,角速度。它还包含输入,驱动电压。

创建表示系统动态的灰盒模型。

对于直流电机,选择角位置(rad)和角速度(rad/s)作为输出,驱动电压(V)作为输入。建立如下形式的线性状态空间结构:

x ˙ t 0 1 0 - 1 τ. x t + 0 G τ. u t

y t 1 0 0 1 x t

τ. 电机的时间常数是秒,和 G 是RAD /(V * S)中的输入到角速度的静态增益。

g = 0.25;tau = 1;init_sys = idgrey(“motorDynamics”τ,'光盘',g,0);

状态空间形式的控制方程在Matlab®文件中表示motordynamics.m.要查看此文件的内容,请输入编辑motordynamics.m.在MATLAB命令提示符处。

G 是提供给的已知数量motordynamics.m作为可选参数。

τ. 是一个免费的估计参数。

init_sys.是一个idgrey.模型与摩托车

估计 τ.

sys = greyest(数据,init_sys);

SYS.是一个idgrey.模型中包含的估计值 τ.

的参数值估计SYS., 用getpvec(系统)

分析结果。

选择= compareOptions ('初始条件''零');比较(数据,SYS,INF,OPT)

图包含2个轴对象。轴对象1包含2个类型的2个对象。这些物体代表直流电机(角度位置),SYS:98.35%。轴对象2包含2个类型的2个对象。这些物体代表直流电机(角速度),SYS:84.42%。

SYS.提供98.35%适合角位置,84.42%适合角速度。

在使用正则化常数时,利用参数的先验信息估计直流电机的参数。

该模型通过静态增益参数化G和时间常数 τ. .根据先前的知识,我们知道G大约是4 τ. 约为1.此外,您对价值有更多的信心 τ. G并希望指导估计保持接近最初的猜测。

负荷估算数据。

负载regularizationExampleData.matmotordata.

数据包含电动机的角度位置和给定输入电压的速度测量。

创建一个idgrey.直流电机动力学模型。使用功能DCMotorode.表示灰度盒模型的结构。

mi = idgrey(@dcmotorode,{'G',4;“τ”,1},'光盘',{},​​0);mi = setpar(mi,'标签''默认');

如果你想查看DCMotorode.函数,类型:

类型DCMotorode.m.
功能[a,b,c,d] = dcmotorode(g,tau,ts)%dcmotorode ode文件,表示DC电动机的动态通过增益g和时间常数tau。%% [a,b,c,d,k,x0] = dcmotorode(g,tau,ts)用时间常数tau和静态增益G返回DC电动机的状态空间矩阵%。样品%的时间是TS。如果输入参数TS%为零,%%此文件返回连续时间表示。如果TS> 0,则返回离散时间表示。%%另见Idgrey,Greyest。%版权所有2013 MathWorks,Inc.A = [0 1; 0 -1 / Tau];b = [0;G / TAU];c =眼睛(2); D = [0;0]; if Ts>0 % Sample the model with sample time Ts s = expm([[A B]*Ts; zeros(1,3)]); A = s(1:2,1:2); B = s(1:2,3); end

指定正则化选项Lambda。

选择= greyestOptions;opt.Regularization.Lambda = 100;

指定正则化选项R。

opt.Regularization.R = [1,1000];

您可以在第二个参数上指定更多加权,因为您对价值有更多的信心 τ. G

指定参数的初始值作为常规化选项 θ. *.

Opt.Regularization.Nominal ='模型'

估计正则化灰箱模型。

SYS = Greyest(Motordata,MI,OPT);

扩展能力

介绍了R2012a