How can I use ODE45 output to evaluate on each time a function inside a the Odefun

5 ビュー (過去 30 日間)
Juan Luis Chacon
Juan Luis Chacon 2016 年 5 月 16 日
回答済み: Bob 2016 年 10 月 27 日
Hello to everybody
Actually I already have my Quarter vehicle model done using a second Order differential equation f(x, y, xdot, ydot). And it works very good. Let me show you this.
function yp=comportamiento(t,y)
x=f(t)
yp = zeros(4,1);
yp(1)=y(2);
yp(2)= (-((ks+kt)/mw)*y(1)) -((bs/mw)*y(2)) +((ks/mw)*y(3)) + ((bs/mw)*y(4)) + ((kt/mw)*x);
yp(3)=y(4);
yp(4)= ((ks/mb)*y(1)) +((bs/mb)*y(2)) - ((ks/mb)*y(3)) - ((bs/mb)*y(4));
Applying my ode45 fun
tspan=[0:0.001:10];
y0=zeros(4,1);
[t, y] = ode45('comportamiento',tspan,y0);
Results are good. But now, problem is that I need to use a new function. One that looks like f(x, y, xdot, ydot, m(xdot,ydot)). During the calculation each xdot and ydot correspond to y(i1) and y(i2) generated from ODE45, I will need to call another function m(xdot,ydot) using as input every y(i). In others words I don't know how get those y(i) and how to use the to eval my f(x, y,xdot,ydot, m(xdot,ydot)).
I am sure I will need to open a new fun
function odefun=(y(i1),y(i2))
where do I have to indicate that
y(i1)= xdot;
y(i2)=ydot;
mf=m(xdot,ydot)
end
Regards
J.L

回答 (2 件)

Juan Luis Chacon
Juan Luis Chacon 2016 年 6 月 9 日
Finally I got it!!!

Bob
Bob 2016 年 10 月 27 日
Dear Juan Luis Chacon,
Could you please help me with the topic below?
Yours sincerely, Xaris

カテゴリ

Find more on Guidance, Navigation, and Control (GNC) 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!

Translated by