%So thats my ode call and I want it to stop (and save datas % obviously before t=13s) when the value u(1)<=minu
%Where minu is calcuated before.
u0=[vf1m(jj) 0]';tspan=[0 13]';Opt = odeset('Events', @myEvent);[t,u]= ode45(@(t,u) ok(t,u,p2,m,maxu,maxT), tspan, u0,Opt);%I tried something like that, nothing worked.
function [value, isterminal, direction] = myEvent(t, u, minu)value = u(1)<=minuisterminal = 1; % Stop the integration
direction = 0;%Eroor Message
Not enough input arguments.Error in myEvent (line 2)value = u(1)<=minuError in odeevents (line 28) eventValue = feval(eventFcn,t0,y0,eventArgs{:});Error in ode45 (line 148) odeevents(FcnHandlesUsed,odeFcn,t0,y0,options,varargin);Error in skr (line 217)[t,u]= ode45(@(t,u) ok(t,u,p2,m,maxu,maxT), tspan, u0,Opt);
MATLAB: Stop Ode45 when y is less than a value
eventode45
Best Answer