6DOF joint accelerating without a force present

2 次查看(过去 30 天)
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.

采纳的回答

Nils van der Gaag
Nils van der Gaag 2023-12-11
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.

更多回答(1 个)

Sam Chak
Sam Chak 2023-12-6
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 个评论
Nils van der Gaag
Nils van der Gaag 2023-12-7
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 2023-12-7
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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Applications 的更多信息

产品


版本

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by