6DOF joint accelerating without a force present

1 view (last 30 days)
Dear all,
I have modelled a rigid body free floating in space using the 6DOF joint without any forces working on it, whatsoever. Since I need the accelerations and velocities in the body frame, and the position in the world frame, I'm using a transform sensor (set to 'Follower') to sense the acceleration and velocity of the body frame with respect to the world, expressed in the body frame. The position is then outputted by the 6DOF joint itself.
Whenever I set the initial conditions to a velocity in one axis, and a rotational velocity about another axis, the rigid body seems to accelerate ever faster. Since there is no force acting on it, this should not be possible. You should only be able to see the acceleration fluctuating as a result of the rotating frame, but it shouldn't get any larger. Does anyone know what I'm doing wrong?
Potential useful information: this doesn't happen when the initial velocities (translational and rotational) are in (and about) the same axis, or when the initial velocities are zero. Here are some relevant pictures (the signal 'R' from the transform sensor gets multiplied by a gravity vector and subtracted from the linear acceleration to simulate an accelerometer. However, in this example gravity is turned off so the LinAcc signal is not altered) :
Thank you in advance!
EDIT: What is also a bit peculiar is that while the linear acceleration and velocity are increasing in the output of the transform sensor to about ten times the original value, this isn't visible in the visualization window... The animation seems to go at a steady speed.

Accepted Answer

Nils van der Gaag
Nils van der Gaag on 11 Dec 2023
So I found that if I set the transform sensor to 'non-rotating follower' the accelerations and velocities are actually what I expected it to be. I don't know why it's called non-rotating, because I couldn't find any clear documentation on these frames.

More Answers (1)

Sam Chak
Sam Chak on 6 Dec 2023
In the absence of force, if the initial velocities are non-zero (or start from non-equilibrium states), then the motion of the rigid body will be unstable. In principle, it behaves like a Double Integrator system. If the initial velocities are zero (or start from equilibrium states), then the motion of the rigid body will be stable.
If you want the motion of the rigid body to be uniformly bounded from any non-zero initial velocities, then ensure that the moments of inertia follow the order . For more details, refer to the Tennis Racket Theorem (a.k.a. the Intermediate Axis Theorem).
  7 Comments
Nils van der Gaag
Nils van der Gaag on 7 Dec 2023
Yeah, I know. But the point of using simscape in this case is to not have to derive equations myself. Thanks for your help anyways!
Sam Chak
Sam Chak on 7 Dec 2023
I've found some tools which maybe useful. To derive equations using Simulink, you can utilize the Model Linearizer App or the linearize() command. However, it's important to note that these linearizations are only approximations around operating points, which are generally sufficient for certain applications such as nadir-pointing satellites but may not be suitable for space telescopes that need to point anywhere in the observable universe.
Nevertheless, it's fortunate that you noticed something about the results. Some unaware researchers might have accepted the results without validation, as they may lack the necessary mathematical models or real-time data to verify their Simscape results.

Sign in to comment.

Products


Release

R2023a

Community Treasure Hunt

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

Start Hunting!