# calculate output(y) from a state space model

198 views (last 30 days)
Rashmil Dahanayake on 30 Dec 2013
I have defined a first order system in state space. How can I calculate Y matrix, if X matrix known
X'=Ax+Bu; Y=Cx;
I attempted to convert the system to a transfer function using tf command. Then can calculate output by y= tf * u The output matrix appears to be in tf data type. I would like to have y in the same data type as x. (full m file attached, following code is an extract of the state space portion)
%Filter Parameters
Lf= 8e-3; % Inductance for output filter
Cf= 400e-6; % Capacitance for output filter
% state space equations for LC filter
A=[zeros(3,3) eye(3)/(3*Cf) -eye(3)/(3*Cf); -eye(3)/Lf zeros(3,3) zeros(3,3);
B=[zeros(3,3); eye(3)/Lf; zeros(3,3)]; % coefficient for thecontrol variable u
C=eye(9); % coefficient for the output y
D=[zeros(9,3)]; % coefficient for the output y
Ks = 1/3*[-1 0 1; 1 -1 0; 0 1 -1]; % Conversion matrix to transform [iiAB iiBC iiCA] to [iiA iiB iiC]
%Transfer function for inverter output stage
sys= ss(A,B,C,D);
H=tf(sys);
% calculating filtered output
Y=H(1,1) * V_AB;

Honglei Chen on 30 Dec 2013
Once you get the model, sys, you can use lsim to simulate the system behavior. You can find details here
HTH

#### 1 Comment

Rashmil Dahanayake on 31 Dec 2013
Thanks. [y t]=lsim(sys,u,t) command worked well.