I have a file that uses ODE45. The options and function call both reference seperate script (.m) files. I want to include them all into one large file. How do I do this? I want to include it all into a GUI without having to use any reference files.

1 次查看(过去 30 天)
options = odeset('Events',@takeoff_event2, 'RelTol', 1e-6);
%states are [x v ]
state0= [0 1.2]; %initial condition
%integrate ode's 10
%ode=@(t,state) inrun2(t,state);
[ti,statei,tei,yei,iei]=ode45(@inrun2,tspan,state0,options);
And here are the seperate .m files
takeoff_event2.m
function [value,isterminal,direction] = takeoff_event2(t,state)
global xInrun xExtInrun ext
x=state(1);
% xInrun(end)-2 is the actual xInrun end-- extra added in plot_inrun
xTo=xInrun(end)-ext; % xTo = x takeoff (m)
value(1)=x-xTo;
%xxTovalue=[x xTo value]
isterminal(1)=1;
direction(1)=1;
%pause
return
inrun2.m
function [ statedot ] = inrun2(t,state)
% ODEs for inrun acceleration
% state vector = [ x v ]
global xInrun yInrun dydxInrun kurvature
global m CdA mu eta g
x=state(1); % x = horizantal coordinate
v=state(2);% v = velocity along path
dydx=interp1(xInrun,dydxInrun,x);% finding dydx for any value of x
k=interp1(xInrun,kurvature,x);% finding curvature for any value of x
theta=atan(dydx);% angle of slope at any value of x
statedot=[0 0]';% setting initial value of statedot
statedot(1)=v*cos(theta);
N=m*(g*cos(theta)+k*v*v);% normal force
statedot(2)=-g*sin(theta)-eta*v*v-mu*N*sign(v)/m;
%txvstatedot=[t x v statedot']
%pause
end

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Ordinary Differential Equations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by