Implicitly Create Time-Invariant State-Space Model
This example shows how to create a time-invariant state-space model by passing a parameter-mapping function describing the model to ssm (that is, implicitly create a state-space model). The state model is AR(1) model. The states are observed with bias, but without random error. Set the initial state mean and variance, and specify that the state is stationary.
Write a function that specifies how the parameters in params map to the state-space model matrices, the initial state values, and the type of state.
% Copyright 2015 The MathWorks, Inc. function [A,B,C,D,Mean0,Cov0,StateType] = timeInvariantParamMap(params) % Time-invariant state-space model parameter mapping function example. This % function maps the vector params to the state-space matrices (A, B, C, and % D), the initial state value and the initial state variance (Mean0 and % Cov0), and the type of state (StateType). The state model is AR(1) % without observation error. varu1 = exp(params(2)); % Positive variance constraint A = params(1); B = sqrt(varu1); C = params(3); D = ; Mean0 = 0.5; Cov0 = 100; StateType = 0; end
Save this code as a file named timeInvariantParamMap to a folder on your MATLAB® path.
Create the state-space model by passing the function timeInvariantParamMap as a function handle to ssm.
Mdl = ssm(@timeInvariantParamMap);
The software implicitly defines the state-space model. Usually, you cannot verify state-space models that you implicitly define.
Mdl is an ssm model object containing unknown parameters. You can estimate the unknown parameters by passing Mdl and response data to estimate.