Problem in writing MATLAB code of Simulink model (state space)

1 view (last 30 days)
Hi, I want to write my simulink model into state space model.
Pictures of my simulink model are attached. What I tried so far (and isn't working) is:
dt=0.01;
t=0:dt:10;
for i=1:length(t)
x=A*x+B*u;
u=(G*ref-K*x);
x = cumtrapz(x);
% fun = @(x) x;
% x = integral(fun,0,Inf);
pause;
end
But its results are way different than that of simulink model. Kindly guide me how should I do it.
SharedScreenshot.png
SharedScreenshot1.png

Answers (1)

Raj
Raj on 24 Jul 2019
"I want to write my simulink model into state space model" - Your simulink model is pretty straightforward and already in standard form:
xdot=Ax+Bu
y=Cx+Du
You have your A,B & C matrices. D is zero in your case. There is no need to use the MATLAB function block to complicate things. Just use the Simulink State Space block. Feed in the matrices and you are done!!
  1 Comment
Abdullah Irfan
Abdullah Irfan on 24 Jul 2019
"There is no need to use the MATLAB function block to complicate things. Just use the Simulink State Space block. Feed in the matrices and you are done!!"
I was doing the same. But then I needed to transmit data serially and take data from the other device while this model is working.
I tried to use serial send/receive blocks but they were complicating the things, so my last resort is to convert block parameters into matlab code. I think real problem is integration block, I don't know which command replicates simulink integration block (integral, trapz and cumtrapz aren't those at least)

Sign in to comment.

Categories

Find more on Event Functions in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!