Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

lustrec-tests / github_issues / 2019_09_05_hamza_rosace_alg_loop / fullrosace_PP.LUSTREC.lus @ 3d9babd4

History | View | Annotate | Download (21.5 KB)

1
-- This file has been generated by CoCoSim2.
2

    
3
-- Compiler: Lustre compiler 2 (nasa_toLustre.ToLustre.m)
4
-- Time: 04-Sep-2019 16:48:14
5
#open <lustrec_math>
6

    
7
node  _make_clock(
8
	period : int; phase : int;)
9
returns(
10
	clk : bool;);
11
var 
12
	count : int;
13
let
14
	count = (((period - phase) -> ((pre (count)) + 1)) mod period);
15
	clk = (count = 0);
16
tel
17

    
18
(*
19
Original block name: fullrosace_PP/AltitudeHold/AltitudeCaptureHold/DT_Integrator1
20
*)
21
node  DT_Integrator1_15_001(
22
	f_lpar_x_rpar__1 : real; x0_1 : real; __time_step : real; __nb_step : int;)
23
returns(
24
	F_lpar_x_rpar__1 : real;);
25
var 
26
	Product_1 : real; UnitDelay_1 : real;
27
let
28
	Product_1 = 1.0 * x0_1 * ( (1.0 -> (pre (0.0))) );
29
	UnitDelay_1 = (0.0 -> (pre (( ( (f_lpar_x_rpar__1 * 0.020) ) + ( UnitDelay_1 + Product_1 ) ))));
30
	F_lpar_x_rpar__1 = ( UnitDelay_1 + Product_1 );
31
tel
32

    
33
(*
34
Original block name: fullrosace_PP/AltitudeHold/AltitudeCaptureHold
35
*)
36
node  AltitudeCaptureHold_9_000_condExecSS(
37
	h_meas_1 : real; h_c_1 : real; Vz_c_1 : real; _isEnabled : bool; __time_step : real;
38
	__nb_step : int;)
39
returns(
40
	Vz_c_newline__1 : real;);
41
var 
42
	pre_Vz_c_newline__1 : real; _isEnabled_clock : bool clock; _isEnabled_reset_clock : bool clock;
43
let
44
	pre_Vz_c_newline__1 = if (__nb_step > 0) then
45
		(pre (Vz_c_newline__1))
46
	    else 0.0;
47
	_isEnabled_clock = _isEnabled;
48
	_isEnabled_reset_clock = (false -> (_isEnabled_clock and (not ((pre (_isEnabled_clock))))));
49
	Vz_c_newline__1 = (merge _isEnabled_clock 
50
		(true -> (AltitudeCaptureHold_9_000((h_meas_1 when _isEnabled_clock), (h_c_1 when _isEnabled_clock), (Vz_c_1 when _isEnabled_clock), (__time_step when _isEnabled_clock), (__nb_step when _isEnabled_clock)) every _isEnabled_reset_clock)) 
51
		(false -> pre_Vz_c_newline__1 when false(_isEnabled_clock)));
52
tel
53

    
54
(*
55
Original block name: fullrosace_PP/AltitudeHold/AltitudeCaptureHold
56
*)
57
node  AltitudeCaptureHold_9_000(
58
	h_meas_1 : real; h_c_1 : real; Vz_c_1 : real; __time_step : real; __nb_step : int;)
59
returns(
60
	Vz_c_newline__1 : real;);
61
var 
62
	Sum1_1 : real;
63
let
64
	Sum1_1 = h_meas_1 - h_c_1;
65
	Vz_c_newline__1 = ( ( (Sum1_1 * 0.10140480) ) + ( DT_Integrator1_15_001((Sum1_1 * 0.00482880), Vz_c_1 - Sum1_1 * 0.10140, __time_step, __nb_step) ) );
66
tel
67

    
68
(*
69
Original block name: fullrosace_PP/AltitudeHold/Climb_command
70
*)
71
node  Climb_command_61_001_condExecSS(
72
	_isEnabled : bool; __time_step : real; __nb_step : int;)
73
returns(
74
	Vz_c_1 : real;);
75
var 
76
	pre_Vz_c_1 : real; _isEnabled_clock : bool clock;
77
let
78
	pre_Vz_c_1 = if (__nb_step > 0) then
79
		(pre (Vz_c_1))
80
	    else 0.0;
81
	_isEnabled_clock = _isEnabled;
82
	Vz_c_1 = (merge _isEnabled_clock 
83
		(true -> Climb_command_61_001((__time_step when _isEnabled_clock), (__nb_step when _isEnabled_clock))) 
84
		(false -> pre_Vz_c_1 when false(_isEnabled_clock)));
85
tel
86

    
87
(*
88
Original block name: fullrosace_PP/AltitudeHold/Climb_command
89
*)
90
node  Climb_command_61_001(
91
	__time_step : real; __nb_step : int;)
92
returns(
93
	Vz_c_1 : real;);
94
let
95
	Vz_c_1 = -2.50;
96
tel
97

    
98
(*
99
Original block name: fullrosace_PP/AltitudeHold/Descent_command
100
*)
101
node  Descent_command_66_002_condExecSS(
102
	_isEnabled : bool; __time_step : real; __nb_step : int;)
103
returns(
104
	Vz_c_1 : real;);
105
var 
106
	pre_Vz_c_1 : real; _isEnabled_clock : bool clock; _isEnabled_reset_clock : bool clock;
107
let
108
	pre_Vz_c_1 = if (__nb_step > 0) then
109
		(pre (Vz_c_1))
110
	    else 0.0;
111
	_isEnabled_clock = _isEnabled;
112
	_isEnabled_reset_clock = (false -> (_isEnabled_clock and (not ((pre (_isEnabled_clock))))));
113
	Vz_c_1 = (merge _isEnabled_clock 
114
		(true -> (Descent_command_66_002((__time_step when _isEnabled_clock), (__nb_step when _isEnabled_clock)) every _isEnabled_reset_clock)) 
115
		(false -> pre_Vz_c_1 when false(_isEnabled_clock)));
116
tel
117

    
118
(*
119
Original block name: fullrosace_PP/AltitudeHold/Descent_command
120
*)
121
node  Descent_command_66_002(
122
	__time_step : real; __nb_step : int;)
123
returns(
124
	Vz_c_1 : real;);
125
let
126
	Vz_c_1 = 2.50;
127
tel
128

    
129
(*
130
Original block name: fullrosace_PP/AltitudeHold/Memory
131
*)
132
node  Memory_72_001(
133
	In1_1 : real; __time_step : real; __nb_step : int;)
134
returns(
135
	Out1_1 : real;);
136
let
137
	Out1_1 = ( (0.0 -> (pre (In1_1))) );
138
tel
139

    
140
(*
141
Original block name: fullrosace_PP/AltitudeHold
142
*)
143
node  AltitudeHold_6_000(
144
	hc_1 : real; hmeas_1 : real; __time_step : real; __nb_step : int;)
145
returns(
146
	Vz_c_1 : real;);
147
var 
148
	ExecutionCond_of_AltitudeCaptureHold_9_000 : bool; ExecutionCond_of_Climb_command_61_001 : bool; ExecutionCond_of_Descent_command_66_002 : bool; Logic_SpeedCommand_1 : bool; Logic_SpeedCommand_2 : bool;
149
	Logic_SpeedCommand_3 : bool; Merge_1 : real; Sum3_1 : real;
150
let
151
	ExecutionCond_of_AltitudeCaptureHold_9_000 = Logic_SpeedCommand_3;
152
	ExecutionCond_of_Climb_command_61_001 = Logic_SpeedCommand_1;
153
	ExecutionCond_of_Descent_command_66_002 = Logic_SpeedCommand_2;
154
	(Logic_SpeedCommand_1, Logic_SpeedCommand_2, Logic_SpeedCommand_3) = if Sum3_1 > 50.0 then
155
		(true, false, false)
156
	    else if Sum3_1 < - 50.0 then
157
		(false, true, false)
158
	    else (false, false, true);
159
	Merge_1 = if ExecutionCond_of_Climb_command_61_001 then
160
		( Climb_command_61_001_condExecSS(ExecutionCond_of_Climb_command_61_001, __time_step, __nb_step) )
161
	    else if ExecutionCond_of_Descent_command_66_002 then
162
		( Descent_command_66_002_condExecSS(ExecutionCond_of_Descent_command_66_002, __time_step, __nb_step) )
163
	    else if ExecutionCond_of_AltitudeCaptureHold_9_000 then
164
		( AltitudeCaptureHold_9_000_condExecSS(hmeas_1, hc_1, Memory_72_001(Merge_1, __time_step, __nb_step), ExecutionCond_of_AltitudeCaptureHold_9_000, __time_step, __nb_step) )
165
	    else (0.0 -> (pre (Merge_1)));
166
	Sum3_1 = hc_1 - hmeas_1;
167
	Vz_c_1 = Merge_1;
168
tel
169

    
170
(*
171
Original block name: fullrosace_PP/Elevator/Gain1
172
*)
173
node  Gain1_103_001(
174
	u_1 : real; __time_step : real; __nb_step : int;)
175
returns(
176
	Out1_1 : real; Out1_2 : real;);
177
let
178
	Out1_1 = ( (0.0 * u_1) );
179
	Out1_2 = ( (625.0 * u_1) );
180
tel
181

    
182
(*
183
Original block name: fullrosace_PP/Elevator/Gain2
184
*)
185
node  Gain2_111_001(
186
	u_1 : real; u_2 : real; __time_step : real; __nb_step : int;)
187
returns(
188
	Out1_1 : real; Out1_2 : real;);
189
let
190
	Out1_1 = ( (0.0 * u_1) + (1.0 * u_2) );
191
	Out1_2 = ( (-625.0 * u_1) + (-42.50 * u_2) );
192
tel
193

    
194
(*
195
Original block name: fullrosace_PP/Elevator/Gain3
196
*)
197
node  Gain3_119_001(
198
	u_1 : real; u_2 : real; __time_step : real; __nb_step : int;)
199
returns(
200
	Out1_1 : real;);
201
let
202
	Out1_1 = ( (1.0 * u_1) + (0.0 * u_2) );
203
tel
204

    
205
(*
206
Original block name: fullrosace_PP/Elevator
207
*)
208
node  Elevator_100_001(
209
	delta_e_c_1 : real; __time_step : real; __nb_step : int;)
210
returns(
211
	delta_e_1 : real;);
212
var 
213
	Gain1_1 : real; Gain1_2 : real; Gain2_1 : real; Gain2_2 : real; UnitDelay_1 : real;
214
	UnitDelay_2 : real;
215
let
216
	(Gain1_1, Gain1_2) = Gain1_103_001(delta_e_c_1, __time_step, __nb_step);
217
	(Gain2_1, Gain2_2) = Gain2_111_001(UnitDelay_1, UnitDelay_2, __time_step, __nb_step);
218
	UnitDelay_1 = (0.012009615652468 -> (pre (( ( (( Gain1_1 + Gain2_1 ) * 0.0050) ) + UnitDelay_1 ))));
219
	UnitDelay_2 = (0.0 -> (pre (( ( (( Gain1_2 + Gain2_2 ) * 0.0050) ) + UnitDelay_2 ))));
220
	delta_e_1 = ( ( (delta_e_c_1 * 0.0) ) + ( Gain3_119_001(UnitDelay_1, UnitDelay_2, __time_step, __nb_step) ) );
221
tel
222

    
223
(*
224
Original block name: fullrosace_PP/Engine
225
*)
226
node  Engine_150_001(
227
	delta_x_c_1 : real; __time_step : real; __nb_step : int;)
228
returns(
229
	T_1 : real;);
230
var 
231
	UnitDelay_1 : real;
232
let
233
	UnitDelay_1 = (1.58686607949260 -> (pre (( ( (( ( (delta_x_c_1 * 0.750) ) + ( (UnitDelay_1 * -0.750) ) ) * 0.0050) ) + UnitDelay_1 ))));
234
	T_1 = ( ( (delta_x_c_1 * 0.0) ) + ( (UnitDelay_1 * 26350.0) ) );
235
tel
236

    
237
(*
238
Original block name: fullrosace_PP/FlightDynamics/Flight_Dynamics_Model/Aero_Coefficients
239
*)
240
node  Aero_Coefficients_188_000(
241
	de_1 : real; alpha_1 : real; q_1 : real; V_1 : real; __time_step : real;
242
	__nb_step : int;)
243
returns(
244
	CD_Drag_coefficient_1 : real; CL_Lift_coefficient_1 : real; Cm_Pitching_coefficient_1 : real;);
245
var 
246
	Sum1_1 : real;
247
let
248
	Sum1_1 = alpha_1 - -0.050;
249
	CD_Drag_coefficient_1 = ( 0.0160 + ( (de_1 * 0.050) ) + ( (( (Sum1_1 * Sum1_1) ) * 2.50) ) );
250
	CL_Lift_coefficient_1 = ( ( (de_1 * 0.1930) ) + ( (Sum1_1 * 5.50) ) );
251
	Cm_Pitching_coefficient_1 = ( 0.040 + ( (de_1 * -1.50) ) + ( (alpha_1 * -0.830) ) + ( (( (( 1.0 * q_1 / V_1 ) * 2.1450) ) * -30.0) ) );
252
tel
253

    
254
(*
255
Original block name: fullrosace_PP/FlightDynamics/Flight_Dynamics_Model/Aero_forces_moment
256
*)
257
node  Aero_forces_moment_242_001(
258
	alpha_1 : real; CD_1 : real; CL_1 : real; Cm_1 : real; qbar_1 : real;
259
	__time_step : real; __nb_step : int;)
260
returns(
261
	Xa_Xb_force_1 : real; Za_Zb_force_1 : real; Ma_Pitching_moment_1 : real;);
262
var 
263
	Gain1_1 : real; Trigo_Function_1 : real; Trigo_Function1_1 : real;
264
let
265
	Gain1_1 = (qbar_1 * 122.599999999999994);
266
	Trigo_Function_1 = sin(alpha_1);
267
	Trigo_Function1_1 = cos(alpha_1);
268
	Xa_Xb_force_1 = ( 1.0 * ( 0.0 - ( 1.0 * CD_1 * Trigo_Function1_1 ) + ( 1.0 * Trigo_Function_1 * CL_1 ) ) * Gain1_1 );
269
	Za_Zb_force_1 = ( 1.0 * ( 0.0 - ( 1.0 * CD_1 * Trigo_Function_1 ) - ( 1.0 * Trigo_Function1_1 * CL_1 ) ) * Gain1_1 );
270
	Ma_Pitching_moment_1 = ( 1.0 * ( (Cm_1 * 4.290) ) * Gain1_1 );
271
tel
272

    
273
(*
274
Original block name: fullrosace_PP/FlightDynamics/Flight_Dynamics_Model
275
*)
276
node  Flight_Dynamics_Model_186_000(
277
	x_1 : real; x_2 : real; x_3 : real; x_4 : real; x_5 : real;
278
	x_6 : real; x_7 : real; __time_step : real; __nb_step : int;)
279
returns(
280
	Za_1 : real; xdot_1 : real; xdot_2 : real; xdot_3 : real; xdot_4 : real;
281
	xdot_5 : real;);
282
var 
283
	Aero_Coefficients_1 : real; Aero_Coefficients_2 : real; Aero_Coefficients_3 : real; Aero_forces_moment_1 : real; Aero_forces_moment_2 : real;
284
	Aero_forces_moment_3 : real; Angle_of_attack_1 : real; Mux3_2 : real; Mux3_3 : real; Mux3_4 : real;
285
	Mux3_5 : real; Mux3_6 : real; Mux3_7 : real; V_Airspeed_1 : real;
286
let
287
	(Aero_Coefficients_1, Aero_Coefficients_2, Aero_Coefficients_3) = Aero_Coefficients_188_000(x_2, Angle_of_attack_1, x_5, V_Airspeed_1, __time_step, __nb_step);
288
	(Aero_forces_moment_1, Aero_forces_moment_2, Aero_forces_moment_3) = Aero_forces_moment_242_001(Angle_of_attack_1, Aero_Coefficients_1, Aero_Coefficients_2, Aero_Coefficients_3, 0.50 * ( 1.2250 * pow(1.0 + -0.00650 / 288.149999999999977 * x_7, - 9.806649999999999 / ( 287.050000000000011 * -0.00650 ) - 1.0) ) * pow(V_Airspeed_1, 2.0), __time_step, __nb_step);
289
	Angle_of_attack_1 = atan(x_4 / x_3);
290
	Mux3_2 = x_2;
291
	Mux3_3 = x_3;
292
	Mux3_4 = x_4;
293
	Mux3_5 = x_5;
294
	Mux3_6 = x_6;
295
	Mux3_7 = x_7;
296
	V_Airspeed_1 = sqrt(pow(x_3, 2.0) + pow(x_4, 2.0));
297
	Za_1 = Aero_forces_moment_2;
298
	xdot_1 = ( - 9.806649999999999 * sin(Mux3_6) - Mux3_5 * Mux3_4 + 1.0 / 57837.50 * ( x_1 + Aero_forces_moment_1 ) );
299
	xdot_2 = ( 9.806649999999999 * cos(Mux3_6) + Mux3_5 * Mux3_3 + 1.0 / 57837.50 * Aero_forces_moment_2 );
300
	xdot_3 = ( 1.0 / 3781272.0 * Aero_forces_moment_3 );
301
	xdot_4 = Mux3_5;
302
	xdot_5 = ( Mux3_3 * sin(Mux3_6) - Mux3_4 * cos(Mux3_6) );
303
tel
304

    
305
(*
306
Original block name: fullrosace_PP/FlightDynamics
307
*)
308
node  FlightDynamics_181_000(
309
	T_1 : real; delta_e_1 : real; __time_step : real; __nb_step : int;)
310
returns(
311
	Va_1 : real; az_1 : real; q_1 : real; Vz_1 : real; h_1 : real;);
312
var 
313
	Flight_Dynamics_Model_1 : real; Flight_Dynamics_Model_2 : real; Flight_Dynamics_Model_3 : real; Flight_Dynamics_Model_4 : real; Flight_Dynamics_Model_5 : real;
314
	Flight_Dynamics_Model_6 : real; Mux1_1 : real; Mux1_2 : real; Mux1_4 : real; UnitDelay_1 : real;
315
	UnitDelay_2 : real; UnitDelay_3 : real; UnitDelay_4 : real; UnitDelay_5 : real;
316
let
317
	(Flight_Dynamics_Model_1, Flight_Dynamics_Model_2, Flight_Dynamics_Model_3, Flight_Dynamics_Model_4, Flight_Dynamics_Model_5, Flight_Dynamics_Model_6) = Flight_Dynamics_Model_186_000(T_1, delta_e_1, UnitDelay_1, UnitDelay_2, UnitDelay_3, UnitDelay_4, UnitDelay_5, __time_step, __nb_step);
318
	Mux1_1 = UnitDelay_1;
319
	Mux1_2 = UnitDelay_2;
320
	Mux1_4 = UnitDelay_4;
321
	UnitDelay_1 = (229.919332201218026 -> (pre (( ( (Flight_Dynamics_Model_2 * 0.0050) ) + UnitDelay_1 ))));
322
	UnitDelay_2 = (6.091032765135377 -> (pre (( ( (Flight_Dynamics_Model_3 * 0.0050) ) + UnitDelay_2 ))));
323
	UnitDelay_3 = (0.0 -> (pre (( ( (Flight_Dynamics_Model_4 * 0.0050) ) + UnitDelay_3 ))));
324
	UnitDelay_4 = (0.026485847681737 -> (pre (( ( (Flight_Dynamics_Model_5 * 0.0050) ) + UnitDelay_4 ))));
325
	UnitDelay_5 = (10000.0 -> (pre (( ( (Flight_Dynamics_Model_6 * 0.0050) ) + UnitDelay_5 ))));
326
	Va_1 = ( sqrt(pow(Mux1_1, 2.0) + pow(Mux1_2, 2.0)) );
327
	az_1 = ( 9.806649999999999 * cos(Mux1_4) + 1.0 / 57837.50 * Flight_Dynamics_Model_1 );
328
	q_1 = UnitDelay_3;
329
	Vz_1 = ( Mux1_2 * cos(Mux1_4) - Mux1_1 * sin(Mux1_4) );
330
	h_1 = UnitDelay_5;
331
tel
332

    
333
(*
334
Original block name: fullrosace_PP/Va_filter/Discrete_State_Space
335
*)
336
node  Discrete_State_Space_417_000(
337
	U_1 : real; __time_step : real; __nb_step : int; _clk_2_0 : bool clock;)
338
returns(
339
	Y_1 : real;);
340
var 
341
	X0_1 : real; X0_2 : real;
342
let
343
	X0_1 = (-219.894860440452163 -> (pre (( ( (0.0 * X0_1) + (-0.956543675476034 * X0_2) ) + ( (0.000479064865372 * U_1) ) ))));
344
	X0_2 = (230.0 -> (pre (( ( (1.0 * X0_1) + (1.955578398054313 * X0_2) ) + ( (0.000486212556349 * U_1) ) ))));
345
	Y_1 = ( ( (0.0 * U_1) ) + ( (0.0 * X0_1) + (1.0 * X0_2) ) );
346
tel
347

    
348
(*
349
Original block name: fullrosace_PP/Va_filter
350
*)
351
node  Va_filter_415_001(
352
	Va_1 : real; __time_step : real; __nb_step : int; _clk_2_0 : bool clock;)
353
returns(
354
	Va_meas_1 : real;);
355
let
356
	Va_meas_1 = ( Discrete_State_Space_417_000(Va_1, __time_step, __nb_step, _clk_2_0) );
357
tel
358

    
359
(*
360
Original block name: fullrosace_PP/Va_speed_control/DT_Integrator
361
*)
362
node  DT_Integrator_456_001(
363
	f_lpar_x_rpar__1 : real; x0_1 : real; __time_step : real; __nb_step : int;)
364
returns(
365
	F_lpar_x_rpar__1 : real;);
366
var 
367
	Product_1 : real; UnitDelay_1 : real;
368
let
369
	Product_1 = 1.0 * x0_1 * ( (1.0 -> (pre (0.0))) );
370
	UnitDelay_1 = (0.0 -> (pre (( ( (f_lpar_x_rpar__1 * 0.020) ) + ( UnitDelay_1 + Product_1 ) ))));
371
	F_lpar_x_rpar__1 = ( UnitDelay_1 + Product_1 );
372
tel
373

    
374
(*
375
Original block name: fullrosace_PP/Va_speed_control
376
*)
377
node  Va_speed_control_450_002(
378
	Va_c_1 : real; Va_meas_1 : real; q_meas_1 : real; Vz_meas_1 : real; __time_step : real;
379
	__nb_step : int;)
380
returns(
381
	delta_x_c_1 : real;);
382
let
383
	delta_x_c_1 = ( ( DT_Integrator_456_001((( Va_c_1 - Va_meas_1 ) * 0.049802610664357), 1.58686607949260, __time_step, __nb_step) ) + ( (( Va_meas_1 - 230.0 ) * -0.486813084356079) ) + ( (q_meas_1 * 21.692383376322041) ) + ( (Vz_meas_1 * -0.077603095495388) ) );
384
tel
385

    
386
(*
387
Original block name: fullrosace_PP/Vz_filter_/Discrete_State_Space
388
*)
389
node  Discrete_State_Space_509_000(
390
	U_1 : real; __time_step : real; __nb_step : int; _clk_2_0 : bool clock;)
391
returns(
392
	Y_1 : real;);
393
var 
394
	X0_1 : real; X0_2 : real;
395
let
396
	X0_1 = (0.0 -> (pre (( ( (0.0 * X0_1) + (-0.956543675476034 * X0_2) ) + ( (0.000479064865372 * U_1) ) ))));
397
	X0_2 = (0.0 -> (pre (( ( (1.0 * X0_1) + (1.955578398054313 * X0_2) ) + ( (0.000486212556349 * U_1) ) ))));
398
	Y_1 = ( ( (0.0 * U_1) ) + ( (0.0 * X0_1) + (1.0 * X0_2) ) );
399
tel
400

    
401
(*
402
Original block name: fullrosace_PP/Vz_filter_
403
*)
404
node  Vz_filter__507_001(
405
	Vz_1 : real; __time_step : real; __nb_step : int; _clk_2_0 : bool clock;)
406
returns(
407
	Vz_meas_1 : real;);
408
let
409
	Vz_meas_1 = ( Discrete_State_Space_509_000(Vz_1, __time_step, __nb_step, _clk_2_0) );
410
tel
411

    
412
(*
413
Original block name: fullrosace_PP/Vz_speed_control/Discrete_Time_Integrator
414
*)
415
node  Discrete_Time_Integrator_548_161(
416
	f_lpar_x_rpar__1 : real; x0_1 : real; __time_step : real; __nb_step : int;)
417
returns(
418
	F_lpar_x_rpar__1 : real;);
419
var 
420
	Product_1 : real; UnitDelay_1 : real;
421
let
422
	Product_1 = 1.0 * x0_1 * ( (1.0 -> (pre (0.0))) );
423
	UnitDelay_1 = (0.0 -> (pre (( ( (f_lpar_x_rpar__1 * 0.020) ) + ( UnitDelay_1 + Product_1 ) ))));
424
	F_lpar_x_rpar__1 = ( UnitDelay_1 + Product_1 );
425
tel
426

    
427
(*
428
Original block name: fullrosace_PP/Vz_speed_control
429
*)
430
node  Vz_speed_control_542_161(
431
	Vz_c_1 : real; Vz_meas_1 : real; q_meas_1 : real; az_meas_1 : real; __time_step : real;
432
	__nb_step : int;)
433
returns(
434
	delta_e_c_1 : real;);
435
let
436
	delta_e_c_1 = ( ( Discrete_Time_Integrator_548_161((( Vz_c_1 - Vz_meas_1 ) * 0.000627342822264), 0.012009615652468, __time_step, __nb_step) ) + ( (Vz_meas_1 * -0.003252836726554) ) + ( (q_meas_1 * 0.376071446897134) ) + ( (az_meas_1 * -0.001566907423747) ) );
437
tel
438

    
439
(*
440
Original block name: fullrosace_PP/az_filter/Discrete_State_Space
441
*)
442
node  Discrete_State_Space_597_161(
443
	U_1 : real; __time_step : real; __nb_step : int; _clk_2_0 : bool clock;)
444
returns(
445
	Y_1 : real;);
446
var 
447
	X0_1 : real; X0_2 : real;
448
let
449
	X0_1 = (0.0 -> (pre (( ( (0.0 * X0_1) + (-0.411240701442774 * X0_2) ) + ( (0.107849979167580 * U_1) ) ))));
450
	X0_2 = (0.0 -> (pre (( ( (1.0 * X0_1) + (1.158045899830964 * X0_2) ) + ( (0.145344822444230 * U_1) ) ))));
451
	Y_1 = ( ( (0.0 * U_1) ) + ( (0.0 * X0_1) + (1.0 * X0_2) ) );
452
tel
453

    
454
(*
455
Original block name: fullrosace_PP/az_filter
456
*)
457
node  az_filter_595_161(
458
	az_1 : real; __time_step : real; __nb_step : int; _clk_2_0 : bool clock;)
459
returns(
460
	az_meas_1 : real;);
461
let
462
	az_meas_1 = ( Discrete_State_Space_597_161(az_1, __time_step, __nb_step, _clk_2_0) );
463
tel
464

    
465
(*
466
Original block name: fullrosace_PP/h_filter_/Discrete_State_Space
467
*)
468
node  Discrete_State_Space_632_161(
469
	U_1 : real; __time_step : real; __nb_step : int; _clk_4_0 : bool clock;)
470
returns(
471
	Y_1 : real;);
472
var 
473
	X0_1 : real; X0_2 : real;
474
let
475
	X0_1 = (-5371.593477021927356 -> (pre (( ( (0.0 * X0_1) + (-0.586756156020839 * X0_2) ) + ( (0.049596808318647 * U_1) ) ))));
476
	X0_2 = (10000.0 -> (pre (( ( (1.0 * X0_1) + (1.477888930110354 * X0_2) ) + ( (0.059270417591839 * U_1) ) ))));
477
	Y_1 = ( ( (0.0 * U_1) ) + ( (0.0 * X0_1) + (1.0 * X0_2) ) );
478
tel
479

    
480
(*
481
Original block name: fullrosace_PP/h_filter_
482
*)
483
node  h_filter__630_161(
484
	h_1 : real; __time_step : real; __nb_step : int; _clk_4_0 : bool clock;)
485
returns(
486
	h_meas_1 : real;);
487
let
488
	h_meas_1 = ( Discrete_State_Space_632_161(h_1, __time_step, __nb_step, _clk_4_0) );
489
tel
490

    
491
(*
492
Original block name: fullrosace_PP/q_filter/Discrete_State_Space
493
*)
494
node  Discrete_State_Space_667_161(
495
	U_1 : real; __time_step : real; __nb_step : int; _clk_2_0 : bool clock;)
496
returns(
497
	Y_1 : real;);
498
var 
499
	X0_1 : real; X0_2 : real;
500
let
501
	X0_1 = (0.0 -> (pre (( ( (0.0 * X0_1) + (-0.766000101841272 * X0_2) ) + ( (0.014857648981438 * U_1) ) ))));
502
	X0_2 = (0.0 -> (pre (( ( (1.0 * X0_1) + (1.734903205885821 * X0_2) ) + ( (0.016239246974013 * U_1) ) ))));
503
	Y_1 = ( ( (0.0 * U_1) ) + ( (0.0 * X0_1) + (1.0 * X0_2) ) );
504
tel
505

    
506
(*
507
Original block name: fullrosace_PP/q_filter
508
*)
509
node  q_filter_665_161(
510
	q_1 : real; __time_step : real; __nb_step : int; _clk_2_0 : bool clock;)
511
returns(
512
	q_meas_1 : real;);
513
let
514
	q_meas_1 = ( Discrete_State_Space_667_161(q_1, __time_step, __nb_step, _clk_2_0) );
515
tel
516

    
517
(*
518
Original block name: fullrosace_PP
519
*)
520
node  fullrosace_PP(
521
	h_c_1 : real; Va_c_1 : real;)
522
returns(
523
	Va_1 : real; h_1 : real;);
524
var 
525
	FlightDynamics_1 : real; FlightDynamics_2 : real; FlightDynamics_3 : real; FlightDynamics_4 : real; FlightDynamics_5 : real;
526
	RateTransition10_1 : real; RateTransition11_1 : real; RateTransition12_1 : real; RateTransition13_1 : real; RateTransition14_1 : real;
527
	RateTransition15_1 : real; RateTransition16_1 : real; RateTransition17_1 : real; RateTransition5_1 : real; RateTransition6_1 : real;
528
	RateTransition7_1 : real; RateTransition9_1 : real; Sampler_1 : real; Sampler1_1 : real; Sampler2_1 : real;
529
	Sampler3_1 : real; Sampler4_1 : real; Vz_filter__1 : real; q_filter_1 : real; __time_step : real;
530
	__nb_step : int; _clk_2_0 : bool clock; _clk_4_0 : bool clock;
531
let
532
	(FlightDynamics_1, FlightDynamics_2, FlightDynamics_3, FlightDynamics_4, FlightDynamics_5) = FlightDynamics_181_000(Engine_150_001(RateTransition13_1, __time_step, __nb_step), Elevator_100_001(RateTransition14_1, __time_step, __nb_step), __time_step, __nb_step);
533
	RateTransition10_1 = if _clk_4_0 then
534
		( az_filter_595_161(Sampler2_1, __time_step, __nb_step, _clk_2_0) )
535
	    else (0.0 -> (pre (RateTransition10_1)));
536
	RateTransition11_1 = if _clk_4_0 then
537
		( Va_filter_415_001(Sampler3_1, __time_step, __nb_step, _clk_2_0) )
538
	    else (0.0 -> (pre (RateTransition11_1)));
539
	RateTransition12_1 = if _clk_4_0 then
540
		Va_c_1
541
	    else (0.0 -> (pre (RateTransition12_1)));
542
	RateTransition13_1 = if _clk_4_0 then
543
		(1.58686607949260 -> (pre (( Va_speed_control_450_002(RateTransition12_1, RateTransition11_1, RateTransition16_1, RateTransition9_1, __time_step, __nb_step) ))))
544
	    else (1.58686607949260 -> (pre (RateTransition13_1)));
545
	RateTransition14_1 = if _clk_4_0 then
546
		(0.012009615652468 -> (pre (( Vz_speed_control_542_161(RateTransition6_1, RateTransition17_1, RateTransition15_1, RateTransition10_1, __time_step, __nb_step) ))))
547
	    else (0.012009615652468 -> (pre (RateTransition14_1)));
548
	RateTransition15_1 = if _clk_4_0 then
549
		q_filter_1
550
	    else (0.0 -> (pre (RateTransition15_1)));
551
	RateTransition16_1 = if _clk_4_0 then
552
		q_filter_1
553
	    else (0.0 -> (pre (RateTransition16_1)));
554
	RateTransition17_1 = if _clk_4_0 then
555
		Vz_filter__1
556
	    else (0.0 -> (pre (RateTransition17_1)));
557
	RateTransition5_1 = if _clk_4_0 then
558
		( h_filter__630_161(Sampler_1, __time_step, __nb_step, _clk_4_0) )
559
	    else (10000.0 -> (pre (RateTransition5_1)));
560
	RateTransition6_1 = if _clk_4_0 then
561
		( AltitudeHold_6_000(RateTransition7_1, RateTransition5_1, __time_step, __nb_step) )
562
	    else (0.0 -> (pre (RateTransition6_1)));
563
	RateTransition7_1 = if _clk_4_0 then
564
		h_c_1
565
	    else (0.0 -> (pre (RateTransition7_1)));
566
	RateTransition9_1 = if _clk_4_0 then
567
		Vz_filter__1
568
	    else (0.0 -> (pre (RateTransition9_1)));
569
	Sampler_1 = if _clk_4_0 then
570
		FlightDynamics_5
571
	    else (10000.0 -> (pre (Sampler_1)));
572
	Sampler1_1 = if _clk_2_0 then
573
		FlightDynamics_3
574
	    else (0.0 -> (pre (Sampler1_1)));
575
	Sampler2_1 = if _clk_2_0 then
576
		FlightDynamics_2
577
	    else (0.0 -> (pre (Sampler2_1)));
578
	Sampler3_1 = if _clk_2_0 then
579
		FlightDynamics_1
580
	    else (230.0 -> (pre (Sampler3_1)));
581
	Sampler4_1 = if _clk_2_0 then
582
		FlightDynamics_4
583
	    else (0.0 -> (pre (Sampler4_1)));
584
	Vz_filter__1 = Vz_filter__507_001(Sampler4_1, __time_step, __nb_step, _clk_2_0);
585
	q_filter_1 = q_filter_665_161(Sampler1_1, __time_step, __nb_step, _clk_2_0);
586
	Va_1 = FlightDynamics_1;
587
	h_1 = FlightDynamics_5;
588
	__time_step = (0.0 -> ((pre (__time_step)) + 0.0050));
589
	__nb_step = (0 -> ((pre (__nb_step)) + 1));
590
	_clk_2_0 = _make_clock(2, 0);
591
	_clk_4_0 = _make_clock(4, 0);
592
tel
593