主要内容

隐式地创建时变状态空间模型

这个例子显示了如何创建一个时变,通过状态空间模型描述模型的参数映射函数舰导弹(例如,隐式地创建一个状态空间模型)。

假如时间1到10,是静止的状态模型AR(2)和马(1)模型,分别观察模型是两个国家的总和。从时间11到20,状态模型只包括第一AR(2)模型。

象征性的,模型是:

c数组$ $ \开始{}{}& # xA;左\[{\开始{数组}{* {20}{c}} & # xA;{{间{1 t}}} \ \ & # xA;{{间{2 t}}} \ \ & # xA;{{间{3 t}}} \ \ & # xA;{{间{4 t}}} & # xA;结束\{数组}}\右]= \离开[{\开始{数组}{* {20}{c}} & # xA;{{\φ_1}}和{{\φ_2}}& # 38;0 & # 38;0 \ \ & # xA; 1 & # 38; 0 & # 38; 0 & # 38; 0 \ \ & # xA; 0 & # 38; 0 & # 38; 0 & # 38; \θ\ \ & # xA; 0 & # 38; 0 & # 38; 0 & # 38; 0 & # xA;结束\{数组}}\右]\离开[{\开始{数组}{* {20}{c}} & # xA;{{间{1,t - 1}}} \ \ & # xA;{{间{2,t - 1}}} \ \ & # xA;{{间{3 t - 1}}} \ \ & # xA;{{间{4,t - 1}}} & # xA;结束\{数组}}\右]+ \离开[{\开始{数组}{* {20}{c}} & # xA;{{\σ_1}}& # 38;0 \ \ & # xA; 0 & # 38; 0 \ \ & # xA; 0 & # 38; 1 \ \ & # xA; 0 & # 38; 1 & # xA;结束\{数组}}\右]\离开[{\开始{数组}{* {20}{c}} & # xA; {{u_ {1 t}}} \ \ & # xA; {{u_ {2 t}}} & # xA;结束\{数组}}\右]\ \ & # xA; {y_t} = {a_1} \离开({{间t}{1} +{间{3 t}}} \右)+{\σ_2}{\ varepsilon _t} # xA;公司结束\{数组}{\ \ rm;} t = 1,…, 10 $ $

c数组$ $ \开始{}{}& # xA;左\[{\开始{数组}{* {20}{c}} & # xA;{{间{1 t}}} \ \ & # xA;{{间{2 t}}} & # xA;结束\{数组}}\右]= \离开[{\开始{数组}{* {20}{c}} & # xA;{{\φ_1}}和{{\φ_2}}& # 38;0 & # 38;0 \ \ & # xA; 1 & # 38; 0 & # 38; 0 & # 38; 0 & # xA;结束\{数组}}\右]\离开[{\开始{数组}{* {20}{c}} & # xA;{{间{1,t - 1}}} \ \ & # xA;{{间{2,t - 1}}} \ \ & # xA;{{间{3 t - 1}}} \ \ & # xA;{{间{4,t - 1}}} & # xA;结束\{数组}}\右]+ \离开[{\开始{数组}{* {20}{c}} & # xA;{{\σ_1}}\ \ & # xA; 0 & # xA;结束\{数组}}\右]{u_ t} {1} \ \ & # xA; {y_t} = {a₂}{间t}{1} +{\σ_3}{\ varepsilon _t} # xA;公司结束\{数组}{\ \ rm;} t = 11, $ $

c数组$ $ \开始{}{}& # xA;左\[{\开始{数组}{* {20}{c}} & # xA;{{间{1 t}}} \ \ & # xA;{{间{2 t}}} & # xA;结束\{数组}}\右]= \离开[{\开始{数组}{* {20}{c}} & # xA;{{\φ_1}}和{{\φ_2}}\ \ & # xA; 1 & # 38; 0 & # xA;结束\{数组}}\右]\离开[{\开始{数组}{* {20}{c}} & # xA;{{间{1,t - 1}}} \ \ & # xA;{{间{2,t - 1}}} & # xA;结束\{数组}}\右]+ \离开[{\开始{数组}{* {20}{c}} & # xA;{{\σ_1}}\ \ & # xA; 0 & # xA;结束\{数组}}\右]{u_ t} {1} \ \ & # xA; {y_t} = {a₂}{间t}{1} +{\σ_3}{\ varepsilon _t} # xA;公司结束\{数组}{\ \ rm;} t = 12,…, 20。$ $

写一个函数,用于指定参数参数个数状态空间模型映射到矩阵,初始状态值和状态的类型。

% 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和响应数据估计

另请参阅

||

相关的例子

更多关于