Spaces:
Sleeping
Sleeping
Update src/engines/ramjet.py
Browse files- src/engines/ramjet.py +6 -4
src/engines/ramjet.py
CHANGED
|
@@ -14,6 +14,7 @@ T_ISA_SL = 288.15
|
|
| 14 |
LAPSE = 0.0065
|
| 15 |
LHV_JP10 = 43.50e6
|
| 16 |
|
|
|
|
| 17 |
class RamjetEngine(BaseEngine):
|
| 18 |
def __init__(self):
|
| 19 |
super().__init__(
|
|
@@ -161,10 +162,10 @@ class RamjetEngine(BaseEngine):
|
|
| 161 |
|
| 162 |
def compute_fault_signatures(self, baseline: Dict, flight_conditions: Dict) -> List[List[Dict]]:
|
| 163 |
results = []
|
| 164 |
-
for
|
| 165 |
lvl_vals = []
|
| 166 |
for lv in range(3):
|
| 167 |
-
m =
|
| 168 |
alt_m = flight_conditions.get("altitude_m", 15000)
|
| 169 |
M = flight_conditions.get("mach", 2.5)
|
| 170 |
|
|
@@ -180,12 +181,12 @@ class RamjetEngine(BaseEngine):
|
|
| 180 |
P_t2 = P0 * eta_rec
|
| 181 |
T_t4 = 2200.0 * (1 - (m[3] if len(m) > 3 else 0))
|
| 182 |
mdot = self.A_inlet * P0 * M * (GAMMA / (T0 * 287))**0.5
|
| 183 |
-
|
| 184 |
T_t5 = T_t4
|
| 185 |
P_t5 = P_t2 * eta_n
|
| 186 |
V_exit = (2 * CP * (T_t5 - T))**0.5
|
| 187 |
thrust = mdot * (V_exit - M * (GAMMA * 287 * T)**0.5) + (P_t5 - P) * self.A_exit
|
| 188 |
-
Isp = thrust / (
|
| 189 |
EGT = T_t5 - 273.15
|
| 190 |
|
| 191 |
lvl_vals.append({"EGT": EGT, "thrust": thrust/1000, "Isp": Isp, "mdot": mdot})
|
|
@@ -247,3 +248,4 @@ class RamjetEngine(BaseEngine):
|
|
| 247 |
{"name": "Isp", "label": "Specific Impulse", "default": 1200.0, "unit": "s", "type": "number"},
|
| 248 |
{"name": "mdot", "label": "Air Mass Flow", "default": 2.5, "unit": "kg/s", "type": "number"}
|
| 249 |
]
|
|
|
|
|
|
| 14 |
LAPSE = 0.0065
|
| 15 |
LHV_JP10 = 43.50e6
|
| 16 |
|
| 17 |
+
|
| 18 |
class RamjetEngine(BaseEngine):
|
| 19 |
def __init__(self):
|
| 20 |
super().__init__(
|
|
|
|
| 162 |
|
| 163 |
def compute_fault_signatures(self, baseline: Dict, flight_conditions: Dict) -> List[List[Dict]]:
|
| 164 |
results = []
|
| 165 |
+
for fault in self.fault_library: # renamed from 'f' to avoid shadowing
|
| 166 |
lvl_vals = []
|
| 167 |
for lv in range(3):
|
| 168 |
+
m = fault["levels"][lv]
|
| 169 |
alt_m = flight_conditions.get("altitude_m", 15000)
|
| 170 |
M = flight_conditions.get("mach", 2.5)
|
| 171 |
|
|
|
|
| 181 |
P_t2 = P0 * eta_rec
|
| 182 |
T_t4 = 2200.0 * (1 - (m[3] if len(m) > 3 else 0))
|
| 183 |
mdot = self.A_inlet * P0 * M * (GAMMA / (T0 * 287))**0.5
|
| 184 |
+
fuel_ratio = mdot * CP * (T_t4 - T_t2) / (eta_b * LHV_JP10) # renamed from 'f'
|
| 185 |
T_t5 = T_t4
|
| 186 |
P_t5 = P_t2 * eta_n
|
| 187 |
V_exit = (2 * CP * (T_t5 - T))**0.5
|
| 188 |
thrust = mdot * (V_exit - M * (GAMMA * 287 * T)**0.5) + (P_t5 - P) * self.A_exit
|
| 189 |
+
Isp = thrust / (fuel_ratio * 9.81) if fuel_ratio > 0 else 0
|
| 190 |
EGT = T_t5 - 273.15
|
| 191 |
|
| 192 |
lvl_vals.append({"EGT": EGT, "thrust": thrust/1000, "Isp": Isp, "mdot": mdot})
|
|
|
|
| 248 |
{"name": "Isp", "label": "Specific Impulse", "default": 1200.0, "unit": "s", "type": "number"},
|
| 249 |
{"name": "mdot", "label": "Air Mass Flow", "default": 2.5, "unit": "kg/s", "type": "number"}
|
| 250 |
]
|
| 251 |
+
|