MATLAB: How to stop ode45 when one of states reach certain value

ode event stopperode45

[x_dot] =derivative(t, x)
x is states [x(1)…..x(4)] I need to stop the integration when x(3) reaches 0.1 when the integration stop record (t)

Best Answer

Opt = odeset('Events', @myEvent);
[T, Y] = ode45(@YourFun, T, Y0, Opt);
function [value, isterminal, direction] = myEvent(T, Y)
value = (Y(3) == 0.1);
isterminal = 1; % Stop the integration
direction = 0;