36 lines
1.0 KiB
Plaintext
36 lines
1.0 KiB
Plaintext
@startuml
|
|
participant "FlightSimulator" as FS
|
|
participant "Rocket" as Rocket
|
|
participant "Stage" as Stage
|
|
participant "Motor" as Motor
|
|
participant "ForcesModel" as FM
|
|
participant "Environment" as Env
|
|
participant "Integrator" as Integrator
|
|
participant "FlightState" as State
|
|
participant "RecoverySystem" as Recovery
|
|
|
|
== Launch Preparation ==
|
|
FS -> Rocket: prepareForFlight(environment)
|
|
|
|
== Launch Simulation ==
|
|
loop simulation time steps
|
|
FS -> Stage: updateMotors(deltaTime)
|
|
FS -> FM: computeNetForce(State)
|
|
FM -> Rocket: query mass/CG
|
|
FM -> Env: get air density, gravity
|
|
FM -> Motor: get thrust
|
|
FS -> Integrator: step(State, netForce, deltaTime)
|
|
Integrator -> Rocket: query mass
|
|
FS -> Rocket: applyFlightState(State)
|
|
|
|
alt FS -> Rocket: check for burnout, apogee, recovery deployment
|
|
Rocket -> RecoverySystem: checkDeploymentCondition
|
|
end
|
|
|
|
== Landing ==
|
|
FS -> FlightState: detect low altitude and low vertical velocity
|
|
note over FS
|
|
End simulation after landing detected
|
|
end note
|
|
@enduml
|