Repository navigation
ENH: Implement 3-DOF Single Rail Button Flight Phase (Tip-off Analysis) #28
Copy link
Copy link
Closed
Copy link
Labels
EnhancementNew feature or request, including adjustments in current codesNew feature or request, including adjustments in current codesFlightFlight Class related featuresFlight Class related featuresGood first issueGood for newcomersGood for newcomers
Milestone
Description
Activity
- addedEnhancementNew feature or request, including adjustments in current codesNew feature or request, including adjustments in current codes
on Feb 18, 2019 Working on it in the rail_buttons branch.
- addedFlightFlight Class related featuresFlight Class related features
on Jul 10, 2024 - changed the title
[-]Simulate Single Rail Button Flight Phase[/-][+]ENH: Implement 3-DOF Single Rail Button Flight Phase (Tip-off Analysis)[/+]on Nov 29, 2025 Working on it in the rail_buttons branch.
Currently there's no one working on this feature.
Please consider this issue in case you want to challenge yourself going deeper on flight dynamics and RocketPy's Equation of Motion.Reading the original RocketPy paper is a must in this case.
I'm marking this issue as "good first issue" because it doesn't interfere in other developments. But take in mind that there might be easier issues to do.
- added a commit that references this issue
on Dec 10, 2025 - linked a pull request that will close this issueENH: Implement 3-DOF Single Rail Button Flight Phase (Tip-off Analysis) #920
on Dec 21, 2025 Here is a possible reference for the EOMs
A high-precision dynamic model of a sounding rocket and rapid wind compensation method research
Reacted by Gui- added a commit that references this issue
on Sep 14, 2026
Metadata
Metadata
Assignees
Labels
EnhancementNew feature or request, including adjustments in current codesNew feature or request, including adjustments in current codesFlightFlight Class related featuresFlight Class related featuresGood first issueGood for newcomersGood for newcomers
Type
Projects
- StatusShow more project fieldsHotFix
Is your feature request related to a problem? Please describe.
Currently, the
Flightsimulation transitions instantly from Phase 1 (Two buttons on rail, 1-DOF linear motion) to Phase 3 (Free flight, 6-DOF).It skips an intermediate Phase 2: The "Single Rail Button" phase.
This occurs when the upper rail button has left the rail guide, but the lower rail button is still attached. During this split-second interval, the rocket is free to rotate (pitch/yaw) around the lower button due to wind or thrust misalignment, while still being constrained translationally along the rail axis.
Ignoring this phase ignores "Rod Whip" or "Tip-off" effects, which can significantly alter the initial conditions ($w_0$ , $\theta_0$ ) of the free flight, affecting dispersion accuracy.
Describe the solution you'd like
I would like to implement the equations of motion for this specific phase in the
Flightclass.The structure is already prepared in the code as
udot_rail2, but the method is currently empty/unimplemented.Implementation Details
Flight.udot_rail2(t, u)inrocketpy/flight/flight.py.Flightmain loop):Flight.effective_1rl.Flight.effective_2rl.Helpful Properties
The
Flightclass already has the necessary geometric properties to determine the start and end of this phase:Flight.effective_1rl: Distance to clear the first button.Flight.effective_2rl: Distance to clear the second button.Acceptance Criteria
udot_rail2to return the derivative of the state vectorFlightto detect whenz > effective_1rland switch the integration method fromudot_rail1toudot_rail2.udot_rail2transitions smoothly tou_dot(free flight) oncez > effective_2rl.Additional Context