Bonjour,
J'essaye de résoudre avec le calcul symbolique de matlab les équations d'euler-lagrange pour le pendule inversé triple.
Mon code est comme ceci
Mais matlab me dit "explicit solution could not be found". Est-ce qu'il y a une erreur au niveau de la modélisation physique? Au niveau du code?Code:clear variables syms a1 real syms a2 real syms a3 real syms l1 real syms l2 real syms phi1(t) syms phi2(t) syms phi3(t) syms s(t) syms u(t) syms mc real syms m1 real syms m2 real syms m3 real syms J1 real syms J2 real syms J3 real syms g syms tau %damping factors syms d1 real syms d2 real syms d3 real G=[d1+d2,-d2,0,0;-d2,d2+d3,-d3,0;0,-d3,d3,0;0,0,0,0]; R=0.5*d1*diff(phi1,t)^2+0.5*d2*(diff(phi2,t)-diff(phi1,t))^2+0.5*d3*(diff(phi3,t)-diff(phi2,t))^2; q=[phi1;phi2;phi3;s]; qdot=diff(q,t); q=formula(q); qdot=formula(qdot); pc0=[s;0]; %position of the cart pc1=[s-a1*sin(phi1);a1*cos(phi1)]; pc2=[s-l1*sin(phi1)-a2*sin(phi2);l1*cos(phi1)+a2*cos(phi2)]; pc3=[s-l1*sin(phi1)-l2*sin(phi2)-a3*sin(phi3);l1*cos(phi1)+l2*cos(phi2)+a3*cos(phi3)]; yc1=[0,1]*pc1; yc2=[0,1]*pc2; yc3=[0,1]*pc3; vc1=diff(pc1,t); vc2=diff(pc2,t); vc3=diff(pc3,t); vc1Norm2=transpose(vc1)*vc1; vc1Norm2=simplify(vc1Norm2); vc2Norm2=transpose(vc2)*vc2; vc2Norm2=simplify(vc2Norm2); vc3Norm2=transpose(vc3)*vc3; vc3Norm2=simplify(vc3Norm2); V=g*(m1*yc1+m2*yc2+m3*yc3); gg=[diffDepVar(V,phi1);diffDepVar(V,phi2);diffDepVar(V,phi3);diffDepVar(V,s)]; gg=formula(gg); T=0.5*(mc*diff(s,t)^2+m1*vc1Norm2+m2*vc2Norm2+m3*vc3Norm2+J1*diff(phi1,t)^2+J2*diff(phi2,t)^t+J3*diff(phi3,t)^2); T=simplify(T); L=T-V; L=simplify(L); R=0.5*(d1*diff(phi1,t)^2+d2*(diff(phi2,t)-diff(phi1,t))^2+d3*(diff(phi3,t)-diff(phi2,t))^2); eulerLagrange=@(f,t,x,xd) diff(diffDepVar(f,xd),t)-diffDepVar(f,x)+diffDepVar(R,xd); dL1=eulerLagrange(L,t,phi1,diff(phi1,t)); eqn1=dL1==0; dL2=eulerLagrange(L,t,phi2,diff(phi2,t)); eqn2=dL2==0; dL3=eulerLagrange(L,t,phi3,diff(phi3,t)); eqn3=dL3==0; dL4=eulerLagrange(L,t,s,diff(s,t)); eqn4=dL4==tau; dsolve(eqn1,eqn2,eqn3,eqn4);
Merci de votre aide
PS : c1, c2 , c3 sont les centre de masse des barres et R est la fonction de dissipation de Rayleigh (ne pas préter attention à G ou a gg).
-----