主要内容

线性灰度盒模型估计

语法

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

描述

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

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

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

输入参数

数据

估计数据。

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

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

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

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

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

init_sys

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

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

选择

估算选项。

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

  • 估计目标

  • 初始化选择

  • 扰动模型处理

  • 用数值搜索方法进行估计

输出参数

sys

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

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

报告字段 描述
状态

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

方法

评估使用的命令。

InitialState

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

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

  • “零”—初始状态设置为零。

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

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

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

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

DisturbanceModel

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

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

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

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

  • '估计'- - - - - -K作为一个独立的估计参数处理。

这个字段对于查看干扰分量是如何处理时特别有用DisturbanceModel估计选项集中的选项为“汽车”

适合

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

描述
FitPercent

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

LossFcn

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

均方误差

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

消防工程

模型的最终预测误差。

另类投资会议

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

AICC.

样本规模小的AIC纠正。

奈西

归一化的AIC。

BIC

贝叶斯信息准则(BIC)。

参数

模型参数估计值。

OptionsUsed

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

RandState

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

DataUsed

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

描述
姓名

数据集的名称。

类型

数据类型。

长度

数据样本数量。

TS.

样品时间。

InterSample

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

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

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

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

InputOffset

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

OutputOffset

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

终止

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

描述
WhyStop

终止数值搜索的原因。

迭代

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

FirstOrderOptimality

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

FcnCount

调用目标函数的次数。

UpdateNorm

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

LastImprovement

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

算法

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

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

,以获取更多使用信息报告,请参阅评估报告

X0.

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

该数组也存储在参数模型场报告财产。

例子

全部折叠

利用线性灰盒框架估计直流电机的参数。

加载测量数据。

负载(fullfile (matlabroot'工具箱'“识别”“iddemos”'数据'“dcmotordata”));数据= iddata(y, u, 0.1,)“名字”直流电机的);数据。InputName =“电压”;数据。InputUnit =“V”;data.outputname = {角位置的的角速度};数据。OutputUnit = {rad的'rad / s'};数据。TS.tart = 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;τ= 1;init_sys = idgrey (“motorDynamics”τ,'光盘',g,0);

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

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

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

init_sys是一个idgrey.模型与motor.m

估计 τ

sys =老龄化最严重的(数据,init_sys);

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

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

分析结果。

选择= compareOptions (“InitialCondition”“零”);比较(数据、系统正无穷,选择)

图包含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