필터 지우기
필터 지우기

Solve the chain rule in lagrange equation

조회 수: 3 (최근 30일)
siti khadijah
siti khadijah 2016년 4월 14일
댓글: siti khadijah 2016년 5월 6일
Hai guys,
I would like to ask your opinion about this matter. I have a code as shown below which basically, is the Lagrange equation. I have reached to the Lagrange equation and next, I would like to differentiate the Lagrange equation.
Basically, the Lagrange eqaution is as :
L = KE - PE
As shown in the pic, now, I would like to differentiate the L to the r_dot. Could anyone advice me? I have try several ways, but it does not give me the correct answer. Thanks in advance
Regards,
Siti
syms x1(t) x2(t) x3(t) x4(t)
syms a la
syms m1 m2 m3 m4 I1 I2 I3 I4
syms g h1 h2 h3 h4
T0_1=[cos(x1(t)) 0 sin(x1(t)) 0 ;
sin(x1(t)) 0 -cos(x1(t)) 0;
0 1 0 0;
0 0 0 1;];
T1_2=[cos(x2(t)) 0 sin(x2(t)) 0;
sin(x2(t)) 0 -cos(x2(t)) 0;
0 1 0 0;
0 0 0 1;];
T2_3=[cos(x3(t)) 0 sin(x3(t)) 0;
sin(x3(t)) 0 -cos(x3(t)) 0;
0 1 0 -a;
0 0 0 1;];
T3_4=[cos(x4(t)) 0 -sin(x4(t)) -la*cos(x4(t));
sin(x4(t)) 0 cos(x4(t)) -la*sin(x4(t));
0 -1 0 0;
0 0 0 1;];
T1 = T0_1;
T2 = T1*T1_2;
T3 = T2*T2_3;
T4 = T3*T3_4;
xT1 = T1(1,4);
xT1_dot(t) = diff(xT1);
yT1 = T1(2,4);
yT1_dot(t) = diff(yT1);
xT2 = T2(1,4);
xT2_dot(t) = diff(xT2);
yT2 = T2(2,4);
yT2_dot(t) = diff(yT2);
xT3 = T3(1,4)
xT3_dot(t) = diff(xT3);
yT3 = T3(2,4);
yT3_dot(t) = diff(yT3);
xT4 = T4(1,4);
xT4_dot(t) = diff(xT4);
yT4 = T4(2,4);
yT4_dot(t) = diff(yT4);
% v1 = simplify((xT1_dot(t) + yT1_dot(t))^2);
% v2 = simplify((xT2_dot(t) + yT2_dot(t))^2);
% v3 = simplify((xT3_dot(t) + yT3_dot(t))^2);
% v4 = simplify((xT4_dot(t) + yT4_dot(t))^2);
v1 = ((xT1_dot(t) + yT1_dot(t))^2);
v2 = ((xT2_dot(t) + yT2_dot(t))^2);
v3 = ((xT3_dot(t) + yT3_dot(t))^2);
v4 = ((xT4_dot(t) + yT4_dot(t))^2);
KE = (1/2)*m1*v1 + (1/2)*m2*v2 + (1/2)*m3*v3 + (1/2)*m4*v4 + ...
(1/2)*I1*diff(x1(t), t) + (1/2)*I2*diff(x2(t), t) + (1/2)*I3*diff(x3(t), t) + (1/2)*I4*diff(x4(t), t) ;
PE = m1*g*h1 + m2*g*h2 + m3*g*h3 + m4*g*h4 ;
Lag = KE - PE;

채택된 답변

Mischa Kim
Mischa Kim 2016년 4월 22일
Siti, the Euler-Lagrange tool package on File Exchange does exactly what you are looking for.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by