Space Shuttle Requirements
Table of Contents
1 General Hypotheses
- Req.s1.p2.1
- Text
Users of the SDAP are cautioned that, at very small rate limits and deadbands, e.g., 0.01 deg/s and 0.01 deg for vernier jets, simulation results using the models presented here may not represent real vehicle behavior because of the model simplifications.
- Comment
Do we have to do anything. Like check that rate limits and deadband should be above the thresholds?
- Scope
General. Do know exactly where to define it.
- Text
2 SDAP Structure
- Req.s2.1.p3.1
- Text
The conditioning inputs shown in Figure 2 include DAP parameters, such as attitude rate limits and deadbands and other quantities that the crew can set via keyboard entry, and by push-button moding discretes, such as the choices between primary and vernier jets and automatic and manual attitude control.
- Comment
Is this really a requirement?
- Text
- Req.s2.2.p5.1
- Text
When the steering mode is manual open-loop, the State Error and Phase Plane modules can be bypassed; jets are fired directly by moving the rotational hand controller (RHC) out of detent.
- Comment
This property is general and describe how the flow of values is propagated. The Figure 3 describe the general flow.
- Scope
General. Shall be expressed within SDAP since the use of StateError of PhasePlace are not visible from outside.
- Text
3 SDAP Mode Possibilities
4 SDAP Executive
- Req.s3.1.1.p18.1
- Req.s3.1.1.p18.2
- Req.s3.1.2.1.p19.1
- Req.s3.1.2.2.p19.1
- Text
If the hand controller is deflected in any axis, the SDAP automatically switches to manual mode
- Spec
(* Req Id: req_s3_1_2_2_p19_1 Text: If the hand controller is deflected in any axis, the SDAP automatically switches to manual mode Comment: no comment Origin: Section 3.1 SDAP Executive, p19 Scope: SDAP_Exec_Prop( -- inputs auto_manual_switch: bool; bypass_in: bool^3; rhc_state: int^3; -- only 0, +/-1 ) returns ( -- outputs bypass_out: bool^3; initialize_auto_maneuver: bool; initialize_jet_selection: bool; initialize_state_error: bool; ); Simulink Component Name: UpdateAutoManualSwitch.slx Req Contract PATH: UpdateAutoManualSwitch/Req_s3_1_2_2_p19_1 *) contract req_s3_1_2_2_p19_1 ( -- inputs rhc_state: int^3; ) returns ( -- outputs auto_manual_switch: bool; ); let guarantees (rhc_state[1] <> 0 or rhc_state[2] <>0 or rhc_state[3] <> 0) => not auto_manual_switch; tel
- Text
- Req.s3.1.2.2.p19.2
- Req.s3.1.2.2.p19.3
- Req.s3.1.2.2.p19.4
- Req.s3.1.2.2.p19.5
- Text
When the maneuver mode is changed from manual to auto, if the bypass flag is ON, it is set to OFF and the auto maneuver initialization flag is set to ON.
- Spec
(* Req Id: req_s3_1_2_2_p19_5 Text: When the maneuver mode is changed from manual to auto, if the bypass flag is ON, it is set to OFF and the auto maneuver initialization flag is set to ON. Comment: initialization flag is set to ON, but will be set to OFF at the end of AUTO MANEUVER in the same timestep. So Basically, checking this initialization has been checked in the Simulink Model. Comment: no comment Origin: Section 3.1 SDAP Executive, p19 Scope: SDAP_Exec_Prop( -- inputs auto_manual_switch: bool; bypass_in: bool^3; rhc_state: int^3; -- only 0, +/-1 ) returns ( -- outputs bypass_out: bool^3; initialize_auto_maneuver: bool; initialize_jet_selection: bool; initialize_state_error: bool; ); Simulink Component Name: AutoManualManeuver.slx *) contract req_s3_1_2_2_p19_5 ( -- inputs auto_manual_switch: bool; bypass_in: bool^3; ) returns ( -- outputs bypass_out: bool^3; ); let -- Req_s3_1_2_2_p19_5 is refined into 3 sub-properties, one for each dimension -- Local Variables -- switching from manual to auto var manual_to_auto : bool = not (pre auto_manual_switch) and auto_manual_switch; var req_s3_1_2_2_p19_5_1 : bool = manual_to_auto and bypass_in[1] => not bypass_out[1]; var req_s3_1_2_2_p19_5_2 : bool = manual_to_auto and bypass_in[2] => not bypass_out[2]; var req_s3_1_2_2_p19_5_3 : bool = manual_to_auto and bypass_in[3] => not bypass_out[3]; guarantees req_s3_1_2_2_p19_5_1; guarantees req_s3_1_2_2_p19_5_2; guarantees req_s3_1_2_2_p19_5_3; tel
- Text
- Req.s3.1.2.2.p19.6
- Req.s3.1.2.2.p20.1
- Req.s3.1.2.2.p20.2
5 Attitude Processor Module
6 Auto Maneuver Module
7 Manual Maneuver Module
- Req.s3.4.2.p33.1
- Req.s3.4.2.p33.2
- Req.s3.4.2.p33.3
- Req.s3.4.2.p33.4
- Req.s3.4.2.p33.5
- Req.s3.4.2.p34.1
- Text
A FORCE FIRE discrete is sent to the Phase Plane module when the RHC is deflected (first pass of deflection only). This discrete causes at least a minimum-impulse jet firing at the beginning of RHC deflection and improves the crew "feel" of vehicle response to manual input for SDAP settings involving a large RATE LIMIT and small MANEUVER RATE.
- Comment
Is it a single req or multiple ones?
- Text
- Req.s3.4.2.p34.2
8 State Error Module
- Req.s3.6.2.p45.1
- Text
The desired rate equals the MANEUVER RATE when the SDAP is in the discrete rate mode and the RHC is deflected, or it equals the eigen axis projection of MANEUVER RATE when the SDAP is in the auto maneuver mode and maneuvering. Otherwise the desired rate is zero.
- Comment
check completeness of the conditions
- Text
- Req.s3.6.2.p45.2
- Req.s3.6.2.p46.1
9 Phase Plane Module
- Req.s3.7.2.p53.1
- Req.s3.7.2.p48.1
- Req.s3.7.2.p53.2
- Req.s3.7.2.p53.3
- Req.s3.7.2.p53.4
- Req.s3.7.2.p53.5
- Text
Regions 4 and 8 have hysteresis. If the phase is in either region 4 or 8 and a firing is taking place (because, for example, regions 4 or 8 have been entered from regions 1 or 5), then the firing will continue until the phase point crosses the S13 switch curve. At that point, the ROTATION COMMAND magnitude will become less than one and stop the firing.
- Text
- Req.s3.7.2.p53.6
- Text
When inside region 4 or 8, after S13 has been crossed once, the ROTATION COMMAND magnitude will be less than unity since \(|S13| \leq |RL|\). In fact, it will be less than 0.8 because of the 0.8 multiplication factor. When no ROTATION COMMANDS are issued, vernier jet preferences usually are computed.
- Text
- Req.s3.7.2.p56.1
- Req.s3.7.2.p56.2
- Req.s3.7.2.p56.3