model BreakingPendulum3 parameter Real m=1, g=9.81; input Boolean Broken; input Real u; Real pos[2], vel[2]; constant Real PI=3.141592653589793; Real phi(start=PI/4), phid; Real L=0.5, Ldot; equation pos = [L*sin(phi); -L*cos(phi)]; vel = der(pos); phid = der(phi); Ldot = der(L); 0 = if not Broken then [ // Equations of pendulum m*der(phid) + m*g*L*sin(phi) - u; der(Ldot)] else // Equations of free flying mass m*der(vel) = m*[0; -g]; end BreakingPendulum3;