MatLab ODE Start / Stopp-Bedingungen

Ich habe ein kleines Problem. Ich habe 2 Bewegungsgleichungen 'ph' und 'ph2'. Ich weiß nicht, wie ich ODE so einstellen soll, dass die Berechnung von 'ph' beendet wird, wenn x (1)> 0,111 und danach erst wieder 'ph2' auf 0,111 berechnet wird Zeichne 'ph' + 'ph2' in einen Graphen, hängt von der Zeit ab. 'w' Ich denke, ich muss einige Zeitbeschränkungen festlegen, weiß aber nicht, wie. Ich benutze HILFE, habe aber keinen Nutzen für mich.

[t,y] = ode45(@ph,[0,w_max],[0,0]);

function dx = ph(tt,x)
global F1 c m_c Ff p w s ln f_t sig dstr Ren pn Fex Fzmax xz xn l Fz mn
Fpp = F1 + c*x(1);

if pn<0
 pn=abs(pn);
end

if x(1)<ln

    pn=spline(w,p,tt)-((2*sig)/dstr*Ren);    
    Fex=3.1416.*f_t.*pn.*(ln-x(1));
end

if x(1)<42e-5
     Fz = Fzmax*(1-(1/xz)*(x(1)+l));   
end

if x(1)>44e-3
    m_c=m_c-mn;
end
dx=[x(2);((spline(w,p,tt)*s)-Fpp-Ff-Fex-Fz)./m_c];


[t2,y2] = ode45(@ph2,[0,w_max],[0,0]);

function dx=ph2(tt,x)

    global Fv m_c g f alfa Fzp c m_nbp

    Ft=m_c*g*f;
    Fv = 2*f*(Fzp/cos(alfa));

    if x(1)>0.44

    m_c=m_c+m_nbp

    end

    dx = [x(2);((x(1)*c)-Ft-Fv)/m_c];

Antworten auf die Frage(1)

Ihre Antwort auf die Frage