6DOF joint accelerating without a force present

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

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)

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

Thank you for your answer. But if this was the case, I would see the angular velocities change right. That is not happening. They stay at their initial rates, with the angular acceleration at zero. The problem is that the linear velocity and acceleration are increasing, which violates energy conservation. In the case of the intermediate axis th. the energy is conserved.
I see. Can you show the system of differential equations and initial values here? We'll see if MATLAB produces the same results as Simulink.
Can you get those from Simscape?
oh by the way, if I set the transform sensor to 'non-rotating follower', the accelerations read indeed 0. So it seems that either there is a bug in the transorm sensor when it is set to 'follower', or the linear accelerations are expressed in some (undocumented as far as I could find) coordinate and differentiated, or not expressed as linear accelerations in the 'classical' sense, or something else..
I am unfamiliar with Simscape. However, if you have identified a bug, you can report it to the technical staff. Additionally, having mathematical models can be useful when you want to validate that your Simulink results match those obtained in MATLAB.
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!
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!