Clear Filters
Clear Filters

Center of mass of a free-floating body in Simscape Multibody is moving with no external forces

9 views (last 30 days)
I have a Simscape Multibody model consisting of a base body and single link manipulator. The base is attached to the world frame with a 6-DOF joint and the link is attached with a revolute joint. This is a free-floating body with gravity set to zero in order to model a spacecraft. The link is moving with a constant angular rate of 0.1 deg/s about the z axis. No external forces are applied and the base begins at rest; therefore the center of mass of the system should not move relative to the inertial frame. The combined system should rotate about the composite center of mass. However, the composite center of mass (measured by the inertia sensor relative to the world frame and set to mechanism) is moving at a constant velocity in the x direction. The constant value for velocity implies that there is some initial velocity being applied and no subsequent forces to change it, but I have no clue where this could be occuring. I have tested serveral different integrators and time steps and the result is always the same. Does anyone have an idea what could be causing an unwanted intital velocity? I have attached a model showing the issue. Thanks in advance for any help!

Accepted Answer

Yifeng Tang
Yifeng Tang on 20 Jun 2024
I believe there can be many solutions that would satisfy the initial conditions you have set. The only target set here is the speed of the revolute joint. The large object can have an initial velocity & rotation while the small one staying stationary, or the other way around. Multibody happens to settle at an initial solution that both are moving and the larger one has a much lower initial velocity.
One thing you can try and I attached a model where I did this: start with zero velocity everywhere and apply a torque at the joint after some time. The COM will indeed remain in place.
  3 Comments
Yifeng Tang
Yifeng Tang on 20 Jun 2024
That I believe is a solver tolerance thing. You can try staying with the same ode45 solver and change the tolerances to 1 order of magnitude smaller. The shift in x & y COM is down by abour 100 times.
Andrew Barth
Andrew Barth on 20 Jun 2024
I agree, when I switch to using a post-initialization torque rather than an initial velocity the behavior is more like what you see with solver inaccuracies which can be mitigated with different solver types and tolerances. Thanks for your help in looking into this issue!

Sign in to comment.

More Answers (0)

Products


Release

R2023a

Community Treasure Hunt

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

Start Hunting!