Repository navigation
fix(model): despin duration/propellant, passivation deadline term and typed disposal quantities - #43
Merged
Merged
Conversation
…racterised body Despin takes the characterisation and the thrusters' arm and Isp as inputs and derives its angular momentum, duration and propellant through TethysCaptureSystem::DespinDuration and DespinPropellant, so the capture sequence carries 348 s and 5.91 kg for the nominal body instead of leaving both unbound. New run wpc-despin-step records the three values. Co-Authored-By: jason.han <hanhuijun@gmail.com>
…the disposal quantities
TS-292's constraint now has a time term: passivationDelay (closeout
passivationCompleteTime - disposalBurnTime, 23 d) <= deadline (30 d).
SeparationDeltaV takes an ImpulseValue and a MassValue and returns a
SpeedValue, dividing the units out only inside the calc; TS-293 reads
TethysTarget::targetCases.{small,nominal,large}.mass and
amaranthFM.postCapture.mass instead of the stale 150/362/620/438.8 t
literals, and compares against 1.0e-3 m/s.
Co-Authored-By: jason.han <hanhuijun@gmail.com>
Adds the wpc-despin-step and disposal-quantities runs and re-records the four runs the model edits move (house-rules counts, one ID shift in the three satisfy runs). Co-Authored-By: jason.han <hanhuijun@gmail.com>
…critical count, document inventory queries Review triage findings 3-2, 3-3, 3-4, 3-5, 5-2, 5-3, 5-5 and the integration-review documentation nits. - 3-2 TethysRisk::riskRegister::noUnownedRedRisk quantifies over the new items : RiskItem[*] collection every register entry subsets, instead of naming earthImpactRisk; risk-constraints instantiates the register so the gate evaluates on it. - 3-3 TH-001's returnTrajectoryInsideCorridor and lossOfThrustOnFinalArc causes are connected to earthImpact like the other hazards. - 3-4 safetyCriticalSoftwareFunctions = 2 is replaced by the query TethysAllocationQueries::SafetyCriticalFunctions over @safetycritical. - 3-5 Reliability durations are DurationValues in [d] and [h]. - 5-2 TugSubsystems reads TethysTug::Tug (10 rows, was 4). - 5-3 Segments and Items exclude InterfaceUsage / InterfaceDefinition. - 5-5 Risks scans TethysRisk and TethysSafety (6 rows, was 0). - docs: IcdFlightSegment::inspectorDispenser, SE-049/SE-260/SE-278 rows say what the model shows, KerML citation §8.3.2.4.5. Co-Authored-By: jason.han <hanhuijun@gmail.com>
Contributor
Author
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
The inventory of @safetycritical functions showed documentation = (none) for all three rows; the reason for each classification lives in SafetyCritical::rationale, so the query projects that instead. Re-recorded allocations-queries. Co-Authored-By: jason.han <hanhuijun@gmail.com>
A passivation recorded before the disposal burn gave a negative passivationDelay that satisfied the 30 d upper bound alone; the constraint now requires 0 d <= passivationDelay <= deadline. Co-Authored-By: jason.han <hanhuijun@gmail.com>
Co-Authored-By: jason.han <hanhuijun@gmail.com>
…documents Co-Authored-By: jason.han <hanhuijun@gmail.com> # Conflicts: # runs/house-rules.txt
…sposal Co-Authored-By: jason.han <hanhuijun@gmail.com>
…stacked branch Co-Authored-By: jason.han <hanhuijun@gmail.com>
Contributor
Author
There was a problem hiding this comment.
Devin Review found 1 new potential issue.
1 flag not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes three confirmed model defects from the review triage of PR #1 (WP-C) and PR #2 (WP-I), gated on the pinned OpenSysML
5cd37f288(runs/tool-version.txt, unchanged). Base isdevelop; the maintainer decisions 1-1, 1-2, 1-4, 2-1 and 2-2 are untouched (no change tomodel/41-capture-system.sysmlormodel/95-as-built.sysml).1-5 — the despin step had no duration or propellant (
model/42-proximity-ops.sysml)CaptureSequence.despin : Despinbound onlytorque;TethysCaptureSystem::DespinDuration/DespinPropellantwere never invoked.Probe:
sysml -e TethysProximityOps::captureOperation.capture.despin.{angularMomentum,duration,propellant} model/*despin.angularMomentumdespin.duration<undetermined>despin.propellant<undetermined>TethysBudgets::hydrazineBudget.despinNominal)Fix:
Despintakesin characterisation : TargetCharacterisation,in momentArm : LengthValue,in specificImpulse : DurationValueand derivesangularMomentum(SphereMomentOfInertia,AngularMomentum),duration(DespinDuration) andpropellant(DespinPropellant) through the existing WP-C calcs, dividing the units out inside the def asmodel/32-budgets.sysmldoes. The sequence bindscharacterise.characterisation,hydrazineBudget.momentArm(3.2 m) andhydrazineBudget.isp(225 s), so the values follow the characterised target case rather than a literal.torquestays the explicit 120 N·m: binding it tosystem.maximumDespinTorquethrough the sequence'sin systemevaluates to no value on the pin (same nested-parameter gap as F-C05), and the sequence itself still stops atContactLoadfor the pre-existing F-C05commit.goerror, so the step's values are shown by the newruns/wpc-despin-step.txtrather than byruns/wpc-capture-sequence.txt(unchanged). Not covered by the closed #37.2-3 — late passivation passed the deadline check (
model/97-disposal.sysml, TS-292)passivationdeclareddeadline = 30 dbut its constraint had no time term, so any delay satisfied it.Probe:
sysml -e "TethysDisposal::closeout.passivationCompleteTime - TethysDisposal::closeout.disposalBurnTime" -e TethysDisposal::passivation.deadline -requirement TethysDisposal::passivation model/*passivationDelay23.0 d ≤ 30.0 dFix, as in the closed #31:
attribute passivationDelay : DurationValue = closeout.passivationCompleteTime - closeout.disposalBurnTime;and… and passivationDelay >= 0.0 [d] and passivationDelay <= deadlinein the constraint. The lower bound follows a review finding: with the passivation recorded before the burn (delay −11 d) the upper bound alone still reported satisfied; it now fails on that case.2-4 — disposal calculations discarded units and bypassed
targetCases(model/97-disposal.sysml, TS-293)SeparationDeltaVandseparationSafetyused bareReals, and the body masses were literals 150/362/620/438.8 t whileTethysTarget::targetCasesdefines small/nominal/large as 213 327 / 362 000 / 505 664 kg.Probe:
sysml -e TethysDisposal::separationSafety.{small,nominal,large,asCharacterised}BodyDeltaV -requirement TethysDisposal::separationSafety model/*smallBodyDeltaVtargetCases.small.mass)nominalBodyDeltaVtargetCases.nominal.mass)largeBodyDeltaVtargetCases.large.mass)asCharacterisedDeltaVamaranthFM.postCapture.mass, 438.8 t)Fix:
SeparationDeltaVtakesin impulse : ImpulseValue,in bodyMass : MassValueand returnsSpeedValue = (impulse / (1 ['N⋅s'])) / (bodyMass / (1 [kg])) * (1 ['m/s'])(units divided out only inside the calc, asmodel/32-budgets.sysml);separationImpulse : ImpulseValue = 25.0 ['N⋅s']; the four Δv attributes areSpeedValues read fromtargetCases.{small,nominal,large}.massandTethysAsBuilt::amaranthFM.postCapture.mass; the constraint compares against1.0e-3 ['m/s']. The ISQ typing is as in the closed #31; thetargetCases/amaranthFMreads replace the literals it kept. Answer to the triage's open question: the real masses move the small-body Δv from 1.67e-4 to 1.17e-4 m/s and the large-body Δv from 4.03e-5 to 4.94e-5 m/s — TS-293 does not flip; both verdicts remain satisfied.Model files
model/42-proximity-ops.sysml—Despindef anddespinusage,TethysBudgets::hydrazineBudgetimport.model/97-disposal.sysml—passivation(TS-292),SeparationDeltaV,separationSafety(TS-293),TethysTarget::targetCasesimport.docs/coverage/WP-C.md,docs/coverage/WP-I.md— coverage lines updated to the derived values.Runs moved
runs/wpc-despin-step.txt,runs/disposal-quantities.txt(probes above, added toscripts/runs.sh).runs/house-rules.txt: self-model check 80 537 → 80 550 elements, 703 451 → 703 578 checks, 0 violations, 0 unevaluated.runs/as-built-satisfy.txt,runs/requirements-satisfy.txt,runs/wpb-budgets-satisfy.txt: one ID shift (separationSafety by argentFM.captureSystemID 4677 → 4678), same verdicts.Behaviour changes
separationSafety.*DeltaVandseparationImpulseare quantities (SpeedValue,ImpulseValue) instead of unitlessReals; the small/large Δv values change as listed above.DespingainsangularMomentumand threeinparameters;despin.duration/despin.propellantevaluate (347.8 s, 5.91 kg) where they were undetermined.Gate (pinned
5cd37f288, Go 1.25.11, JDK 21)make check(validate → pilot → house-rules → runs-check): green, 30 min 32 s.sysml -validate -strict -warnings-as-errorsover the 64 model files: no errors.make house-rules: 80 550 elements, 703 578 checks, 0 violations, 0 unevaluated.make pilot-mission+make pilot-all: green, 128 pilot warnings, none in the files this PR touches (the set is develop's).make runs-check: 0 differences across the 270 recorded runs.scripts/runs.shreproduces all 270 runs byte-identical (the extra constraint term moves no recorded run), pilot-mission + pilot-all green, software-check green.developd49d64b (fix(model): station downlinks, light-time envelopes and the operations-day endpoint #46) as 74109ba:runs/house-rules.txtre-recorded from the combined tree (80 555 elements, 703 630 checks, 0 violations — the only conflict);make check+make software-checkgreen again (35 min 47 s), 0 run differences.make software-check: green — selftest ok (344 commands, 961 telemetry points, 181 events, 51 packets, 48 parameters, 16 mode rows, 12 state machines), generated tables do not drift, 11 Python tests passed.git ls-remote --heads originbefore pushing: the only other branches touching models 41/42/95/97 arewp/c-review-fixesandwp/as-built-review-fixes(the closed WP-C: envelope bounds angular momentum, commit uses upper-bound mass, link rates fit the transceiver #37 / fix(as-built): bind disposal requirements to gauged data and type the quantities #31).Link to Devin session: https://nasa-jpl-demo.devinenterprise.com/sessions/6752b07e631249a29b882e1dd917bf85
Open in Devin Desktop: https://nasa-jpl-demo.devinenterprise.com/desktop/session/6752b07e631249a29b882e1dd917bf85?variant=devin
Requested by: @HuiJun