DSAeroToolsSim.Models.Propulsion package
DSAeroToolsSim.Models.Propulsion.fixedPSFC module
Fixed PSFC Propulsion Model, constant or variable power lapse
DSAeroToolsSim
REQUIRED INPUT STRUCTURE |
|
---|---|
Vehicle.PropulsionModel.powerSL |
Required, sea-level maximum engine power |
Vehicle.PropulsionModel.etap |
Required, propeller efficiency |
Vehicle.PropulsionModel.dp |
Required, propeller diameter |
Vehicle.PropulsionModel.lapseModel |
Optional, defaults to “gaggFerrar” |
Vehicle.State.Atmosphere.rho[-1] |
Latest density must have been already appended |
- DSAeroToolsSim.Models.Propulsion.fixedPSFC.JSONify(Vehicle)
JSONification of Propulsion Model
Called by Vehicle’s JSONify method. This function creates a JSON-compatible dictionary of the PropulsionModel attributes.
The function does not return the dictionary, but rather stores it in the Vehicle’s PropulsionModel.JSON attribute.
- Parameters:
Vehicle (Vehicle) – Vehicle whose PropulsionModel is being JSONified
- DSAeroToolsSim.Models.Propulsion.fixedPSFC.fixedPSFC(Vehicle, *args)
Constant Power-Specific Fuel Consumption (PSFC) propulsion model
- Appends the following propulsion-related variables to Vehicle.State.Propulsion:
‘thrust’
‘thrustPower’
‘throttle’
‘SFC’
‘energyWeightBurnRate’
‘energyBurnRate’
It also returns ‘thrust’ for convenience. See segments for example.
- There are two ways that a segment can call this propulsion model:
“available” for the first scenario (
`thrust = Vehicle.PropulsionModel("available")`
)“required” for the second scenario (
`thrust = Vehicle.PropulsionModel("required")`
)
In the “available” case, the power is given by the model, “full throttle” (takeoff, climb).
In the “required” case, the power is given by the aero model, or thrust = drag (level cruise).
In the case of “required”, the drag must have been appended to the state before thrust is called.
It is therefore a good rule of thumb to call the drag model before the thrust model in the segments. See segments.
- Parameters:
Vehicle (Vehicle) – Vehicle from which the thrust is being called for. Automatically passed when a call to the Wrapper is made.
args[0] (str) – Type of propulsion call, either “available” or “required”
- Raises:
ValueError – fixedPSFC must take exactly 1 argument (“available” or “required”)
ValueError – fixedPSFC argument must be a string
ValueError – fixedPSFC argument must be ‘available’ or ‘required’
ValueError – fixedPSFC requires drag to be appended to the state before thrust is called in the “required” case
- Returns:
Thrust force
- Return type:
float
DSAeroToolsSim.Models.Propulsion.fixedTSFC module
Fixed Thrust-Specific Fuel Consumption, constant thrust model
DSAeroToolsSim
REQUIRED INPUT STRUCTURE |
|
---|---|
Vehicle.PropulsionModel.thrustSL |
Required, sea-level maximum thrust |
Vehicle.PropulsionModel.TSFC |
Required, thrust-specific fuel consumption |
- DSAeroToolsSim.Models.Propulsion.fixedTSFC.JSONify(Vehicle)
JSONification of Propulsion Model
Called by Vehicle’s JSONify method. This function creates a JSON-compatible dictionary of the PropulsionModel attributes.
The function does not return the dictionary, but rather stores it in the Vehicle’s PropulsionModel.JSON attribute.
- Parameters:
Vehicle (Vehicle) – Vehicle whose PropulsionModel is being JSONified
- DSAeroToolsSim.Models.Propulsion.fixedTSFC.fixedTSFC(Vehicle, *args)
Constant Thrust-Specific Fuel Consumption (TSFC) propulsion model
- Appends the following propulsion-related variables to Vehicle.State.Propulsion:
‘thrust’
‘thrustPower’
‘throttle’
‘SFC’
‘energyWeightBurnRate’
‘energyBurnRate’
It also returns ‘thrust’ for convenience. See segments for example.
- There are two ways that a segment can call this propulsion model:
“available” for the first scenario (
`thrust = Vehicle.PropulsionModel("available")`
)“required” for the second scenario (
`thrust = Vehicle.PropulsionModel("required")`
)
In the “available” case, the thrust is given by the model, “full throttle” (takeoff, climb).
In the “required” case, the thrust is given by the aero model, or thrust = drag (level cruise).
In the case of “required”, the drag must have been appended to the state before thrust is called.
It is therefore a good rule of thumb to call the drag model before the thrust model in the segments. See segments.
- Parameters:
Vehicle (Vehicle) – Vehicle from which the thrust is being called for. Automatically passed when a call to the Wrapper is made.
- Raises:
ValueError – fixedTSFC() takes exactly 1 argument
ValueError – fixedTSFC() argument must be a string
ValueError – fixedTSFC() argument must be ‘available’ or ‘required’
ValueError – fixedTSFC(‘required’) requires drag to be appended to the state before thrust is called!
- Returns:
Thrust force
- Return type:
float
DSAeroToolsSim.Models.Propulsion.mattinglyTurbofan module
Mattingly Turbofan Propulsion Model
DSAeroToolsSim
REQUIRED INPUT STRUCTURE |
|
---|---|
Vehicle.PropulsionModel.thrustSL |
Required, sea-level maximum thrust |
Vehicle.PropulsionModel.TR |
Optional, engine’s throttle ratio (not throttle!) |
If not defined, TR is calculated |
|
If calculated, requires: |
|
|
|
|
|
Vehicle.PropulsionModel.BPR |
Required, “high” or “low” |
Vehicle.PropulsionModel.TSFCtype |
Required, “constant” or “variable” |
If “constant”, requires: |
|
|
|
Vehicle.PropulsionModel.afterburning |
Optional, defaults to False |
Can only be used if BPR is “low” |
|
If BPR = “high”, afterburning = False by default |
|
Vehicle.State.Trajectory.V[-1] |
Latest velocity must have been already appended |
Vehicle.State.Atmosphere.T[-1] |
Latest temp. must have been already appended |
Vehicle.State.Atmosphere.p[-1] |
Latest pressure must have been already appended |
Vehicle.State.Atmosphere.SoS[-1] |
Latest speed of sound must have been appended |
- DSAeroToolsSim.Models.Propulsion.mattinglyTurbofan.JSONify(Vehicle)
JSONification of Propulsion Model
Called by Vehicle’s JSONify method. This function creates a JSON-compatible dictionary of the PropulsionModel attributes.
The function does not return the dictionary, but rather stores it in the Vehicle’s PropulsionModel.JSON attribute.
- Parameters:
Vehicle (Vehicle) – Vehicle whose PropulsionModel is being JSONified
- DSAeroToolsSim.Models.Propulsion.mattinglyTurbofan.mattinglyTurbofan(Vehicle, *args)
J.D. Mattingly Turbofan Thrust Model
- Appends the following propulsion-related variables to Vehicle.State.Propulsion:
‘thrust’
‘thrustPower’
‘throttle’
‘SFC’
‘energyWeightBurnRate’
‘energyBurnRate’
It also returns ‘thrust’ for convenience. See segments for example.
- There are two ways that a segment can call this propulsion model:
“available” for the first scenario (
`thrust = Vehicle.PropulsionModel("available")`
)“required” for the second scenario (
`thrust = Vehicle.PropulsionModel("required")`
)
In the “available” case, the thrust is given by the model, “full throttle” (takeoff, climb).
In the “required” case, the thrust is given by the aero model, or thrust = drag (level cruise).
In the case of “required”, the drag must have been appended to the state before thrust is called.
It is therefore a good rule of thumb to call the drag model before the thrust model in the segments. See segments.
- The engine’s throttle ratio can either be defined (Vehicle.PropulsionModel.TR) or calculated using:
Vehicle.PropulsionModel.designAlt
Vehicle.PropulsionModel.designMach
The engine’s TSFC can either be defined (TSFCtype = “constant”) or calculated in the loop (TSCtype = “variable”)
The engine’s BPR can either be “high” or “low”. If “high”, afterburning is set to False by default.
Afterburning can only be used with BPR = “low”.
- ### Note: mattinglyTurbofan requires the following states to be appended to the Vehicle.State:
Vehicle.State.Trajectory.V
Vehicle.State.Atmosphere.T
Vehicle.State.Atmosphere.p
Vehicle.State.Atmosphere.SoS
- Parameters:
Vehicle (Vehicle) – Vehicle from which the thrust is being called for. Automatically passed when a call to the Wrapper is made.
- Raises:
ValueError – mattinglyTurbofan() takes exactly 1 argument
ValueError – mattinglyTurbofan() argument must be a string
ValueError – mattinglyTurbofan() argument must be ‘available’ or ‘required’
ValueError – mattinglyTurbofan(‘required’) requires drag to be appended to the state before thrust is called!
ValueError – Propulsion model must have attribute ‘thrustSL’
ValueError – Propulsion model must have attribute ‘BPR’
ValueError – Propulsion model must have attribute ‘TSFCtype’
ValueError – Propulsion model must have attribute ‘TSFC’ if TSFCtype is ‘constant’
- Returns:
Thrust force
- Return type:
float
DSAeroToolsSim.Models.Propulsion.mattinglyTurbojet module
Mattingly Turbojet Model
DSAeroToolsSim
REQUIRED INPUT STRUCTURE |
|
---|---|
Vehicle.PropulsionModel.thrustSL |
Required, sea-level maximum thrust |
Vehicle.PropulsionModel.TR |
Optional, recommended |
If not defined, defaulted to 1.1 |
|
Vehicle.PropulsionModel.TSFCtype |
Required, “constant” or “variable” |
If “constant”, requires: |
|
|
|
Vehicle.PropulsionModel.afterburning |
Optional, defaults to False |
Vehicle.State.Trajectory.V[-1] |
Latest velocity must have been already appended |
Vehicle.State.Atmosphere.T[-1] |
Latest temp. must have been already appended |
Vehicle.State.Atmosphere.p[-1] |
Latest pressure must have been already appended |
Vehicle.State.Atmosphere.SoS[-1] |
Latest speed of sound must have been appended |
- DSAeroToolsSim.Models.Propulsion.mattinglyTurbojet.JSONify(Vehicle)
JSONification of Propulsion Model
Called by Vehicle’s JSONify method. This function creates a JSON-compatible dictionary of the PropulsionModel attributes.
The function does not return the dictionary, but rather stores it in the Vehicle’s PropulsionModel.JSON attribute.
- Parameters:
Vehicle (Vehicle) – Vehicle whose PropulsionModel is being JSONified
- DSAeroToolsSim.Models.Propulsion.mattinglyTurbojet.mattinglyTurbojet(Vehicle, *args)
J.D. Mattingly Turbojet Thrust Model
- Appends the following propulsion-related variables to Vehicle.State.Propulsion:
‘thrust’
‘thrustPower’
‘throttle’
‘SFC’
‘energyWeightBurnRate’
‘energyBurnRate’
It also returns ‘thrust’ for convenience. See segments for example.
- There are two ways that a segment can call this propulsion model:
“available” for the first scenario (
`thrust = Vehicle.PropulsionModel("available")`
)“required” for the second scenario (
`thrust = Vehicle.PropulsionModel("required")`
)
In the “available” case, the thrust is given by the model, “full throttle” (takeoff, climb).
In the “required” case, the thrust is given by the aero model, or thrust = drag (level cruise).
In the case of “required”, the drag must have been appended to the state before thrust is called.
It is therefore a good rule of thumb to call the drag model before the thrust model in the segments. See segments.
The engine’s throttle ratio can either be defined (Vehicle.PropulsionModel.TR) or defaulted to 1.1.
The engine’s TSFC can either be defined (TSFCtype = “constant”) or calculated in the loop (TSCtype = “variable”)
- ### Note: mattinglyTurbofan requires the following states to be appended to the Vehicle.State:
Vehicle.State.Trajectory.V
Vehicle.State.Atmosphere.T
Vehicle.State.Atmosphere.p
Vehicle.State.Atmosphere.SoS
- Parameters:
Vehicle (Vehicle) – Vehicle from which the thrust is being called for. Automatically passed when a call to the Wrapper is made.
- Raises:
ValueError – mattinglyTurbojet() takes exactly 1 argument
ValueError – mattinglyTurbojet() argument must be a string
ValueError – mattinglyTurbojet() argument must be ‘available’ or ‘required’
ValueError – Mattingly turbojet model requires thrustSL to be defined
ValueError – Mattingly turbojet model requires TSFCtype to be defined
ValueError – Mattingly turbojet model requires TSFC to be defined if TSFCtype is constant
ValueError – mattinglyTurbofan(‘required’) requires drag to be appended to the state before thrust is called!
- Returns:
Thrust force
- Return type:
float
DSAeroToolsSim.Models.Propulsion.mattinglyTurboprop module
Mattingly Thrust Models
DSAeroToolsSim
REQUIRED INPUT STRUCTURE |
|
---|---|
Vehicle.PropulsionModel.thrustSL |
Required, sea-level maximum thrust |
If not defined, defaulted to 1.1 |
|
Vehicle.PropulsionModel.TR |
Optional, engine’s throttle ratio (not throttle!) |
If not defined, TR is calculated |
|
Then requires: |
|
|
|
|
|
# Vehicle.PropulsionModel.TSFCtype |
Required, “constant” or “variable” |
If “constant”, requires: |
|
|
|
Vehicle.State.Trajectory.V[-1] |
Latest velocity must have been already appended |
Vehicle.State.Atmosphere.T[-1] |
Latest temp. must have been already appended |
Vehicle.State.Atmosphere.p[-1] |
Latest pressure must have been already appended |
Vehicle.State.Atmosphere.SoS[-1] |
Latest speed of sound must have been appended |
- DSAeroToolsSim.Models.Propulsion.mattinglyTurboprop.JSONify(Vehicle)
JSONification of Propulsion Model
Called by Vehicle’s JSONify method. This function creates a JSON-compatible dictionary of the PropulsionModel attributes.
The function does not return the dictionary, but rather stores it in the Vehicle’s PropulsionModel.JSON attribute.
- Parameters:
Vehicle (Vehicle) – Vehicle whose PropulsionModel is being JSONified
- DSAeroToolsSim.Models.Propulsion.mattinglyTurboprop.mattinglyTurboprop(Vehicle, *args)
J.D. Mattingly Turboprop Thrust Model
- Appends the following propulsion-related variables to Vehicle.State.Propulsion:
‘thrust’
‘thrustPower’
‘throttle’
‘SFC’
‘energyWeightBurnRate’
‘energyBurnRate’
It also returns ‘thrust’ for convenience. See segments for example.
- There are two ways that a segment can call this propulsion model:
“available” for the first scenario (
`thrust = Vehicle.PropulsionModel("available")`
)“required” for the second scenario (
`thrust = Vehicle.PropulsionModel("required")`
)
In the “available” case, the thrust is given by the model, “full throttle” (takeoff, climb).
In the “required” case, the thrust is given by the aero model, or thrust = drag (level cruise).
In the case of “required”, the drag must have been appended to the state before thrust is called.
It is therefore a good rule of thumb to call the drag model before the thrust model in the segments. See segments.
- The engine’s throttle ratio can either be defined (Vehicle.PropulsionModel.TR) or calculated using:
Vehicle.PropulsionModel.designAlt
Vehicle.PropulsionModel.designMach
For some reason, if TR <= 1, the thrust diverges, or becomes negative, I’m not quite sure. Thus, TR is set to 1.01 by default if the calculated TR with designAlt and designMach falls bellow 1.01.
The engine’s TSFC can either be defined (TSFCtype = “constant”) or calculated in the loop (TSCtype = “variable”)
- ### Note: mattinglyTurbofan requires the following states to be appended to the Vehicle.State:
Vehicle.State.Trajectory.V
Vehicle.State.Atmosphere.T
Vehicle.State.Atmosphere.p
Vehicle.State.Atmosphere.SoS
- Parameters:
Vehicle (Vehicle) – Vehicle from which the thrust is being called for. Automatically passed when a call to the Wrapper is made.
- Raises:
ValueError – mattinglyTurboprop() takes exactly 1 argument
ValueError – mattinglyTurboprop() argument must be a string
ValueError – mattinglyTurboprop() argument must be ‘available’ or ‘required’
ValueError – mattinglyTurboprop() requires thrustSL to be defined!
ValueError – mattinglyTurboprop() requires TSFCtype to be defined!
ValueError – mattinglyTurboprop() requires TSFC to be defined if TSFCtype is constant!
ValueError – mattinglyTurboprop(‘required’) requires drag to be appended to the state before thrust is called!
- Returns:
Thrust force
- Return type:
float