|
static int | ActiveStageReadback (double3[] data) |
|
static void | AutoStageSet (double3[] data, bool enabled) |
| Set the auto-stage control bit in the booster data block to indicated the value of the enabled parameter.
|
|
static void | EnabledSet (double3[] data, bool enabled) |
| Set the ENABLED flag in the data block.
|
|
static double | FuelReadout (double3[] data, int stageReq=-1) |
| Get fuel for the designated stage. If the stage is -1, this is a request for the active stage.
|
|
static double3[] | LinearTangentECAlloc (double theta0Deg, int numStages) |
| Create data[] array for a linear tangent steering law of the form tan(theta) = (1-t/t_f) tan(theta0) as found in (6.59) of "Design of Rockets and Launch Vehicles", Edberg & Cpsta, AIAA Press.
|
|
static double3[] | ManualPitchAlloc (double pitchRad, int numStages) |
| Allocate a data block with numStages that will use a manual pitch value for ascent guidance.
|
|
static void | ManualPitchUpdate (double pitchRad, double3[] data) |
|
static double3[] | ManualVecAlloc (double3 thrustDir, int numStages) |
| Full manual control with acceleration explicitly specified.
|
|
static void | ManualVecSetThrustDir (double3[] data, double3 thrustDir) |
|
static void | PayloadCompute (double3[] data, double payloadMassKg) |
| Compute and configure the per stage payload values for each stage in a multi-stage booster. e.g. 3 stages: 0, 1, 2 Stage 2 has a payload mass of payloadMassKg. Stage 1 has a payload mass of playloadMassKg + stage2 (fuel + dry mass) Stage 0 has a payload mass of stage 1 payload mass + stage1 (fuel + dry mass)
|
|
static double | PayloadReadout (double3[] data, int stageNum) |
|
static double | PitchFromTable (NativeArray< double3 > data, double t, int steering_base) |
| Look up the entry in the pitch table. Assume the pitch table might not be regular and that since we're integrating time will advance forward monotonically. Just walk the table to find an entry but keep track of where we were.
|
|
static double | PitchReadback (double3[] data) |
|
static double3[] | PitchTableAlloc (double3[] pitchTable, int numStages) |
|
static void | StageSetup (double3[] data, int stageNum, Stage stage) |
| Add a stage to the Booster. This assumes data[] has been created with the correct number of total stages, prior to using this method to fill in the details.
|
|
static void | SteeringPlaneSet (double3[] data, double3 orbitCenter, double3 orbitNormal) |
|
static void | SteeringTimesSet (double3[] data, double tStartSec, double tEndSec) |
|
static void | ThrottleSet (double3[] data, double throttle) |
|
static int | ThrustAndSteering (ref ExternalAccel.EAStateData eaState, ref ExternalAccel.EADesc eaDesc, double t, double dt, double3 a_in, NativeArray< double3 > data, out double3 a_out, double scaleTtoSec, double scaleAccelSitoGE) |
| Static method to run the thrust and do steering calculations for a multi-stage booster. The operational parameters for the engine are contained in the the data[] block. This is interpreted based on the type of booster and steering law configured when initializing the data block.
|
|
Booster External Acceleration.
This class provides the external acceleration of a multi-stage booster. It will be called for each timestep in the numerical integration.
This implementation supports:
- multiple stages that (may) reduce the mass of the booster as time goes on (i.e. rocket equation stuff)
- a choice of steering laws for the direction of the thrust: manual vector, manual pitch in a target plane, tangent steering in target plance etc.
Booster setup allocates a block of double3[] to hold the state information required for the stages and steering.
static double3[] GravityEngine2.Booster.LinearTangentECAlloc |
( |
double | theta0Deg, |
|
|
int | numStages ) |
|
static |
Create data[] array for a linear tangent steering law of the form tan(theta) = (1-t/t_f) tan(theta0) as found in (6.59) of "Design of Rockets and Launch Vehicles", Edberg & Cpsta, AIAA Press.
This uses a standard rocket equation data block but note that if the engine is throttled down the algorithm will still assume the same t_burn and compute the guidance accordingly.
SB = Steering Base [SB0] (law, t_start, t_end) start/end are for overall flight path for steering laws that use this [SB1] center [SB2] plane [SB3] (tan(theta0), 0, pitch_readback)
- Parameters
-
- Returns