主要内容

估计线性灰色矩形模型

指定线性灰色矩形模型结构

你可以估计线性离散和连续时间灰色矩形模型对于任意常微分或差分方程使用变量和输出时域数据,或时间序列数据(输出)。

你必须代表系统在状态方程形式。状态空间模型使用状态变量x (t)来描述一个系统的一阶微分方程,而不是由一个或多个n阶微分方程。

灰色矩形建模的第一步是编写一个函数,它返回整数矩阵的函数定义的参数和信息模型。

使用以下格式来实现线性灰色矩形模型文件中:

[A, B, C, D] = myfunc (parN par1, par2,…, Ts, aux1, aux2,…)

输出参数状态方程矩阵,在哪里myfunc文件的名称。par1 par2,…, parNN模型的参数。每个条目可能是一个标量、向量或矩阵。Ts样品时间。aux1, aux2,…可选的输入参数,myfunc用来计算状态方程矩阵除了参数和样品时间。辅助系统包含辅助变量。你使用辅助变量来改变系统参数的输入函数,并避免编辑该文件。

你可以写的内容myfunc参数化连续时间,或一个离散时间状态空间模型,或两者兼而有之。当您创建线性灰色矩形模型使用myfunc,您可以指定的输出参数的性质myfunc。连续时间状态空间模型的形式:

在连续时间状态方程描述有以下形式:

x ˙ ( t ) = 一个 x ( t ) + B u ( t ) + K e ( t ) y ( t ) = C x ( t ) + D u ( t ) + e ( t ) x ( 0 ) = x 0

在那里,一个,B,CD矩阵参数化的参数吗par1 par2,…, parN。噪声矩阵K和初始状态向量,x0,没有参数化myfunc。在某些应用程序中,您可能想要表达Kx0量,被选择的参数,参数化的一个,B,CD矩阵。处理这种情况下,您可以编写ODE文件,myfunc返回Kx0作为额外的输出参数:

[A, B, C, D, K, x0] = myfunc (par1 par2,,Ts parN aux1 aux2,…)
Kx0因此在一样对待吗一个,B,CD矩阵。他们都是函数的参数par1 par2,…, parN。配置初始状态的处理,x0干扰成分,K评估期间,使用greyestOptions选项设置。

在离散时间状态空间描述也有类似的形式:

x ( k + 1 ) = 一个 x ( k ) + B u ( k ) + K e ( t ) y ( k ) = C x ( k ) + D u ( k ) + e ( t ) x ( 0 ) = x 0

在那里,一个,B,CD现在的离散矩阵参数化的参数par1 par2,…, parNKx0不直接参数化的,但是可以估计如果需要通过配置相应的评估选择。

在创建函数或MEX-file模型结构,您必须定义一个idgrey模型对象。

创建函数来表示一个灰色矩形模型

这个例子展示了如何表示的结构后连续时间模型:

数组$ $ \开始{}{1}& # xA;左\点x (t) = \[{\开始数组{}{* {20}{c}} & # xA; 0 & # 38; 1 \ \ & # xA; 0 &{{\θ_1}}& # xA;结束\{数组}}\右)x (t) +左\[{\开始数组{}{* {20}{c}} & # xA; 0 \ \ & # xA;{{\θ_2}}& # xA;结束\{数组}}\右]u (t) \ \ & # xA;左y (t) = \[{\开始数组{}{* {20}{c}} & # xA; 1 & # 38; 0 \ \ & # xA; 0 & # 38; 1 & # xA;结束\{数组}}\右)x (t) + e (t) \ \ & # xA;左x(0) = \[{\开始数组{}{* {20}{c}} & # xA;{{\θ_3}}\ \ & # xA; 0 & # xA;结束\{数组}}\右]& # xA; \{数组}$ $

这个方程表示一个电机,$ {y_1} (t) = {x_1} (t)美元电机轴的角位置,$ {y_2} (t) = {x_2} (t)美元是角速度。的参数$ -{\θ_1}$电动机的逆时间常数,美元-{{\θ_2}}/{{\θ_1}}$是静态的输入角速度。

电机是静止的t= 0,但它的角位置${\θ_3}$是未知的。假设的近似名义值未知参数${\θ_1}= - 1美元,${\θ_2}= 0.25美元${\θ_3}= 0美元。更多信息关于这个例子中,看到的部分状态空间模型为用户系统标识:理论第二版,Lennart Ljung,普伦蒂斯霍尔PTR, 1999。

连续时间状态空间模型结构被定义为以下方程:

数组$ $ \开始{}{1}& # xA; \点x (t) =外汇(t) +顾(t) + \波浪号千瓦(t) \ \ & # xA; y (t) = Hx (t) + Du (t) + w (t) \ \ & # xA; x (0) = x0 # xA; \{数组}$ $

如果你想使用一个结构化的整数阶估计相同的模型,看看估计结构的连续时间状态空间模型

准备这个模型估算:

  • 创建以下文件来表示模型结构在这个例子:

函数[A, B, C, D, K, x0] = myfunc (par, T) = [0 1;0(1)]相当;B =(0;(2)持平);C =眼(2);D = 0 (2, 1);K = 0 (2, 2);x0 =((3)相当;0);

保存文件,这样在MATLAB®搜索路径。

  • 使用下面的语法来定义一个idgrey基于的模型对象myfunc文件:

票面价值= [1;0.25;0);辅助= {};T = 0;m = idgrey (“myfunc”票面价值,“c”、辅助T);

在哪里票面价值表示一个向量的所有用户定义的参数,包含他们的名义(初始)值。在这个例子中,所有纯量值参数分组票面价值向量。纯量值参数也可以被视为独立的ODE函数输入参数myfunc“c”指定的参数化是在连续时间。辅助代表可选参数。作为myfunc没有任何可选参数,可以使用吗辅助= {}T指定了样本时间;T = 0表明一个连续时间模型。

负荷估算数据。

负载(fullfile (matlabroot“工具箱”,“识别”,“iddemos”,“数据”,“dcmotordata”));data = iddata (y、u, 0.1);

使用感动的估计灰色矩形参数值:

m_est =老龄化最严重的(数据);

在哪里数据评估数据和吗是一个估计的初始化idgrey模型。m_est是估计的idgrey模型。

另请参阅

|

相关的话题