Troubleshooting ODE45 Matlab Subfunction: Save Matrix Values in Main Code

  • Context: MATLAB 
  • Thread starter Thread starter hasek
  • Start date Start date
  • Tags Tags
    Matlab Ode45
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
3 replies · 8K views
hasek
Messages
3
Reaction score
0
I'm stuck with a problem with the subfunction ODE45 of Matlab:

I need to save two matrixes' values created inside the ODE subfunction.
I can't create an index inside the subfunction because I have to define it at the start so at every round it returns to zero.

This is what I've done in the main:

t0 = 0;
tf = 450;
y0 = [0 0 0 0 0 0];
options = odeset('RelTol', 1e-6);
[t, y] = ode45('ac_im3_IPM_prova1', [t0,tf] , y0, options);

and this is the subfunction:

function yp = ac_im3_IPM_prova1(t, y);
.
.
.
vsd = 2/3 * (vsa * cos(ttg) + vsb * cos(ttg - 2*pi/3) + vsc * cos(ttg - 4*pi/3));
vsq = -2/3 * (vsa * sin(ttg) + vsb * sin(ttg - 2*pi/3) + vsc * sin(ttg - 4*pi/3));
.
.
.
yp(1) = (vsd - Rs*isd + (wge)*fsq);
yp(2) = (vsq - Rs*isq - (wge)*fsd);
yp(3) = ( - Rr*ird + (wge-p*wm)*frq);
yp(4) = ( - Rr*irq - (wge-p*wm)*frd);
yp(5) = (tm - (TL + KD*wm)) / J;
yp(6) = wge;

yp = yp';

I'd like to save vsd and vsq values of every round in a matrix or in someway!
 
Physics news on Phys.org
You could always write you own one-line (fixed step-size) RK4 code.
 
Ok, now I created an index inside the subfunction in this way:

i=0;
if t ~= 0
load('i');
end
i=i+1;
save('i');

Now there is another problem:

I'm wondering if this procedure could affects the simulation time returning me wrong values
 
Hey i need help in ODE45 too

i have the following code

>>for i=1:5
>>tspan=[0 30]
>>h0=Hv(i)
>>[t,h]=ode45['a ODEfunction',tspan,h0]
>>plot(t,h)
>>end

in this loop how can i save 5 values of [t,h],
as t, h produces each loop run like follows
t=
1
2
3
4
.
.
.
h=
5
6
7
8..

also i need to plot all of them n i could view the 5 graphs them..pls help..