主要内容

感动的

线性灰箱模型估计

语法

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

描述

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是状态数。对于多实验数据,用列,为实验的次数。

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

DisturbanceModel

干扰分量的处理(K),返回为以下值之一:

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

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

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

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

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

适合

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

描述
FitPercent

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

LossFcn

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

均方误差

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

消防工程

模型的最终预测误差。

另类投资会议

原始赤池信息准则(AIC)对模型质量的衡量。

AICc

小样本量修正AIC。

保险代理人

标准化的另类投资会议。

BIC

贝叶斯信息准则(BIC)。

参数

模型参数估计值。

OptionsUsed

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

RandState

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

DataUsed

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

描述
的名字

数据集的名称。

类型

数据类型。

长度

数据样本的数量。

Ts

样品时间。

InterSample

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

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

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

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

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”;数据。OutputName = {角位置的的角速度};数据。OutputUnit = {rad的“rad / s”};数据。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;τ= 1;init_sys = idgrey (“motorDynamics”τ,“cd”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个轴。axis 1包含2个类型为line的对象。这些对象代表直流电机(角位置),sys: 98.35%。axis 2包含2个类型为line的对象。这些对象代表直流电机(角速度),sys: 84.42%。

sys提供了98.35%的适合角度位置和84.42%的适合角速度。

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

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

负荷估算数据。

负载regularizationExampleData.matmotorData

这些数据包含电机在给定输入电压下的角位置和速度的测量值。

创建一个idgrey直流电机动力学模型。使用的函数DCMotorODE表示灰盒模型的结构。

mi = idgrey (@DCMotorODE, {‘G’4;“τ”1},“cd”{}, 0);mi = setpar (mi,“标签”“默认”);

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

类型DCMotorODE.m
函数[A,B,C,D] = DCMotorODE(G,Tau,Ts) %% % [A, B, C, D, K, X0] = DCMOTORODE (G,τ,Ts)返回的状态空间矩阵%直流电机与时间常数τ和静态增益G .示例Ts %时间。% %这个文件返回连续时间表示如果输入参数Ts %是零。如果Ts>0,则返回一个离散时间表示。参见IDGREY, GREYEST。版权所有2013 The MathWorks, Inc.A = [0 1;0 -1/Tau];B = [0;G /τ];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