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

1 Ansicht (letzte 30 Tage)
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?

Antworten (1)

Kartik Saxena
Kartik Saxena am 18 Jan. 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.

Produkte


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by