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