diff --git a/src/physcom/engine/pipeline.py b/src/physcom/engine/pipeline.py index bf64168..bd98719 100644 --- a/src/physcom/engine/pipeline.py +++ b/src/physcom/engine/pipeline.py @@ -278,19 +278,31 @@ SPECIFIC_ENERGY_CONSUMPTION_J_PER_KG_M: dict[str, float] = { # # DRAG_POWER_COEFF_BY_MEDIUM below adds that missing term: a mass-INDEPENDENT # drag power coefficient (0.5 * air_density * drag_coefficient * frontal_area, -# W per (m/s)^3) added on top of the existing mass-proportional term. Ground -# only for now (the diagnosed case, and where a car-like reference -# cross-section is a defensible categorical estimate the way the rest of -# this file's constants are); air's existing L/D-based model is already a -# reasonable velocity-roughly-linear cruise approximation and doesn't have -# this problem, and water hull drag would need its own (different) treatment -# rather than reusing a car's frontal area, so it's left as a known -# remaining gap rather than guessed at here. +# W per (m/s)^3) added on top of the existing mass-proportional term. +# +# "air" was originally left out of this table on the reasoning that its +# L/D-based cruise model was already a reasonable velocity-roughly-linear +# approximation -- true for computing energy per meter during a normal +# cruise, but WRONG for the exact same reason ground was wrong: L/D-based +# drag force is also roughly velocity-independent within a design cruise +# band, so it's still just "resistance = mass-proportional constant" with +# no v^2 term, and inverting power/resistance for achieved speed still had +# no ceiling. Confirmed live: a Rotorcraft + Gas Turbine combo showed a +# "speed" of 3,127 m/s (Mach 9) with phi4's pass-4 review flagging it +# directly ("unrealistic for urban commuting, likely indicating an +# error"). Added below with an aircraft-like reference cross-section. +# Water hull drag would need its own (different) treatment rather than +# reusing either reference, so it's left as a known remaining gap. DRAG_POWER_COEFF_BY_MEDIUM: dict[str, float] = { # 0.5 * rho_air(1.225 kg/m^3) * Cd(~0.3) * frontal_area(~2.2 m^2, small # car reference) -- sanity check: at 30 m/s (108 km/h) this alone costs # ~11kW, in the right ballpark for real highway cruise power. "ground": 0.5 * 1.225 * 0.3 * 2.2, + # 0.5 * rho_air(1.225) * Cd(~0.2, streamlined fuselage) * frontal_area + # (~3.5 m^2, small aircraft/rotorcraft reference) -- sanity check: at + # 60 m/s (a fast urban rotorcraft cruise) this alone costs ~46kW, in + # the right ballpark for a light helicopter's real cruise power. + "air": 0.5 * 1.225 * 0.2 * 3.5, } # Structural manufacturing cost, $ per kg of platform mass -- certification @@ -974,7 +986,7 @@ class Pipeline: # Achieved steady-state cruise speed, DERIVED from this specific # build's actual power_density, the medium's mass-proportional - # resistance, and (ground only, see DRAG_POWER_COEFF_BY_MEDIUM) a + # resistance, and (ground/air, see DRAG_POWER_COEFF_BY_MEDIUM) a # mass-independent aerodynamic drag term -- not a platform-declared # constant. A build with more power than the platform's bare # target_velocity requires achieves a genuinely higher speed here;