About the correct connection method of SimscapeMultibody and Simscape block in the calculation of inverse dynamics.

2 views (last 30 days)
I am making a program to do simulations on robot dynamics and inverse dynamics.
To that end I use Simscape and SimscapeMUltibody.
In dynamics calculation, I heard that it is necessary to match the "power" of the block of the Simscape part and the block of the SimscapeMultibody part and exchange information with each other.
"Power" = Torque * Angular speed
This should be no problem if you connect like the image below.
How should we connect in inverse dynamics calculations?
画像1_動力学計算ForwardDynamics.png
I created a calculation model of inverse dynamics as shown in the image below.
First, calculate the torque with Multibody from the movement of the arm.
Next, I thought that the torque that needs to be generated by the motor can be simulated via the speed reducer and friction elements by connecting in the reverse order to the Simscape part (dynamic model) in the image above.
However, in the image below, I cannot think that the power is matched between Simscape and SimscapeMultibody.
I think that it is unilateral transmission.
What are the correct connection and wiring methods?
画像2_逆動力学計算InverseDynamics.png
This model applies the "simple pendulum" example.

Accepted Answer

Tomoyuki Nishikori
Tomoyuki Nishikori on 18 Nov 2019
Fortunately, we got answers from Mathworks staff. From the conclusion, it seems that the way of connecting the above figures is wrong. I changed the configuration and procedure of the robot simulation model. The procedure is as follows. First, calculate the angular velocity and torque of the joint using an inverse kinematic model. Using this as a target value, we decided to evaluate how much the hand position can be reproduced by giving torque and angular velocity to the dynamic simulator.
The answers from the mathworks staff were automatically translated from Japanese to English and written below.
Simscape Multibody and Simscape are linked by power. Simscape Multibody's hand position is given to the model consisting of Simscape model, and the torque of Simscape is obtained by inverse dynamics. Furthermore, both the speed source and torque source are applied to the Simscape circuit. It is to input and calculate.
In conclusion, it is difficult, and I think that it is difficult to confirm the coincidence of dynamics calculation and inverse dynamics calculation for the linked model.
For example, can you model only Simscape Multibody?
Actually, the Sismcape part is deleted, the torque of the Revolute joint is obtained by the reverse dynamics calculation, then the forced displacement of the hand is deleted by the dynamics calculation, and the torque obtained by the reverse dynamics calculation is obtained by the Revolute joint. When entered as the torque, the behavior was almost the same.

More Answers (1)

J Chen
J Chen on 14 Oct 2019
You input torque to the revolute joint block in forward dynamics. Doucle click the block. Expand Actuation and set the Torque to Provided by Input. Of course, torque can be calculated from power.
You input angle to the revolute joint block in inverse dynamics. Doucle click the block. Expand Actuation and set the Motion to Provided by Input and set the Torque to Automatically Computed. You also need a Simulink-PS Converter block and set the Filtering and derivatives (under Input Handling tab) to Filter input, ... and then set the Input filtering order to Second-order filtering.

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!