Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.08 KB | None | 0 0
  1. close all
  2. clear all
  3. % Derive DE for spring
  4. syms x dx a da m l g
  5. T   = 1/2 * m * (dx.^2 + (da*(x)).^2);%m*l^2*dx.^2/2;
  6. V   =  m*g*(x)*sin(a) + 1/2 * 400 * (x-l)^2;%m*g*l*(1 - cos(x));
  7.  
  8.  
  9. %T   = 1/2 * m * (dx.^2 + (da*(x+l)).^2);%m*l^2*dx.^2/2;
  10. %V   =  -m*g*(x+l)*sin(a) + 1/2 * 30 * x^2;%m*g*l*(1 - cos(x));
  11.  
  12. L   = T - V;
  13. E   = T + V;
  14. X   = {x dx a da};
  15. Q_i = {0 0}; Q_e = {0 0};
  16. R   = 0;
  17. par = {m g l};
  18. % Solve Lagrange equations and save DE as .m file
  19. VF  = EulerLagrange(L,X,Q_i,Q_e,R,par,'m','Pendulum_sys');
  20.  
  21. % Solve DE numerically using ode45
  22. m_num   = 1;
  23. g_num   = 9.81;
  24. l_num   = 10;
  25. tspan   = linspace(0, 2*pi, 200);
  26. Y0      = [l_num-0.5 5 90*pi/180 1*pi/180];
  27. options = odeset('RelTol',1e-8);
  28. % Use created .m file to solve DE
  29. [t, Y]  = ode45(@Pendulum_sys,tspan,Y0,options,m_num,g_num,l_num);
  30.  
  31. % Plot state vector and total energy
  32. %plot(t,Y)
  33. polar(Y(:,3), Y(:,1), 'r')
  34. hold on
  35. theta = linspace(0,2*pi);
  36. rho = l_num*ones(size(theta));
  37. polar(theta,rho, 'b')
  38. title('Ressort')
  39. xlabel('t')
  40. ylabel('{x}(t), d{x}/dt(t)')
  41. legend('Position', 'Vitesse')
  42. % End of script
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement