隐式地创建时变状态空间模型
这个例子显示了如何创建一个时变,通过状态空间模型描述模型的参数映射函数舰导弹
(例如,隐式地创建一个状态空间模型)。
假如时间1到10,是静止的状态模型AR(2)和马(1)模型,分别观察模型是两个国家的总和。从时间11到20,状态模型只包括第一AR(2)模型。
象征性的,模型是:
写一个函数,用于指定参数参数个数
状态空间模型映射到矩阵,初始状态值和状态的类型。
% 2015年版权MathWorks公司。函数[A, B, C, D, Mean0 Cov0, StateType] = timeVariantParamMap (params)%时变参数状态空间模型映射函数的例子。这%功能映射向量参数状态方程矩阵(A, B, C,% D),初始状态值和初始状态(Mean0和方差% Cov0),状态(StateType)的类型。从时间1到10,%状态模型是一种基于“增大化现实”技术(2)和一个马(1)模型和观测模型%两种状态的总和。从时间11到20,状态模型%的AR(2)模型。varu11 = exp (params (3));%积极方差约束vare11 = exp (params (6));vare12 = exp (params (8));A1 = {(params (1) params (2) 0 0;1 0 0 0;0 0 0 params (4);0 0 0 0]};B1 = {(√varu11 0;0 0;0 1;0 1]}; C1 = {params(5)*[1 0 1 0]}; D1 = {sqrt(vare11)}; Mean0 = [0.5 0.5 0 0]; Cov0 = eye(4); StateType = [0 0 0 0]; A2 = {[params(1) params(2) 0 0; 1 0 0 0]}; B2 = {[sqrt(varu11); 0]}; A3 = {[params(1) params(2); 1 0]}; B3 = {[sqrt(varu11); 0]}; C3 = {params(7)*[1 0]}; D3 = {sqrt(vare12)}; A = [repmat(A1,10,1);A2;repmat(A3,9,1)]; B = [repmat(B1,10,1);B2;repmat(B3,9,1)]; C = [repmat(C1,10,1);repmat(C3,10,1)]; D = [repmat(D1,10,1);repmat(D3,10,1)];结束
将该代码保存为一个文件命名timeVariantParamMap.m
在你的MATLAB®路径。
通过状态空间模型创建函数timeVariantParamMap
作为句柄函数舰导弹
。
Mdl =舰导弹(@timeVariantParamMap);
舰导弹
隐式地创建状态方程模型。通常情况下,你无法验证隐式创建的状态空间模型。
Mdl
是一个舰导弹
含有未知参数的模型对象。你可以通过估计未知参数Mdl
和响应数据估计
。