[Question for developers] InertiaLength VS Inertia

  • Hi,

    in the "RigidBody" class, there are 2 attributes with regard to rotational inertia.

    The first one is "InertiaLength", and that describes the radii of gyration that, when squared and multiplied for the body mass, give the values of the principal moments of inertia.

    The second one is called "Inertia", and is described as: "The strength of the inertia tensor as a 3 x 3 matrix".

    So my questions are:

    1) What is the use of "Inertia" attribute? As I understand it, the "Mass" and the "InertiaLength" attributes alone should be sufficient to describe the inertia tensor?

    2) In the Aerofly Wiki, the units of the "Inertia" attribute are given as "kg * m² / s". Shouldn't it be "kg * m²" instead?

  • The Inertia property is the internal inertia tensor 3x3 matrix that is calculated from the mass and InertiaLength and orientation (B0) attributes when the aircraft is loaded up. I don't know if the "Inertia" attribute has any effect in the Aerofly FS 2 since we only used "InertiaLength" in all Aerofly FS 2 aircraft. As for the unit, I don't really know, would need to look it up :D It needs to have the right unit so that if you multiply it with a moment you end up with rad/s^2 or something like that... Angular acceleration? More important is that its SI units, so that you don't have to look at the units too closely :D

    InertiaLength would be the size of a Box with homogeneous mass distribution in meters. The first parameter is the length along the X0 axis, second along Y0 and third along the Z0 axis. You can rotate the Body using the B0 matrix which consists of these axes.

    So in short: forget about Inertia, use InertiaLength.

    Here is a picture of the internal physics of the DR400. The blue boxes would be the individual rigidbodies with their InertiaLengths represented as a box with its center of mass at R0. The gray lines are the aerofuselages, the cyan coordinate crosses are the joints holding the rigidbodies together.

  • Thanks for the clear answer, it confirms my assumption that the InertiaLength is sufficient to describe the inertial property of the RigidBody.

    BUT! There's something that doesn't seem right. You said:

    InertiaLength would be the size of a Box with homogeneous mass distribution in meters. The first parameter is the length along the X0 axis, second along Y0 and third along the Z0 axis. You can rotate the Body using the B0 matrix which consists of these axes.

    I interpret that in the meaning that in the RigidBody class, the inertial lengths (let's call them Lx, Ly, Lz) give the RigidBody the same moments of inertia that would have a solid homogeneous box with the same mass and with the sides of length Lx, Ly, Lz.

    But usually, the radii of gyrations are used in a different way, i.e. each of the three lengths, squared and multiplied for the body mass, give the moment of inertia _around_ that axis.

    So, which of the two interpretations is correct?

    An example to better understand: let's say I increase the value of Lx (the first element in the InertiaLength vector, corresponding to the roll axis if the body is not rotated).

    According to how I interpret what you wrote, that should correspond to a homogeneous box with a longer X side, and hence it should yield a bigger moment of inertia around Y (pitch) and Z (yaw) axes, but the same moment of inertia around the X (roll) axis.

    According to my interpretation instead (the conventional one), increasing Lx should correspond to just increasing Ixx (the moment of inertia around X (roll) axis), while Iyy and Izz (the moments of inertia around the Y (pitch) and Z (roll) axes) do not change.

    What is the correct interpretation?

  • Think you meant ( Z) yaw axis Murmur.

    Anyway, the tensor matrix should allow to infer the cross-moments, unless they're not being considered in the present aircraft modelled in AEFS2 ?

    Limited by Main Thread...

  • Think you meant ( Z) yaw axis Murmur.

    Anyway, the tensor matrix should allow to infer the cross-moments, unless they're not being considered in the present aircraft modelled in AEFS2 ?

    If I increase the radius of gyration for the X (roll) axis, that should simply increase the inertia around the roll axis, without changing inertia around the other two axes (according to how Radii of Gyrations are used).

    But according to how I interpret what Jet-Pack wrote, increasing the inertia length for the X axis, it should increase the length of the "virtual" homogeneous box in the x direction, and hence it should not change the inertia for the roll axis, but it should change the inertia for the pitch and for the yaw axis.


    With regard to cross-moments, from what I understand the RigidBody class allows to specify the direction of the principal axes of inertia (with the B0 rotation matrix) and hence cross-moments are not required.

  • Ok, after experimenting, I can answer myself.

    The correct interpretation seems to be the one given by Jet-Pack.

    In other words, the three InertiaLength values are not the conventional radii of gyration, but they represent instead the length of the sides of a homogeneous box having the same inertia as the one of the RigidBody.

    So I assume the following equation is used internally for the inertia tensor?

    (Source: https://en.wikipedia.org/wiki/List_of_moments_of_inertia )

  • From what I experienced making the x-value of InertiaLength larger will yield a higher pitch and yaw inertia. It would flip my whole experience with the Aerofly FS 2 physics upside down if it were different.
    I mean, just test it, really. Take the B737 for example, set the inertia length of the fuselage to something like 100.0 and test it yourself. That should greatly affect the pitch and yaw motions but not the roll around the x-axis if I'm correct.

  • The meaning of [Inertia] and [InertiaLength] are different, depending on the value of [InertiaLength]. If [InertiaLength] is non zero, the Inertia matrix is computed using the above formulas, its used as a simple way of getting a reasonable inertia tensor.

    However, if [InertiaLength] is zero, inertia is what you specify as the matrix values for [Inertia]. In most cases, stick to using [InertiaLength] as most bodies can be specified this way.