主要内容

估计命令行的状态空间模型

黑盒与结构化状态空间模型估算

您可以在命令行中以两种方式估算状态空间模型,具体取决于您的系统性质和您的要求的先验知识。

黑匣子估计

在此方法中,您可以指定模型顺序,以及可选地,配置状态空间矩阵的整体结构的其他模型结构属性。你打电话党卫军ssregest或者n4sid将数据和模型顺序作为主要输入参数,并使用名称-值对来指定任何附加属性,如模型样本时间、馈通的存在、无噪声成分等。你不需要直接计算系数一种B.CD.K.,X0矩阵。

结构估计

在这种方法中,您将创建并配置IDS.包含所有系统矩阵的初始值的模型。您使用结构财产的财产IDS.模型指定所有参数约束。例如,您可以将系统矩阵的某些系数指定为固定并强加对其他值上的最小/最大限制。为了快速配置参数化以及是否估计馈通和干扰动态,使用ssform.

配置后IDS.具有所需约束的模型,您将此模型指定为输入参数党卫军命令。你不能使用n4sid或者ssregest对于结构化的评估。

笔记

  • 结构化估计方法也称为灰度盒建模。但是,在该工具箱中,仅在参考时使用“灰框建模”术语idgrey.idnlgrey楷模。

  • 使用结构化估计方法,您不能指定状态空间系数之间的关系。每个系数基本上都被认为是相互独立的。为强制依赖关系,或使用更复杂的参数化形式,请使用idgrey.模型和估计量。

使用SSEST,SSREGEST和N4SID估算状态空间模型

先决条件

您可以使用迭代估计命令估计连续时间和离散时间的状态空间模型党卫军这最小化了预测误差以获得最大似然值。

使用以下常规语法来配置和估算状态空间模型:

m = ssest(数据,n,opt,name,值)

在哪里数据是估计数据,N模型是定货的吗选择包含配置状态空间模型估计的选项。这些选项包括处理初始条件,输入和输出偏移,估计焦点和搜索算法选项。OPT可以跟随名称 - 值对输入参数,用于指定可选的模型结构属性,例如馈通的存在,模型的规范形式,以及输入延迟。

作为替代品党卫军,可以使用非迭代子空间估计器n4sid或者ssregest

m = n4sid(data,n,opt,Name,Value) m = ssregest(data,n,opt,Name,Value)

除非您将采样时间指定为名称 - 值对输入参数,否则n4sidssregest估计离散时间模型,而党卫军估计连续时间模型。

笔记

党卫军用途n4sid初始化状态空间矩阵,需要更长的时间n4sid估计模型,但通常提供更好的数据。

有关验证模型的信息,请参见评估后验证模型

选择A,B,C矩阵的结构

默认情况下,所有条目一种B.,C将状态空间矩阵视为自由参数。使用形式的名称-值对输入参数党卫军,您可以选择使用较少参数的各种规范形式,如伴随形式和模态形式。

有关估计特定状态空间参数化的更多信息,请参阅:

选择连续时间和离散时间表示

为了估计状态空间模型,您可以选择在零和估计数据的零和估计数据之间切换模型采样时间。你可以使用这个TS.名称值对输入参数。

  • 默认情况下,党卫军估计连续时间模型。如果您使用的是使用非零采样时间的数据集,数据,其中包括所有时域数据,您也可以使用以下方式估计离散时间模型:

    模型= SSEST(数据,NX,'ts', data.Ts);

    如果使用的是连续时间频域数据,则无法估计离散时间模型。

  • 默认情况下,n4sidssregest估计一个模型,其采样时间与数据的模型匹配。因此,对于时域数据,n4sidssregest提供一个离散时间模型。你可以使用以下方法来估计连续时间模型:

    Model = N4SID(数据,NX,'ts', 0);

    或者

    = ssregest(数据、nx模型'ts', 0);

选择估计D, K和X0矩阵

对于具有任何参数化的状态空间模型,您可以指定是否估计D.K.X0矩阵分别表示输入到输出馈通,噪声模型和初始状态。

对于具有结构化参数化的状态空间模型,您还可以指定来估计D.矩阵。但是,对于自由和规范形式,结构的结构D.矩阵是根据您选择的“引线”名称值对输入参数。

D矩阵

默认情况下,D.矩阵不被估计,其值固定为零,除了静态模型。

  • 黑盒估计:使用威胁名称-值对输入参数,表示来自单个输入的馈通是否存在。例如,在双输入模型中,只有第二个输入有馈通,使用:

    模型= N4SID(数据,n,“引线”,[误真实]);
  • 结构估计:配置init_sys.structure.d.,在那里init_sys是一个IDS.表示所需模型结构的模型。强制不给一世th输入,设置:

    init_sys.structure.d.Value(:,i)= 0;init_sys.structure.d.free = true;init_sys.structure.d.free(:,i)= false;

    第一行指定了值的值一世-tth d为零。下一行指定所有元素D.作为自由的、可估计的参数。最后一行指定一世的第i列D.矩阵是固定的估计。

    另外,使用ssform.“引线”名称-值对。

K矩阵

K.表示模型的噪声矩阵,使模型的噪声分量为:。

X ̇ = 一种 X + K. E. y N = C X + E.

对于频域数据,估计没有噪声模型K.设置为0.对于时间域数据,K.在黑盒估计设置中默认是估计的。yN是扰动对模型输出的贡献。

  • 黑盒估计:使用dispancemodel.名称 - 值对输入参数指示干扰组件是否固定为零(指定value ='none')或估计为一个免费参数(指定值=“估计”)。例如,使用:

    模型= N4SID(数据,n,'diskancemodel'“没有”);
  • 结构估计:配置值init_sys.Structure.K参数,其中init_sys是一个IDS.表示所需模型结构的模型。你可以修正一些K.矩阵系数到已知值并为自由系数规定最小/最大边界。例如,仅估计第一列K.矩阵为两输出模型:

    kpar = init_sys.Structure.K;kpar.Free (: 1) = true;kpar.Free (:, 2) = false;kpar.Value (:, 2) = 0;%第二列值固定为零init_sys.structure.k = KPAR;

    另外,使用ssform.

当不确定如何轻松固定或自由的所有系数K.,最初可以省略估计噪声参数K.着重于实现一个合理的系统动力学模型。估计完动态模型后,可以使用党卫军配置时更好模型K.要释放的参数。例如:

init_sys = ssest(数据,n,'diskancemodel'“没有”);init_sys.Structure.K。自由= true;sys = ss(数据、init_sys);

在哪里init_sys是没有噪音的动态模型。

设置K.在现有模型中为零,您可以设置其价值0.自由旗帜到

m.Structure.K.Value = 0;m.Structure.K.Free = false;

X0矩阵

初始状态矢量X0获得为模型估计的副产物。这n4sid党卫军ssregest命令返回值X0作为它们的第二个输出参数。属性可以选择在模型估计期间如何处理初始条件InitialState估算选项。用n4sidOptions(为了n4sid),ssestoptions.(为了党卫军)或ssregestOptions(为了ssregest)创建估计选项集。例如,为了在估计期间将初始状态保持为零。n4sid

选择= n4sidoptions;opt.initialstate =.'零';[m, X0] = n4sid(数据、n选择);

返回的X0变量是长度的零矢量N

当您使用多分水管数据估计模型时,X0矩阵包含与数据实验一样多的列。

有关的完整值列表initialstates.选项,参见为迭代估计算法指定初始状态

相关话题