SimMechanics Inverse and Forward Dynamics
Mostrar comentarios más antiguos
Hello everyone,
I beg your help, because I've been fighting this problem for more than a week without any particular result...
So, I have a Simulink block-diagram representing 5-links with 5 revolute joints robot-manipulator. First I solve Inverse Dynamics, motion is given to the model as a Nx3 vector with motion, velocity and acceleration, N - is number of steps. Normally I take 1 sec time period with 100 steps. In a simpliest case motion is rotation of 1st joint for pi/2 radians with acceleration within first 0.1 sec, constant motion within interval [0.1, 0.9], and decelearation within last 0.1 sec.
The result of Inverse Dynamics is a portion of computed torques on every joint. This part of simulation goes smoothly. Next I want to perform Forward Dynamics with torques I recieved in previous step, just to check if model works well. And here I have a problem. Results of Forward Dynamics do not match initial motion I set in the beginning, although if I put a sensor on a joint drawing torques, the torques on output match torques on input. So I quess that everything should work... But it doesn't.
Please someone help me. Many thanks in advance.
PS: Here is the link for the model (for a reduced model actually - only 3 joints).
File Initial_motion.mat contains Nx3 vector of motion for the first joint. Load this file first. File robomy_q123 contains simulink model for Inverse Dynamics. After running it, run file Q_fnc.m, which converts torques in function of time. Than run Simulink file robomy_q123_torq, which solves Forward dynamics.
Maybe it would help.
Respuesta aceptada
Más respuestas (1)
Guy Rouleau
el 7 de Mzo. de 2011
2 votos
Hi Peter,
In your question you mention that the reason for doing this is "just to check if model works well". I do not think it is a good way to "check if model works well"
The Inverse dynamics mode should be used for design. You provide a motion and SimMechanics returns the torque necessary to obtain this motion. You can then use this torque in your design, for example to select a motor and gearbox.
SimMechanics is a numerical solver with a tolerance, not an analytical solver. This is why it is not always possible to go back and forth between inverse and forward dynamics... especially for a system in an unstable configuration like yours.
This phenomenon is explained in the SimMechanics documentation, using the four-bar mechanism:
http://www.mathworks.com/access/helpdesk/help/toolbox/physmod/mech/ug/f0-6046.html
1 comentario
Serhii Bahdasariants
el 17 de Nov. de 2021
Hi Guy,
Can I please ask you to post a link to explanation again? I cannot find it in a new version.
Thanks in advance!!
Categorías
Más información sobre Multibody Dynamics en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!