idgreygydF4y2Ba
具有可识别参数的线性ODE(灰盒模型)gydF4y2Ba
描述gydF4y2Ba
一个gydF4y2BaidgreygydF4y2Ba
模型将线性系统表示为具有可识别(可估计)系数的连续时间或离散时间状态空间模型。使用一个gydF4y2BaidgreygydF4y2Ba
当您希望捕获结构化状态空间的复杂关系、约束和先验知识(gydF4y2Ba中的难点gydF4y2Ba
)模型不能封装。要创建gydF4y2BaidgreygydF4y2Ba
模型,你必须清楚地知道控制系统动力学的方程组(常微分方程或差分方程)。gydF4y2Ba
一个gydF4y2BaidgreygydF4y2Ba
模型允许您合并以下条件:gydF4y2Ba
参数约束gydF4y2Ba
中的难点gydF4y2Ba
/gydF4y2Ba党卫军gydF4y2Ba
框架不能处理诸如参数的线性或相等约束,或关于状态、输入、输出或三者的任何组合的方差的先验知识,而这些都是您想包含的已知信息gydF4y2Ba一种任意形式的线性模型,如传递函数或多项式模型,具有参数约束,如已知直流增益、极点位置限制、多个输入的共享分母或MIMO模型中的非零输入/输出延迟gydF4y2Ba
已知和未知系数的微分或差分方程gydF4y2Ba
在这些和类似的情况下,您可以在MATLAB中创建一个ODE(常微分或差分方程)函数gydF4y2Ba®gydF4y2Ba它实现了线性模型的状态空间实现,并指定了约束和先验知识。gydF4y2Ba
创建ODE的简单示例gydF4y2BaidgreygydF4y2Ba
用下面的方程来描述电机动力学。gydF4y2Ba
在这些方程中,gydF4y2BaτgydF4y2Ba单个可估计参数是和吗gydF4y2BaGgydF4y2Ba表示已知的静态增益。gydF4y2Ba
这些方程符合状态空间形式:gydF4y2Ba
在这种情况下,两个gydF4y2Ba一个gydF4y2Ba而且gydF4y2BaBgydF4y2Ba矩阵包含可估计参数gydF4y2BaτgydF4y2Ba,gydF4y2BaBgydF4y2Ba也包括已知的增益gydF4y2BaGgydF4y2Ba.你可以写一个接受的MATLAB函数gydF4y2BaτgydF4y2Ba而且gydF4y2BaGgydF4y2Ba作为输入参数并返回状态空间矩阵gydF4y2Ba一个gydF4y2Ba,gydF4y2BaBgydF4y2Ba,gydF4y2BaCgydF4y2Ba作为输出参数。例如,您可以编写一个函数gydF4y2BamotorFcngydF4y2Ba
如下。gydF4y2Ba
函数gydF4y2Ba[A,B,C] = motorFcn(tau,G)gydF4y2BaODE函数,用于作为参数函数计算状态空间矩阵gydF4y2BaA = [0 1;0 1 /τ);B = [0;G /τ];C =眼睛(2);gydF4y2Ba
在创建函数后,如gydF4y2BamotorFcngydF4y2Ba
,创建gydF4y2BaidgreygydF4y2Ba
通过将该函数指定为其值来建模gydF4y2BaodefungydF4y2Ba
输入参数,如下面的命令所示。gydF4y2Ba
sys = idgrey(@motorFcn,tau0,gydF4y2Ba“c”gydF4y2Ba, G)gydF4y2Ba
tau0gydF4y2Ba
是参数的初始猜测吗gydF4y2BaτgydF4y2Ba而且gydF4y2BaGgydF4y2Ba
指定固定常数。此外,gydF4y2Ba“c”gydF4y2Ba
指示gydF4y2BaidgreygydF4y2Ba
那gydF4y2BaodefungydF4y2Ba
返回与连续时间系统对应的矩阵。有关更多信息,请参见gydF4y2Bafunction_typegydF4y2Ba
.gydF4y2Ba
创建对象的可执行示例gydF4y2BaidgreygydF4y2Ba
从这些电机动力学方程建立模型,见gydF4y2Ba建立参数可估计的灰盒模型gydF4y2Ba.gydF4y2Ba
更一般地,下面的方程描述了连续时间和离散时间系统的状态空间形式。gydF4y2Ba
一个带有输入向量的系统的状态空间模型gydF4y2BaugydF4y2Ba,输出矢量gydF4y2BaygydF4y2Ba,和扰动gydF4y2BaegydF4y2Ba,在连续时间内的形式如下:gydF4y2Ba
在离散时间下,状态空间模型的形式为:gydF4y2Ba
您的MATLAB ODE函数将用户定义的参数合并到gydF4y2Ba一个gydF4y2Ba,gydF4y2BaBgydF4y2Ba,gydF4y2BaCgydF4y2Ba,gydF4y2BaDgydF4y2Ba函数返回的矩阵。相关联的gydF4y2BaidgreygydF4y2Ba
模型引用这个函数和估计函数gydF4y2Ba感动的gydF4y2Ba
而且gydF4y2BapemgydF4y2Ba
在估计参数时使用这些矩阵定义。gydF4y2Ba
有关为。创建ODE函数的详细信息gydF4y2BaidgreygydF4y2Ba
,请参阅gydF4y2Ba估计线性灰盒模型gydF4y2Ba.gydF4y2Ba
创建gydF4y2Ba
创建一个gydF4y2BaidgreygydF4y2Ba
使用gydF4y2BaidgreygydF4y2Ba
命令。为此,编写一个MATLAB函数返回gydF4y2Ba一个gydF4y2Ba,gydF4y2BaBgydF4y2Ba,gydF4y2BaCgydF4y2Ba,gydF4y2BaDgydF4y2Ba可估计参数和采样时间的给定值的矩阵。您可以传递额外的输入参数,例如时间常数或增益,它们不是参数,但ODE在输出参数的表达式中使用它们。gydF4y2Ba
除了gydF4y2Ba一个gydF4y2Ba,gydF4y2BaBgydF4y2Ba,gydF4y2BaCgydF4y2Ba,gydF4y2BaDgydF4y2Ba矩阵,你的MATLAB函数可以返回gydF4y2BaKgydF4y2Ba矩阵如果你想要gydF4y2BaKgydF4y2Ba值为输入参数的函数。你的函数也可以返回初始状态向量gydF4y2Bax0gydF4y2Ba.但是,参数化的替代和推荐方法gydF4y2Bax0gydF4y2Ba就是使用gydF4y2BaInitialStategydF4y2Ba
估算选项gydF4y2BagreyestOptionsgydF4y2Ba
.gydF4y2Ba
注意,您可以编写ODE函数来表示连续时间动态或离散时间动态,而不管函数的性质如何gydF4y2BaidgreygydF4y2Ba
模型本身。例如,您可以指定一个离散时间gydF4y2BaidgreygydF4y2Ba
模型(gydF4y2Basys。t > 0gydF4y2Ba
),它使用ODE函数的连续时间参数化。类似地,您可以指定ODE函数的离散时间参数化,并将其与连续时间idgrey模型(gydF4y2Basys。t = 0gydF4y2Ba
).的gydF4y2BaidgreygydF4y2Ba
输入参数gydF4y2Bafcn_typegydF4y2Ba
通知idgrey模型ODE函数使用什么类型的参数化。有关更多信息,请参见gydF4y2Ba估计线性灰盒模型gydF4y2Ba.gydF4y2Ba
使用估计函数gydF4y2BapemgydF4y2Ba
或gydF4y2Ba感动的gydF4y2Ba
的未知参数的估计值gydF4y2BaidgreygydF4y2Ba
模型。不像其他估计函数,如gydF4y2Ba党卫军gydF4y2Ba
,可以创建一个新的模型对象,gydF4y2Ba感动的gydF4y2Ba
可以估计参数只有一个gydF4y2BaidgreygydF4y2Ba
已存在并指定为输入参数的模型。您可以使用gydF4y2Basys.Structures.ParametersgydF4y2Ba
,在那里gydF4y2BasysgydF4y2Ba
是一个gydF4y2BaidgreygydF4y2Ba
模型。gydF4y2Ba
你可以将gydF4y2BaidgreygydF4y2Ba
模型转换为其他动态系统,例如gydF4y2BaidpolygydF4y2Ba
,gydF4y2Ba中的难点gydF4y2Ba
,gydF4y2Ba特遣部队gydF4y2Ba
,或gydF4y2Ba党卫军gydF4y2Ba
.不能将动态系统转换为gydF4y2BaidgreygydF4y2Ba
模型。gydF4y2Ba
语法gydF4y2Ba
描述gydF4y2Ba
创建线性灰盒模型gydF4y2BasysgydF4y2Ba
= idgrey (gydF4y2BaodefungydF4y2Ba
,gydF4y2Ba参数gydF4y2Ba
,gydF4y2Bafcn_typegydF4y2Ba
)gydF4y2BasysgydF4y2Ba
具有可识别的参数。gydF4y2BaodefungydF4y2Ba
指定与模型参数相关的用户定义函数gydF4y2Ba参数gydF4y2Ba
到它们的状态空间表示。gydF4y2Bafcn_typegydF4y2Ba
指定模型是连续时间参数化、离散时间参数化还是同时参数化。gydF4y2Ba
指定其他参数gydF4y2BasysgydF4y2Ba
= idgrey (gydF4y2BaodefungydF4y2Ba
,gydF4y2Ba参数gydF4y2Ba
,gydF4y2Bafcn_typegydF4y2Ba
,gydF4y2Baextra_argsgydF4y2Ba
)gydF4y2Baextra_argsgydF4y2Ba
那gydF4y2BaodefungydF4y2Ba
需要。gydF4y2Ba
指定采样时间gydF4y2BasysgydF4y2Ba
= idgrey (gydF4y2BaodefungydF4y2Ba
,gydF4y2Ba参数gydF4y2Ba
,gydF4y2Bafcn_typegydF4y2Ba
,gydF4y2Baextra_argsgydF4y2Ba
Ts)gydF4y2BaTsgydF4y2Ba
.gydF4y2Ba
合并由一个或多个名称-值参数指定的其他选项。gydF4y2BasysgydF4y2Ba
= idgrey (gydF4y2BaodefungydF4y2Ba
,gydF4y2Ba参数gydF4y2Ba
,gydF4y2Bafcn_typegydF4y2Ba
,gydF4y2Baextra_argsgydF4y2Ba
,gydF4y2BaTsgydF4y2Ba
,gydF4y2Ba名称,值gydF4y2Ba
)gydF4y2Ba
输入参数gydF4y2Ba
属性gydF4y2Ba
对象的功能gydF4y2Ba
类的函数的信息gydF4y2BaidgreygydF4y2Ba
对象,看到gydF4y2Ba线性灰盒模型gydF4y2Ba.gydF4y2Ba
例子gydF4y2Ba
版本历史gydF4y2Ba
R2006a之前介绍gydF4y2Ba
另请参阅gydF4y2Ba
感动的gydF4y2Ba
|gydF4y2BagreyestOptionsgydF4y2Ba
|gydF4y2BapemgydF4y2Ba
|gydF4y2BaidnlgreygydF4y2Ba
|gydF4y2Ba中的难点gydF4y2Ba
|gydF4y2Ba党卫军gydF4y2Ba
|gydF4y2BagetpvecgydF4y2Ba
|gydF4y2BasetpvecgydF4y2Ba
|gydF4y2Ba堆栈gydF4y2Ba