-- This file has been generated by MATLAB Sim2PreludeLustre #open #open "fullrosace" const Ts_h = 0.0200000000; const Ts_K1 = 0.0200000000; const Ts_K2 = 0.0200000000; const Ts_f_Va = 0.0100000000; const Ts_f_az = 0.0100000000; const Ts_f_q = 0.0100000000; const Ts_f_Vz = 0.0100000000; const Ts_f_h = 0.0200000000; const dt = 0.0050000000; const dt_de = 0.0050000000; const dt_dx = 0.0050000000; const rho0 = 1.2250000000; const g0 = 9.8066500000; const T0_0 = 288.1500000000; const T0_h = -0.0065000000; const Rs = 287.0500000000; const mass = 57837.5000000000; const I_y = 3781272.0000000000; const S = 122.6000000000; const cbar = 4.2900000000; const CD_0 = 0.0160000000; const CD_alpha = 2.5000000000; const CD_deltae = 0.0500000000; const CL_alpha = 5.5000000000; const CL_deltae = 0.1930000000; const alpha_0 = -0.0500000000; const Cm_0 = 0.0400000000; const Cm_alpha = -0.8300000000; const Cm_deltae = -1.5000000000; const Cm_q = -30.0000000000; const h_eq = 10000.0000000000; const Va_eq = 230.0000000000; const delta_x_eq = 1.5868660795; const delta_e_eq = 0.0120096157; const alpha_eq = 0.0264858477; const theta_eq = 0.0264858477; const Kp_h = 0.1014048000; const Ki_h = 0.0048288000; const Vz_c = -2.5000000000; const h_switch = 50.0000000000; const K1_intVa = 0.0498026107; const K1_Va = -0.4868130844; const K1_Vz = -0.0776030955; const K1_q = 21.6923833763; const K2_intVz = 0.0006273428; const K2_Vz = -0.0032528367; const K2_q = 0.3760714469; const K2_az = -0.0015669074; const T_final = 600.0000000000; const h_c = 10000.0000000000; const Va_c = 230.0000000000; node q_filter_Discrete_State_Space (in1_1 :real) returns (y1_1Discrete_State_Space :real) var x1 ,x2 :real; let x1 = 0.0000000000 -> ((-0.7660001018*pre x2) + (0.0148576490*pre in1_1)); x2 = 0.0000000000 -> ((pre x1+1.7349032059*pre x2) + (0.0162392470*pre in1_1)); y1_1Discrete_State_Space = x2 ; tel node fullrosace_q_filter (y1_1q : real) returns ( y1_1q_filter : real) var y1_1Discrete_State_Space :real; let y1_1q_filter = y1_1Discrete_State_Space ; (y1_1Discrete_State_Space) = ((*!/inlining/: true; *) q_filter_Discrete_State_Space( y1_1q) ) ; tel node h_filter_Discrete_State_Space (in1_1 :real) returns (y1_1Discrete_State_Space :real) var x1 ,x2 :real; let x1 = -5371.5934770219 -> ((-0.5867561560*pre x2) + (0.0495968083*pre in1_1)); x2 = 10000.0000000000 -> ((pre x1+1.4778889301*pre x2) + (0.0592704176*pre in1_1)); y1_1Discrete_State_Space = x2 ; tel node fullrosace_h_filter (y1_1h : real) returns ( y1_1h_filter : real) var y1_1Discrete_State_Space :real; let y1_1h_filter = y1_1Discrete_State_Space ; (y1_1Discrete_State_Space) = ((*!/inlining/: true; *) h_filter_Discrete_State_Space( y1_1h) ) ; tel node az_filter_Discrete_State_Space (in1_1 :real) returns (y1_1Discrete_State_Space :real) var x1 ,x2 :real; let x1 = 0.0000000000 -> ((-0.4112407014*pre x2) + (0.1078499792*pre in1_1)); x2 = 0.0000000000 -> ((pre x1+1.1580458998*pre x2) + (0.1453448224*pre in1_1)); y1_1Discrete_State_Space = x2 ; tel node fullrosace_az_filter (y1_1az : real) returns ( y1_1az_filter : real) var y1_1Discrete_State_Space :real; let y1_1az_filter = y1_1Discrete_State_Space ; (y1_1Discrete_State_Space) = ((*!/inlining/: true; *) az_filter_Discrete_State_Space( y1_1az) ) ; tel node Vz_speed_control_Discrete_Time_Integrator (in1_1 :real) returns (y1_1Discrete_Time_Integrator :real) let y1_1Discrete_Time_Integrator = 0.0120096157 -> (0.0200000000*pre in1_1 + pre y1_1Discrete_Time_Integrator) ; tel node Vz_speed_control_Gain (in1_1 :real) returns (y1_1Gain :real) let y1_1Gain = (-0.0032528367*in1_1); tel node Vz_speed_control_Gain1 (in1_1 :real) returns (y1_1Gain1 :real) let y1_1Gain1 = (0.0006273428*in1_1); tel node Vz_speed_control_Gain4 (in1_1 :real) returns (y1_1Gain4 :real) let y1_1Gain4 = (0.3760714469*in1_1); tel node Vz_speed_control_Gain5 (in1_1 :real) returns (y1_1Gain5 :real) let y1_1Gain5 = (-0.0015669074*in1_1); tel node fullrosace_Vz_speed_control (y1_1Vz_c , y1_1Vz_meas , y1_1q_meas , y1_1az_meas : real) returns ( y1_1Vz_speed_control : real) var y1_1Discrete_Time_Integrator :real; y1_1Gain :real; y1_1Gain1 :real; y1_1Gain4 :real; y1_1Gain5 :real; y1_1Sum :real; y1_1Sum4 :real; let (y1_1Discrete_Time_Integrator) = ((*!/inlining/: true; *) Vz_speed_control_Discrete_Time_Integrator( y1_1Gain1) ) ; (y1_1Gain) = Vz_speed_control_Gain( y1_1Vz_meas) ; (y1_1Gain1) = Vz_speed_control_Gain1( y1_1Sum4) ; (y1_1Gain4) = Vz_speed_control_Gain4( y1_1q_meas) ; (y1_1Gain5) = Vz_speed_control_Gain5( y1_1az_meas) ; y1_1Vz_speed_control = y1_1Sum ; y1_1Sum = y1_1Discrete_Time_Integrator + y1_1Gain + y1_1Gain4 + y1_1Gain5 ; y1_1Sum4 = y1_1Vz_c - y1_1Vz_meas ; tel node Vz_filter_Discrete_State_Space (in1_1 :real) returns (y1_1Discrete_State_Space :real) var x1 ,x2 :real; let x1 = 0.0000000000 -> ((-0.9565436755*pre x2) + (0.0004790649*pre in1_1)); x2 = 0.0000000000 -> ((pre x1+1.9555783981*pre x2) + (0.0004862126*pre in1_1)); y1_1Discrete_State_Space = x2 ; tel node fullrosace_Vz_filter (y1_1Vz : real) returns ( y1_1Vz_filter : real) var y1_1Discrete_State_Space :real; let y1_1Vz_filter = y1_1Discrete_State_Space ; (y1_1Discrete_State_Space) = ((*!/inlining/: true; *) Vz_filter_Discrete_State_Space( y1_1Vz) ) ; tel node Va_speed_control_DT_Integrator (in1_1 :real) returns (y1_1DT_Integrator :real) let y1_1DT_Integrator = 1.5868660795 -> (0.0200000000*pre in1_1 + pre y1_1DT_Integrator) ; tel node Va_speed_control_Gain (in1_1 :real) returns (y1_1Gain :real) let y1_1Gain = (-0.4868130844*in1_1); tel node Va_speed_control_Gain1 (in1_1 :real) returns (y1_1Gain1 :real) let y1_1Gain1 = (0.0498026107*in1_1); tel node Va_speed_control_Gain4 (in1_1 :real) returns (y1_1Gain4 :real) let y1_1Gain4 = (21.6923833763*in1_1); tel node Va_speed_control_Gain5 (in1_1 :real) returns (y1_1Gain5 :real) let y1_1Gain5 = (-0.0776030955*in1_1); tel node fullrosace_Va_speed_control (y1_1Va_c , y1_1Va_meas , y1_1q_meas , y1_1Vz_meas : real) returns ( y1_1Va_speed_control : real) var y1_1DT_Integrator :real; y1_1Gain :real; y1_1Gain1 :real; y1_1Gain4 :real; y1_1Gain5 :real; y1_1Sum :real; y1_1Sum1 :real; y1_1Sum4 :real; let (y1_1DT_Integrator) = ((*!/inlining/: true; *) Va_speed_control_DT_Integrator( y1_1Gain1) ) ; (y1_1Gain) = Va_speed_control_Gain( y1_1Sum1) ; (y1_1Gain1) = Va_speed_control_Gain1( y1_1Sum4) ; (y1_1Gain4) = Va_speed_control_Gain4( y1_1q_meas) ; (y1_1Gain5) = Va_speed_control_Gain5( y1_1Vz_meas) ; y1_1Va_speed_control = y1_1Sum ; y1_1Sum = y1_1DT_Integrator + y1_1Gain + y1_1Gain4 + y1_1Gain5 ; y1_1Sum1 = y1_1Va_meas - 230.0000000000 ; y1_1Sum4 = y1_1Va_c - y1_1Va_meas ; tel node Va_filter_Discrete_State_Space (in1_1 :real) returns (y1_1Discrete_State_Space :real) var x1 ,x2 :real; let x1 = -219.8948604405 -> ((-0.9565436755*pre x2) + (0.0004790649*pre in1_1)); x2 = 230.0000000000 -> ((pre x1+1.9555783981*pre x2) + (0.0004862126*pre in1_1)); y1_1Discrete_State_Space = x2 ; tel node fullrosace_Va_filter (y1_1Va : real) returns ( y1_1Va_filter : real) var y1_1Discrete_State_Space :real; let y1_1Va_filter = y1_1Discrete_State_Space ; (y1_1Discrete_State_Space) = ((*!/inlining/: true; *) Va_filter_Discrete_State_Space( y1_1Va) ) ; tel node Aero_forces_moment_Gain1 (in1_1 :real) returns (y1_1Gain1 :real) let y1_1Gain1 = (122.6000000000*in1_1); tel node Aero_forces_moment_Gain7 (in1_1 :real) returns (y1_1Gain7 :real) let y1_1Gain7 = (4.2900000000*in1_1); tel node Aero_forces_moment_Trigo_Function (in1_1 :real) returns (y1_1Trigo_Function :real) let y1_1Trigo_Function=sin(in1_1); tel node Aero_forces_moment_Trigo_Function1 (in1_1 :real) returns (y1_1Trigo_Function1 :real) let y1_1Trigo_Function1=cos(in1_1); tel node Flight_Dynamics_Model_Aero_forces_moment (y1_1alpha , y1_1CD , y1_1CL , y1_1Cm , y1_1qbar : real) returns ( y1_1Aero_forces_moment , y2_1Aero_forces_moment , y3_1Aero_forces_moment : real) var y1_1Gain1 :real; y1_1Gain7 :real; y1_1Product1 :real; y1_1Product2 :real; y1_1Product3 :real; y1_1Product4 :real; y1_1Product5 :real; y1_1Product6 :real; y1_1Product7 :real; y1_1Sum1 :real; y1_1Sum4 :real; y1_1Trigo_Function :real; y1_1Trigo_Function1 :real; let (y1_1Gain1) = Aero_forces_moment_Gain1( y1_1qbar) ; (y1_1Gain7) = Aero_forces_moment_Gain7( y1_1Cm) ; y1_1Product1 = y1_1CD * y1_1Trigo_Function ; y1_1Product2 = y1_1CD * y1_1Trigo_Function1 ; y1_1Product3 = y1_1Trigo_Function1 * y1_1CL ; y1_1Product4 = y1_1Trigo_Function * y1_1CL ; y1_1Aero_forces_moment = y1_1Product5 ; y1_1Product5 = y1_1Sum1 * y1_1Gain1 ; y2_1Aero_forces_moment = y1_1Product6 ; y1_1Product6 = y1_1Sum4 * y1_1Gain1 ; y3_1Aero_forces_moment = y1_1Product7 ; y1_1Product7 = y1_1Gain7 * y1_1Gain1 ; y1_1Sum1 = - y1_1Product2 + y1_1Product4 ; y1_1Sum4 = - y1_1Product1 - y1_1Product3 ; (y1_1Trigo_Function) = Aero_forces_moment_Trigo_Function( y1_1alpha) ; (y1_1Trigo_Function1) = Aero_forces_moment_Trigo_Function1( y1_1alpha) ; tel node Aero_Coefficients_Gain (in1_1 :real) returns (y1_1Gain :real) let y1_1Gain = (0.0500000000*in1_1); tel node Aero_Coefficients_Gain1 (in1_1 :real) returns (y1_1Gain1 :real) let y1_1Gain1 = (2.5000000000*in1_1); tel node Aero_Coefficients_Gain2 (in1_1 :real) returns (y1_1Gain2 :real) let y1_1Gain2 = (0.1930000000*in1_1); tel node Aero_Coefficients_Gain3 (in1_1 :real) returns (y1_1Gain3 :real) let y1_1Gain3 = (5.5000000000*in1_1); tel node Aero_Coefficients_Gain4 (in1_1 :real) returns (y1_1Gain4 :real) let y1_1Gain4 = (-1.5000000000*in1_1); tel node Aero_Coefficients_Gain5 (in1_1 :real) returns (y1_1Gain5 :real) let y1_1Gain5 = (-0.8300000000*in1_1); tel node Aero_Coefficients_Gain6 (in1_1 :real) returns (y1_1Gain6 :real) let y1_1Gain6 = (-30.0000000000*in1_1); tel node Aero_Coefficients_Gain7 (in1_1 :real) returns (y1_1Gain7 :real) let y1_1Gain7 = (2.1450000000*in1_1); tel node Aero_Coefficients_Math_Function (in1_1 :real) returns (y1_1Math_Function :real) let y1_1Math_Function = pow( fabs(in1_1) , 2.0) ; tel node Flight_Dynamics_Model_Aero_Coefficients (y1_1de , y1_1alpha , y1_1q , y1_1V : real) returns ( y1_1Aero_Coefficients , y2_1Aero_Coefficients , y3_1Aero_Coefficients : real) var y1_1Gain :real; y1_1Gain1 :real; y1_1Gain2 :real; y1_1Gain3 :real; y1_1Gain4 :real; y1_1Gain5 :real; y1_1Gain6 :real; y1_1Gain7 :real; y1_1Math_Function :real; y1_1Product :real; y1_1Sum :real; y1_1Sum1 :real; y1_1Sum2 :real; y1_1Sum3 :real; let (y1_1Gain) = Aero_Coefficients_Gain( y1_1de) ; (y1_1Gain1) = Aero_Coefficients_Gain1( y1_1Math_Function) ; (y1_1Gain2) = Aero_Coefficients_Gain2( y1_1de) ; (y1_1Gain3) = Aero_Coefficients_Gain3( y1_1Sum1) ; (y1_1Gain4) = Aero_Coefficients_Gain4( y1_1de) ; (y1_1Gain5) = Aero_Coefficients_Gain5( y1_1alpha) ; (y1_1Gain6) = Aero_Coefficients_Gain6( y1_1Gain7) ; (y1_1Gain7) = Aero_Coefficients_Gain7( y1_1Product) ; (y1_1Math_Function) = Aero_Coefficients_Math_Function( y1_1Sum1) ; y1_1Product = y1_1q / ( y1_1V ) ; y1_1Aero_Coefficients = y1_1Sum ; y1_1Sum = 0.0160000000 + y1_1Gain + y1_1Gain1 ; y1_1Sum1 = y1_1alpha - -0.0500000000 ; y2_1Aero_Coefficients = y1_1Sum2 ; y1_1Sum2 = y1_1Gain2 + y1_1Gain3 ; y3_1Aero_Coefficients = y1_1Sum3 ; y1_1Sum3 = 0.0400000000 + y1_1Gain4 + y1_1Gain5 + y1_1Gain6 ; tel node Flight_Dynamics_Model_Angle_of_attack (in1_1, in1_2, in1_3, in1_4, in1_5, in1_6, in1_7 :real) returns (y1_1Angle_of_attack :real) let y1_1Angle_of_attack = atan(in1_4/in1_3); tel node Flight_Dynamics_Model_Dynamic_pressure (in1_1, in1_2 :real) returns (y1_1Dynamic_pressure :real) let y1_1Dynamic_pressure = 0.5*in1_1*pow(in1_2,2.0000000000); tel node Flight_Dynamics_Model_Elevator_deflection (in1_1, in1_2, in1_3, in1_4, in1_5, in1_6, in1_7 :real) returns (y1_1Elevator_deflection :real) let y1_1Elevator_deflection = in1_2 ; tel node Flight_Dynamics_Model_Mux (in1_1, in2_1, in3_1, in4_1, in5_1 :real) returns (y1_1Mux ,y1_2Mux ,y1_3Mux ,y1_4Mux ,y1_5Mux :real) let y1_1Mux = in1_1 ; y1_2Mux = in2_1 ; y1_3Mux = in3_1 ; y1_4Mux = in4_1 ; y1_5Mux = in5_1 ; tel node Flight_Dynamics_Model_Mux1 (in1_1, in2_1 :real) returns (y1_1Mux1 ,y1_2Mux1 :real) let y1_1Mux1 = in1_1 ; y1_2Mux1 = in2_1 ; tel node Flight_Dynamics_Model_Mux2 (in1_1, in2_1, in3_1 :real) returns (y1_1Mux2 ,y1_2Mux2 ,y1_3Mux2 :real) let y1_1Mux2 = in1_1 ; y1_2Mux2 = in2_1 ; y1_3Mux2 = in3_1 ; tel node Flight_Dynamics_Model_Mux3 (in1_1, in1_2, in1_3, in1_4, in1_5, in1_6, in1_7, in2_1, in2_2, in2_3 :real) returns (y1_1Mux3 ,y1_2Mux3 ,y1_3Mux3 ,y1_4Mux3 ,y1_5Mux3 ,y1_6Mux3 ,y1_7Mux3 ,y1_8Mux3 ,y1_9Mux3 ,y1_10Mux3 :real) let y1_1Mux3 = in1_1 ; y1_2Mux3 = in1_2 ; y1_3Mux3 = in1_3 ; y1_4Mux3 = in1_4 ; y1_5Mux3 = in1_5 ; y1_6Mux3 = in1_6 ; y1_7Mux3 = in1_7 ; y1_8Mux3 = in2_1 ; y1_9Mux3 = in2_2 ; y1_10Mux3 = in2_3 ; tel node Flight_Dynamics_Model_V_Airspeed (in1_1, in1_2, in1_3, in1_4, in1_5, in1_6, in1_7 :real) returns (y1_1V_Airspeed :real) let y1_1V_Airspeed = sqrt(pow(in1_3,2.0000000000)+pow(in1_4,2.0000000000)); tel node Flight_Dynamics_Model_hdot (in1_1, in1_2, in1_3, in1_4, in1_5, in1_6, in1_7, in1_8, in1_9, in1_10 :real) returns (y1_1hdot :real) let y1_1hdot = in1_3*sin(in1_6)-in1_4*cos(in1_6); tel node Flight_Dynamics_Model_q_Pitch_rate (in1_1, in1_2, in1_3, in1_4, in1_5, in1_6, in1_7 :real) returns (y1_1q_Pitch_rate :real) let y1_1q_Pitch_rate = in1_5 ; tel node Flight_Dynamics_Model_qdot (in1_1, in1_2, in1_3, in1_4, in1_5, in1_6, in1_7, in1_8, in1_9, in1_10 :real) returns (y1_1qdot :real) let y1_1qdot = 1.0000000000/I_y*in1_10; tel node Flight_Dynamics_Model_rho_Air_density (in1_1, in1_2, in1_3, in1_4, in1_5, in1_6, in1_7 :real) returns (y1_1rho_Air_density :real) let y1_1rho_Air_density = rho0*pow(1.0000000000+T0_h/T0_0*in1_7,-g0/(Rs*T0_h)-1.0000000000); tel node Flight_Dynamics_Model_thetadot (in1_1, in1_2, in1_3, in1_4, in1_5, in1_6, in1_7, in1_8, in1_9, in1_10 :real) returns (y1_1thetadot :real) let y1_1thetadot = in1_5; tel node Flight_Dynamics_Model_udot (in1_1, in1_2, in1_3, in1_4, in1_5, in1_6, in1_7, in1_8, in1_9, in1_10 :real) returns (y1_1udot :real) let y1_1udot = -g0*sin(in1_6)-in1_5*in1_4+1.0000000000/mass*(in1_1+in1_8); tel node Flight_Dynamics_Model_wdot (in1_1, in1_2, in1_3, in1_4, in1_5, in1_6, in1_7, in1_8, in1_9, in1_10 :real) returns (y1_1wdot :real) let y1_1wdot = g0*cos(in1_6)+in1_5*in1_3+1.0000000000/mass*in1_9; tel node FlightDynamics_Flight_Dynamics_Model (y1_1x , y1_2x , y1_3x , y1_4x , y1_5x , y1_6x , y1_7x : real) returns ( y1_1Flight_Dynamics_Model , y2_1Flight_Dynamics_Model , y2_2Flight_Dynamics_Model , y2_3Flight_Dynamics_Model , y2_4Flight_Dynamics_Model , y2_5Flight_Dynamics_Model : real) var y1_1Aero_Coefficients ,y2_1Aero_Coefficients ,y3_1Aero_Coefficients :real; y1_1Aero_forces_moment ,y2_1Aero_forces_moment ,y3_1Aero_forces_moment :real; y1_1Angle_of_attack :real; y1_1Dynamic_pressure :real; y1_1Elevator_deflection :real; y1_1Mux ,y1_2Mux ,y1_3Mux ,y1_4Mux ,y1_5Mux :real; y1_1Mux1 ,y1_2Mux1 :real; y1_1Mux2 ,y1_2Mux2 ,y1_3Mux2 :real; y1_1Mux3 ,y1_2Mux3 ,y1_3Mux3 ,y1_4Mux3 ,y1_5Mux3 ,y1_6Mux3 ,y1_7Mux3 ,y1_8Mux3 ,y1_9Mux3 ,y1_10Mux3 :real; y1_1V_Airspeed :real; y1_1hdot :real; y1_1q_Pitch_rate :real; y1_1qdot :real; y1_1rho_Air_density :real; y1_1thetadot :real; y1_1udot :real; y1_1wdot :real; let (y1_1Aero_Coefficients ,y2_1Aero_Coefficients ,y3_1Aero_Coefficients) = Flight_Dynamics_Model_Aero_Coefficients( y1_1Elevator_deflection , y1_1Angle_of_attack , y1_1q_Pitch_rate , y1_1V_Airspeed) ; y1_1Flight_Dynamics_Model = y2_1Aero_forces_moment ; (y1_1Aero_forces_moment ,y2_1Aero_forces_moment ,y3_1Aero_forces_moment) = Flight_Dynamics_Model_Aero_forces_moment( y1_1Angle_of_attack , y1_1Aero_Coefficients , y2_1Aero_Coefficients , y3_1Aero_Coefficients , y1_1Dynamic_pressure) ; (y1_1Angle_of_attack) = Flight_Dynamics_Model_Angle_of_attack( y1_1x, y1_2x, y1_3x, y1_4x, y1_5x, y1_6x, y1_7x) ; (y1_1Dynamic_pressure) = Flight_Dynamics_Model_Dynamic_pressure( y1_1Mux1, y1_2Mux1) ; (y1_1Elevator_deflection) = Flight_Dynamics_Model_Elevator_deflection( y1_1x, y1_2x, y1_3x, y1_4x, y1_5x, y1_6x, y1_7x) ; y2_1Flight_Dynamics_Model = y1_1Mux ; y2_2Flight_Dynamics_Model = y1_2Mux ; y2_3Flight_Dynamics_Model = y1_3Mux ; y2_4Flight_Dynamics_Model = y1_4Mux ; y2_5Flight_Dynamics_Model = y1_5Mux ; (y1_1Mux ,y1_2Mux ,y1_3Mux ,y1_4Mux ,y1_5Mux) = Flight_Dynamics_Model_Mux( y1_1udot , y1_1wdot , y1_1qdot , y1_1thetadot , y1_1hdot) ; (y1_1Mux1 ,y1_2Mux1) = Flight_Dynamics_Model_Mux1( y1_1rho_Air_density , y1_1V_Airspeed) ; (y1_1Mux2 ,y1_2Mux2 ,y1_3Mux2) = Flight_Dynamics_Model_Mux2( y1_1Aero_forces_moment , y2_1Aero_forces_moment , y3_1Aero_forces_moment) ; (y1_1Mux3 ,y1_2Mux3 ,y1_3Mux3 ,y1_4Mux3 ,y1_5Mux3 ,y1_6Mux3 ,y1_7Mux3 ,y1_8Mux3 ,y1_9Mux3 ,y1_10Mux3) = Flight_Dynamics_Model_Mux3( y1_1x, y1_2x, y1_3x, y1_4x, y1_5x, y1_6x, y1_7x , y1_1Mux2, y1_2Mux2, y1_3Mux2) ; (y1_1V_Airspeed) = Flight_Dynamics_Model_V_Airspeed( y1_1x, y1_2x, y1_3x, y1_4x, y1_5x, y1_6x, y1_7x) ; (y1_1hdot) = Flight_Dynamics_Model_hdot( y1_1Mux3, y1_2Mux3, y1_3Mux3, y1_4Mux3, y1_5Mux3, y1_6Mux3, y1_7Mux3, y1_8Mux3, y1_9Mux3, y1_10Mux3) ; (y1_1q_Pitch_rate) = Flight_Dynamics_Model_q_Pitch_rate( y1_1x, y1_2x, y1_3x, y1_4x, y1_5x, y1_6x, y1_7x) ; (y1_1qdot) = Flight_Dynamics_Model_qdot( y1_1Mux3, y1_2Mux3, y1_3Mux3, y1_4Mux3, y1_5Mux3, y1_6Mux3, y1_7Mux3, y1_8Mux3, y1_9Mux3, y1_10Mux3) ; (y1_1rho_Air_density) = Flight_Dynamics_Model_rho_Air_density( y1_1x, y1_2x, y1_3x, y1_4x, y1_5x, y1_6x, y1_7x) ; (y1_1thetadot) = Flight_Dynamics_Model_thetadot( y1_1Mux3, y1_2Mux3, y1_3Mux3, y1_4Mux3, y1_5Mux3, y1_6Mux3, y1_7Mux3, y1_8Mux3, y1_9Mux3, y1_10Mux3) ; (y1_1udot) = Flight_Dynamics_Model_udot( y1_1Mux3, y1_2Mux3, y1_3Mux3, y1_4Mux3, y1_5Mux3, y1_6Mux3, y1_7Mux3, y1_8Mux3, y1_9Mux3, y1_10Mux3) ; (y1_1wdot) = Flight_Dynamics_Model_wdot( y1_1Mux3, y1_2Mux3, y1_3Mux3, y1_4Mux3, y1_5Mux3, y1_6Mux3, y1_7Mux3, y1_8Mux3, y1_9Mux3, y1_10Mux3) ; tel node FlightDynamics_Airspeed_Va (in1_1, in1_2, in1_3, in1_4, in1_5, in1_6 :real) returns (y1_1Airspeed_Va :real) let y1_1Airspeed_Va = sqrt(pow(in1_1,2.0000000000)+pow(in1_2,2.0000000000)); tel node FlightDynamics_Altitude_h (in1_1, in1_2, in1_3, in1_4, in1_5, in1_6 :real) returns (y1_1Altitude_h :real) let y1_1Altitude_h = in1_5; tel node FlightDynamics_DTIntegrator3 (in1_1, in1_2, in1_3, in1_4, in1_5 :real) returns (y1_1DTIntegrator3 ,y1_2DTIntegrator3 ,y1_3DTIntegrator3 ,y1_4DTIntegrator3 ,y1_5DTIntegrator3 :real) let y1_1DTIntegrator3 = 229.9193322012 -> (0.0050000000*pre in1_1 + pre y1_1DTIntegrator3) ; y1_2DTIntegrator3 = 6.0910327651 -> (0.0050000000*pre in1_2 + pre y1_2DTIntegrator3) ; y1_3DTIntegrator3 = 0.0000000000 -> (0.0050000000*pre in1_3 + pre y1_3DTIntegrator3) ; y1_4DTIntegrator3 = 0.0264858477 -> (0.0050000000*pre in1_4 + pre y1_4DTIntegrator3) ; y1_5DTIntegrator3 = 10000.0000000000 -> (0.0050000000*pre in1_5 + pre y1_5DTIntegrator3) ; tel node FlightDynamics_Mux (in1_1, in2_1, in3_1, in3_2, in3_3, in3_4, in3_5 :real) returns (y1_1Mux ,y1_2Mux ,y1_3Mux ,y1_4Mux ,y1_5Mux ,y1_6Mux ,y1_7Mux :real) let y1_1Mux = in1_1 ; y1_2Mux = in2_1 ; y1_3Mux = in3_1 ; y1_4Mux = in3_2 ; y1_5Mux = in3_3 ; y1_6Mux = in3_4 ; y1_7Mux = in3_5 ; tel node FlightDynamics_Mux1 (in1_1, in1_2, in1_3, in1_4, in1_5, in2_1 :real) returns (y1_1Mux1 ,y1_2Mux1 ,y1_3Mux1 ,y1_4Mux1 ,y1_5Mux1 ,y1_6Mux1 :real) let y1_1Mux1 = in1_1 ; y1_2Mux1 = in1_2 ; y1_3Mux1 = in1_3 ; y1_4Mux1 = in1_4 ; y1_5Mux1 = in1_5 ; y1_6Mux1 = in2_1 ; tel node FlightDynamics_Norm_Acc_az (in1_1, in1_2, in1_3, in1_4, in1_5, in1_6 :real) returns (y1_1Norm_Acc_az :real) let y1_1Norm_Acc_az = g0*cos(in1_4)+1.0000000000/mass*in1_6; tel node FlightDynamics_Pitch_Rate_q (in1_1, in1_2, in1_3, in1_4, in1_5, in1_6 :real) returns (y1_1Pitch_Rate_q :real) let y1_1Pitch_Rate_q = in1_3; tel node FlightDynamics_Vert_Speed_Vz (in1_1, in1_2, in1_3, in1_4, in1_5, in1_6 :real) returns (y1_1Vert_Speed_Vz :real) let y1_1Vert_Speed_Vz = in1_2*cos(in1_4)-in1_1*sin(in1_4); tel node fullrosace_FlightDynamics (y1_1T , y1_1delta_e : real) returns ( y1_1FlightDynamics , y2_1FlightDynamics , y3_1FlightDynamics , y4_1FlightDynamics , y5_1FlightDynamics : real) var y1_1Airspeed_Va :real; y1_1Altitude_h :real; y1_1DTIntegrator3 ,y1_2DTIntegrator3 ,y1_3DTIntegrator3 ,y1_4DTIntegrator3 ,y1_5DTIntegrator3 :real; y1_1Flight_Dynamics_Model ,y2_1Flight_Dynamics_Model ,y2_2Flight_Dynamics_Model ,y2_3Flight_Dynamics_Model ,y2_4Flight_Dynamics_Model ,y2_5Flight_Dynamics_Model :real; y1_1Mux ,y1_2Mux ,y1_3Mux ,y1_4Mux ,y1_5Mux ,y1_6Mux ,y1_7Mux :real; y1_1Mux1 ,y1_2Mux1 ,y1_3Mux1 ,y1_4Mux1 ,y1_5Mux1 ,y1_6Mux1 :real; y1_1Norm_Acc_az :real; y1_1Pitch_Rate_q :real; y1_1Vert_Speed_Vz :real; let y1_1FlightDynamics = y1_1Airspeed_Va ; (y1_1Airspeed_Va) = FlightDynamics_Airspeed_Va( y1_1Mux1, y1_2Mux1, y1_3Mux1, y1_4Mux1, y1_5Mux1, y1_6Mux1) ; y5_1FlightDynamics = y1_1Altitude_h ; (y1_1Altitude_h) = FlightDynamics_Altitude_h( y1_1Mux1, y1_2Mux1, y1_3Mux1, y1_4Mux1, y1_5Mux1, y1_6Mux1) ; (y1_1DTIntegrator3 ,y1_2DTIntegrator3 ,y1_3DTIntegrator3 ,y1_4DTIntegrator3 ,y1_5DTIntegrator3) = ((*!/inlining/: true; *) FlightDynamics_DTIntegrator3( y2_1Flight_Dynamics_Model, y2_2Flight_Dynamics_Model, y2_3Flight_Dynamics_Model, y2_4Flight_Dynamics_Model, y2_5Flight_Dynamics_Model) ) ; (y1_1Flight_Dynamics_Model ,y2_1Flight_Dynamics_Model ,y2_2Flight_Dynamics_Model ,y2_3Flight_Dynamics_Model ,y2_4Flight_Dynamics_Model ,y2_5Flight_Dynamics_Model) = FlightDynamics_Flight_Dynamics_Model( y1_1Mux, y1_2Mux, y1_3Mux, y1_4Mux, y1_5Mux, y1_6Mux, y1_7Mux) ; (y1_1Mux ,y1_2Mux ,y1_3Mux ,y1_4Mux ,y1_5Mux ,y1_6Mux ,y1_7Mux) = FlightDynamics_Mux( y1_1T , y1_1delta_e , y1_1DTIntegrator3, y1_2DTIntegrator3, y1_3DTIntegrator3, y1_4DTIntegrator3, y1_5DTIntegrator3) ; (y1_1Mux1 ,y1_2Mux1 ,y1_3Mux1 ,y1_4Mux1 ,y1_5Mux1 ,y1_6Mux1) = FlightDynamics_Mux1( y1_1DTIntegrator3, y1_2DTIntegrator3, y1_3DTIntegrator3, y1_4DTIntegrator3, y1_5DTIntegrator3 , y1_1Flight_Dynamics_Model) ; y2_1FlightDynamics = y1_1Norm_Acc_az ; (y1_1Norm_Acc_az) = FlightDynamics_Norm_Acc_az( y1_1Mux1, y1_2Mux1, y1_3Mux1, y1_4Mux1, y1_5Mux1, y1_6Mux1) ; y3_1FlightDynamics = y1_1Pitch_Rate_q ; (y1_1Pitch_Rate_q) = FlightDynamics_Pitch_Rate_q( y1_1Mux1, y1_2Mux1, y1_3Mux1, y1_4Mux1, y1_5Mux1, y1_6Mux1) ; y4_1FlightDynamics = y1_1Vert_Speed_Vz ; (y1_1Vert_Speed_Vz) = FlightDynamics_Vert_Speed_Vz( y1_1Mux1, y1_2Mux1, y1_3Mux1, y1_4Mux1, y1_5Mux1, y1_6Mux1) ; tel node Engine_DTIntegrator2 (in1_1 :real) returns (y1_1DTIntegrator2 :real) let y1_1DTIntegrator2 = 1.5868660795 -> (0.0050000000*pre in1_1 + pre y1_1DTIntegrator2) ; tel node Engine_Gain (in1_1 :real) returns (y1_1Gain :real) let y1_1Gain = 0.0000000000; tel node Engine_Gain1 (in1_1 :real) returns (y1_1Gain1 :real) let y1_1Gain1 = (0.7500000000*in1_1); tel node Engine_Gain2 (in1_1 :real) returns (y1_1Gain2 :real) let y1_1Gain2 = (-0.7500000000*in1_1); tel node Engine_Gain3 (in1_1 :real) returns (y1_1Gain3 :real) let y1_1Gain3 = (26350.0000000000*in1_1); tel node fullrosace_Engine (y1_1delta_x_c : real) returns ( y1_1Engine : real) var y1_1DTIntegrator2 :real; y1_1Gain :real; y1_1Gain1 :real; y1_1Gain2 :real; y1_1Gain3 :real; y1_1Sum :real; y1_1Sum1 :real; let (y1_1DTIntegrator2) = ((*!/inlining/: true; *) Engine_DTIntegrator2( y1_1Sum) ) ; (y1_1Gain) = Engine_Gain( y1_1delta_x_c) ; (y1_1Gain1) = Engine_Gain1( y1_1delta_x_c) ; (y1_1Gain2) = Engine_Gain2( y1_1DTIntegrator2) ; (y1_1Gain3) = Engine_Gain3( y1_1DTIntegrator2) ; y1_1Sum = y1_1Gain1 + y1_1Gain2 ; y1_1Engine = y1_1Sum1 ; y1_1Sum1 = y1_1Gain + y1_1Gain3 ; tel node Elevator_DT_Integrator (in1_1, in1_2 :real) returns (y1_1DT_Integrator ,y1_2DT_Integrator :real) let y1_1DT_Integrator = 0.0120096157 -> (0.0050000000*pre in1_1 + pre y1_1DT_Integrator) ; y1_2DT_Integrator = 0.0000000000 -> (0.0050000000*pre in1_2 + pre y1_2DT_Integrator) ; tel node Elevator_Gain (in1_1 :real) returns (y1_1Gain :real) let y1_1Gain = 0.0000000000; tel node Elevator_Gain1 (in1_1 :real) returns (y1_1Gain1 ,y1_2Gain1 :real) let y1_1Gain1 = 0.0000000000; y1_2Gain1 = (625.0000000000*in1_1); tel node Elevator_Gain2 (in1_1, in1_2 :real) returns (y1_1Gain2 ,y1_2Gain2 :real) let y1_1Gain2 = (in1_2); y1_2Gain2 = (-625.0000000000*in1_1-42.5000000000*in1_2); tel node Elevator_Gain3 (in1_1, in1_2 :real) returns (y1_1Gain3 :real) let y1_1Gain3 = (in1_1); tel node fullrosace_Elevator (y1_1delta_e_c : real) returns ( y1_1Elevator : real) var y1_1DT_Integrator ,y1_2DT_Integrator :real; y1_1Gain :real; y1_1Gain1 ,y1_2Gain1 :real; y1_1Gain2 ,y1_2Gain2 :real; y1_1Gain3 :real; y1_1Sum ,y1_2Sum :real; y1_1Sum1 :real; let (y1_1DT_Integrator ,y1_2DT_Integrator) = ((*!/inlining/: true; *) Elevator_DT_Integrator( y1_1Sum, y1_2Sum) ) ; (y1_1Gain) = Elevator_Gain( y1_1delta_e_c) ; (y1_1Gain1 ,y1_2Gain1) = Elevator_Gain1( y1_1delta_e_c) ; (y1_1Gain2 ,y1_2Gain2) = Elevator_Gain2( y1_1DT_Integrator, y1_2DT_Integrator) ; (y1_1Gain3) = Elevator_Gain3( y1_1DT_Integrator, y1_2DT_Integrator) ; y1_1Sum = y1_1Gain1 + y1_1Gain2 ; y1_2Sum = y1_2Gain1 + y1_2Gain2 ; y1_1Elevator = y1_1Sum1 ; y1_1Sum1 = y1_1Gain + y1_1Gain3 ; tel node AltitudeHold_Descent_command (i_virtual : real) returns ( y1_1Descent_command : real) let y1_1Descent_command = 2.500000; tel node AltitudeHold_Climb_command (i_virtual : real) returns ( y1_1Climb_command : real) let y1_1Climb_command = -2.500000; tel node AltitudeCaptureHold_CI_AltHold (in1_1, in1_2 :real) returns (y1_1CI_AltHold :real) let y1_1CI_AltHold = in1_2 - in1_1*Kp_h; tel node AltitudeCaptureHold_DT_Integrator1 (in1_1, y1_1Mux, y1_2Mux :real) returns (y1_1DT_Integrator1 :real) let y1_1DT_Integrator1 = AltitudeCaptureHold_CI_AltHold( y1_1Mux, y1_2Mux) -> (0.0200000000*pre in1_1 + pre y1_1DT_Integrator1) ; tel node AltitudeCaptureHold_Gain (in1_1 :real) returns (y1_1Gain :real) let y1_1Gain = (0.0048288000*in1_1); tel node AltitudeCaptureHold_Gain2 (in1_1 :real) returns (y1_1Gain2 :real) let y1_1Gain2 = (0.1014048000*in1_1); tel node AltitudeCaptureHold_Mux (in1_1, in2_1 :real) returns (y1_1Mux ,y1_2Mux :real) let y1_1Mux = in1_1 ; y1_2Mux = in2_1 ; tel node AltitudeHold_AltitudeCaptureHold (y1_1h_meas , y1_1h_c , y1_1Vz_c : real) returns ( y1_1AltitudeCaptureHold : real) var y1_1CI_AltHold :real; y1_1DT_Integrator1 :real; y1_1Gain :real; y1_1Gain2 :real; y1_1Mux ,y1_2Mux :real; y1_1Sum :real; y1_1Sum1 :real; let (y1_1CI_AltHold) = AltitudeCaptureHold_CI_AltHold( y1_1Mux, y1_2Mux) ; (y1_1DT_Integrator1) = ((*!/inlining/: true; *) AltitudeCaptureHold_DT_Integrator1( y1_1Gain, y1_1Mux, y1_2Mux) ) ; (y1_1Gain) = AltitudeCaptureHold_Gain( y1_1Sum1) ; (y1_1Gain2) = AltitudeCaptureHold_Gain2( y1_1Sum1) ; (y1_1Mux ,y1_2Mux) = AltitudeCaptureHold_Mux( y1_1Sum1 , y1_1Vz_c) ; y1_1AltitudeCaptureHold = y1_1Sum ; y1_1Sum = y1_1Gain2 + y1_1DT_Integrator1 ; y1_1Sum1 = y1_1h_meas - y1_1h_c ; tel node AltitudeHold_Logic_SpeedCommand (y1_1Sum3, y1_1hmeas, y1_1hc, y1_1Memory :real) returns (y1_1Climb_command :real) let y1_1Climb_command = if y1_1Sum3 > h_switch then AltitudeHold_Climb_command(0.0) else if y1_1Sum3 < -h_switch then AltitudeHold_Descent_command(0.0) else AltitudeHold_AltitudeCaptureHold(y1_1hmeas , y1_1hc , y1_1Memory); tel node AltitudeHold_Memory (in1_1 :real) returns (y1_1Memory :real) let y1_1Memory = 0.0000000000 -> pre in1_1 ; tel node AltitudeHold_Merge (in1_1 :real) returns (y1_1Merge :real) let y1_1Merge = in1_1 ; tel node fullrosace_AltitudeHold (y1_1hc , y1_1hmeas : real) returns ( y1_1AltitudeHold : real) var y1_1Logic_SpeedCommand :real; y1_1Memory :real; y1_1Merge :real; y1_1Sum3 :real; let (y1_1Logic_SpeedCommand) = AltitudeHold_Logic_SpeedCommand(y1_1Sum3 ,y1_1hmeas ,y1_1hc ,y1_1Memory) ; (y1_1Memory) = ((*!/inlining/: true; *) AltitudeHold_Memory( y1_1Merge) ) ; y1_1AltitudeHold = y1_1Merge ; (y1_1Merge) = AltitudeHold_Merge( y1_1Logic_SpeedCommand) ; y1_1Sum3 = y1_1hc - y1_1hmeas ; tel