How to set state space model structure for system identification?

1 visualizzazione (ultimi 30 giorni)
I am using the system identification toolbox to develop a continuous time state space model for 2 input one output system with disturbance component. The number of states is 1 (order = 1).
dx/dt = A x(t) + B u(t) + K e(t)
y(t) = C x(t) + D u(t) + e(t)
A is 1x1
B is 1x2
u is 2x1
C is 1x1
D is 1x2
When using the system identifaction App, it automatically assumes all matrices (A,B,C,D) are free parameters to be estimated. How can I force the C and D matrices to be the following?
C = 1;
D = [0 0];

Risposta accettata

Rakshith Badarinath
Rakshith Badarinath il 10 Feb 2022
For anyone in the same situation, here is the solution:
opt = ssestOptions;
opt.EnforceStability = 1;
A = 0; % initial value
B = [0 0];
C = 1;
D = [0 0];
Ts = 0; % Continuous time
init_sys = idss(A,B,C,D,'Ts',Ts);
% Set C and D structures as fixed (use values from intialized state space
% system init_sys
init_sys.Structure.A.Free = true;
init_sys.Structure.B.Free = true;
init_sys.Structure.C.Free = false;
init_sys.Structure.D.Free = false;
init_sys.Structure.K.Free = true;
% estimate model based on the data
constrained_stateSpace_model = ssest(your data,init_sys,opt);

Più risposte (0)

Categorie

Scopri di più su Linear Model Identification in Help Center e File Exchange

Prodotti


Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by