Skip to content

Reproduce corrected OWC piston path for full parity gate - #627

Merged
cmccomb merged 16 commits into
masterfrom
codex/owc-orifice-622
Oct 23, 2026
Merged

cmccomb merged 16 commits into
masterfrom
codex/owc-orifice-622

Conversation

@cmccomb

@cmccomb cmccomb commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

Scope

Adds a full-duration physical comparison for issue #622. The test independently advances public Python OWC motion from the pinned HDF5 and PM wave phases, then compares body and piston motion, PTO force and power, air pressure and flow, and integrated work with a corrected MATLAB case.

The corrected case is derived from the original pinned Applications OWC/OrificeModel: a repository-local MATLAB script adds the existing piston reaction to the flexible GBM state-equation input on a disposable model copy. A refined solver clock of 0.00015625 s retains 0.005 s output and force-sampling clocks. The source fixture contains 26,001 output samples; work and maximum Mach use all 832,001 internal orifice samples. The follow-up Python-repository workflow in #641 regenerates this source from the pinned original case and gates fresh MATLAB output against independent Python.

Measured results

  • Peak motion gaps: 2.246 mm surge, 0.116 mm heave, 0.359 mrad pitch, 0.022 mm flexible displacement.
  • Peak speed gaps: 0.357 mm/s surge, 0.245 mm/s heave, 0.165 mrad/s pitch, 0.163 mm/s piston.
  • Peak air/PTO gaps: 0.450 N force, 0.00229 kPa pressure, 0.0000320 m³/s flow, 0.0000405 kW power.
  • Integrated work: Python 865.042 J versus MATLAB 864.422 J, a 0.0717% gap. Source peak Mach is 0.155, below the configured 0.3 warning threshold.

The test also reconstructs MATLAB orifice outputs from its separately logged piston speed and the documented air law. All declared limits pass. The repository-local 130 s source run reproduces the archived arrays within 3.96e-11 and passes the fresh-source Python gate.

Parity status

This is a derived-model comparison. The unchanged published Simulink input omits piston force from flexible state integration, so OWC/OrificeModel retains qualified_motion status and the strict badge count does not change.

@cmccomb
cmccomb marked this pull request as ready for review October 23, 2026 00:40
@cmccomb
cmccomb merged commit c37b522 into master Oct 23, 2026
7 checks passed
@cmccomb
cmccomb deleted the codex/owc-orifice-622 branch October 23, 2026 01:07
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