Skip to content

WIP: integrate Missile DATCOM; prediction discrepancies unresolved - #1208

Draft
AdaBatu wants to merge 1 commit into
RocketPy-Team:developfrom
AdaBatu:enh/datcom-integration
Draft

AdaBatu wants to merge 1 commit into
RocketPy-Team:developfrom
AdaBatu:enh/datcom-integration

Conversation

@AdaBatu

@AdaBatu AdaBatu commented Oct 22, 2026

Copy link
Copy Markdown

Pull request type

  • Code changes (bugfix, features)
  • Code maintenance (tests)
  • ReadMe, Docs and GitHub updates
    Checklist
  • Tests for the changes have been added
  • Documentation has been reviewed and updated
  • Ruff checks passed for changed Python files
  • All repository tests have passed locally
  • CHANGELOG.md has been updated
    Current behavior
    RocketPy accepts externally supplied drag curves and provides analytical aerodynamic surface models, but cannot directly generate whole-vehicle aerodynamics using Missile DATCOM.
    New behavior
    Adds an opt-in integration using a user-supplied native DATCOM executable:
  • Adds DATCOM fin helpers supporting HEX, ARC, NACA and custom sections, including multi-station planforms.
  • Generates geometry from the assembled rocket and replaces component aerodynamic loads with DATCOM forces, moments and damping derivatives.
  • Runs powered and coast cases in temporary directories, with configurable base drag and appropriate CG references.
  • Supports adaptive Mach/alpha coverage and Reynolds-number schedules derived from the launch atmosphere and preliminary flights.
  • Adds calibration against wind-tunnel coefficients, including datasets containing only Mach, alpha and CD.
  • Adds comparison notebooks for recorded flights and the Asteria configuration.
    The executable is not distributed with RocketPy. Existing analytical equations remain unchanged.
    Breaking change
  • No
    Additional information
    This implementation remains work in progress. DATCOM currently produces poor flight predictions for several comparison rockets, and the discrepancies are still being investigated.
    Fin cross-section assumptions, particularly trailing-edge thickness, substantially affect the results. Sensitivity runs improve agreement for GENESIS and Astra, but the actual section dimensions are unavailable; these alternatives are explicitly labelled as hypotheses.
    Validation includes:
  • 327 passing targeted tests, including native DATCOM checks and existing RocketPy regressions.
  • Reproduction of the manual’s published aerodynamic example.
  • A successful strict Sphinx documentation build.
    Comparisons distinguish measurements, supplied drag curves and apogee-fitted CD. AST-HER has not flown; its comparison contains simulation results only. Protuberance and plume-interaction modelling are excluded.

DATCOM currently generates shit values. Trying to solve it.

Add optional whole-vehicle native DATCOM aerodynamics, adaptive flight grids,
calibration APIs and measured-flight comparison notebooks. Keep ordinary
RocketPy equations unchanged. Mark predictions as experimental and unresolved.

Validation: 314 relevant tests passed; both comparison notebooks executed;
strict documentation build passed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant