Project

General

Profile

Download (78.2 KB) Statistics
| Branch: | Tag: | Revision:
1
-- Complete version of the TCM model 
2

    
3

    
4
-- nodes used accross the model 
5

    
6
node DynamicSaturation ( up_Out1_74  : real ; u_Out1_84  : real ; lo_Out1_94  : real  ) 
7
   returns ( y1_In1_136  : real  ) ;
8
var LowerRelop1_Out1_100  : bool ;
9
 Switch_Out1_109  : real ;
10
 Switch2_Out1_118  : real ;
11
 UpperRelop_Out1_124  : bool ;
12
 LowerRelop1_In1_98  : real ;
13
 LowerRelop1_In2_99  : real ;
14
 Switch_In1_106  : real ;
15
 Switch_In2_107  : bool ;
16
 Switch_In3_108  : real ;
17
 Switch2_In1_115  : real ;
18
 Switch2_In2_116  : bool ;
19
 Switch2_In3_117  : real ;
20
 UpperRelop_In1_122  : real ;
21
 UpperRelop_In2_123  : real ;
22
  
23
let
24
LowerRelop1_Out1_100  = LowerRelop1_In1_98 > LowerRelop1_In2_99;
25
Switch_Out1_109  = if Switch_In2_107 then Switch_In1_106 else Switch_In3_108;
26
Switch2_Out1_118  = if Switch2_In2_116 then Switch2_In1_115 else Switch2_In3_117;
27
UpperRelop_Out1_124  = UpperRelop_In1_122 < UpperRelop_In2_123;
28
Switch2_In1_115  = up_Out1_74;
29
LowerRelop1_In2_99  = up_Out1_74;
30
Switch_In3_108  = u_Out1_84;
31
LowerRelop1_In1_98  = u_Out1_84;
32
UpperRelop_In1_122  = u_Out1_84;
33
Switch_In1_106  = lo_Out1_94;
34
UpperRelop_In2_123  = lo_Out1_94;
35
Switch2_In3_117  = Switch_Out1_109;
36
y1_In1_136  = Switch2_Out1_118;
37
Switch2_In2_116  = LowerRelop1_Out1_100;
38
Switch_In2_107  = UpperRelop_Out1_124;
39
 tel 
40

    
41
node IntegratorReset(Fx  : real ; ResetLevel  : bool ; x0: real  ) 
42
   returns ( out  : real  ) ;
43
let
44
 out = x0 -> if (ResetLevel) then x0 else (Fx*1.0) + pre (out); 
45
tel
46

    
47
node EngageORzero ( engage  : bool ; signal  : real  )
48
   returns ( out : real  ) ;
49
let
50
  out  = if engage then signal else 0.0;
51
 tel
52

    
53
node ManualOverride (manual  : real ; auto : real  )
54
   returns ( manual_out  : real  ) ;
55
var
56
  temp  : bool ;
57
let
58
  temp  = if manual = 0.000000 then false else true;
59
  manual_out = if temp then auto else manual;
60
tel
61

    
62
-- end
63

    
64
-- Mode Control 
65
node FlipFlop ( S : bool ; R: bool  ) 
66
   returns ( Q: bool ; notQ  : bool  ) ;
67
let
68
notQ = ((not S) or R) -> if (not (S or R)) then pre notQ else R;
69
Q = not notQ;
70
 tel
71

    
72

    
73
node AltAndFPAMode ( ActiavteFPA_Out1_123  : real ; Deactivate_Out1_133  : bool ; Altitude_Out1_143  : real ; AltCmd_Out1_153  : real ; ActiavteAlt_Out1_163  : real  ) 
74
   returns ( AltEng_In1_480  : bool ; FPAEng_In1_492  : bool  ) ;
75
var Abs_Out1_174  : real ;
76
 Add_Out1_184  : real ;
77
 FlipFlop2_Out1_192  : bool ;
78
 FlipFlop2_Out2_193  : bool ;
79
 FlipFlop1_Out1_299  : bool ;
80
 FlipFlop1_Out2_300  : bool ;
81
 LogicalOperator1_Out1_404  : bool ;
82
 LogicalOperator2_Out1_409  : bool ;
83
 LogicalOperator3_Out1_415  : bool ;
84
 LogicalOperator4_Out1_421  : bool ;
85
 LogicalOperator5_Out1_427  : bool ;
86
 LogicalOperator7_Out1_432  : bool ;
87
 comapare1_Out1_450  : bool ;
88
 comapare2_Out1_456  : bool ;
89
 comapare3_Out1_462  : bool ;
90
 comapare4_Out1_468  : bool ;
91
 Abs_In1_173  : real ;
92
 Add_In1_182  : real ;
93
 Add_In2_183  : real ;
94
 FlipFlop2_In1_190  : bool ;
95
 FlipFlop2_In2_191  : bool ;
96
 FlipFlop1_In1_297  : bool ;
97
 FlipFlop1_In2_298  : bool ;
98
 LogicalOperator1_In1_402  : bool ;
99
 LogicalOperator1_In2_403  : bool ;
100
 LogicalOperator2_In1_408  : bool ;
101
 LogicalOperator3_In1_413  : bool ;
102
 LogicalOperator3_In2_414  : bool ;
103
 LogicalOperator4_In1_419  : bool ;
104
 LogicalOperator4_In2_420  : bool ;
105
 LogicalOperator5_In1_425  : bool ;
106
 LogicalOperator5_In2_426  : bool ;
107
 LogicalOperator7_In1_431  : bool ;
108
 Terminator_In1_434  : bool ;
109
 Terminator1_In1_436  : bool ;
110
 comapare1_In1_448  : int ;
111
 comapare1_In2_449  : int ;
112
 comapare2_In1_454  : real ;
113
 comapare2_In2_455  : real ;
114
 comapare3_In1_460  : real ;
115
 comapare3_In2_461  : real ;
116
 comapare4_In1_466  : real ;
117
 comapare4_In2_467  : real ;
118
  
119
let
120
Abs_Out1_174  = if Abs_In1_173 < 0.000000 then - Abs_In1_173 else Abs_In1_173;
121
Add_Out1_184  = Add_In1_182 + - Add_In2_183;
122
FlipFlop2_Out1_192 , FlipFlop2_Out2_193  = FlipFlop ( FlipFlop2_In1_190 , FlipFlop2_In2_191  );
123
FlipFlop1_Out1_299 , FlipFlop1_Out2_300  = FlipFlop ( FlipFlop1_In1_297 , FlipFlop1_In2_298  );
124
LogicalOperator1_Out1_404  = LogicalOperator1_In1_402 or LogicalOperator1_In2_403;
125
LogicalOperator2_Out1_409  = not LogicalOperator2_In1_408;
126
LogicalOperator3_Out1_415  = LogicalOperator3_In1_413 and LogicalOperator3_In2_414;
127
LogicalOperator4_Out1_421  = LogicalOperator4_In1_419 and LogicalOperator4_In2_420;
128
LogicalOperator5_Out1_427  = LogicalOperator5_In1_425 and LogicalOperator5_In2_426;
129
LogicalOperator7_Out1_432  = not LogicalOperator7_In1_431;
130
comapare1_Out1_450  = comapare1_In1_448 <> comapare1_In2_449;
131
comapare2_Out1_456  = comapare2_In1_454 <> comapare2_In2_455;
132
comapare3_Out1_462  = comapare3_In1_460 <> comapare3_In2_461;
133
comapare4_Out1_468  = comapare4_In1_466 <= comapare4_In2_467;
134
Terminator_In1_434  = FlipFlop2_Out2_193;
135
comapare2_In1_454  = ActiavteFPA_Out1_123;
136
LogicalOperator3_In1_413  = FlipFlop2_Out1_192;
137
LogicalOperator2_In1_408  = FlipFlop2_Out1_192;
138
comapare1_In1_448  = if Deactivate_Out1_133 then 1 else 0;
139
FlipFlop2_In1_190  = comapare2_Out1_456;
140
Terminator1_In1_436  = FlipFlop1_Out2_300;
141
LogicalOperator5_In1_425  = FlipFlop1_Out1_299;
142
LogicalOperator4_In1_419  = FlipFlop1_Out1_299;
143
FlipFlop1_In1_297  = comapare3_Out1_462;
144
FlipFlop1_In2_298  = comapare1_Out1_450;
145
FlipFlop2_In2_191  = comapare1_Out1_450;
146
comapare3_In2_461  = ActiavteAlt_Out1_163;
147
Add_In1_182  = Altitude_Out1_143;
148
Add_In2_183  = AltCmd_Out1_153;
149
Abs_In1_173  = Add_Out1_184;
150
comapare4_In1_466  = Abs_Out1_174;
151
FPAEng_In1_492  = LogicalOperator3_Out1_415;
152
LogicalOperator1_In1_402  = LogicalOperator2_Out1_409;
153
AltEng_In1_480  = LogicalOperator4_Out1_421;
154
LogicalOperator5_In2_426  = comapare4_Out1_468;
155
LogicalOperator1_In2_403  = comapare4_Out1_468;
156
LogicalOperator4_In2_420  = LogicalOperator1_Out1_404;
157
LogicalOperator3_In2_414  = LogicalOperator7_Out1_432;
158
comapare3_In1_460  =  0.0;
159
comapare1_In2_449  = 0;
160
comapare2_In2_455  = 0.0;
161
comapare4_In2_467  = 200.0 ;
162
LogicalOperator7_In1_431  = LogicalOperator5_Out1_427;
163
 tel 
164

    
165

    
166
node HeadingMode ( Actiavte_Out1_539  : real ; Deactivate_Out1_549  : bool  ) 
167
   returns ( HeadEng_In1_690  : bool  ) ;
168
var SRFlipFlopRepl_Out1_557  : bool ;
169
 SRFlipFlopRepl_Out2_558  : bool ;
170
 comapare1_Out1_672  : bool ;
171
 comapare2_Out1_678  : bool ;
172
 SRFlipFlopRepl_In1_555  : bool ;
173
 SRFlipFlopRepl_In2_556  : bool ;
174
 Terminator_In1_658  : bool ;
175
 comapare1_In1_670  : real ;
176
 comapare1_In2_671  : real ;
177
 comapare2_In1_676  : int ;
178
 comapare2_In2_677  : int ;
179
  
180
let
181
SRFlipFlopRepl_Out1_557 , SRFlipFlopRepl_Out2_558  = FlipFlop ( SRFlipFlopRepl_In1_555 , SRFlipFlopRepl_In2_556  );
182
comapare1_Out1_672  = comapare1_In1_670 <> comapare1_In2_671;
183
comapare2_Out1_678  = comapare2_In1_676 <> comapare2_In2_677;
184
Terminator_In1_658  = SRFlipFlopRepl_Out2_558;
185
comapare1_In1_670  = Actiavte_Out1_539;
186
HeadEng_In1_690  = SRFlipFlopRepl_Out1_557;
187
comapare2_In2_677  = if Deactivate_Out1_549 then 1 else 0;
188
SRFlipFlopRepl_In1_555  = comapare1_Out1_672;
189
SRFlipFlopRepl_In2_556  = comapare2_Out1_678;
190
comapare2_In1_676  = 0;
191
comapare1_In2_671  = 0.0;
192
 tel 
193

    
194

    
195
node SpeedMode ( Activate_Out1_725  : real ; AltEng_Out1_735  : bool ; CAS_Out1_745  : real ; CASCmdMCP_Out1_755  : real  ) 
196
   returns ( ATEng_In1_959  : bool ; CASCmd_In1_971  : real  ) ;
197
var Add_Out1_765  : int ;
198
 LogicalOperator_Out1_771  : bool ;
199
 LogicalOperator1_Out1_776  : bool ;
200
 LogicalOperator2_Out1_782  : bool ;
201
 SRFlipFlopRepl0_Out1_790  : bool ;
202
 SRFlipFlopRepl0_Out2_791  : bool ;
203
 Switch_Out1_898  : real ;
204
 Switch1_Out1_907  : real ;
205
 UnitDelay1_Out1_914  : bool ;
206
 UnitDelay2_Out1_919  : real ;
207
 comapare1_Out1_941  : bool ;
208
 comapare2_Out1_947  : bool ;
209
 Add_In1_763  : int ;
210
 Add_In2_764  : int ;
211
 LogicalOperator_In1_769  : bool ;
212
 LogicalOperator_In2_770  : bool ;
213
 LogicalOperator1_In1_775  : bool ;
214
 LogicalOperator2_In1_780  : bool ;
215
 LogicalOperator2_In2_781  : bool ;
216
 SRFlipFlopRepl0_In1_788  : bool ;
217
 SRFlipFlopRepl0_In2_789  : bool ;
218
 Switch_In1_895  : real ;
219
 Switch_In2_896  : bool ;
220
 Switch_In3_897  : real ;
221
 Switch1_In1_904  : real ;
222
 Switch1_In2_905  : bool ;
223
 Switch1_In3_906  : real ;
224
 Terminator_In1_909  : bool ;
225
 UnitDelay1_In1_913  : bool ;
226
 UnitDelay2_In1_918  : real ;
227
 comapare1_In1_939  : real ;
228
 comapare1_In2_940  : real ;
229
 comapare2_In1_945  : int ;
230
 comapare2_In2_946  : int ;
231
  
232
let
233
Add_Out1_765  = Add_In1_763 + Add_In2_764;
234
LogicalOperator_Out1_771  = LogicalOperator_In1_769 and LogicalOperator_In2_770;
235
LogicalOperator1_Out1_776  = not LogicalOperator1_In1_775;
236
LogicalOperator2_Out1_782  = LogicalOperator2_In1_780 or LogicalOperator2_In2_781;
237
SRFlipFlopRepl0_Out1_790 , SRFlipFlopRepl0_Out2_791  = FlipFlop ( SRFlipFlopRepl0_In1_788 , SRFlipFlopRepl0_In2_789  );
238
Switch_Out1_898  = if Switch_In2_896 then Switch_In1_895 else Switch_In3_897;
239
Switch1_Out1_907  = if Switch1_In2_905 then Switch1_In1_904 else Switch1_In3_906;
240
UnitDelay1_Out1_914  = false -> pre UnitDelay1_In1_913;
241
UnitDelay2_Out1_919  = 0.000000 -> pre UnitDelay2_In1_918;
242
comapare1_Out1_941  = comapare1_In1_939 <> comapare1_In2_940;
243
comapare2_Out1_947  = comapare2_In1_945 <> comapare2_In2_946;
244
Terminator_In1_909  = SRFlipFlopRepl0_Out2_791;
245
comapare1_In1_939  = Activate_Out1_725;
246
UnitDelay1_In1_913  = SRFlipFlopRepl0_Out1_790;
247
ATEng_In1_959  = SRFlipFlopRepl0_Out1_790;
248
LogicalOperator_In1_769  = AltEng_Out1_735;
249
LogicalOperator_In2_770  = LogicalOperator1_Out1_776;
250
SRFlipFlopRepl0_In1_788  = LogicalOperator2_Out1_782;
251
Add_In2_764  = if LogicalOperator_Out1_771 then 1 else 0;
252
LogicalOperator2_In2_781  = LogicalOperator_Out1_771;
253
Switch1_In3_906  = CAS_Out1_745;
254
Switch1_In1_904  = CASCmdMCP_Out1_755;
255
Add_In1_763  = if comapare1_Out1_941 then 1 else 0;
256
LogicalOperator2_In1_780  = comapare1_Out1_941;
257
Switch1_In2_905  = if Add_Out1_765 = 0 then false else true;
258
Switch_In2_896  = if Add_Out1_765 = 0 then false else true;
259
Switch_In3_897  = Switch1_Out1_907;
260
UnitDelay2_In1_918  = Switch_Out1_898;
261
Switch_In1_895  = UnitDelay2_Out1_919;
262
CASCmd_In1_971  = UnitDelay2_Out1_919;
263
comapare2_In1_945  = 0;
264
comapare1_In2_940  =  0.0;
265
LogicalOperator1_In1_775  = UnitDelay1_Out1_914;
266
comapare2_In2_946  = 0;
267
SRFlipFlopRepl0_In2_789  = comapare2_Out1_947;
268
 tel 
269

    
270

    
271
node AutoPilot ( HeadMode_Out1_11  : real ; ailStick_Out1_21  : real ; elevStick_Out1_31  : 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  ) 
272
   returns ( HeadEng_In1_1027  : bool ; AltEng_In1_1039  : bool ; FPAEng_In1_1051  : bool ; ATEng_In1_1063  : bool ; CASCmd_In1_1075  : real  ) ;
273
var AltAndFPAMode_Out1_112  : bool ;
274
 AltAndFPAMode_Out2_113  : bool ;
275
 HeadingMode_Out1_529  : bool ;
276
 LogicalOperator_Out1_704  : bool ;
277
 SpeedMode_Out1_714  : bool ;
278
 SpeedMode_Out2_715  : real ;
279
 comapare_Out1_1009  : bool ;
280
 comapare1_Out1_1015  : bool ;
281
 AltAndFPAMode_In1_107  : real ;
282
 AltAndFPAMode_In2_108  : bool ;
283
 AltAndFPAMode_In3_109  : real ;
284
 AltAndFPAMode_In4_110  : real ;
285
 AltAndFPAMode_In5_111  : real ;
286
 HeadingMode_In1_527  : real ;
287
 HeadingMode_In2_528  : bool ;
288
 LogicalOperator_In1_702  : bool ;
289
 LogicalOperator_In2_703  : bool ;
290
 SpeedMode_In1_710  : real ;
291
 SpeedMode_In2_711  : bool ;
292
 SpeedMode_In3_712  : real ;
293
 SpeedMode_In4_713  : real ;
294
 comapare_In1_1007  : real ;
295
 comapare_In2_1008  : real ;
296
 comapare1_In1_1013  : real ;
297
 comapare1_In2_1014  : real ;
298
  
299
let
300
AltAndFPAMode_Out1_112 , AltAndFPAMode_Out2_113  = AltAndFPAMode( AltAndFPAMode_In1_107 , AltAndFPAMode_In2_108 , AltAndFPAMode_In3_109 , AltAndFPAMode_In4_110 , AltAndFPAMode_In5_111  );
301
HeadingMode_Out1_529  = HeadingMode ( HeadingMode_In1_527 , HeadingMode_In2_528  );
302
LogicalOperator_Out1_704  = LogicalOperator_In1_702 or LogicalOperator_In2_703;
303
SpeedMode_Out1_714 , SpeedMode_Out2_715  = SpeedMode ( SpeedMode_In1_710 , SpeedMode_In2_711 , SpeedMode_In3_712 , SpeedMode_In4_713  );
304
comapare_Out1_1009  = comapare_In1_1007 <> comapare_In2_1008;
305
comapare1_Out1_1015  = comapare1_In1_1013 <> comapare1_In2_1014;
306
ATEng_In1_1063  = SpeedMode_Out1_714;
307
comapare_In2_1008  = ailStick_Out1_21;
308
SpeedMode_In2_711  = AltAndFPAMode_Out2_113;
309
FPAEng_In1_1051  = AltAndFPAMode_Out2_113;
310
AltEng_In1_1039  = AltAndFPAMode_Out1_112;
311
HeadEng_In1_1027  = HeadingMode_Out1_529;
312
HeadingMode_In1_527  = HeadMode_Out1_11;
313
LogicalOperator_In2_703  = comapare1_Out1_1015;
314
LogicalOperator_In1_702  = comapare_Out1_1009;
315
comapare1_In2_1014  = elevStick_Out1_31;
316
SpeedMode_In1_710  = ATMode_Out1_61;
317
AltAndFPAMode_In1_107  = FPAMode_Out1_51;
318
AltAndFPAMode_In3_109  = Altitude_Out1_81;
319
AltAndFPAMode_In5_111  = AltMode_Out1_41;
320
AltAndFPAMode_In2_108  = LogicalOperator_Out1_704;
321
HeadingMode_In2_528  = LogicalOperator_Out1_704;
322
SpeedMode_In4_713  = CASCmdMCP_Out1_101;
323
AltAndFPAMode_In4_110  = AltCmd_Out1_71;
324
CASCmd_In1_1075  = SpeedMode_Out2_715;
325
SpeedMode_In3_712  = CAS_Out1_91;
326
comapare1_In1_1013  = 0.0;
327
comapare_In1_1007  = 0.0;
328
 tel 
329

    
330
-- end mode Control 
331

    
332
-- Longitudinal Control
333
-- Altitude Control
334

    
335
node VariableLimitSaturation ( uplim_Out1_286  : real ; SigIn_Out1_296  : real ; Lolim_Out1_306  : real  ) 
336
   returns ( Out1_In1_338  : real  ) ;
337
var Enforcelowlim_Out1_316  : real ;
338
 Enforceuplim_Out1_326  : real ;
339
 Enforcelowlim_In1_314  : real ;
340
 Enforcelowlim_In2_315  : real ;
341
 Enforceuplim_In1_324  : real ;
342
 Enforceuplim_In2_325  : real ;
343
  
344
let
345
Enforcelowlim_Out1_316  = if Enforcelowlim_In1_314 >= Enforcelowlim_In2_315 then Enforcelowlim_In2_315 else Enforcelowlim_In1_314;
346
Enforceuplim_Out1_326  = if Enforceuplim_In1_324 <= Enforceuplim_In2_325 then Enforceuplim_In1_324 else Enforceuplim_In2_325;
347
Out1_In1_338  = Enforceuplim_Out1_326;
348
Enforceuplim_In2_325  = uplim_Out1_286;
349
Enforceuplim_In1_324  = Enforcelowlim_Out1_316;
350
Enforcelowlim_In2_315  = SigIn_Out1_296;
351
Enforcelowlim_In1_314  = Lolim_Out1_306;
352
 tel 
353

    
354
node VariableRateLimit ( ratelim_Out1_209  : real ; input_Out1_219  : real ; ICtrig_Out1_229  : bool ; IC_Out1_239  : real  ) 
355
   returns ( output_In1_579  : real  ) ;
356
var Gain_Out1_248  : real ;
357
 Gain1_Out1_257  : real ;
358
 Sum2_Out1_267  : real ;
359
 VariableLimitSaturation_Out1_276  : real ;
360
 Add_Out1_392  : real ;
361
 Gain1Reset_Out1_409  : real ;
362
 Product_Out1_421  : real ;
363
 Product1_Out1_433  : real ;
364
 Product2_Out1_446  : real ;
365
 Sum1_Out1_456  : real ;
366
 Sum2Reset_Out1_466  : real ;
367
 Sum3_Out1_476  : real ;
368
 Sum4_Out1_486  : real ;
369
 delaysharp1_Out1_491  : real ;
370
 delaysharp2_Out1_496  : real ;
371
 delaysharp3_Out1_501  : bool ;
372
 eq0_Out1_507  : bool ;
373
 ne0_Out1_513  : bool ;
374
 ne1_Out1_519  : bool ;
375
 Gain_In1_247  : real ;
376
 Gain1_In1_256  : real ;
377
 Sum2_In1_265  : real ;
378
 Sum2_In2_266  : real ;
379
 VariableLimitSaturation_In1_273  : real ;
380
 VariableLimitSaturation_In2_274  : real ;
381
 VariableLimitSaturation_In3_275  : real ;
382
 Add_In1_390  : real ;
383
 Add_In2_391  : real ;
384
 Gain1Reset_In1_408  : real ;
385
 Product_In1_419  : real ;
386
 Product_In2_420  : real ;
387
 Product1_In1_431  : real ;
388
 Product1_In2_432  : real ;
389
 Product2_In1_443  : real ;
390
 Product2_In2_444  : real ;
391
 Product2_In3_445  : real ;
392
 Sum1_In1_454  : real ;
393
 Sum1_In2_455  : real ;
394
 Sum2Reset_In1_464  : real ;
395
 Sum2Reset_In2_465  : real ;
396
 Sum3_In1_474  : real ;
397
 Sum3_In2_475  : real ;
398
 Sum4_In1_484  : real ;
399
 Sum4_In2_485  : real ;
400
 delaysharp1_In1_490  : real ;
401
 delaysharp2_In1_495  : real ;
402
 delaysharp3_In1_500  : bool ;
403
 eq0_In1_505  : int ;
404
 eq0_In2_506  : int ;
405
 ne0_In1_511  : int ;
406
 ne0_In2_512  : int ;
407
 ne1_In1_517  : int ;
408
 ne1_In2_518  : int ;
409
  
410
let
411
Gain_Out1_248  =  20.0 * Gain_In1_247;
412
Gain1_Out1_257  = - 1.0 * Gain1_In1_256;
413
Sum2_Out1_267  = Sum2_In1_265 + - Sum2_In2_266;
414
VariableLimitSaturation_Out1_276  = VariableLimitSaturation ( VariableLimitSaturation_In1_273 , VariableLimitSaturation_In2_274 , VariableLimitSaturation_In3_275  );
415
Add_Out1_392  = Add_In1_390 + Add_In2_391;
416
Gain1Reset_Out1_409  = 1.000000 * Gain1Reset_In1_408;
417
Product_Out1_421  = Product_In1_419 * Product_In2_420;
418
Product1_Out1_433  = Product1_In1_431 * Product1_In2_432;
419
Product2_Out1_446  = Product2_In1_443 * ( Product2_In2_444 * Product2_In3_445  );
420
Sum1_Out1_456  = Sum1_In1_454 + Sum1_In2_455;
421
Sum2Reset_Out1_466  = Sum2Reset_In1_464 + Sum2Reset_In2_465;
422
Sum3_Out1_476  = - Sum3_In1_474 + Sum3_In2_475;
423
Sum4_Out1_486  = Sum4_In1_484 + Sum4_In2_485;
424
delaysharp1_Out1_491  = 1.000000 -> pre delaysharp1_In1_490;
425
delaysharp2_Out1_496  = 0.000000 -> pre delaysharp2_In1_495;
426
delaysharp3_Out1_501  = false -> pre delaysharp3_In1_500;
427
eq0_Out1_507  = eq0_In1_505 = eq0_In2_506;
428
ne0_Out1_513  = ne0_In1_511 <> ne0_In2_512;
429
ne1_Out1_519  = ne1_In1_517 <> ne1_In2_518;
430
Gain_In1_247  = Sum2_Out1_267;
431
VariableLimitSaturation_In2_274  = Gain_Out1_248;
432
Gain1_In1_256  = ratelim_Out1_209;
433
VariableLimitSaturation_In1_273  = ratelim_Out1_209;
434
VariableLimitSaturation_In3_275  = Gain1_Out1_257;
435
Sum2_In2_266  = delaysharp2_Out1_496;
436
output_In1_579  = delaysharp2_Out1_496;
437
Sum2_In1_265  = input_Out1_219;
438
Gain1Reset_In1_408  = VariableLimitSaturation_Out1_276;
439
Product_In1_419  = IC_Out1_239;
440
Sum3_In2_475  = IC_Out1_239;
441
delaysharp3_In1_500  = ICtrig_Out1_229;
442
ne0_In1_511  = if ICtrig_Out1_229 then 1 else 0;
443
eq0_In1_505  = if ICtrig_Out1_229 then 1 else 0;
444
delaysharp2_In1_495  = Sum1_Out1_456;
445
Sum1_In1_454  = Gain1Reset_Out1_409;
446
Sum3_In1_474  = delaysharp2_Out1_496;
447
Sum4_In1_484  = delaysharp2_Out1_496;
448
Sum1_In2_455  = Sum2Reset_Out1_466;
449
Sum2Reset_In2_465  = Product_Out1_421;
450
Product_In2_420  = delaysharp1_Out1_491;
451
delaysharp1_In1_490  = 0.000000;
452
ne1_In1_517  = if delaysharp3_Out1_501 then 1 else 0;
453
Product1_In1_431  = Sum3_Out1_476;
454
Product2_In2_444  = Sum3_Out1_476;
455
Product1_In2_432  = if ne0_Out1_513 then 1.000000 else 0.000000;
456
Product2_In1_443  = if eq0_Out1_507 then 1.000000 else 0.000000;
457
Add_In1_390  = Product1_Out1_433;
458
Add_In2_391  = Product2_Out1_446;
459
ne0_In2_512  = 0;
460
eq0_In2_506  = 0;
461
ne1_In2_518  = 0;
462
Product2_In3_445  = if ne1_Out1_519 then 1.000000 else 0.000000;
463
Sum2Reset_In1_464  = Sum4_Out1_486;
464
Sum4_In2_485  = Add_Out1_392;
465
 tel 
466

    
467

    
468

    
469
node AltitudeControl ( alteng_Out1_19  : real ; AltCmd_Out1_29  : real ; Altitude_Out1_39  : real ; gskts_Out1_49  : real ; hdot_Out1_59  : real  ) 
470
   returns (gammaCmd : real  ) ;
471
var Abs_Out1_62  : real ;
472
 Divide_Out1_118  : real ;
473
 Kh_Out1_127  : real ;
474
 LogicalOperator_Out1_132  : bool ;
475
 MinMax_Out1_142  : real ;
476
 MinMax1_Out1_152  : real ;
477
 Mux_Out1_156_0  : real ;
478
 Mux_Out1_156_1  : real ;
479
 Mux1_Out1_160_0  : real ;
480
 Mux1_Out1_160_1  : real ;
481
 Sum_Out1_170  : real ;
482
 Sum3_Out1_180  : real ;
483
 Switch_Out1_189  : real ;
484
 VariableRateLimit_Out1_199  : real ;
485
 VariableLimitSaturation0_Out1_599  : real ;
486
 k_Out1_675  : real ;
487
 kts2fps_Out1_684  : real ;
488
 r2d_Out1_848  : real ;
489
 Abs_In1_61  : real ;
490
 AltCtnlScope_In1_64_0  : real ;
491
 AltCtnlScope_In1_64_1  : real ;
492
 AltCtnlScope_In2_65_0  : real ;
493
 AltCtnlScope_In2_65_1  : real ;
494
 AltCtnlScope_In3_66  : real ;
495
 Divide_In1_116  : real ;
496
 Divide_In2_117  : real ;
497
 Kh_In1_126  : real ;
498
 LogicalOperator_In1_131  : bool ;
499
 MinMax_In1_140  : real ;
500
 MinMax_In2_141  : real ;
501
 MinMax1_In1_150  : real ;
502
 -- MinMax1_In2_151  : real ;
503
 Mux_In1_154  : real ;
504
 Mux_In2_155  : real ;
505
 Mux1_In1_158  : real ;
506
 Mux1_In2_159  : real ;
507
 Sum_In1_168  : real ;
508
 Sum_In2_169  : real ;
509
 Sum3_In1_178  : real ;
510
 Sum3_In2_179  : real ;
511
 Switch_In1_186  : real ;
512
 Switch_In2_187  : bool ;
513
 Switch_In3_188  : real ;
514
 -- VariableRateLimit_In1_195  : real ;
515
 VariableRateLimit_In2_196  : real ;
516
 VariableRateLimit_In3_197  : bool ;
517
 VariableRateLimit_In4_198  : real ;
518
 VariableLimitSaturation0_In1_596  : real ;
519
 VariableLimitSaturation0_In2_597  : real ;
520
 VariableLimitSaturation0_In3_598  : real ;
521
 k_In1_674  : real ;
522
 kts2fps_In1_683  : real ;
523
 r2d_In1_847  : real ;
524
 altgamcmd_In1_860  : real ;
525
  
526
let
527
gammaCmd = if (alteng_Out1_19 = 0.0) then 0.0 else   altgamcmd_In1_860;
528
Abs_Out1_62  = if Abs_In1_61 < 0.000000 then - Abs_In1_61 else Abs_In1_61;
529
Divide_Out1_118  = Divide_In1_116 * ( 1.000000 / Divide_In2_117  );
530
Kh_Out1_127  = 0.080000 * Kh_In1_126;
531
LogicalOperator_Out1_132  = not LogicalOperator_In1_131;
532
MinMax_Out1_142  = if MinMax_In1_140 <= MinMax_In2_141 then MinMax_In1_140 else MinMax_In2_141;
533
MinMax1_Out1_152  = if MinMax1_In1_150 >= 0.000100 then 0.000100 else MinMax1_In1_150;
534
Mux_Out1_156_0  = Mux_In1_154;
535
Mux_Out1_156_1  = Mux_In2_155;
536
Mux1_Out1_160_0  = Mux1_In1_158;
537
Mux1_Out1_160_1  = Mux1_In2_159;
538
Sum_Out1_170  = Sum_In1_168 + - Sum_In2_169;
539
Sum3_Out1_180  = Sum3_In1_178 + Sum3_In2_179;
540
Switch_Out1_189  = if Switch_In2_187 then Switch_In1_186 else Switch_In3_188;
541
VariableRateLimit_Out1_199  = VariableRateLimit ( 3.200000 , VariableRateLimit_In2_196 , VariableRateLimit_In3_197 , VariableRateLimit_In4_198  );
542
VariableLimitSaturation0_Out1_599  = VariableLimitSaturation( VariableLimitSaturation0_In1_596 , VariableLimitSaturation0_In2_597 , VariableLimitSaturation0_In3_598  );
543
k_Out1_675  = - 1.0 * k_In1_674;
544
kts2fps_Out1_684  = 1.687800 * kts2fps_In1_683;
545
r2d_Out1_848  = 57.295800 * r2d_In1_847;
546
Kh_In1_126  = Sum_Out1_170;
547
Sum_In1_168  = AltCmd_Out1_29;
548
Mux_In1_154  = AltCmd_Out1_29;
549
Sum_In2_169  = Altitude_Out1_39;
550
Mux_In2_155  = Altitude_Out1_39;
551
Abs_In1_61  = hdot_Out1_59;
552
VariableRateLimit_In4_198  = hdot_Out1_59;
553
Sum3_In1_178  = Abs_Out1_62;
554
Sum3_In2_179  = 10.0;
555
VariableLimitSaturation0_In3_598  = k_Out1_675;
556
k_In1_674  = Sum3_Out1_180;
557
VariableLimitSaturation0_In1_596  = Sum3_Out1_180;
558
LogicalOperator_In1_131  = if alteng_Out1_19 = 0.000000 then false else true;
559
AltCtnlScope_In3_66  = alteng_Out1_19;
560
Switch_In2_187  = if alteng_Out1_19 = 0.000000 then false else true;
561
kts2fps_In1_683  = gskts_Out1_49;
562
r2d_In1_847  = Divide_Out1_118;
563
altgamcmd_In1_860  = r2d_Out1_848;
564
VariableRateLimit_In3_197  = LogicalOperator_Out1_132;
565
Mux1_In1_158  = VariableLimitSaturation0_Out1_599;
566
VariableRateLimit_In2_196  = VariableLimitSaturation0_Out1_599;
567
Mux1_In2_159  = VariableRateLimit_Out1_199;
568
Divide_In1_116  = VariableRateLimit_Out1_199;
569
MinMax1_In1_150  = kts2fps_Out1_684;
570
Divide_In2_117  = MinMax_Out1_142;
571
VariableLimitSaturation0_In2_597  = Switch_Out1_189;
572
Switch_In1_186  = Kh_Out1_127;
573
Switch_In3_188  = 0.0;
574
AltCtnlScope_In1_64_0  = Mux_Out1_156_0;
575
AltCtnlScope_In1_64_1  = Mux_Out1_156_1;
576
AltCtnlScope_In2_65_0  = Mux1_Out1_160_0;
577
AltCtnlScope_In2_65_1  = Mux1_Out1_160_1;
578
MinMax_In1_140  = MinMax1_Out1_152;
579
MinMax_In2_141  = 1000.0;
580
 tel 
581

    
582

    
583
-- END Altitude Control
584

    
585
-- START FPA Control
586

    
587

    
588
node FPAControl ( engage_Out1_15  : real ; gamcmd_Out1_25  : real ; gamma_Out1_35  : real ; thetadeg_Out1_45  : real ; VT_Out1_55  : real  ) 
589
   returns ( PitchCmd_In1_487  : real) ;
590
var DynamicSaturation_Out1_64  : real ;
591
 KIgamerr_Out1_161  : real ;
592
 Kgamerr_Out1_170  : real ;
593
 LogicalOperator_Out1_175  : bool ;
594
 Mux_Out1_179_0  : real ;
595
 Mux_Out1_179_1  : real ;
596
 Mux1_Out1_183_0  : real ;
597
 Mux1_Out1_183_1  : real ;
598
 Product1_Out1_195  : real ;
599
 Sum_Out1_205  : real ;
600
 Sum1_Out1_215  : real ;
601
 Sum2_Out1_225  : real ;
602
 -- integratorreset_Out1_242  : real ;
603
 kt2fps_Out1_466  : real ;
604
 m1_Out1_475  : real ;
605
 DynamicSaturation_In1_61  : real ;
606
 DynamicSaturation_In2_62  : real ;
607
 DynamicSaturation_In3_63  : real ;
608
 FPAScope_In1_149  : real ;
609
 FPAScope_In2_150_0  : real ;
610
 FPAScope_In2_150_1  : real ;
611
 FPAScope_In3_151_0  : real ;
612
 FPAScope_In3_151_1  : real ;
613
 FPAScope_In4_152  : real ;
614
 KIgamerr_In1_160  : real ;
615
 Kgamerr_In1_169  : real ;
616
 LogicalOperator_In1_174  : bool ;
617
 Mux_In1_177  : real ;
618
 Mux_In2_178  : real ;
619
 Mux1_In1_181  : real ;
620
 Mux1_In2_182  : real ;
621
 Product1_In2_194  : real ;
622
 Sum_In1_203  : real ;
623
 Sum_In2_204  : real ;
624
 Sum1_In1_213  : real ;
625
 Sum1_In2_214  : real ;
626
 Sum2_In1_223  : real ;
627
 Sum2_In2_224  : real ;
628
 integratorreset_In1_239  : real ;
629
 integratorreset_In2_240  : bool ;
630
 integratorreset_In3_241  : real ;
631
 kt2fps_In1_465  : real ;
632
 m1_In1_474  : real ;
633
integratorreset_Out1_242 : real ; 
634
  
635
let
636
DynamicSaturation_Out1_64  = DynamicSaturation ( DynamicSaturation_In1_61 , DynamicSaturation_In2_62 , DynamicSaturation_In3_63  );
637
KIgamerr_Out1_161  = 1.0 * KIgamerr_In1_160;
638
Kgamerr_Out1_170  = 1.400000 * Kgamerr_In1_169;
639
LogicalOperator_Out1_175  = not LogicalOperator_In1_174;
640
Mux_Out1_179_0  = Mux_In1_177;
641
Mux_Out1_179_1  = Mux_In2_178;
642
Mux1_Out1_183_0  = Mux1_In1_181;
643
Mux1_Out1_183_1  = Mux1_In2_182;
644
Product1_Out1_195  = 276.738714 * Product1_In2_194;
645
Sum_Out1_205  = Sum_In1_203 + Sum_In2_204;
646
Sum1_Out1_215  = Sum1_In1_213 + - Sum1_In2_214;
647
Sum2_Out1_225  = Sum2_In1_223 + - Sum2_In2_224;
648
integratorreset_Out1_242  = IntegratorReset( integratorreset_In1_239 , integratorreset_In2_240 , integratorreset_In3_241  );
649
kt2fps_Out1_466  = 1.687800 * kt2fps_In1_465;
650
m1_Out1_475  = -1.0 * m1_In1_474;
651
PitchCmd_In1_487  = Sum1_Out1_215;
652
FPAScope_In4_152  = Sum1_Out1_215;
653
Sum1_In2_214  = Kgamerr_Out1_170;
654
Sum_In2_204  = Kgamerr_Out1_170;
655
Sum1_In1_213  = integratorreset_Out1_242;
656
Kgamerr_In1_169  = gamma_Out1_35;
657
Sum2_In2_224  = gamma_Out1_35;
658
Mux_In2_178  = gamma_Out1_35;
659
Sum_In1_203  = thetadeg_Out1_45;
660
integratorreset_In3_241  = Sum_Out1_205;
661
LogicalOperator_In1_174  = if engage_Out1_15 = 0.000000 then false else true;
662
FPAScope_In1_149  = engage_Out1_15;
663
integratorreset_In2_240  = LogicalOperator_Out1_175;
664
Product1_In2_194  = kt2fps_Out1_466;
665
m1_In1_474  = Product1_Out1_195;
666
DynamicSaturation_In1_61  = Product1_Out1_195;
667
kt2fps_In1_465  = VT_Out1_55;
668
integratorreset_In1_239  = DynamicSaturation_Out1_64;
669
Mux1_In2_182  = DynamicSaturation_Out1_64;
670
DynamicSaturation_In2_62  = KIgamerr_Out1_161;
671
DynamicSaturation_In3_63  = m1_Out1_475;
672
KIgamerr_In1_160  = Sum2_Out1_225;
673
Mux1_In1_181  = Sum2_Out1_225;
674
Sum2_In1_223  = gamcmd_Out1_25;
675
Mux_In1_177  = gamcmd_Out1_25;
676
FPAScope_In2_150_0  = Mux_Out1_179_0;
677
FPAScope_In2_150_1  = Mux_Out1_179_1;
678
FPAScope_In3_151_0  = Mux1_Out1_183_0;
679
FPAScope_In3_151_1  = Mux1_Out1_183_1;
680
 tel 
681

    
682

    
683
node FPA_ALT_Connection (AltGammaCmd  : real ; FpaCmd : real) 
684
   returns ( gammaCmd: real) ;
685
let
686
  gammaCmd = AltGammaCmd + FpaCmd;
687
tel
688

    
689

    
690

    
691
node Interpolate1dsharp0 ( In1_Out1_2078  : real ; x1_Out1_2088  : real ; x2_Out1_2098  : real ; y1_Out1_2108  : real ; y2_Out1_2118  : real  ) 
692
   returns ( Out1_In1_2183  : real  ) ;
693
var Add1_Out1_2128  : real ;
694
 Add2_Out1_2138  : real ;
695
 Add3_Out1_2148  : real ;
696
 Add4_Out1_2158  : real ;
697
 Divide_Out1_2171  : real ;
698
 Add1_In1_2126  : real ;
699
 Add1_In2_2127  : real ;
700
 Add2_In1_2136  : real ;
701
 Add2_In2_2137  : real ;
702
 Add3_In1_2146  : real ;
703
 Add3_In2_2147  : real ;
704
 Add4_In1_2156  : real ;
705
 Add4_In2_2157  : real ;
706
 Divide_In1_2168  : real ;
707
 Divide_In2_2169  : real ;
708
 Divide_In3_2170  : real ;
709
  
710
let
711
Add1_Out1_2128  = - Add1_In1_2126 + Add1_In2_2127;
712
Add2_Out1_2138  = Add2_In1_2136 + Add2_In2_2137;
713
Add3_Out1_2148  = - Add3_In1_2146 + Add3_In2_2147;
714
Add4_Out1_2158  = Add4_In1_2156 + - Add4_In2_2157;
715
Divide_Out1_2171  = Divide_In1_2168 * ( 1.000000 div Divide_In2_2169 * Divide_In3_2170  );
716
Out1_In1_2183  = Add2_Out1_2138;
717
Add2_In2_2137  = y1_Out1_2108;
718
Add3_In1_2146  = y1_Out1_2108;
719
Add1_In2_2127  = x2_Out1_2098;
720
Add1_In1_2126  = x1_Out1_2088;
721
Add4_In2_2157  = x1_Out1_2088;
722
Divide_In2_2169  = Add1_Out1_2128;
723
Add3_In2_2147  = y2_Out1_2118;
724
Divide_In3_2170  = Add3_Out1_2148;
725
Add2_In1_2136  = Divide_Out1_2171;
726
Divide_In1_2168  = Add4_Out1_2158;
727
Add4_In1_2156  = In1_Out1_2078;
728
 tel 
729

    
730
node Interpolate1dsharp1 ( In1_Out1_2216  : real ; x1_Out1_2226  : real ; x2_Out1_2236  : real ; y1_Out1_2246  : real ; y2_Out1_2256  : real  ) 
731
   returns ( Out1_In1_2321  : real  ) ;
732
var Add1_Out1_2266  : real ;
733
 Add2_Out1_2276  : real ;
734
 Add3_Out1_2286  : real ;
735
 Add4_Out1_2296  : real ;
736
 Divide_Out1_2309  : real ;
737
 Add1_In1_2264  : real ;
738
 Add1_In2_2265  : real ;
739
 Add2_In1_2274  : real ;
740
 Add2_In2_2275  : real ;
741
 Add3_In1_2284  : real ;
742
 Add3_In2_2285  : real ;
743
 Add4_In1_2294  : real ;
744
 Add4_In2_2295  : real ;
745
 Divide_In1_2306  : real ;
746
 Divide_In2_2307  : real ;
747
 Divide_In3_2308  : real ;
748
  
749
let
750
Add1_Out1_2266  = - Add1_In1_2264 + Add1_In2_2265;
751
Add2_Out1_2276  = Add2_In1_2274 + Add2_In2_2275;
752
Add3_Out1_2286  = - Add3_In1_2284 + Add3_In2_2285;
753
Add4_Out1_2296  = Add4_In1_2294 + - Add4_In2_2295;
754
Divide_Out1_2309  = Divide_In1_2306 * ( 1.000000 div Divide_In2_2307 * Divide_In3_2308  );
755
Out1_In1_2321  = Add2_Out1_2276;
756
Add2_In2_2275  = y1_Out1_2246;
757
Add3_In1_2284  = y1_Out1_2246;
758
Add1_In2_2265  = x2_Out1_2236;
759
Add1_In1_2264  = x1_Out1_2226;
760
Add4_In2_2295  = x1_Out1_2226;
761
Divide_In2_2307  = Add1_Out1_2266;
762
Add3_In2_2285  = y2_Out1_2256;
763
Divide_In3_2308  = Add3_Out1_2286;
764
Add2_In1_2274  = Divide_Out1_2309;
765
Divide_In1_2306  = Add4_Out1_2296;
766
Add4_In1_2294  = In1_Out1_2216;
767
 tel 
768

    
769
node Interpolate1dsharp2 ( In1_Out1_2354  : real ; x1_Out1_2364  : real ; x2_Out1_2374  : real ; y1_Out1_2384  : real ; y2_Out1_2394  : real  ) 
770
   returns ( Out1_In1_2459  : real  ) ;
771
var Add1_Out1_2404  : real ;
772
 Add2_Out1_2414  : real ;
773
 Add3_Out1_2424  : real ;
774
 Add4_Out1_2434  : real ;
775
 Divide_Out1_2447  : real ;
776
 Add1_In1_2402  : real ;
777
 Add1_In2_2403  : real ;
778
 Add2_In1_2412  : real ;
779
 Add2_In2_2413  : real ;
780
 Add3_In1_2422  : real ;
781
 Add3_In2_2423  : real ;
782
 Add4_In1_2432  : real ;
783
 Add4_In2_2433  : real ;
784
 Divide_In1_2444  : real ;
785
 Divide_In2_2445  : real ;
786
 Divide_In3_2446  : real ;
787
  
788
let
789
Add1_Out1_2404  = - Add1_In1_2402 + Add1_In2_2403;
790
Add2_Out1_2414  = Add2_In1_2412 + Add2_In2_2413;
791
Add3_Out1_2424  = - Add3_In1_2422 + Add3_In2_2423;
792
Add4_Out1_2434  = Add4_In1_2432 + - Add4_In2_2433;
793
Divide_Out1_2447  = Divide_In1_2444 * ( 1.000000 div Divide_In2_2445 * Divide_In3_2446  );
794
Out1_In1_2459  = Add2_Out1_2414;
795
Add2_In2_2413  = y1_Out1_2384;
796
Add3_In1_2422  = y1_Out1_2384;
797
Add1_In2_2403  = x2_Out1_2374;
798
Add1_In1_2402  = x1_Out1_2364;
799
Add4_In2_2433  = x1_Out1_2364;
800
Divide_In2_2445  = Add1_Out1_2404;
801
Add3_In2_2423  = y2_Out1_2394;
802
Divide_In3_2446  = Add3_Out1_2424;
803
Add2_In1_2412  = Divide_Out1_2447;
804
Divide_In1_2444  = Add4_Out1_2434;
805
Add4_In1_2432  = In1_Out1_2354;
806
 tel
807
node PI_Lookup1d ( In1_Out1_1989  : real  ) 
808
   returns ( Out1_In1_2565  : real  ) ;
809
var Add_Out1_2000  : real ;
810
 branchsharp1_Out1_2013  : real ;
811
 branchsharp2_Out1_2026  : real ;
812
 branchsharp3_Out1_2039  : real ;
813
 gte1_Out1_2045  : bool ;
814
 gte2_Out1_2051  : bool ;
815
 gte3_Out1_2057  : bool ;
816
 interpolate1dsharp0_Out1_2068  : real ;
817
 interpolate1dsharp1_Out1_2206  : real ;
818
 interpolate1dsharp2_Out1_2344  : real ;
819
 lte1_Out1_2477  : bool ;
820
 lte2_Out1_2483  : bool ;
821
 lte3_Out1_2489  : bool ;
822
 Add_In1_1997  : real ;
823
 Add_In2_1998  : real ;
824
 Add_In3_1999  : real ;
825
 branchsharp1_In1_2010  : real ;
826
 branchsharp1_In2_2011  : real ;
827
 branchsharp1_In3_2012  : real ;
828
 branchsharp2_In1_2023  : real ;
829
 branchsharp2_In2_2024  : real ;
830
 branchsharp2_In3_2025  : real ;
831
 branchsharp3_In1_2036  : real ;
832
 branchsharp3_In2_2037  : real ;
833
 branchsharp3_In3_2038  : real ;
834
 gte1_In1_2043  : real ;
835
 gte1_In2_2044  : real ;
836
 gte2_In1_2049  : real ;
837
 gte2_In2_2050  : real ;
838
 gte3_In1_2055  : real ;
839
 gte3_In2_2056  : real ;
840
 interpolate1dsharp0_In1_2063  : real ;
841
 interpolate1dsharp0_In2_2064  : real ;
842
 interpolate1dsharp0_In3_2065  : real ;
843
 interpolate1dsharp0_In4_2066  : real ;
844
 interpolate1dsharp0_In5_2067  : real ;
845
 interpolate1dsharp1_In1_2201  : real ;
846
 interpolate1dsharp1_In2_2202  : real ;
847
 interpolate1dsharp1_In3_2203  : real ;
848
 interpolate1dsharp1_In4_2204  : real ;
849
 interpolate1dsharp1_In5_2205  : real ;
850
 interpolate1dsharp2_In1_2339  : real ;
851
 interpolate1dsharp2_In2_2340  : real ;
852
 interpolate1dsharp2_In3_2341  : real ;
853
 interpolate1dsharp2_In4_2342  : real ;
854
 interpolate1dsharp2_In5_2343  : real ;
855
 lte1_In1_2475  : real ;
856
 lte1_In2_2476  : real ;
857
 lte2_In1_2481  : real ;
858
 lte2_In2_2482  : real ;
859
 lte3_In1_2487  : real ;
860
 lte3_In2_2488  : real ;
861
  
862
let
863
Add_Out1_2000  = Add_In1_1997 + ( Add_In2_1998 + Add_In3_1999  );
864
branchsharp1_Out1_2013  = branchsharp1_In1_2010 * ( branchsharp1_In2_2011 * branchsharp1_In3_2012  );
865
branchsharp2_Out1_2026  = branchsharp2_In1_2023 * ( branchsharp2_In2_2024 * branchsharp2_In3_2025  );
866
branchsharp3_Out1_2039  = branchsharp3_In1_2036 * ( branchsharp3_In2_2037 * branchsharp3_In3_2038  );
867
gte1_Out1_2045  = gte1_In1_2043 <= gte1_In2_2044;
868
gte2_Out1_2051  = gte2_In1_2049 <= gte2_In2_2050;
869
gte3_Out1_2057  = gte3_In1_2055 <= gte3_In2_2056;
870
interpolate1dsharp0_Out1_2068  = Interpolate1dsharp0 ( interpolate1dsharp0_In1_2063 , interpolate1dsharp0_In2_2064 , interpolate1dsharp0_In3_2065 , interpolate1dsharp0_In4_2066 , interpolate1dsharp0_In5_2067  );
871
interpolate1dsharp1_Out1_2206  = Interpolate1dsharp1 ( interpolate1dsharp1_In1_2201 , interpolate1dsharp1_In2_2202 , interpolate1dsharp1_In3_2203 , interpolate1dsharp1_In4_2204 , interpolate1dsharp1_In5_2205  );
872
interpolate1dsharp2_Out1_2344  = Interpolate1dsharp2 ( interpolate1dsharp2_In1_2339 , interpolate1dsharp2_In2_2340 , interpolate1dsharp2_In3_2341 , interpolate1dsharp2_In4_2342 , interpolate1dsharp2_In5_2343  );
873
lte1_Out1_2477  = lte1_In1_2475 >= lte1_In2_2476;
874
lte2_Out1_2483  = lte2_In1_2481 > lte2_In2_2482;
875
lte3_Out1_2489  = lte3_In1_2487 > lte3_In2_2488;
876
gte3_In2_2056  = 500.000000;
877
interpolate1dsharp2_In3_2341  = 500.000000;
878
gte2_In2_2050  = 350.000000;
879
interpolate1dsharp1_In3_2203  = 350.000000;
880
lte3_In2_2488  = 350.000000;
881
interpolate1dsharp2_In2_2340  = 350.000000;
882
gte1_In2_2044  = 120.000000;
883
interpolate1dsharp0_In3_2065  = 120.000000;
884
lte2_In2_2482  = 120.000000;
885
interpolate1dsharp1_In2_2202  = 120.000000;
886
lte1_In2_2476  = 0.000000;
887
interpolate1dsharp0_In2_2064  = 0.000000;
888
gte1_In1_2043  = In1_Out1_1989;
889
lte2_In1_2481  = In1_Out1_1989;
890
gte2_In1_2049  = In1_Out1_1989;
891
lte3_In1_2487  = In1_Out1_1989;
892
gte3_In1_2055  = In1_Out1_1989;
893
interpolate1dsharp2_In1_2339  = In1_Out1_1989;
894
interpolate1dsharp1_In1_2201  = In1_Out1_1989;
895
lte1_In1_2475  = In1_Out1_1989;
896
interpolate1dsharp0_In1_2063  = In1_Out1_1989;
897
branchsharp1_In1_2010  = interpolate1dsharp0_Out1_2068;
898
interpolate1dsharp2_In5_2343  = 0.300000;
899
interpolate1dsharp2_In4_2342  = 0.300000;
900
interpolate1dsharp1_In5_2205  = 0.300000;
901
interpolate1dsharp1_In4_2204  = 1.000000;
902
interpolate1dsharp0_In5_2067  = 1.000000;
903
interpolate1dsharp0_In4_2066  = 1.000000;
904
branchsharp3_In1_2036  = interpolate1dsharp2_Out1_2344;
905
branchsharp2_In1_2023  = interpolate1dsharp1_Out1_2206;
906
branchsharp1_In2_2011  = if lte1_Out1_2477 then 1.000000 else 0.000000;
907
branchsharp1_In3_2012  = if gte1_Out1_2045 then 1.000000 else 0.000000;
908
branchsharp2_In2_2024  = if lte2_Out1_2483 then 1.000000 else 0.000000;
909
branchsharp2_In3_2025  = if gte2_Out1_2051 then 1.000000 else 0.000000;
910
branchsharp3_In2_2037  = if lte3_Out1_2489 then 1.000000 else 0.000000;
911
branchsharp3_In3_2038  = if gte3_Out1_2057 then 1.000000 else 0.000000;
912
Add_In1_1997  = branchsharp1_Out1_2013;
913
Add_In2_1998  = branchsharp2_Out1_2026;
914
Add_In3_1999  = branchsharp3_Out1_2039;
915
Out1_In1_2565  = Add_Out1_2000;
916
 tel 
917

    
918
node PI_TransferFunc ( u_Out1_1877  : real  ) 
919
   returns ( y_In1_1960  : real  ) ;
920
var asharp1_Out1_1886  : real ;
921
 b0sharp0_Out1_1895  : real ;
922
 b0sharp1_Out1_1904  : real ;
923
 delaysharp1_Out1_1909  : real ;
924
 outputsum_Out1_1919  : real ;
925
 samplesharp1_Out1_1928  : real ;
926
 sum11_Out1_1938  : real ;
927
 sum21_Out1_1948  : real ;
928
 asharp1_In1_1885  : real ;
929
 b0sharp0_In1_1894  : real ;
930
 b0sharp1_In1_1903  : real ;
931
 delaysharp1_In1_1908  : real ;
932
 outputsum_In1_1917  : real ;
933
 outputsum_In2_1918  : real ;
934
 samplesharp1_In1_1927  : real ;
935
 sum11_In1_1936  : real ;
936
 sum11_In2_1937  : real ;
937
 sum21_In1_1946  : real ;
938
 sum21_In2_1947  : real ;
939
  
940
let
941
asharp1_Out1_1886  = 0.062500 * asharp1_In1_1885;
942
b0sharp0_Out1_1895  = b0sharp0_In1_1894;
943
b0sharp1_Out1_1904  = - b0sharp1_In1_1903;
944
delaysharp1_Out1_1909  = 0.000000 -> pre delaysharp1_In1_1908;
945
outputsum_Out1_1919  = outputsum_In1_1917 + outputsum_In2_1918;
946
samplesharp1_Out1_1928  = 0.020000 * samplesharp1_In1_1927;
947
sum11_Out1_1938  = sum11_In1_1936 + - sum11_In2_1937;
948
sum21_Out1_1948  = sum21_In1_1946 + sum21_In2_1947;
949
asharp1_In1_1885  = delaysharp1_Out1_1909;
950
sum21_In2_1947  = delaysharp1_Out1_1909;
951
sum11_In2_1937  = asharp1_Out1_1886;
952
b0sharp1_In1_1903  = asharp1_Out1_1886;
953
outputsum_In1_1917  = b0sharp0_Out1_1895;
954
outputsum_In2_1918  = b0sharp1_Out1_1904;
955
samplesharp1_In1_1927  = sum11_Out1_1938;
956
sum21_In1_1946  = samplesharp1_Out1_1928;
957
delaysharp1_In1_1908  = sum21_Out1_1948;
958
sum11_In1_1936  = u_Out1_1877;
959
b0sharp0_In1_1894  = u_Out1_1877;
960
y_In1_1960  = outputsum_Out1_1919;
961
 tel 
962

    
963
node PitchInnerLoop ( PitchCmd_Out1_1769  : real ; Pitch_Out1_1779  : real ; qdeg_Out1_1789  : real ; CAS_Out1_1799  : real  ) 
964
   returns ( ElevCmd_In1_2617  : real  ) ;
965
var Kpitch_Out1_1808  : real ;
966
 Kwo_Out1_1817  : real ;
967
 Mux_Out1_1821_0  : real ;
968
 Mux_Out1_1821_1  : real ;
969
 Product_Out1_1840  : real ;
970
 Sum_Out1_1850  : real ;
971
 Sum1_Out1_1860  : real ;
972
 TransferFunc_Out1_1867  : real ;
973
 lookup1d_Out1_1979  : real ;
974
 Kpitch_In1_1807  : real ;
975
 Kwo_In1_1816  : real ;
976
 Mux_In1_1819  : real ;
977
 Mux_In2_1820  : real ;
978
 Product_In1_1838  : real ;
979
 Product_In2_1839  : real ;
980
 Sum_In1_1848  : real ;
981
 Sum_In2_1849  : real ;
982
 Sum1_In1_1858  : real ;
983
 Sum1_In2_1859  : real ;
984
 TransferFunc_In1_1866  : real ;
985
 lookup1d_In1_1978  : real ;
986
  
987
let
988
Kpitch_Out1_1808  = 2.000000 * Kpitch_In1_1807;
989
Kwo_Out1_1817  = 0.500000 * Kwo_In1_1816;
990
Mux_Out1_1821_0  = Mux_In1_1819;
991
Mux_Out1_1821_1  = Mux_In2_1820;
992
Product_Out1_1840  = Product_In1_1838 * Product_In2_1839;
993
Sum_Out1_1850  = Sum_In1_1848 + - Sum_In2_1849;
994
Sum1_Out1_1860  = - Sum1_In1_1858 + Sum1_In2_1859;
995
TransferFunc_Out1_1867  = PI_TransferFunc ( TransferFunc_In1_1866  );
996
lookup1d_Out1_1979  = PI_Lookup1d ( lookup1d_In1_1978  );
997
Kpitch_In1_1807  = Sum_Out1_1850;
998
Sum_In2_1849  = Pitch_Out1_1779;
999
Mux_In2_1820  = Pitch_Out1_1779;
1000
Sum1_In1_1858  = Kpitch_Out1_1808;
1001
TransferFunc_In1_1866  = qdeg_Out1_1789;
1002
Kwo_In1_1816  = TransferFunc_Out1_1867;
1003
lookup1d_In1_1978  = CAS_Out1_1799;
1004
Product_In1_1838  = Sum1_Out1_1860;
1005
Product_In2_1839  = lookup1d_Out1_1979;
1006
ElevCmd_In1_2617  = Product_Out1_1840;
1007
Sum1_In2_1859  = Kwo_Out1_1817;
1008
Sum_In1_1848  = PitchCmd_Out1_1769;
1009
Mux_In1_1819  = PitchCmd_Out1_1769;
1010
 tel 
1011

    
1012

    
1013
node LongitudinalControl ( FPACmd_Out1_178  : real ; AntEng_Out1_188  : real ; FpaEng_Out1_198  : real ; AltCmd_Out1_208  : real ; Alt_Out1_218  : real ; thetaDeg_Out1_228  : real ; qDeg_Out1_238  : real ; GsKts_Out1_248  : real ; hdot_Out1_258  : real ; VT_Out1_268  : real ; Gamma_Out1_278  : real ; CAS_Out1_288  : real ; ElevStick_Out1_298  : real  ) 
1014
   returns ( ElevCmd_In1_2676  : real  ) ;
1015
var AltitudeControl_Out1_309  : real ;
1016
 EngageORzero_Out1_1078  : real ;
1017
 FPAControl_Out1_1158  : real ;
1018
 LogicalOperator_Out1_1696  : bool ;
1019
 ManualOverride_Out1_1704  : real ;
1020
 PitchInnerLoop_Out1_1759  : real ;
1021
 Sum7_Out1_2646  : real ;
1022
 k2_Out1_2655  : real ;
1023
 k5_Out1_2664  : real ;
1024
 AltitudeControl_In1_304  : real ;
1025
 AltitudeControl_In2_305  : real ;
1026
 AltitudeControl_In3_306  : real ;
1027
 AltitudeControl_In4_307  : real ;
1028
 AltitudeControl_In5_308  : real ;
1029
 EngageORzero_In1_1076  : bool ;
1030
 EngageORzero_In2_1077  : real ;
1031
 FPAControl_In1_1153  : real ;
1032
 FPAControl_In2_1154  : real ;
1033
 FPAControl_In3_1155  : real ;
1034
 FPAControl_In4_1156  : real ;
1035
 FPAControl_In5_1157  : real ;
1036
 LogicalOperator_In1_1694  : bool ;
1037
 LogicalOperator_In2_1695  : bool ;
1038
 ManualOverride_In1_1702  : real ;
1039
 ManualOverride_In2_1703  : real ;
1040
 PitchInnerLoop_In1_1755  : real ;
1041
 PitchInnerLoop_In2_1756  : real ;
1042
 PitchInnerLoop_In3_1757  : real ;
1043
 PitchInnerLoop_In4_1758  : real ;
1044
 Sum7_In1_2644  : real ;
1045
 Sum7_In2_2645  : real ;
1046
 k2_In1_2654  : real ;
1047
 k5_In1_2663  : real ;
1048
  
1049
let
1050
AltitudeControl_Out1_309  = AltitudeControl ( AltitudeControl_In1_304 , AltitudeControl_In2_305 , AltitudeControl_In3_306 , AltitudeControl_In4_307 , AltitudeControl_In5_308  );
1051
EngageORzero_Out1_1078  = EngageORzero ( EngageORzero_In1_1076 , EngageORzero_In2_1077  );
1052
FPAControl_Out1_1158  = FPAControl ( FPAControl_In1_1153 , FPAControl_In2_1154 , FPAControl_In3_1155 , FPAControl_In4_1156 , FPAControl_In5_1157  );
1053
LogicalOperator_Out1_1696  = LogicalOperator_In1_1694 or LogicalOperator_In2_1695;
1054
ManualOverride_Out1_1704  = ManualOverride ( ManualOverride_In1_1702 , ManualOverride_In2_1703  );
1055
PitchInnerLoop_Out1_1759  = PitchInnerLoop ( PitchInnerLoop_In1_1755 , PitchInnerLoop_In2_1756 , PitchInnerLoop_In3_1757 , PitchInnerLoop_In4_1758  );
1056
Sum7_Out1_2646  = Sum7_In1_2644 + Sum7_In2_2645;
1057
k2_Out1_2655  =  k2_In1_2654;
1058
k5_Out1_2664  = k5_In1_2663;
1059
Sum7_In2_2645  = k2_Out1_2655;
1060
AltitudeControl_In3_306  = Alt_Out1_218;
1061
PitchInnerLoop_In2_1756  = thetaDeg_Out1_228;
1062
FPAControl_In4_1156  = thetaDeg_Out1_228;
1063
FPAControl_In3_1155  = Gamma_Out1_278;
1064
AltitudeControl_In2_305  = AltCmd_Out1_208;
1065
ElevCmd_In1_2676  = ManualOverride_Out1_1704;
1066
k2_In1_2654  = AltitudeControl_Out1_309;
1067
k5_In1_2663  = FPAControl_Out1_1158;
1068
AltitudeControl_In5_308  = hdot_Out1_258;
1069
FPAControl_In2_1154  = Sum7_Out1_2646;
1070
PitchInnerLoop_In3_1757  = qDeg_Out1_238;
1071
AltitudeControl_In4_307  = GsKts_Out1_248;
1072
FPAControl_In5_1157  = VT_Out1_268;
1073
Sum7_In1_2644  = FPACmd_Out1_178;
1074
PitchInnerLoop_In1_1755  = k5_Out1_2664;
1075
FPAControl_In1_1153  = FpaEng_Out1_198;
1076
LogicalOperator_In2_1695  = if FpaEng_Out1_198 = 0.000000 then false else true;
1077
PitchInnerLoop_In4_1758  = CAS_Out1_288;
1078
LogicalOperator_In1_1694  = if AntEng_Out1_188 = 0.000000 then false else true;
1079
AltitudeControl_In1_304  = AntEng_Out1_188;
1080
ManualOverride_In1_1702  = ElevStick_Out1_298;
1081
EngageORzero_In2_1077  = PitchInnerLoop_Out1_1759;
1082
ManualOverride_In2_1703  = EngageORzero_Out1_1078;
1083
EngageORzero_In1_1076  = LogicalOperator_Out1_1696;
1084
 tel 
1085

    
1086
-- end longitudinal control
1087

    
1088
-- Latititudinal control
1089
node __tan ( x  : real  ) 
1090
   returns ( out  : real  ) ;
1091
 
1092
let
1093
out  = if ( 0.000000 <= x and x <= 0.157080  ) then 0.000000 + ( 0.995893 * ( x - 0.000000  )  ) 
1094
       else if ( 0.157080 <= x and x <= 0.314159  ) then 0.156434 + ( 0.971371 * ( x - 0.157080  )  ) 
1095
       else if ( 0.314159 <= x and x <= 0.471239  ) then 0.309017 + ( 0.922930 * ( x - 0.314159  )  ) 
1096
       else if ( 0.471239 <= x and x <= 0.628319  ) then 0.453990 + ( 0.851764 * ( x - 0.471239  )  ) 
1097
       else if ( 0.628319 <= x and x <= 0.785398  ) then 0.587785 + ( 0.759624 * ( x - 0.628319  )  ) 
1098
       else if ( 0.785398 <= x and x <= 0.942478  ) then 0.707107 + ( 0.648781 * ( x - 0.785398  )  ) 
1099
       else if ( 0.942478 <= x and x <= 1.099557  ) then 0.809017 + ( 0.521962 * ( x - 0.942478  )  ) 
1100
       else if ( 1.099557 <= x and x <= 1.256637  ) then 0.891007 + ( 0.382290 * ( x - 1.099557  )  ) 
1101
       else if ( 1.256637 <= x and x <= 1.413717  ) then 0.951057 + ( 0.233205 * ( x - 1.256637  )  ) 
1102
       else if ( 1.413717 <= x and x <= 1.570796  ) then 0.987688 + ( 0.078378 * ( x - 1.413717  )  ) else - 1.000000;
1103
 tel 
1104

    
1105

    
1106
-- Interpolation for the tan function
1107
node tan ( x  : real  ) returns ( out  : real  ) ;
1108
 let
1109
   out  = if ( 0.000000 <= x and x <= 1.570796  ) then __tan ( x  ) 
1110
         else if ( 1.570796 <= x and x <= 3.141593  ) then __tan ( 3.141593 - x  ) 
1111
         else if ( 3.141593 <= x and x <= 4.712389  ) then - ( __tan ( x - 3.141593  )  ) 
1112
         else if ( 4.712389 <= x and x <= 6.283185  ) then - ( __tan ( 6.283185 - x  )  ) else - 1.000000;
1113
 tel 
1114

    
1115

    
1116
node ANGL ( in_Out1_76  : real  ) returns ( _180_In1_238  : real  ) ;
1117
var Abs_Out1_79  : real ;
1118
 Relational_Operator_ANGL_Out1_101  : bool ;
1119
 Sum6_Out1_111  : real ;
1120
 Switch1_ANGL_Out1_120  : real ;
1121
 sign_Out1_127  : real ;
1122
 times360_Out1_226  : real ;
1123
 Abs_In1_78  : real ;
1124
 Relational_Operator_ANGL_In1_99  : real ;
1125
 Sum6_In1_109  : real ;
1126
 Sum6_In2_110  : real ;
1127
 Switch1_ANGL_In1_117  : real ;
1128
 Switch1_ANGL_In2_118  : bool ;
1129
 Switch1_ANGL_In3_119  : real ;
1130
 sign_In1_126  : real ;
1131
  
1132
let
1133
Abs_Out1_79  = if Abs_In1_78 < 0.000000 then - Abs_In1_78 else Abs_In1_78;
1134
Relational_Operator_ANGL_Out1_101  = Relational_Operator_ANGL_In1_99 > 180.000000;
1135
Sum6_Out1_111  = - Sum6_In1_109 + Sum6_In2_110;
1136
Switch1_ANGL_Out1_120  = if Switch1_ANGL_In2_118 then Switch1_ANGL_In1_117 else Switch1_ANGL_In3_119;
1137
sign_Out1_127  = if sign_In1_126  > 0.000000 then 1.000000 else (if sign_In1_126 = 0.000000 then 0.00000 else -1.00000);
1138
times360_Out1_226  = 360.000000 * sign_Out1_127;
1139
Relational_Operator_ANGL_In1_99  = Abs_Out1_79;
1140
Abs_In1_78  = in_Out1_76;
1141
Switch1_ANGL_In3_119  = in_Out1_76;
1142
Sum6_In2_110  = in_Out1_76;
1143
sign_In1_126  = in_Out1_76;
1144
_180_In1_238  = Switch1_ANGL_Out1_120;
1145
Sum6_In1_109  = times360_Out1_226;
1146
Switch1_ANGL_In1_117  = Sum6_Out1_111;
1147
Switch1_ANGL_In2_118  = Relational_Operator_ANGL_Out1_101;
1148
 tel 
1149

    
1150

    
1151

    
1152

    
1153
node Saturation ( signal  : real  ) returns ( saturated_signal  : real  ) ;
1154
var low_lim  : real ; 
1155
let
1156
  saturated_signal  = if ( low_lim <= 1000.000000  ) then low_lim else 1000.000000;
1157
  low_lim  = if ( 0.000100 >= signal  ) then 0.000100 else signal;
1158
 tel 
1159

    
1160
node HgdCmdProcessor ( Vt_Out1_19  : real ; HdgCmdMCP_Out1_29  : real ; Heading_Out1_39  : real  ) 
1161
   returns ( HdgCmd_In1_947  : real ; HdgRteCmd_In1_959  : real  ) ;
1162
var var2zetaOmega_Out1_59  : real ;
1163
 ANGL_Out1_66  : real ;
1164
 Divide_Out1_262  : real ;
1165
 Divide1_Out1_274  : real ;
1166
 DynamicSaturation_Out1_283  : real ;
1167
 Integrator1_Out1_380  : real ;
1168
 Logical_Operator_Out1_385  : bool ;
1169
 Product_Out1_397  : real ;
1170
 Product1_Out1_409  : real ;
1171
 Saturation1_Out1_416  : real ;
1172
 Sum2_Out1_489  : real ;
1173
 Sum3_Out1_499  : real ;
1174
 Trigonometric_Function_Out1_504  : real ;
1175
 k_Out1_723  : real ;
1176
 k1_Out1_732  : real ;
1177
 k2_Out1_741  : real ;
1178
 k4_Out1_750  : real ;
1179
 k6_Out1_759  : real ;
1180
 omegaSq_Out1_771  : real ;
1181
 omegaSq2_Out1_783  : real ;
1182
 omega_calc_Out1_790  : real ;
1183
 rateLim_calc_Out1_875  : real ;
1184
 times514dot8_Out1_890  : real ;
1185
 Integrator1_1_Out1_598  : real ;
1186
 Logical_Operator1_1_Out1_604  : bool ;
1187
 Logical_Operator1_2_Out1_610  : bool ;
1188
 Logical_Operator1_3_Out1_616  : bool ;
1189
 Relational_Operator_Out1_622  : bool ;
1190
 Relational_Operator1_Out1_628  : bool ;
1191
 Relational_Operator2_Out1_634  : bool ;
1192
 Relational_Operator3_Out1_640  : bool ;
1193
 Switch1_Out1_649  : real ;
1194
 Switch2_Out1_658  : real ;
1195
 Switch3_Out1_667  : real ;
1196
 var2zetaOmega_In1_57  : real ;
1197
 var2zetaOmega_In2_58  : real ;
1198
 ANGL_In1_65  : real ;
1199
 DynamicSaturation_In1_280  : real ;
1200
 DynamicSaturation_In2_281  : real ;
1201
 DynamicSaturation_In3_282  : real ;
1202
 Integrator1_In1_377  : real ;
1203
 Integrator1_In2_378  : bool ;
1204
 Integrator1_In3_379  : real ;
1205
 Logical_Operator_In1_384  : bool ;
1206
 Product_In2_396  : real ;
1207
 Product1_In1_407  : real ;
1208
 Product1_In2_408  : real ;
1209
 Saturation1_In1_415  : real ;
1210
 Sum2_In1_487  : real ;
1211
 Sum2_In2_488  : real ;
1212
 Sum3_In1_497  : real ;
1213
 Sum3_In2_498  : real ;
1214
 Trigonometric_Function_In1_503  : real ;
1215
 k_In1_722  : real ;
1216
 k1_In1_731  : real ;
1217
 k2_In1_740  : real ;
1218
 k4_In1_749  : real ;
1219
 k6_In1_758  : real ;
1220
 omegaSq_In1_769  : real ;
1221
 omegaSq_In2_770  : real ;
1222
 omegaSq2_In1_781  : real ;
1223
 omegaSq2_In2_782  : real ;
1224
 omega_calc_In1_789  : real ;
1225
 rateLim_calc_In1_873  : real ;
1226
 rateLim_calc_In2_874  : real ;
1227
 times514dot8_In1_889  : real ;
1228
 Integrator1_1_In1_595  : real ;
1229
 Integrator1_1_In2_596  : bool ;
1230
 Logical_Operator1_1_In1_602  : bool ;
1231
 Logical_Operator1_1_In2_603  : bool ;
1232
 Logical_Operator1_2_In1_608  : bool ;
1233
 Logical_Operator1_2_In2_609  : bool ;
1234
 Logical_Operator1_3_In1_614  : bool ;
1235
 Logical_Operator1_3_In2_615  : bool ;
1236
 Relational_Operator_In1_620  : real ;
1237
 Relational_Operator_In2_621  : real ;
1238
 Relational_Operator1_In1_626  : real ;
1239
 Relational_Operator1_In2_627  : real ;
1240
 Relational_Operator2_In1_632  : real ;
1241
 Relational_Operator3_In1_638  : real ;
1242
 Switch1_In1_646  : real ;
1243
 Switch1_In2_647  : bool ;
1244
 Switch1_In3_648  : real ;
1245
 Switch2_In1_655  : real ;
1246
 Switch2_In2_656  : bool ;
1247
 Switch2_In3_657  : real ;
1248
 Switch3_In2_665  : bool ;
1249
 Switch3_In3_666  : real ;
1250
 integrator_out_1  : real ;
1251
 integrator_out_2  : real ;
1252
let
1253
var2zetaOmega_Out1_59  = var2zetaOmega_In1_57 * var2zetaOmega_In2_58;
1254
ANGL_Out1_66  = ANGL ( ANGL_In1_65  );
1255
Divide_Out1_262  = 565.470000;
1256
Divide1_Out1_274  = 565.470000;
1257
DynamicSaturation_Out1_283  = DynamicSaturation_In1_280;
1258
integrator_out_1 = IntegratorReset ( Integrator1_In1_377 , Integrator1_In2_378 , Integrator1_In3_379);
1259
Integrator1_Out1_380  = Integrator1_In3_379 -> pre (integrator_out_1);
1260
Logical_Operator_Out1_385  = not Logical_Operator_In1_384;
1261
Product_Out1_397  = 30.000000 * Product_In2_396;
1262
Product1_Out1_409  = Product1_In1_407 * Product1_In2_408;
1263
Saturation1_Out1_416  = Saturation ( Saturation1_In1_415  );
1264
Sum2_Out1_489  = Sum2_In1_487 + - Sum2_In2_488;
1265
Sum3_Out1_499  = Sum3_In1_497 + - Sum3_In2_498;
1266
Trigonometric_Function_Out1_504  = Trigonometric_Function_In1_503;
1267
k_Out1_723  = - 1.000000 * k_In1_722;
1268
k1_Out1_732  = - 1.000000 * k1_In1_731;
1269
k2_Out1_741  = 1.687800 * k2_In1_740;
1270
k4_Out1_750  = 32.174000 * k4_In1_749;
1271
k6_Out1_759  = 2.000000 * k6_In1_758;
1272
omegaSq_Out1_771  = omegaSq_In1_769 * omegaSq_In2_770;
1273
omegaSq2_Out1_783  = omegaSq2_In1_781 * omegaSq2_In2_782;
1274
omega_calc_Out1_790  = 1.600000;
1275
rateLim_calc_Out1_875  = rateLim_calc_In1_873 * rateLim_calc_In2_874;
1276
times514dot8_Out1_890  = 514.800000 * times514dot8_In1_889;
1277
integrator_out_2 = IntegratorReset ( Integrator1_1_In1_595 , Integrator1_1_In2_596 , 0.000000);
1278
Integrator1_1_Out1_598  = 0.000000 -> pre (integrator_out_2);
1279
Logical_Operator1_1_Out1_604  = Logical_Operator1_1_In1_602 and Logical_Operator1_1_In2_603;
1280
Logical_Operator1_2_Out1_610  = Logical_Operator1_2_In1_608 and Logical_Operator1_2_In2_609;
1281
Logical_Operator1_3_Out1_616  = Logical_Operator1_3_In1_614 or Logical_Operator1_3_In2_615;
1282
Relational_Operator_Out1_622  = Relational_Operator_In1_620 <= Relational_Operator_In2_621;
1283
Relational_Operator1_Out1_628  = Relational_Operator1_In1_626 >= Relational_Operator1_In2_627;
1284
Relational_Operator2_Out1_634  = Relational_Operator2_In1_632 > 0.000000;
1285
Relational_Operator3_Out1_640  = Relational_Operator3_In1_638 < 0.000000;
1286
Switch1_Out1_649  = if Switch1_In2_647 then Switch1_In1_646 else Switch1_In3_648;
1287
Switch2_Out1_658  = if Switch2_In2_656 then Switch2_In1_655 else Switch2_In3_657;
1288
Switch3_Out1_667  = if Switch3_In2_665 then 0.000000 else Switch3_In3_666;
1289
Sum2_In2_488  = Integrator1_Out1_380;
1290
HdgCmd_In1_947  = Integrator1_Out1_380;
1291
k2_In1_740  = Vt_Out1_19;
1292
Saturation1_In1_415  = k2_Out1_741;
1293
omegaSq_In2_770  = omega_calc_Out1_790;
1294
omegaSq_In1_769  = omega_calc_Out1_790;
1295
k6_In1_758  = omega_calc_Out1_790;
1296
DynamicSaturation_In3_282  = k_Out1_723;
1297
DynamicSaturation_In2_281  = Sum3_Out1_499;
1298
Trigonometric_Function_In1_503  = Product_Out1_397;
1299
k4_In1_749  = Trigonometric_Function_Out1_504;
1300
Product1_In1_407  = k4_Out1_750;
1301
k1_In1_731  = rateLim_calc_Out1_875;
1302
var2zetaOmega_In1_57  = Switch2_Out1_658;
1303
HdgRteCmd_In1_959  = Switch2_Out1_658;
1304
Integrator1_In1_377  = Switch2_Out1_658;
1305
var2zetaOmega_In2_58  = k6_Out1_759;
1306
Sum3_In2_498  = var2zetaOmega_Out1_59;
1307
DynamicSaturation_In1_280  = times514dot8_Out1_890;
1308
k_In1_722  = times514dot8_Out1_890;
1309
omegaSq2_In1_781  = omegaSq_Out1_771;
1310
Sum3_In1_497  = omegaSq2_Out1_783;
1311
ANGL_In1_65  = Sum2_Out1_489;
1312
Logical_Operator_In1_384  = if HdgCmdMCP_Out1_29 = 0.000000 then false else true;
1313
Sum2_In1_487  = HdgCmdMCP_Out1_29;
1314
omegaSq2_In2_782  = ANGL_Out1_66;
1315
Integrator1_In2_378  = Logical_Operator_Out1_385;
1316
omega_calc_In1_789  = Saturation1_Out1_416;
1317
times514dot8_In1_889  = Saturation1_Out1_416;
1318
rateLim_calc_In2_874  = Saturation1_Out1_416;
1319
Integrator1_In3_379  = Heading_Out1_39;
1320
Product_In2_396  = Divide_Out1_262;
1321
Product1_In2_408  = Divide1_Out1_274;
1322
rateLim_calc_In1_873  = Product1_Out1_409;
1323
Relational_Operator1_In1_626  = k1_Out1_732;
1324
Switch2_In1_655  = k1_Out1_732;
1325
Integrator1_1_In2_596  = Logical_Operator_Out1_385;
1326
Switch3_In3_666  = DynamicSaturation_Out1_283;
1327
Relational_Operator3_In1_638  = DynamicSaturation_Out1_283;
1328
Relational_Operator2_In1_632  = DynamicSaturation_Out1_283;
1329
Relational_Operator_In1_620  = rateLim_calc_Out1_875;
1330
Switch1_In1_646  = rateLim_calc_Out1_875;
1331
Logical_Operator1_2_In2_609  = Relational_Operator1_Out1_628;
1332
Switch2_In2_656  = Relational_Operator1_Out1_628;
1333
Switch2_In3_657  = Switch1_Out1_649;
1334
Relational_Operator1_In2_627  = Switch1_Out1_649;
1335
Logical_Operator1_2_In1_608  = Relational_Operator3_Out1_640;
1336
Logical_Operator1_3_In2_615  = Logical_Operator1_2_Out1_610;
1337
Logical_Operator1_3_In1_614  = Logical_Operator1_1_Out1_604;
1338
Switch3_In2_665  = Logical_Operator1_3_Out1_616;
1339
Logical_Operator1_1_In2_603  = Relational_Operator2_Out1_634;
1340
Integrator1_1_In1_595  = Switch3_Out1_667;
1341
Logical_Operator1_1_In1_602  = Relational_Operator_Out1_622;
1342
Switch1_In2_647  = Relational_Operator_Out1_622;
1343
Relational_Operator_In2_621  = Integrator1_1_Out1_598;
1344
Switch1_In3_648  = Integrator1_1_Out1_598;
1345
 tel 
1346

    
1347
node HeadingControl ( HdgCmdMCP_Out1_19  : real ; Heading_Out1_29  : real ; psidot_Out1_39  : real ; Vt_Out1_49  : real ; Roll_Out1_59  : real ; HeadEng_Out1_69  : bool ; rollLimitinput_Out1_79  : real  ) 
1348
   returns ( RollCmd_In1_1442  : real  ) ;
1349
var HdgCmdProcessor_Out1_88  : real ;
1350
 HdgCmdProcessor_Out2_89  : real ;
1351
 Khdg_Out1_1105  : real ;
1352
 Khdg1_Out1_1114  : real ;
1353
 Khdg2_Out1_1123  : real ;
1354
 Khdgrte_Out1_1132  : real ;
1355
 Logical_Operator_Out1_1137  : bool ;
1356
 Max_Out1_1147  : real ;
1357
 Min_Out1_1157  : real ;
1358
 Mux_Out1_1161_0  : real ;
1359
 Mux_Out1_1161_1  : real ;
1360
 Sum_Out1_1171  : real ;
1361
 Sum1_Out1_1181  : real ;
1362
 Sum2_Out1_1191  : real ;
1363
 Sum3_Out1_1201  : real ;
1364
 Sum4_Out1_1211  : real ;
1365
 -- sgn_Out1_1430  : real ;
1366
 Integrator1_1_Out1_1305  : real ;
1367
 Logical_Operator1_1_Out1_1311  : bool ;
1368
 Logical_Operator1_2_Out1_1317  : bool ;
1369
 Logical_Operator1_3_Out1_1323  : bool ;
1370
 Relational_Operator_Out1_1329  : bool ;
1371
 Relational_Operator1_Out1_1335  : bool ;
1372
 Relational_Operator2_Out1_1341  : bool ;
1373
 Relational_Operator3_Out1_1347  : bool ;
1374
 Switch1_Out1_1356  : real ;
1375
 Switch2_Out1_1365  : real ;
1376
 Switch3_Out1_1374  : real ;
1377
 HdgCmdProcessor_In1_85  : real ;
1378
 HdgCmdProcessor_In2_86  : real ;
1379
 HdgCmdProcessor_In3_87  : real ;
1380
 Khdg_In1_1104  : real ;
1381
 Khdg1_In1_1113  : real ;
1382
 Khdg2_In1_1122  : real ;
1383
 Khdgrte_In1_1131  : real ;
1384
 Logical_Operator_In1_1136  : bool ;
1385
 Max_In1_1145  : real ;
1386
 Max_In2_1146  : real ;
1387
 Min_In1_1155  : real ;
1388
 Min_In2_1156  : real ;
1389
 Mux_In1_1159  : real ;
1390
 Mux_In2_1160  : real ;
1391
 Sum_In1_1169  : real ;
1392
 Sum_In2_1170  : real ;
1393
 Sum1_In1_1179  : real ;
1394
 Sum1_In2_1180  : real ;
1395
 Sum2_In1_1189  : real ;
1396
 Sum2_In2_1190  : real ;
1397
 Sum3_In1_1199  : real ;
1398
 Sum3_In2_1200  : real ;
1399
 Sum4_In1_1209  : real ;
1400
 Sum4_In2_1210  : real ;
1401
 -- sgn_In1_1429  : real ;
1402
 Integrator1_1_In1_1302  : real ;
1403
 Integrator1_1_In2_1303  : bool ;
1404
 Integrator1_1_In3_1304  : real ;
1405
 Logical_Operator1_1_In1_1309  : bool ;
1406
 Logical_Operator1_1_In2_1310  : bool ;
1407
 Logical_Operator1_2_In1_1315  : bool ;
1408
 Logical_Operator1_2_In2_1316  : bool ;
1409
 Logical_Operator1_3_In1_1321  : bool ;
1410
 Logical_Operator1_3_In2_1322  : bool ;
1411
 -- Relational_Operator_In1_1327  : real ;
1412
 Relational_Operator_In2_1328  : real ;
1413
 -- Relational_Operator1_In1_1333  : real ;
1414
 Relational_Operator1_In2_1334  : real ;
1415
 Relational_Operator2_In1_1339  : real ;
1416
 -- Relational_Operator2_In2_1340  : real ;
1417
 Relational_Operator3_In1_1345  : real ;
1418
 -- Relational_Operator3_In2_1346  : real ;
1419
 -- Switch1_In1_1353  : real ;
1420
 Switch1_In2_1354  : bool ;
1421
 Switch1_In3_1355  : real ;
1422
 -- Switch2_In1_1362  : real ;
1423
 Switch2_In2_1363  : bool ;
1424
 Switch2_In3_1364  : real ;
1425
 -- Switch3_In1_1371  : real ;
1426
 Switch3_In2_1372  : bool ;
1427
 Switch3_In3_1373  : real ;
1428
 integrator_out : real ;
1429
let
1430
HdgCmdProcessor_Out1_88 , HdgCmdProcessor_Out2_89  = HgdCmdProcessor ( HdgCmdProcessor_In1_85 , HdgCmdProcessor_In2_86 , HdgCmdProcessor_In3_87  );
1431
Khdg_Out1_1105  = 0.050000 * Khdg_In1_1104;
1432
-- Khdg1_Out1_1114  = int_to_real ( 1  ) *Khdg1_In1_1113;
1433
Khdg1_Out1_1114  = Khdg1_In1_1113;
1434
-- Khdg2_Out1_1123  = int_to_real ( 1  ) * Khdg2_In1_1122;
1435
Khdg2_Out1_1123  = Khdg2_In1_1122;
1436
Khdgrte_Out1_1132  = 3.0 * Khdgrte_In1_1131;
1437
Logical_Operator_Out1_1137  = not Logical_Operator_In1_1136;
1438
Max_Out1_1147  = if Max_In1_1145 >= Max_In2_1146 then Max_In2_1146 else Max_In1_1145;
1439
Min_Out1_1157  = if Min_In1_1155 <= Min_In2_1156 then Min_In1_1155 else Min_In2_1156;
1440
-- [ Mux_Out1_1161_0 , Mux_Out1_1161_1  ]  = [ Mux_In1_1159 , Mux_In2_1160  ];
1441
Mux_Out1_1161_0  = Mux_In1_1159 ;
1442
Mux_Out1_1161_1  =  Mux_In2_1160 ;  
1443
Sum_Out1_1171  = Sum_In1_1169 + - Sum_In2_1170;
1444
Sum1_Out1_1181  = Sum1_In1_1179 + Sum1_In2_1180;
1445
Sum2_Out1_1191  = Sum2_In1_1189 + - Sum2_In2_1190;
1446
Sum3_Out1_1201  = - Sum3_In1_1199 + - Sum3_In2_1200;
1447
Sum4_Out1_1211  = Sum4_In1_1209 + - Sum4_In2_1210;
1448
-- sgn_Out1_1430  = int_to_real ( - 1  ) * sgn_In1_1429;
1449
-- sgn_Out1_1430  = - 30.0;
1450
integrator_out = IntegratorReset ( Integrator1_1_In1_1302 , Integrator1_1_In2_1303 , Integrator1_1_In3_1304);
1451
Integrator1_1_Out1_1305  = Integrator1_1_In3_1304 -> pre (integrator_out);
1452
Logical_Operator1_1_Out1_1311  = Logical_Operator1_1_In1_1309 and Logical_Operator1_1_In2_1310;
1453
Logical_Operator1_2_Out1_1317  = Logical_Operator1_2_In1_1315 and Logical_Operator1_2_In2_1316;
1454
Logical_Operator1_3_Out1_1323  = Logical_Operator1_3_In1_1321 or Logical_Operator1_3_In2_1322;
1455
-- Relational_Operator_Out1_1329  = Relational_Operator_In1_1327 <= Relational_Operator_In2_1328;
1456
Relational_Operator_Out1_1329  = 30.0 <= Relational_Operator_In2_1328;
1457
-- Relational_Operator1_Out1_1335  = Relational_Operator1_In1_1333 >= Relational_Operator1_In2_1334;
1458
Relational_Operator1_Out1_1335  = -30.0 >= Relational_Operator1_In2_1334;
1459
-- Relational_Operator2_Out1_1341  = Relational_Operator2_In1_1339 > Relational_Operator2_In2_1340;
1460
Relational_Operator2_Out1_1341  = Relational_Operator2_In1_1339 > 0.0;
1461
-- Relational_Operator3_Out1_1347  = Relational_Operator3_In1_1345 < Relational_Operator3_In2_1346;
1462
Relational_Operator3_Out1_1347  = Relational_Operator3_In1_1345 < 0.0;
1463
-- Switch1_Out1_1356  = if Switch1_In2_1354 then Switch1_In1_1353 else Switch1_In3_1355;
1464
Switch1_Out1_1356  = if Switch1_In2_1354 then 30.0 else Switch1_In3_1355;
1465
-- Switch2_Out1_1365  = if Switch2_In2_1363 then Switch2_In1_1362 else Switch2_In3_1364;
1466
Switch2_Out1_1365  = if Switch2_In2_1363 then -30.0 else Switch2_In3_1364;
1467
Switch3_Out1_1374  = if Switch3_In2_1372 then 0.0 else Switch3_In3_1373;
1468
HdgCmdProcessor_In3_87  = Heading_Out1_29;
1469
Sum_In2_1170  = Heading_Out1_29;
1470
Sum_In1_1169  = HdgCmdProcessor_Out1_88;
1471
Mux_In2_1160  = HdgCmdProcessor_Out1_88;
1472
Khdg_In1_1104  = Sum_Out1_1171;
1473
Sum1_In1_1179  = Khdg_Out1_1105;
1474
Sum1_In2_1180  = Sum2_Out1_1191;
1475
Sum2_In1_1189  = HdgCmdProcessor_Out2_89;
1476
Sum2_In2_1190  = psidot_Out1_39;
1477
HdgCmdProcessor_In1_85  = Vt_Out1_49;
1478
HdgCmdProcessor_In2_86  = HdgCmdMCP_Out1_19;
1479
Mux_In1_1159  = HdgCmdMCP_Out1_19;
1480
RollCmd_In1_1442  = Switch2_Out1_1365;
1481
Sum3_In1_1199  = Switch2_Out1_1365;
1482
Sum4_In2_1210  = Switch2_Out1_1365;
1483
-- sgn_In1_1429  = 30.0;
1484
Khdgrte_In1_1131  = Sum1_Out1_1181;
1485
Min_In1_1155  = Max_Out1_1147;
1486
Logical_Operator_In1_1136  = HeadEng_Out1_69;
1487
Khdg1_In1_1113  = Sum3_Out1_1201;
1488
Khdg2_In1_1122  = Sum4_Out1_1211;
1489
Max_In2_1146  = Khdg1_Out1_1114;
1490
Min_In2_1156  = Khdg2_Out1_1123;
1491
Max_In1_1145  = Khdgrte_Out1_1132;
1492
Sum3_In2_1200  = rollLimitinput_Out1_79;
1493
Sum4_In1_1209  = rollLimitinput_Out1_79;
1494
-- Relational_Operator1_In1_1333  = sgn_Out1_1430;
1495
-- Switch2_In1_1362  = sgn_Out1_1430;
1496
-- Relational_Operator1_In1_1333  = -30.0;
1497
-- Switch2_In1_1362  = -30.0;
1498
Integrator1_1_In3_1304  = Roll_Out1_59;
1499
Integrator1_1_In2_1303  = Logical_Operator_Out1_1137;
1500
Switch3_In3_1373  = Min_Out1_1157;
1501
Relational_Operator3_In1_1345  = Min_Out1_1157;
1502
Relational_Operator2_In1_1339  = Min_Out1_1157;
1503
-- Relational_Operator_In1_1327  = 30.0;
1504
-- Switch1_In1_1353  =  30.0  ;
1505
Logical_Operator1_2_In2_1316  = Relational_Operator1_Out1_1335;
1506
Switch2_In2_1363  = Relational_Operator1_Out1_1335;
1507
Switch2_In3_1364  = Switch1_Out1_1356;
1508
Relational_Operator1_In2_1334  = Switch1_Out1_1356;
1509
-- Relational_Operator3_In2_1346  = 0.0 ;
1510
Logical_Operator1_2_In1_1315  = Relational_Operator3_Out1_1347;
1511
Logical_Operator1_3_In2_1322  = Logical_Operator1_2_Out1_1317;
1512
Logical_Operator1_3_In1_1321  = Logical_Operator1_1_Out1_1311;
1513
Switch3_In2_1372  = Logical_Operator1_3_Out1_1323;
1514
Logical_Operator1_1_In2_1310  = Relational_Operator2_Out1_1341;
1515
-- Relational_Operator2_In2_1340  = 0.0;
1516
-- Switch3_In1_1371  = 0.0 ;
1517
Integrator1_1_In1_1302  = Switch3_Out1_1374;
1518
Logical_Operator1_1_In1_1309  = Relational_Operator_Out1_1329;
1519
Switch1_In2_1354  = Relational_Operator_Out1_1329;
1520
Relational_Operator_In2_1328  = Integrator1_1_Out1_1305;
1521
Switch1_In3_1355  = Integrator1_1_Out1_1305;
1522
 tel 
1523

    
1524

    
1525
node RI_lookup1d ( In1_Out1_1943  : real  ) 
1526
   returns ( Out1_In1_2519  : real  ) ;
1527
var Add_Out1_1954  : real ;
1528
 branchsharp1_Out1_1967  : real ;
1529
 branchsharp2_Out1_1980  : real ;
1530
 branchsharp3_Out1_1993  : real ;
1531
 gte1_Out1_1999  : bool ;
1532
 gte2_Out1_2005  : bool ;
1533
 gte3_Out1_2011  : bool ;
1534
 interpolate1dsharp0_Out1_2022  : real ;
1535
 interpolate1dsharp1_Out1_2160  : real ;
1536
 interpolate1dsharp2_Out1_2298  : real ;
1537
 lte1_Out1_2431  : bool ;
1538
 lte2_Out1_2437  : bool ;
1539
 lte3_Out1_2443  : bool ;
1540
 Add_In1_1951  : real ;
1541
 Add_In2_1952  : real ;
1542
 Add_In3_1953  : real ;
1543
 branchsharp1_In1_1964  : real ;
1544
 branchsharp1_In2_1965  : real ;
1545
 branchsharp1_In3_1966  : real ;
1546
 branchsharp2_In1_1977  : real ;
1547
 branchsharp2_In2_1978  : real ;
1548
 branchsharp2_In3_1979  : real ;
1549
 branchsharp3_In1_1990  : real ;
1550
 branchsharp3_In2_1991  : real ;
1551
 branchsharp3_In3_1992  : real ;
1552
 gte1_In1_1997  : real ;
1553
 gte1_In2_1998  : real ;
1554
 gte2_In1_2003  : real ;
1555
 gte2_In2_2004  : real ;
1556
 gte3_In1_2009  : real ;
1557
 gte3_In2_2010  : real ;
1558
 interpolate1dsharp0_In1_2017  : real ;
1559
 interpolate1dsharp0_In2_2018  : real ;
1560
 interpolate1dsharp0_In3_2019  : real ;
1561
 interpolate1dsharp0_In4_2020  : real ;
1562
 interpolate1dsharp0_In5_2021  : real ;
1563
 interpolate1dsharp1_In1_2155  : real ;
1564
 interpolate1dsharp1_In2_2156  : real ;
1565
 interpolate1dsharp1_In3_2157  : real ;
1566
 interpolate1dsharp1_In4_2158  : real ;
1567
 interpolate1dsharp1_In5_2159  : real ;
1568
 interpolate1dsharp2_In1_2293  : real ;
1569
 interpolate1dsharp2_In2_2294  : real ;
1570
 interpolate1dsharp2_In3_2295  : real ;
1571
 interpolate1dsharp2_In4_2296  : real ;
1572
 interpolate1dsharp2_In5_2297  : real ;
1573
 lte1_In1_2429  : real ;
1574
 lte1_In2_2430  : real ;
1575
 lte2_In1_2435  : real ;
1576
 lte2_In2_2436  : real ;
1577
 lte3_In1_2441  : real ;
1578
 lte3_In2_2442  : real ;
1579
  
1580
let
1581
Add_Out1_1954  = Add_In1_1951 + ( Add_In2_1952 + Add_In3_1953  );
1582
branchsharp1_Out1_1967  = branchsharp1_In1_1964 * branchsharp1_In2_1965 * branchsharp1_In3_1966;
1583
branchsharp2_Out1_1980  = branchsharp2_In1_1977 * branchsharp2_In2_1978 * branchsharp2_In3_1979;
1584
branchsharp3_Out1_1993  = branchsharp3_In1_1990 * branchsharp3_In2_1991 * branchsharp3_In3_1992;
1585
gte1_Out1_1999  = gte1_In1_1997 <= gte1_In2_1998;
1586
gte2_Out1_2005  = gte2_In1_2003 <= gte2_In2_2004;
1587
gte3_Out1_2011  = gte3_In1_2009 <= gte3_In2_2010;
1588
interpolate1dsharp0_Out1_2022  = RI_interpolate1dsharp0 ( interpolate1dsharp0_In1_2017 , interpolate1dsharp0_In2_2018 , interpolate1dsharp0_In3_2019 , interpolate1dsharp0_In4_2020 , interpolate1dsharp0_In5_2021  );
1589
interpolate1dsharp1_Out1_2160  = RI_interpolate1dsharp1 ( interpolate1dsharp1_In1_2155 , interpolate1dsharp1_In2_2156 , interpolate1dsharp1_In3_2157 , interpolate1dsharp1_In4_2158 , interpolate1dsharp1_In5_2159  );
1590
interpolate1dsharp2_Out1_2298  = RI_interpolate1dsharp2 ( interpolate1dsharp2_In1_2293 , interpolate1dsharp2_In2_2294 , interpolate1dsharp2_In3_2295 , interpolate1dsharp2_In4_2296 , interpolate1dsharp2_In5_2297  );
1591
lte1_Out1_2431  = lte1_In1_2429 >= lte1_In2_2430;
1592
lte2_Out1_2437  = lte2_In1_2435 > lte2_In2_2436;
1593
lte3_Out1_2443  = lte3_In1_2441 > lte3_In2_2442;
1594
gte3_In2_2010  = 500.000000;
1595
interpolate1dsharp2_In3_2295  = 500.000000;
1596
gte2_In2_2004  = 350.000000;
1597
interpolate1dsharp1_In3_2157  = 350.000000;
1598
lte3_In2_2442  = 350.000000;
1599
interpolate1dsharp2_In2_2294  = 350.000000;
1600
gte1_In2_1998  = 120.000000;
1601
interpolate1dsharp0_In3_2019  = 120.000000;
1602
lte2_In2_2436  = 120.000000;
1603
interpolate1dsharp1_In2_2156  = 120.000000;
1604
lte1_In2_2430  = 0.000000;
1605
interpolate1dsharp0_In2_2018  = 0.000000;
1606
gte1_In1_1997  = In1_Out1_1943;
1607
lte2_In1_2435  = In1_Out1_1943;
1608
gte2_In1_2003  = In1_Out1_1943;
1609
lte3_In1_2441  = In1_Out1_1943;
1610
gte3_In1_2009  = In1_Out1_1943;
1611
interpolate1dsharp2_In1_2293  = In1_Out1_1943;
1612
interpolate1dsharp1_In1_2155  = In1_Out1_1943;
1613
lte1_In1_2429  = In1_Out1_1943;
1614
interpolate1dsharp0_In1_2017  = In1_Out1_1943;
1615
branchsharp1_In1_1964  = interpolate1dsharp0_Out1_2022;
1616
interpolate1dsharp2_In5_2297  = 0.300000;
1617
interpolate1dsharp2_In4_2296  = 0.300000;
1618
interpolate1dsharp1_In5_2159  = 0.300000;
1619
interpolate1dsharp1_In4_2158  = 1.000000;
1620
interpolate1dsharp0_In5_2021  = 1.000000;
1621
interpolate1dsharp0_In4_2020  = 1.000000;
1622
branchsharp3_In1_1990  = interpolate1dsharp2_Out1_2298;
1623
branchsharp2_In1_1977  = interpolate1dsharp1_Out1_2160;
1624
branchsharp1_In2_1965  = if lte1_Out1_2431 then 1.000000 else 0.000000;
1625
branchsharp1_In3_1966  = if gte1_Out1_1999 then 1.000000 else 0.000000;
1626
branchsharp2_In2_1978  = if lte2_Out1_2437 then 1.000000 else 0.000000;
1627
branchsharp2_In3_1979  = if gte2_Out1_2005 then 1.000000 else 0.000000;
1628
branchsharp3_In2_1991  = if lte3_Out1_2443 then 1.000000 else 0.000000;
1629
branchsharp3_In3_1992  = if gte3_Out1_2011 then 1.000000 else 0.000000;
1630
Add_In1_1951  = branchsharp1_Out1_1967;
1631
Add_In2_1952  = branchsharp2_Out1_1980;
1632
Add_In3_1953  = branchsharp3_Out1_1993;
1633
Out1_In1_2519  = Add_Out1_1954;
1634
 tel 
1635

    
1636
node RI_interpolate1dsharp0 ( In1_Out1_2032  : real ; x1_Out1_2042  : real ; x2_Out1_2052  : real ; y1_Out1_2062  : real ; y2_Out1_2072  : real  ) 
1637
   returns ( Out1_In1_2137  : real  ) ;
1638
var Add1_Out1_2082  : real ;
1639
 Add2_Out1_2092  : real ;
1640
 Add3_Out1_2102  : real ;
1641
 Add4_Out1_2112  : real ;
1642
 Divide_Out1_2125  : real ;
1643
 Add1_In1_2080  : real ;
1644
 Add1_In2_2081  : real ;
1645
 Add2_In1_2090  : real ;
1646
 Add2_In2_2091  : real ;
1647
 Add3_In1_2100  : real ;
1648
 Add3_In2_2101  : real ;
1649
 Add4_In1_2110  : real ;
1650
 Add4_In2_2111  : real ;
1651
 Divide_In1_2122  : real ;
1652
 Divide_In2_2123  : real ;
1653
 Divide_In3_2124  : real ;
1654
  
1655
let
1656
Add1_Out1_2082  = - Add1_In1_2080 + Add1_In2_2081;
1657
Add2_Out1_2092  = Add2_In1_2090 + Add2_In2_2091;
1658
Add3_Out1_2102  = - Add3_In1_2100 + Add3_In2_2101;
1659
Add4_Out1_2112  = Add4_In1_2110 + - Add4_In2_2111;
1660
Divide_Out1_2125  = Divide_In1_2122 / Divide_In2_2123 * Divide_In3_2124;
1661
Out1_In1_2137  = Add2_Out1_2092;
1662
Add2_In2_2091  = y1_Out1_2062;
1663
Add3_In1_2100  = y1_Out1_2062;
1664
Add1_In2_2081  = x2_Out1_2052;
1665
Add1_In1_2080  = x1_Out1_2042;
1666
Add4_In2_2111  = x1_Out1_2042;
1667
Divide_In2_2123  = Add1_Out1_2082;
1668
Add3_In2_2101  = y2_Out1_2072;
1669
Divide_In3_2124  = Add3_Out1_2102;
1670
Add2_In1_2090  = Divide_Out1_2125;
1671
Divide_In1_2122  = Add4_Out1_2112;
1672
Add4_In1_2110  = In1_Out1_2032;
1673
 tel 
1674

    
1675
node RI_interpolate1dsharp1 ( In1_Out1_2170  : real ; x1_Out1_2180  : real ; x2_Out1_2190  : real ; y1_Out1_2200  : real ; y2_Out1_2210  : real  ) 
1676
   returns ( Out1_In1_2275  : real  ) ;
1677
var Add1_Out1_2220  : real ;
1678
 Add2_Out1_2230  : real ;
1679
 Add3_Out1_2240  : real ;
1680
 Add4_Out1_2250  : real ;
1681
 Divide_Out1_2263  : real ;
1682
 Add1_In1_2218  : real ;
1683
 Add1_In2_2219  : real ;
1684
 Add2_In1_2228  : real ;
1685
 Add2_In2_2229  : real ;
1686
 Add3_In1_2238  : real ;
1687
 Add3_In2_2239  : real ;
1688
 Add4_In1_2248  : real ;
1689
 Add4_In2_2249  : real ;
1690
 Divide_In1_2260  : real ;
1691
 Divide_In2_2261  : real ;
1692
 Divide_In3_2262  : real ;
1693
  
1694
let
1695
Add1_Out1_2220  = - Add1_In1_2218 + Add1_In2_2219;
1696
Add2_Out1_2230  = Add2_In1_2228 + Add2_In2_2229;
1697
Add3_Out1_2240  = - Add3_In1_2238 + Add3_In2_2239;
1698
Add4_Out1_2250  = Add4_In1_2248 + - Add4_In2_2249;
1699
Divide_Out1_2263  = Divide_In1_2260 / Divide_In2_2261 * Divide_In3_2262;
1700
Out1_In1_2275  = Add2_Out1_2230;
1701
Add2_In2_2229  = y1_Out1_2200;
1702
Add3_In1_2238  = y1_Out1_2200;
1703
Add1_In2_2219  = x2_Out1_2190;
1704
Add1_In1_2218  = x1_Out1_2180;
1705
Add4_In2_2249  = x1_Out1_2180;
1706
Divide_In2_2261  = Add1_Out1_2220;
1707
Add3_In2_2239  = y2_Out1_2210;
1708
Divide_In3_2262  = Add3_Out1_2240;
1709
Add2_In1_2228  = Divide_Out1_2263;
1710
Divide_In1_2260  = Add4_Out1_2250;
1711
Add4_In1_2248  = In1_Out1_2170;
1712
 tel 
1713

    
1714
node RI_interpolate1dsharp2 ( In1_Out1_2308  : real ; x1_Out1_2318  : real ; x2_Out1_2328  : real ; y1_Out1_2338  : real ; y2_Out1_2348  : real  ) 
1715
   returns ( Out1_In1_2413  : real  ) ;
1716
var Add1_Out1_2358  : real ;
1717
 Add2_Out1_2368  : real ;
1718
 Add3_Out1_2378  : real ;
1719
 Add4_Out1_2388  : real ;
1720
 Divide_Out1_2401  : real ;
1721
 Add1_In1_2356  : real ;
1722
 Add1_In2_2357  : real ;
1723
 Add2_In1_2366  : real ;
1724
 Add2_In2_2367  : real ;
1725
 Add3_In1_2376  : real ;
1726
 Add3_In2_2377  : real ;
1727
 Add4_In1_2386  : real ;
1728
 Add4_In2_2387  : real ;
1729
 Divide_In1_2398  : real ;
1730
 Divide_In2_2399  : real ;
1731
 Divide_In3_2400  : real ;
1732
  
1733
let
1734
Add1_Out1_2358  = - Add1_In1_2356 + Add1_In2_2357;
1735
Add2_Out1_2368  = Add2_In1_2366 + Add2_In2_2367;
1736
Add3_Out1_2378  = - Add3_In1_2376 + Add3_In2_2377;
1737
Add4_Out1_2388  = Add4_In1_2386 + - Add4_In2_2387;
1738
Divide_Out1_2401  = Divide_In1_2398 / Divide_In2_2399 * Divide_In3_2400;
1739
Out1_In1_2413  = Add2_Out1_2368;
1740
Add2_In2_2367  = y1_Out1_2338;
1741
Add3_In1_2376  = y1_Out1_2338;
1742
Add1_In2_2357  = x2_Out1_2328;
1743
Add1_In1_2356  = x1_Out1_2318;
1744
Add4_In2_2387  = x1_Out1_2318;
1745
Divide_In2_2399  = Add1_Out1_2358;
1746
Add3_In2_2377  = y2_Out1_2348;
1747
Divide_In3_2400  = Add3_Out1_2378;
1748
Add2_In1_2366  = Divide_Out1_2401;
1749
Divide_In1_2398  = Add4_Out1_2388;
1750
Add4_In1_2386  = In1_Out1_2308;
1751
 tel 
1752

    
1753

    
1754

    
1755

    
1756
node RollInnerLoop ( RollCmd_Out1_1847  : real ; Roll_Out1_1857  : real ; pdeg_Out1_1867  : real ; CAS_Out1_1877  : real  ) 
1757
   returns ( AilCmd_In1_2683  : real  ) ;
1758
var Kphierr_Out1_1886  : real ;
1759
 Product_Out1_1898  : real ;
1760
 Sum_Out1_1916  : real ;
1761
 Sum1_Out1_1926  : real ;
1762
 lookup1d_Out1_1933  : real ;
1763
 asharp1_Out1_2585  : real ;
1764
 an_fbsharp1_Out1_2595  : real ;
1765
 b0sharp1_Out1_2604  : real ;
1766
 b0sharp2_Out1_2613  : real ;
1767
 delaysharp1_Out1_2618  : real ;
1768
 delay_fbsharp1_Out1_2628  : real ;
1769
 out_sum_Out1_2638  : real ;
1770
 samplesharp1_Out1_2647  : real ;
1771
 Kphierr_In1_1885  : real ;
1772
 Product_In1_1896  : real ;
1773
 Product_In2_1897  : real ;
1774
 Sum_In1_1914  : real ;
1775
 Sum_In2_1915  : real ;
1776
 Sum1_In1_1924  : real ;
1777
 Sum1_In2_1925  : real ;
1778
 lookup1d_In1_1932  : real ;
1779
 asharp1_In1_2584  : real ;
1780
 an_fbsharp1_In1_2593  : real ;
1781
 an_fbsharp1_In2_2594  : real ;
1782
 b0sharp1_In1_2603  : real ;
1783
 b0sharp2_In1_2612  : real ;
1784
 delaysharp1_In1_2617  : real ;
1785
 delay_fbsharp1_In1_2626  : real ;
1786
 delay_fbsharp1_In2_2627  : real ;
1787
 out_sum_In1_2636  : real ;
1788
 out_sum_In2_2637  : real ;
1789
 samplesharp1_In1_2646  : real ;
1790
  
1791
let
1792
Kphierr_Out1_1886  = 0.500000 * Kphierr_In1_1885;
1793
Product_Out1_1898  = Product_In1_1896 * Product_In2_1897;
1794
Sum_Out1_1916  = Sum_In1_1914 + - Sum_In2_1915;
1795
Sum1_Out1_1926  = Sum1_In1_1924 + - Sum1_In2_1925;
1796
lookup1d_Out1_1933  = RI_lookup1d ( lookup1d_In1_1932  );
1797
asharp1_Out1_2585  = 0.500000 * asharp1_In1_2584;
1798
an_fbsharp1_Out1_2595  = an_fbsharp1_In1_2593 + - an_fbsharp1_In2_2594;
1799
b0sharp1_Out1_2604  = - 0.006450 * b0sharp1_In1_2603;
1800
b0sharp2_Out1_2613  = 0.006450 * b0sharp2_In1_2612;
1801
delaysharp1_Out1_2618  = 0.000000 -> pre delaysharp1_In1_2617;
1802
delay_fbsharp1_Out1_2628  = delay_fbsharp1_In1_2626 + delay_fbsharp1_In2_2627;
1803
out_sum_Out1_2638  = out_sum_In1_2636 + out_sum_In2_2637;
1804
samplesharp1_Out1_2647  = 0.020000 * samplesharp1_In1_2646;
1805
AilCmd_In1_2683  = Product_Out1_1898;
1806
Product_In2_1897  = lookup1d_Out1_1933;
1807
Product_In1_1896  = Sum1_Out1_1926;
1808
lookup1d_In1_1932  = CAS_Out1_1877;
1809
Sum1_In2_1925  = out_sum_Out1_2638;
1810
Sum1_In1_1924  = Kphierr_Out1_1886;
1811
Sum_In2_1915  = Roll_Out1_1857;
1812
Kphierr_In1_1885  = Sum_Out1_1916;
1813
Sum_In1_1914  = RollCmd_Out1_1847;
1814
b0sharp2_In1_2612  = pdeg_Out1_1867;
1815
an_fbsharp1_In1_2593  = pdeg_Out1_1867;
1816
samplesharp1_In1_2646  = an_fbsharp1_Out1_2595;
1817
delaysharp1_In1_2617  = delay_fbsharp1_Out1_2628;
1818
delay_fbsharp1_In2_2627  = delaysharp1_Out1_2618;
1819
asharp1_In1_2584  = delaysharp1_Out1_2618;
1820
delay_fbsharp1_In1_2626  = samplesharp1_Out1_2647;
1821
an_fbsharp1_In2_2594  = asharp1_Out1_2585;
1822
b0sharp1_In1_2603  = asharp1_Out1_2585;
1823
out_sum_In1_2636  = b0sharp2_Out1_2613;
1824
out_sum_In2_2637  = b0sharp1_Out1_2604;
1825
 tel 
1826

    
1827
node LatitudinalControl ( AilcmdMan__Out1_19  : real ; cas_ktsf_Out1_29  : real ; phidegf_Out1_39  : real ; psidegf_Out1_49  : real ; psidotdeg_Out1_59  : real ; tas_ktsf_Out1_69  : real ; pbdegf_Out1_79  : real ; beta_degf_Out1_89  : real ; ApHeadEng_Out1_99  : real ; APHeadCmd_Out1_109  : real ; RollLimit_Out1_119  : bool  ) 
1828
   returns ( AilCmd_In1_2767  : real  ) ;
1829
var EngageORzero_Out1_243  : real ;
1830
 Gain1_Out1_321  : real ;
1831
 Heading_Control_Out1_334  : real ;
1832
 ManualOverride_Out1_1806  : real ;
1833
 Roll_InnerLoop_Out1_1861  : real ;
1834
 Terminator7_In1_2755  : real ;
1835
 EngageORzero_In1_241  : real ;
1836
 EngageORzero_In2_242  : real ;
1837
 Gain1_In1_320  : real ;
1838
 Heading_Control_In1_327  : real ;
1839
 Heading_Control_In2_328  : real ;
1840
 Heading_Control_In3_329  : real ;
1841
 Heading_Control_In4_330  : real ;
1842
 Heading_Control_In5_331  : real ;
1843
 Heading_Control_In6_332  : real ;
1844
 Heading_Control_In7_333  : bool ;
1845
 ManualOverride_In1_1804  : real ;
1846
 ManualOverride_In2_1805  : real ;
1847
 Roll_InnerLoop_In1_1857  : real ;
1848
 Roll_InnerLoop_In2_1858  : real ;
1849
 Roll_InnerLoop_In3_1859  : real ;
1850
 Roll_InnerLoop_In4_1860  : real ;
1851
engage : bool ;
1852
  
1853
let
1854
engage = if  EngageORzero_In1_241 = 0.0 then false else true;
1855
EngageORzero_Out1_243  = EngageORzero (engage , EngageORzero_In2_242  );
1856
Gain1_Out1_321  = - Gain1_In1_320;
1857
Heading_Control_Out1_334  = HeadingControl ( Heading_Control_In1_327 , Heading_Control_In2_328 , Heading_Control_In3_329 , Heading_Control_In4_330 , Heading_Control_In5_331 , Heading_Control_In6_332 , Heading_Control_In7_333  );
1858
ManualOverride_Out1_1806  = ManualOverride ( ManualOverride_In1_1804 , ManualOverride_In2_1805  );
1859
Roll_InnerLoop_Out1_1861  = RollInnerLoop ( Roll_InnerLoop_In1_1857 , Roll_InnerLoop_In2_1858 , Roll_InnerLoop_In3_1859 , Roll_InnerLoop_In4_1860  );
1860
AilCmd_In1_2767  = Gain1_Out1_321;
1861
Terminator7_In1_2755  = beta_degf_Out1_89;
1862
Roll_InnerLoop_In3_1859  = pbdegf_Out1_79;
1863
Heading_Control_In4_330  = tas_ktsf_Out1_69;
1864
Heading_Control_In3_329  = psidotdeg_Out1_59;
1865
Heading_Control_In2_328  = psidegf_Out1_49;
1866
Heading_Control_In5_331  = phidegf_Out1_39;
1867
Roll_InnerLoop_In2_1858  = phidegf_Out1_39;
1868
Heading_Control_In1_327  = APHeadCmd_Out1_109;
1869
Heading_Control_In6_332  = ApHeadEng_Out1_99;
1870
EngageORzero_In1_241  = ApHeadEng_Out1_99;
1871
Roll_InnerLoop_In4_1860  = cas_ktsf_Out1_29;
1872
ManualOverride_In1_1804  = AilcmdMan__Out1_19;
1873
Heading_Control_In7_333  = RollLimit_Out1_119;
1874
Roll_InnerLoop_In1_1857  = Heading_Control_Out1_334;
1875
EngageORzero_In2_242  = Roll_InnerLoop_Out1_1861;
1876
Gain1_In1_320  = ManualOverride_Out1_1806;
1877
ManualOverride_In2_1805  = EngageORzero_Out1_243;
1878
 tel 
1879

    
1880

    
1881

    
1882

    
1883
-- AutoThrottle
1884
 
1885

    
1886
node VarLimInteg ( Input_Out1_545  : real ; Max_Out1_555  : real ; Min_Out1_565  : real ; ICtrig_Out1_575  : bool ; IC_Out1_585  : real  ) 
1887
   returns ( Out_In1_681  : real  ) ;
1888
var Integrator1_Out1_618  : real ;
1889
 Logical_Operator1_Out1_624  : bool ;
1890
 Logical_Operator2_Out1_630  : bool ;
1891
 Logical_Operator3_Out1_636  : bool ;
1892
 Relational_Operator1_Out1_642  : bool ;
1893
 Relational_Operator2_Out1_648  : bool ;
1894
 Relational_Operator3_Out1_654  : bool ;
1895
 Relational_Operator4_Out1_660  : bool ;
1896
 Switch1_Out1_669  : real ;
1897
 Integrator1_In1_615  : real ;
1898
 Integrator1_In2_616  : bool ;
1899
 Integrator1_In3_617  : real ;
1900
 Logical_Operator1_In1_622  : bool ;
1901
 Logical_Operator1_In2_623  : bool ;
1902
 Logical_Operator2_In1_628  : bool ;
1903
 Logical_Operator2_In2_629  : bool ;
1904
 Logical_Operator3_In1_634  : bool ;
1905
 Logical_Operator3_In2_635  : bool ;
1906
 Relational_Operator1_In1_640  : real ;
1907
 Relational_Operator1_In2_641  : real ;
1908
 Relational_Operator2_In1_646  : real ;
1909
 Relational_Operator2_In2_647  : real ;
1910
 Relational_Operator3_In1_652  : real ;
1911
 -- Relational_Operator3_In2_653  : real ;
1912
 Relational_Operator4_In1_658  : real ;
1913
 -- Relational_Operator4_In2_659  : real ;
1914
 -- Switch1_In1_666  : real ;
1915
 Switch1_In2_667  : bool ;
1916
 Switch1_In3_668  : real ;
1917
  
1918
let
1919
Integrator1_Out1_618  = Integrator1_In3_617 -> pre IntegratorReset ( Integrator1_In1_615 , Integrator1_In2_616 , Integrator1_In3_617  );
1920
Logical_Operator1_Out1_624  = Logical_Operator1_In1_622 or Logical_Operator1_In2_623;
1921
Logical_Operator2_Out1_630  = Logical_Operator2_In1_628 and Logical_Operator2_In2_629;
1922
Logical_Operator3_Out1_636  = Logical_Operator3_In1_634 and Logical_Operator3_In2_635;
1923
Relational_Operator1_Out1_642  = Relational_Operator1_In1_640 <= Relational_Operator1_In2_641;
1924
Relational_Operator2_Out1_648  = Relational_Operator2_In1_646 >= Relational_Operator2_In2_647;
1925
Relational_Operator3_Out1_654  = Relational_Operator3_In1_652 > 0.0;
1926
Relational_Operator4_Out1_660  = Relational_Operator4_In1_658 < 0.0;
1927
Switch1_Out1_669  = if Switch1_In2_667 then 0.0 else Switch1_In3_668;
1928
Integrator1_In3_617  = IC_Out1_585;
1929
Integrator1_In2_616  = ICtrig_Out1_575;
1930
Relational_Operator1_In2_641  = Min_Out1_565;
1931
Relational_Operator2_In2_647  = Max_Out1_555;
1932
-- Relational_Operator4_In2_659  = 0.0;
1933
Switch1_In3_668  = Input_Out1_545;
1934
Relational_Operator3_In1_652  = Input_Out1_545;
1935
Relational_Operator4_In1_658  = Input_Out1_545;
1936
Logical_Operator1_In2_623  = Logical_Operator3_Out1_636;
1937
Logical_Operator3_In2_635  = Relational_Operator4_Out1_660;
1938
Logical_Operator3_In1_634  = Relational_Operator1_Out1_642;
1939
-- Relational_Operator3_In2_653  = 0.0;
1940
Logical_Operator1_In1_622  = Logical_Operator2_Out1_630;
1941
Logical_Operator2_In2_629  = Relational_Operator3_Out1_654;
1942
Logical_Operator2_In1_628  = Relational_Operator2_Out1_648;
1943
Switch1_In2_667  = Logical_Operator1_Out1_624;
1944
Relational_Operator2_In1_646  = Integrator1_Out1_618;
1945
Relational_Operator1_In1_640  = Integrator1_Out1_618;
1946
Out_In1_681  = Integrator1_Out1_618;
1947
Integrator1_In1_615  = Switch1_Out1_669;
1948
-- Switch1_In1_666  = 0.0;
1949
 tel 
1950

    
1951

    
1952
node AutoThrottle ( ATEng_Out1_19  : bool ; maxThrot_Out1_29  : real ; minThrot_Out1_39  : real ; leverThrot_Out1_49  : real ; Vgdotf_Out1_59  : real ; ICthrot_Out1_69  : real ; Ktas_Cas_Abstracted_Out1_79  : real ; phi_abstracted_Out1_89  : real  ) 
1953
   returns ( ThrotCmd_In1_555  : real  ) ;
1954
var DynamicSaturation_Out1_98  : real ;
1955
 EngageORzero_Out1_189  : real ;
1956
 Kr_Out1_267  : real ;
1957
 Kr1_Out1_276  : real ;
1958
 Logical_Operator_Out1_281  : bool ;
1959
 ManualOverride_Out1_289  : real ;
1960
 Sum1_Out1_345  : real ;
1961
 Sum3_Out1_355  : real ;
1962
 Sum5_Out1_365  : real ;
1963
 VarLimIntegAT_Out1_376  : real ;
1964
 DynamicSaturation_In1_95  : real ;
1965
 DynamicSaturation_In2_96  : real ;
1966
 DynamicSaturation_In3_97  : real ;
1967
 EngageORzero_In1_187  : bool ;
1968
 EngageORzero_In2_188  : real ;
1969
 Kr_In1_266  : real ;
1970
 Kr1_In1_275  : real ;
1971
 Logical_Operator_In1_280  : bool ;
1972
 ManualOverride_In1_287  : real ;
1973
 ManualOverride_In2_288  : real ;
1974
 Sum1_In1_342  : real ;
1975
 Sum1_In2_343  : real ;
1976
 Sum1_In3_344  : real ;
1977
 Sum3_In1_353  : real ;
1978
 Sum3_In2_354  : real ;
1979
 Sum5_In1_363  : real ;
1980
 Sum5_In2_364  : real ;
1981
 VarLimIntegAT_In1_371  : real ;
1982
 VarLimIntegAT_In2_372  : real ;
1983
 VarLimIntegAT_In3_373  : real ;
1984
 VarLimIntegAT_In4_374  : bool ;
1985
 VarLimIntegAT_In5_375  : real ;
1986
  
1987
let
1988
DynamicSaturation_Out1_98  = DynamicSaturation ( DynamicSaturation_In1_95 , DynamicSaturation_In2_96 , DynamicSaturation_In3_97  );
1989
EngageORzero_Out1_189  = EngageORzero ( EngageORzero_In1_187 , EngageORzero_In2_188  );
1990
Kr_Out1_267  = 2.500000 * Kr_In1_266;
1991
Kr1_Out1_276  = 1.200000 * Kr1_In1_275;
1992
Logical_Operator_Out1_281  = not Logical_Operator_In1_280;
1993
ManualOverride_Out1_289  = ManualOverride ( ManualOverride_In1_287 , ManualOverride_In2_288  );
1994
Sum1_Out1_345  = Sum1_In1_342 + ( Sum1_In2_343 + - Sum1_In3_344  );
1995
Sum3_Out1_355  = Sum3_In1_353 + - Sum3_In2_354;
1996
Sum5_Out1_365  = Sum5_In1_363 + - Sum5_In2_364;
1997
VarLimIntegAT_Out1_376  = VarLimInteg ( VarLimIntegAT_In1_371 , VarLimIntegAT_In2_372 , VarLimIntegAT_In3_373 , VarLimIntegAT_In4_374 , VarLimIntegAT_In5_375  );
1998
Kr_In1_266  = Sum1_Out1_345;
1999
VarLimIntegAT_In1_371  = Kr_Out1_267;
2000
Sum1_In3_344  = Vgdotf_Out1_59;
2001
Kr1_In1_275  = Vgdotf_Out1_59;
2002
Sum3_In2_354  = Kr1_Out1_276;
2003
EngageORzero_In2_188  = Sum5_Out1_365;
2004
VarLimIntegAT_In5_375  = ICthrot_Out1_69;
2005
Sum5_In2_364  = ICthrot_Out1_69;
2006
DynamicSaturation_In1_95  = maxThrot_Out1_29;
2007
VarLimIntegAT_In2_372  = maxThrot_Out1_29;
2008
VarLimIntegAT_In3_373  = minThrot_Out1_39;
2009
DynamicSaturation_In3_97  = minThrot_Out1_39;
2010
Sum3_In1_353  = VarLimIntegAT_Out1_376;
2011
DynamicSaturation_In2_96  = Sum3_Out1_355;
2012
Sum5_In1_363  = DynamicSaturation_Out1_98;
2013
VarLimIntegAT_In4_374  = Logical_Operator_Out1_281;
2014
EngageORzero_In1_187  = ATEng_Out1_19;
2015
Logical_Operator_In1_280  = ATEng_Out1_19;
2016
ManualOverride_In1_287  = leverThrot_Out1_49;
2017
ThrotCmd_In1_555  = ManualOverride_Out1_289;
2018
ManualOverride_In2_288  = EngageORzero_Out1_189;
2019
Sum1_In2_343  = Ktas_Cas_Abstracted_Out1_79;
2020
Sum1_In1_342  = phi_abstracted_Out1_89;
2021
 tel 
2022

    
2023

    
2024

    
2025
  -- property 120 and 130
2026
  -- use all the properties in the GUIDE-X-compositional.lus
2027
  -- add environmental assumption from FPA_1.lus
(3-3/3)