主要内容

感动的

线性灰盒模型估计

语法

Sys = greyest(data,init_sys)
Sys = greyest(data,init_sys,opt)
[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模型。

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

  • “估计”—初始状态被视为一个独立的估计参数。

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

  • 两倍长度的向量Nx,在那里Nx是状态数。对于多实验数据,采用矩阵列,是实验的次数。

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

DisturbanceModel

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

  • “模型”- - - - - -K对象使用的ODE文件参数化idgrey模型。

  • “固定”的值K的属性idgreyModel固定为其原始值。

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

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

时,此字段对于查看如何处理扰动组件特别有用DisturbanceModel选项中的值为“汽车”

适合

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

描述
FitPercent

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

LossFcn

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

均方误差

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

消防工程

模型的最终预测误差。

另类投资会议

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

AICc

小样本量校正AIC。

保险代理人

标准化的另类投资会议。

BIC

贝叶斯信息准则(BIC)。

参数

模型参数估计值。

OptionsUsed

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

RandState

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

DataUsed

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

描述
的名字

数据集的名称。

类型

数据类型。

长度

数据样本数量。

Ts

样品时间。

InterSample

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

  • “zoh”-零阶保持器在样本之间保持分段恒定的输入信号。

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

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

InputOffset

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

OutputOffset

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

终止

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

描述
WhyStop

终止数值搜索的原因。

迭代

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

FirstOrderOptimality

-搜索算法结束时梯度搜索向量的norm。

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;Tau = 1;Init_sys = idgrey(“motorDynamics”τ,“cd”G 0);

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

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

τ 是一个自由的估计参数。

init_sys是一个idgreymotor.m

估计 τ

Sys = greyest(data,init_sys);

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

获取与。关联的估计参数值sys,使用getpvec(系统)

分析结果。

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

图中包含2个轴对象。坐标轴对象1包含2个line类型的对象。这些对象表示验证数据(Angular位置),sys: 98.35%。坐标轴对象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
function [A,B,C,D] = DCMotorODE(G,Tau,Ts) % DCMotorODE ODE文件,表示由增益G和时间常数Tau参数化%的直流电机动态。% % [A,B,C,D,K,X0] = DCMOTORODE(G,Tau,Ts)返回具有时间常数Tau和静态增益G的dc电机的状态空间矩阵%。采样%时间为Ts。% %如果输入参数Ts %为零,该文件返回连续时间表示。如果Ts>0,则返回离散时间表示。参见IDGREY, GREYEST。版权所有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。

opt = greyestOptions;opt. regulalizing . lambda = 100;

指定正则化选项R。

opt. regulalizing . r = [1, 1000];

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

将参数的初始值指定为正则化选项 θ *。

opt.Regularization.Nominal =“模型”

估计正则化灰盒模型。

sys = greyest(motorData, mi, opt);

扩展功能

版本历史

在R2012a中引入

Baidu
map