How to define the state disturbance loading coefficient matrix for a diffuse cyclic term in a state space model?

1 visualización (últimos 30 días)
When I add a cyclic term to a time series state space model, it is common practise to force the two disturbace variances (one for the cyclic term, the other one for the dummy cyclic term) to be identical. In case of a diffuse state, I can only set the state disturbance loading coefficient matrix B to [nan 0 ; 0 nan]. However, then Matlab considers the two disturbance variances as being different. How can I enforce that they are identical?

Respuestas (1)

Kartik Saxena
Kartik Saxena el 18 de En. de 2024
Hi,
In order to enforce that the two disturbance variances are identical in a time series state space model with a diffuse state, you can use the following approach:
  1. Set the state disturbance loading coefficient matrix B to [nan 0; 0 nan], as you mentioned.
  2. Create a new disturbance covariance matrix Q that has the desired variance for the cyclic term.
  3. Assign this new disturbance covariance matrix Q to both the cyclic term and the dummy cyclic term.
Here's an example of how you can implement this in MATLAB:
% Set up the state space model
A = ...; % State transition matrix
B = [nan 0; 0 nan]; % State disturbance loading coefficient matrix
C = ...; % Output matrix
D = ...; % Feedthrough matrix
% Create the disturbance covariance matrix
variance = ...; % Desired variance for the cyclic term
Q = diag([variance, variance]);
% Assign the disturbance covariance matrix to both terms
sys = ss(A, B, C, D);
sys.DisturbanceCovariance = Q;
By assigning the same disturbance covariance matrix Q to both the cyclic term and the dummy cyclic term, you ensure that their variances are identical.
This will probably resolve your issue, but if it doesn't, let me know and I'll be happy to look into it further.

Categorías

Más información sobre Standard State-Space Model en Help Center y File Exchange.

Productos


Versión

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by