Project

General

Profile

Download (2.25 KB) Statistics
| Branch: | Tag: | Revision:
1

    
2

    
3
node AutoPilot ( HeadMode  : real ; ailStick  : real ; elevStick  : real ; AltMode_Out1_41  : real ; FPAMode_Out1_51  : real ; ATMode_Out1_61  : real ; AltCmd_Out1_71  : real ; Altitude_Out1_81  : real ; CAS_Out1_91  : real ; CASCmdMCP_Out1_101  : real  ) 
4
   returns ( HeadEng  : bool ; AltEng_In1_1039  : bool ; FPAEng_In1_1051  : bool ; ATEng_In1_1063  : bool ; CASCmd_In1_1075  : real  ) ;
5
  
6
let
7
  -- GUIDE-220
8
  assert (HeadMode = 0.0) or (not (ailStick = 0.0)) or (not (elevStick = 0.0)) or (HeadEng = true);
9
tel 
10

    
11

    
12

    
13
node HeadingControl ( HdgCmdMCP  : real ; Heading  : real ; psidot_Out1_39  : real ; Vt_Out1_49  : real ; Roll  : real ; HeadEng  : bool ; rollLimitinput  : real; right : bool  ) 
14
   returns ( RollCmd  : real  ) ;
15
let
16

    
17
  -- GUIDE-260
18
  assert 
19
    (HeadEng = false) or
20
    (HdgCmdMCP = Heading) or
21
    ((right = true)  and ((RollCmd > Roll) or (RollCmd = rollLimitinput))) or
22
    ((right = false) and ((RollCmd < Roll) or (RollCmd = -rollLimitinput)));
23

    
24
 tel 
25

    
26

    
27

    
28
node top(HeadMode: real ; ailStick: real ; elevStick : real ; AltMode : real ; FPAMode : real ; ATMode : real ; AltCmd : real ; Altitude  : real ; CAS : real ; CASCmdMCP : real; HdgCmdMCP: real ; Heading : real ; psidot : real ; Vt : real ; Roll : real ; rollLimitInput : real) returns (obs : bool);
29
var 
30
    HeadEng  : bool ; 
31
    AltEng : bool; 
32
    FPAEng  : bool ; 
33
    ATEng  : bool ; 
34
    CASCmd  : real;
35
    RollCmd : real;
36
    right : bool;
37
let
38
   HeadEng, AltEng, FPAEng, ATEng, CASCmd= AutoPilot ( HeadMode,  ailStick, elevStick,  AltMode, FPAMode, ATMode, AltCmd, Altitude, CAS, CASCmdMCP);
39

    
40
   RollCmd =  HeadingControl ( HdgCmdMCP , Heading , psidot , Vt , Roll , HeadEng , rollLimitInput, right);
41

    
42
   assert (not (HeadMode = 0.0));
43
   assert (ailStick = 0.0);  
44
   assert (elevStick = 0.0); 
45
   assert (Heading >= 0) and (Heading < 360); 
46
   assert (HdgCmdMCP >= 0) and (HdgCmdMCP < 360); 
47
   assert (rollLimitInput > 0) and (rollLimitInput <= 30);
48

    
49
   right = ((HdgCmdMCP - Heading > 0) and (HdgCmdMCP - Heading < 180)) or (Heading - HdgCmdMCP > 180);
50

    
51
   obs  =  (HdgCmdMCP = Heading) or
52
     ((right = true)  and ((RollCmd > Roll) or (RollCmd = rollLimitInput))) or
53
     ((right = false) and ((RollCmd < Roll) or (RollCmd = -rollLimitInput)));
54

    
55
  --!MAIN : true;
56
  --!PROPERTY: obs = true;
57
tel
(10-10/28)