- Joined
- Oct 26, 2011
- Messages
- 1,200
- Reaction score
- 504
- Points
- 128
This question is specifically for NASSP, but might apply to Orbiter in general.
I am in the process of analysing the behavior of the Digital Autopilot (DAP) of the Lunar Guidance Computer (LGC) during a docked burn on the Descent Propulsion System (DPS). Since we started being able to perform burns with the DPS in NASSP, controlled by the DAP of the emulated LGC, we have noticed that it is never stable while the CSM and LM are docked. Of course there are many possible causes and we probably will need to implement variable center of gravity and principal moments of inertia for overall better behavior.
But something about the moments of inertia of our CSM and LM is way off. At this point I am not sure if this isn't a bug in Orbiter. From this presentation one can derive how Orbiter calculates the moments of inertia for docked vehicles. From documentation about the LGC I can also derive the calculations it does to get the current moments of inertia of the CSM+LM. I understand that Orbiter does this in a simplified way, but the discrepancy is pretty significant:
The general parameters used in this graph are:
LM PMI: (2.5428 2.2871 2.7566)
CSM PMI: (4.3972 4.6879 1.6220)
CSM mass: 15472 kg
CSM to LM CoG-to-CoG: 6.2 meters
Now, the mass normalized PMI will only be so accurate for the full range of masses and center of gravity in real spacecraft shift. But these values for the separate CSM and LM are not far off from what the DAP expects. I have some more graphs for that, but I didn't want to fill a whole page.
If I calculate mass normalized moments of inertia around the Y or Z axis (Apollo coordinates, fairly symmetrical around the X-axis) then I get roughly these numbers:
Apollo 15 CSM+LM from the CSM Operational Data Book, heavy LM, mid-mission CSM: 17.0
DAP of the LGC for a heavy LM and mid-weight CSM: 14.4
Orbiter: 61.1
I put all the calculations that Orbiter does in a MATLAB script to calculate the numbers that Orbiter would be using. I haven't found an easy way to get the moments of inertia from the Orbiter API to verify my calculations, so I was using angular momentum divided by angular acceleration, all during thruster firing in one axis.
One interesting effect I noticed during testing is that you can turn down the PMI defined for both vessels to almost 0, their contribution isn't very large anyway. Most of the moments of inertia is caused by the distance between the centers of gravity of the two vessels. The border case of this is 6 point masses concentrated very close to the CoG of both vessels. But the resulting moments of inertia are still way too high.
I guess in conclusion I have 3 questions:
1. Is there something obvious I am missing (wrong values for anything I listed above) in how the we should set up our docked CSM+LM to get accurate moments of inertia?
2. Is there some trickery we can do with Orbiter to get accurate values for CSM+LM so that docked burns controlled by the Virtual AGC are working better?
3. Assuming for a moment that Orbiter is at fault, does it simply come down to Orbiter calculating the moments of inertia in a very inaccurate way, or is there maybe even a bug in the calculations that Orbiter does?
I am in the process of analysing the behavior of the Digital Autopilot (DAP) of the Lunar Guidance Computer (LGC) during a docked burn on the Descent Propulsion System (DPS). Since we started being able to perform burns with the DPS in NASSP, controlled by the DAP of the emulated LGC, we have noticed that it is never stable while the CSM and LM are docked. Of course there are many possible causes and we probably will need to implement variable center of gravity and principal moments of inertia for overall better behavior.
But something about the moments of inertia of our CSM and LM is way off. At this point I am not sure if this isn't a bug in Orbiter. From this presentation one can derive how Orbiter calculates the moments of inertia for docked vehicles. From documentation about the LGC I can also derive the calculations it does to get the current moments of inertia of the CSM+LM. I understand that Orbiter does this in a simplified way, but the discrepancy is pretty significant:

The general parameters used in this graph are:
LM PMI: (2.5428 2.2871 2.7566)
CSM PMI: (4.3972 4.6879 1.6220)
CSM mass: 15472 kg
CSM to LM CoG-to-CoG: 6.2 meters
Now, the mass normalized PMI will only be so accurate for the full range of masses and center of gravity in real spacecraft shift. But these values for the separate CSM and LM are not far off from what the DAP expects. I have some more graphs for that, but I didn't want to fill a whole page.
If I calculate mass normalized moments of inertia around the Y or Z axis (Apollo coordinates, fairly symmetrical around the X-axis) then I get roughly these numbers:
Apollo 15 CSM+LM from the CSM Operational Data Book, heavy LM, mid-mission CSM: 17.0
DAP of the LGC for a heavy LM and mid-weight CSM: 14.4
Orbiter: 61.1
I put all the calculations that Orbiter does in a MATLAB script to calculate the numbers that Orbiter would be using. I haven't found an easy way to get the moments of inertia from the Orbiter API to verify my calculations, so I was using angular momentum divided by angular acceleration, all during thruster firing in one axis.
One interesting effect I noticed during testing is that you can turn down the PMI defined for both vessels to almost 0, their contribution isn't very large anyway. Most of the moments of inertia is caused by the distance between the centers of gravity of the two vessels. The border case of this is 6 point masses concentrated very close to the CoG of both vessels. But the resulting moments of inertia are still way too high.
I guess in conclusion I have 3 questions:
1. Is there something obvious I am missing (wrong values for anything I listed above) in how the we should set up our docked CSM+LM to get accurate moments of inertia?
2. Is there some trickery we can do with Orbiter to get accurate values for CSM+LM so that docked burns controlled by the Virtual AGC are working better?
3. Assuming for a moment that Orbiter is at fault, does it simply come down to Orbiter calculating the moments of inertia in a very inaccurate way, or is there maybe even a bug in the calculations that Orbiter does?