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

1 visualizzazione (ultimi 30 giorni)
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

Risposte (1)

Raj
Raj il 24 Lug 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 Commento
Abdullah Irfan
Abdullah Irfan il 24 Lug 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)

Accedi per commentare.

Categorie

Scopri di più su Event Functions in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by