update gencode based on fd47416

This commit is contained in:
Matthew GONG
2022-01-11 21:22:46 +08:00
parent 00928750e0
commit c76dd4e64d
10 changed files with 189 additions and 257 deletions
+176 -149
View File
@@ -5,7 +5,7 @@
*
* Model version : 1.1309
* Simulink Coder version : 9.0 (R2018b) 24-May-2018
* C/C++ source code generated on : Tue Jan 11 14:52:20 2022
* C/C++ source code generated on : Tue Jan 11 21:07:27 2022
*
* Target selection: ert_shrlib.tlc
* Embedded hardware selection: Intel->x86-64 (Windows64)
@@ -126,15 +126,16 @@
#define ET39_SIL_IN_Hovering_m ((uint8_T)6U)
#define ET39_SIL_IN_Landed_m ((uint8_T)7U)
#define ET39_SIL_IN_Liftoff ((uint8_T)8U)
#define ET39_SIL_IN_OnRunWay ((uint8_T)9U)
#define ET39_SIL_IN_Prepare ((uint8_T)10U)
#define ET39_SIL_IN_Sink1 ((uint8_T)12U)
#define ET39_SIL_IN_Sink_l ((uint8_T)11U)
#define ET39_SIL_IN_Test_Rot ((uint8_T)13U)
#define ET39_SIL_IN_Trans2FW ((uint8_T)14U)
#define ET39_SIL_IN_Unarmed_g ((uint8_T)15U)
#define ET39_SIL_IN_Wait4Cmd ((uint8_T)16U)
#define ET39_SIL_IN_wait_on_line ((uint8_T)17U)
#define ET39_SIL_IN_Liftoff1 ((uint8_T)9U)
#define ET39_SIL_IN_OnRunWay ((uint8_T)10U)
#define ET39_SIL_IN_Prepare ((uint8_T)11U)
#define ET39_SIL_IN_Sink1 ((uint8_T)13U)
#define ET39_SIL_IN_Sink_l ((uint8_T)12U)
#define ET39_SIL_IN_Test_Rot ((uint8_T)14U)
#define ET39_SIL_IN_Trans2FW ((uint8_T)15U)
#define ET39_SIL_IN_Unarmed_g ((uint8_T)16U)
#define ET39_SIL_IN_Wait4Cmd ((uint8_T)17U)
#define ET39_SIL_IN_wait_on_line ((uint8_T)18U)
/* Named constants for Chart: '<S182>/landing_task' */
#define ET39_SIL_IN_Hover_j ((uint8_T)1U)
@@ -805,6 +806,7 @@ static boolean_T ET39_SIL_sf_msg_pop_set_cur(void);
static void ET39_SIL_sf_msg_discard_set_cur(void);
static void ET39_SIL_sf_msg_send_ack(void);
static void ET39_SIL_FWstage(void);
static void ET39_SIL_Hover(void);
static real32_T ET39_SIL_cal_az(real_T lat0, real_T lon0, real_T lat1, real_T
lon1);
static void ET39_SIL_sf_msg_send_cmd(void);
@@ -814,11 +816,14 @@ static void ET39_SIL_wait_on_line(void);
static void ET39_SIL_Decelerate(void);
static void ET39_SIL_EngineStart(void);
static void ET39_SIL_FW(void);
static void ET39_SIL_Hovering(void);
static void ET39_SIL_Hover1(void);
static void ET39_SIL_Landed(void);
static void ET39_SIL_Liftoff(void);
static void ET39_SIL_Liftoff1(void);
static void ET39_SIL_OnRunWay(void);
static void ET39_SIL_enter_atomic_Prepare(void);
static void ET39_SIL_Unarmed(void);
static void ET39_SIL_Hover_i(void);
static void ET39_SIL_enter_atomic_Trans2MC(void);
static void ET39_SIL_WP(void);
static void ET39_SIL_MC(void);
@@ -7377,6 +7382,20 @@ static void ET39_SIL_FWstage(void)
/* End of Constant: '<S10>/Constant71' */
}
/* Function for Chart: '<S175>/RTL_task' */
static void ET39_SIL_Hover(void)
{
ET39_SIL_B.AFCS_VERT_cq = ENUM_AFCS_VERT_VNAV2HDOT;
if ((ET39_SIL_B.BusAssignment.rc.throttle_cmd < 0.25F) &&
ET39_SIL_B.BusAssignment.landing_cmd) {
ET39_SIL_B.landing_cmd_out_g = false;
ET39_SIL_DW.is_c11_ET39_autopilot = ET39_SIL_IN_Sink;
ET39_SIL_B.AFCS_VERT_cq = ENUM_AFCS_VERT_OFF;
ET39_SIL_B.AG_h = ENUM_AG_HDOT_MC;
ET39_SIL_B.hdot_c_out_p = -0.5F;
}
}
/* Function for Chart: '<S175>/RTL_task' */
static real32_T ET39_SIL_cal_az(real_T lat0, real_T lon0, real_T lat1, real_T
lon1)
@@ -7607,19 +7626,40 @@ static void ET39_SIL_FW(void)
}
/* Function for Chart: '<S188>/takeoff_task' */
static void ET39_SIL_Hovering(void)
static void ET39_SIL_Hover1(void)
{
ET39_SIL_B.engine_mode_j = 0U;
ET39_SIL_B.mode_f = ENUM_mode_AUTO_LAND;
ET39_SIL_B.landed_state_n = ENUM_LANDED_STATE_LANDING;
ET39_SIL_B.AFCS_LAT_a = ENUM_AFCS_LAT_MC_HOLD_POS;
ET39_SIL_B.AFCS_VERT_c = ENUM_AFCS_VERT_VNAV2HDOT;
ET39_SIL_B.use_mission_traj_j = false;
if (ET39_SIL_Y.traj.dist < 5.0F) {
ET39_SIL_DW.is_c27_ET39_autopilot = ET39_SIL_IN_Hover1;
/* Constant: '<S10>/Constant75' */
if (ET39_SIL_Y.traj.rel_alt < ET39_SIL_P.LandHoverAgl + 1.0F) {
ET39_SIL_DW.is_c27_ET39_autopilot = ET39_SIL_IN_Wait4Cmd;
ET39_SIL_B.landing_cmd_out_m = false;
}
/* Constant: '<S10>/Constant75' */
ET39_SIL_B.traj_k.h1 = ET39_SIL_B.home.h1 + ET39_SIL_P.LandHoverAgl;
/* End of Constant: '<S10>/Constant75' */
}
/* Function for Chart: '<S188>/takeoff_task' */
static void ET39_SIL_Landed(void)
{
if (ET39_SIL_DW.temporalCounter_i1_p >= 2000U) {
ET39_SIL_DW.is_c27_ET39_autopilot = ET39_SIL_IN_Unarmed_g;
ET39_SIL_B.landed_state_n = ENUM_LANDED_STATE_ON_GROUND;
ET39_SIL_B.AFCS_LAT_a = ENUM_AFCS_LAT_OFF;
ET39_SIL_B.AFCS_VERT_c = ENUM_AFCS_VERT_OFF;
ET39_SIL_B.CSAS_roll_m = ENUM_CSAS_ROLL_OFF;
ET39_SIL_B.CSAS_pitch_a = ENUM_CSAS_PITCH_OFF;
ET39_SIL_B.CSAS_yaw_j = ENUM_CSAS_YAW_OFF;
ET39_SIL_B.AT_p = ENUM_AT_OFF;
ET39_SIL_B.AG_d = ENUM_AG_OFF;
ET39_SIL_B.armed_out_d = false;
} else {
if ((ET39_SIL_B.BusAssignment_b.rc.throttle_cmd > 0.1F) ||
(ET39_SIL_Y.traj.hdot < -0.1F) || (ET39_SIL_B.BusAssignment_n.satnum < 9))
{
ET39_SIL_DW.is_c27_ET39_autopilot = ET39_SIL_IN_Sink_l;
ET39_SIL_B.AFCS_VERT_c = ENUM_AFCS_VERT_OFF;
ET39_SIL_B.AG_d = ENUM_AG_HDOT_MC;
ET39_SIL_B.hdot_c = -0.5F;
}
}
}
@@ -7627,15 +7667,7 @@ static void ET39_SIL_Hovering(void)
static void ET39_SIL_Liftoff(void)
{
boolean_T guard1 = false;
ET39_SIL_B.mode_f = ENUM_mode_AUTO_TAKEOFF;
ET39_SIL_B.state = ENUM_SystemState_ACTIVE;
ET39_SIL_B.landed_state_n = ENUM_LANDED_STATE_TAKEOFF;
ET39_SIL_B.AFCS_VERT_c = ENUM_AFCS_VERT_VNAV2HDOT;
ET39_SIL_B.AFCS_LAT_a = ENUM_AFCS_LAT_MC_HOLD_POS;
ET39_SIL_B.CSAS_roll_m = ENUM_CSAS_ROLL_ROLL_CTRL;
ET39_SIL_B.CSAS_pitch_a = ENUM_CSAS_PITCH_THT_CTRL;
ET39_SIL_B.CSAS_yaw_j = ENUM_CSAS_YAW_PSIDOT_CTRL;
ET39_SIL_B.use_mission_traj_j = false;
ET39_SIL_B.engine_mode_j = 1U;
/* Constant: '<S10>/Constant10' incorporates:
@@ -7680,6 +7712,45 @@ static void ET39_SIL_Liftoff(void)
/* End of Constant: '<S10>/Constant10' */
}
/* Function for Chart: '<S188>/takeoff_task' */
static void ET39_SIL_Liftoff1(void)
{
ET39_SIL_B.mode_f = ENUM_mode_AUTO_TAKEOFF;
ET39_SIL_B.state = ENUM_SystemState_ACTIVE;
ET39_SIL_B.landed_state_n = ENUM_LANDED_STATE_TAKEOFF;
ET39_SIL_B.AFCS_VERT_c = ENUM_AFCS_VERT_OFF;
ET39_SIL_B.AFCS_LAT_a = ENUM_AFCS_LAT_MC_HOLD_POS;
ET39_SIL_B.CSAS_roll_m = ENUM_CSAS_ROLL_ROLL_CTRL;
ET39_SIL_B.CSAS_pitch_a = ENUM_CSAS_PITCH_THT_CTRL;
ET39_SIL_B.CSAS_yaw_j = ENUM_CSAS_YAW_PSIDOT_CTRL;
ET39_SIL_B.use_mission_traj_j = false;
ET39_SIL_B.engine_mode_j = 0U;
ET39_SIL_B.hdot_c = 0.5F;
if (ET39_SIL_DW.temporalCounter_i1_p >= 600U) {
ET39_SIL_DW.is_c27_ET39_autopilot = ET39_SIL_IN_Liftoff;
ET39_SIL_DW.temporalCounter_i1_p = 0U;
ET39_SIL_B.AFCS_VERT_c = ENUM_AFCS_VERT_VNAV2HDOT;
ET39_SIL_B.engine_mode_j = 1U;
} else {
if (((!ET39_SIL_P.force_sysauto_level) &&
(ET39_SIL_B.BusAssignment_b.rc.throttle_cmd < 0.25F)) ||
(ET39_SIL_B.BusAssignment_n.tht > 0.26178F) ||
(ET39_SIL_B.BusAssignment_n.tht < -0.26178F) ||
(ET39_SIL_B.BusAssignment_n.phi > 0.26178F) ||
(ET39_SIL_B.BusAssignment_n.phi < -0.26178F) ||
ET39_SIL_B.BusAssignment_b.abort_takeoff_cmd) {
ET39_SIL_B.abort_takeoff_cmd_out_h = false;
ET39_SIL_DW.is_c27_ET39_autopilot = ET39_SIL_IN_Sink1;
ET39_SIL_B.engine_mode_j = 0U;
ET39_SIL_B.mode_f = ENUM_mode_AUTO_LAND;
ET39_SIL_B.AFCS_VERT_c = ENUM_AFCS_VERT_OFF;
ET39_SIL_B.landed_state_n = ENUM_LANDED_STATE_LANDING;
ET39_SIL_B.AG_d = ENUM_AG_HDOT_MC;
ET39_SIL_B.hdot_c = -0.3F;
}
}
}
/* Function for Chart: '<S188>/takeoff_task' */
static void ET39_SIL_OnRunWay(void)
{
@@ -7775,6 +7846,20 @@ static void ET39_SIL_Unarmed(void)
ET39_SIL_B.AG = ENUM_AG_OFF;
}
/* Function for Chart: '<S182>/landing_task' */
static void ET39_SIL_Hover_i(void)
{
ET39_SIL_B.AFCS_VERT = ENUM_AFCS_VERT_VNAV2HDOT;
if ((ET39_SIL_B.BusAssignment_b.rc.throttle_cmd < 0.25F) &&
ET39_SIL_B.BusAssignment_b.landing_cmd) {
ET39_SIL_B.landing_cmd_out = false;
ET39_SIL_DW.is_c26_ET39_autopilot = ET39_SIL_IN_Sink_f;
ET39_SIL_B.AFCS_VERT = ENUM_AFCS_VERT_OFF;
ET39_SIL_B.AG = ENUM_AG_HDOT_MC;
ET39_SIL_B.hdot_c_out = -0.5F;
}
}
/* Function for Chart: '<S189>/Chart' */
static void ET39_SIL_enter_atomic_Trans2MC(void)
{
@@ -7935,8 +8020,7 @@ static void ET39_SIL_Trans2FW(void)
boolean_T b_sf_internal_predicateOutput;
switch (ET39_SIL_DW.is_Trans2FW) {
case ET39_SIL_IN_EngineStart_p:
if ((ET39_SIL_DW.temporalCounter_i1_do >= 1600U) &&
(ET39_SIL_B.BusAssignment_n.RPMs[4] > 1000)) {
if (ET39_SIL_DW.temporalCounter_i1_do >= 1600U) {
ET39_SIL_DW.is_Trans2FW = ET39_SIL_IN_EngineStarted;
ET39_SIL_B.engine_mode = 1U;
ET39_SIL_B.abort_takeoff_cmd_out = false;
@@ -7970,25 +8054,24 @@ static void ET39_SIL_Trans2FW(void)
if (b_sf_internal_predicateOutput) {
ET39_SIL_DW.is_Trans2FW = ET39_SIL_IN_wait_on_line_b;
ET39_SIL_DW.temporalCounter_i1_do = 0U;
} else if ((ET39_SIL_B.BusAssignment_b.rc.throttle_cmd < 0.25F) ||
ET39_SIL_B.BusAssignment_b.abort_takeoff_cmd) {
ET39_SIL_B.abort_takeoff_cmd_out = false;
ET39_SIL_DW.is_Trans2FW = 0;
ET39_SIL_DW.is_c19_ET39_autopilot = ET39_SIL_IN_MC;
ET39_SIL_DW.temporalCounter_i1_do = 0U;
ET39_SIL_B.vtol_state_out = ENUM_VTOL_STATE_MC;
ET39_SIL_B.engine_mode = ET39_SIL_B.BusAssignment_b.engine_mode;
ET39_SIL_B.AFCS_VERT_out_m = ENUM_AFCS_VERT_VNAV2HDOT;
ET39_SIL_B.AFCS_LAT_out = ENUM_AFCS_LAT_MC_HOLD_POS_VCTRL;
ET39_SIL_B.CSAS_pitch_out = ENUM_CSAS_PITCH_THT_CTRL;
ET39_SIL_B.CSAS_roll_out = ENUM_CSAS_ROLL_ROLL_CTRL;
ET39_SIL_B.CSAS_yaw_out = ENUM_CSAS_YAW_PSIDOT_CTRL;
ET39_SIL_B.AT_out_m = ENUM_AT_OFF;
ET39_SIL_B.AG_out = ENUM_AG_HDOT_MC;
ET39_SIL_B.gs_c_out = 1.0F;
} else {
if ((ET39_SIL_B.BusAssignment_b.rc.throttle_cmd < 0.25F) ||
ET39_SIL_B.BusAssignment_b.abort_takeoff_cmd ||
(ET39_SIL_B.BusAssignment_n.RPMs[4] < 1000)) {
ET39_SIL_B.abort_takeoff_cmd_out = false;
ET39_SIL_DW.is_Trans2FW = 0;
ET39_SIL_DW.is_c19_ET39_autopilot = ET39_SIL_IN_MC;
ET39_SIL_DW.temporalCounter_i1_do = 0U;
ET39_SIL_B.vtol_state_out = ENUM_VTOL_STATE_MC;
ET39_SIL_B.engine_mode = ET39_SIL_B.BusAssignment_b.engine_mode;
ET39_SIL_B.AFCS_VERT_out_m = ENUM_AFCS_VERT_VNAV2HDOT;
ET39_SIL_B.AFCS_LAT_out = ENUM_AFCS_LAT_MC_HOLD_POS_VCTRL;
ET39_SIL_B.CSAS_pitch_out = ENUM_CSAS_PITCH_THT_CTRL;
ET39_SIL_B.CSAS_roll_out = ENUM_CSAS_ROLL_ROLL_CTRL;
ET39_SIL_B.CSAS_yaw_out = ENUM_CSAS_YAW_PSIDOT_CTRL;
ET39_SIL_B.AT_out_m = ENUM_AT_OFF;
ET39_SIL_B.AG_out = ENUM_AG_HDOT_MC;
ET39_SIL_B.gs_c_out = 1.0F;
}
ET39_SIL_B.engine_mode = ET39_SIL_B.BusAssignment_b.engine_mode;
}
}
break;
@@ -8016,22 +8099,15 @@ static void ET39_SIL_Trans2FW(void)
case ET39_SIL_IN_Idle:
if (ET39_SIL_DW.temporalCounter_i1_do >= 200U) {
if (ET39_SIL_B.BusAssignment_n.RPMs[4] < 1000) {
ET39_SIL_DW.is_Trans2FW = ET39_SIL_IN_EngineStart_p;
ET39_SIL_DW.temporalCounter_i1_do = 0U;
ET39_SIL_B.engine_mode = 2U;
} else {
ET39_SIL_DW.is_Trans2FW = ET39_SIL_IN_EngineStarted;
ET39_SIL_B.engine_mode = 1U;
ET39_SIL_B.abort_takeoff_cmd_out = false;
}
ET39_SIL_DW.is_Trans2FW = ET39_SIL_IN_EngineStart_p;
ET39_SIL_DW.temporalCounter_i1_do = 0U;
ET39_SIL_B.engine_mode = 2U;
}
break;
case ET39_SIL_IN_Trans2FW_gw:
if ((ET39_SIL_B.BusAssignment_b.rc.throttle_cmd < 0.25F) ||
ET39_SIL_B.BusAssignment_b.abort_takeoff_cmd ||
(ET39_SIL_B.BusAssignment_n.RPMs[4] < 1000)) {
ET39_SIL_B.BusAssignment_b.abort_takeoff_cmd) {
ET39_SIL_B.abort_takeoff_cmd_out = false;
ET39_SIL_DW.is_Trans2FW = 0;
ET39_SIL_DW.is_c19_ET39_autopilot = ET39_SIL_IN_MC;
@@ -8058,8 +8134,10 @@ static void ET39_SIL_Trans2FW(void)
ET39_SIL_B.as_c_out = ET39_SIL_P.CruiseSpeed;
ET39_SIL_B.AG_out = ENUM_AG_COMMAND;
ET39_SIL_B.gyro_c_out = ET39_SIL_B.BusAssignment_b.rot_heave;
ET39_SIL_B.engine_mode = 1U;
} else {
ET39_SIL_B.WP_out_h = ET39_SIL_B.BusAssignment_b.WP_cur;
ET39_SIL_B.engine_mode = ET39_SIL_B.BusAssignment_b.engine_mode;
}
break;
@@ -8070,8 +8148,7 @@ static void ET39_SIL_Trans2FW(void)
/* Constant: '<S10>/Constant106' */
ET39_SIL_B.gs_c_out = ET39_SIL_P.TransferSpeed * 2.0F;
} else if ((ET39_SIL_B.BusAssignment_b.rc.throttle_cmd < 0.25F) ||
ET39_SIL_B.BusAssignment_b.abort_takeoff_cmd ||
(ET39_SIL_B.BusAssignment_n.RPMs[4] < 1000)) {
ET39_SIL_B.BusAssignment_b.abort_takeoff_cmd) {
ET39_SIL_B.abort_takeoff_cmd_out = false;
ET39_SIL_DW.is_Trans2FW = 0;
ET39_SIL_DW.is_c19_ET39_autopilot = ET39_SIL_IN_MC;
@@ -8095,6 +8172,8 @@ static void ET39_SIL_Trans2FW(void)
ET39_SIL_DW.is_Trans2FW = ET39_SIL_IN_EngineStarted;
ET39_SIL_B.engine_mode = 1U;
ET39_SIL_B.abort_takeoff_cmd_out = false;
} else {
ET39_SIL_B.engine_mode = ET39_SIL_B.BusAssignment_b.engine_mode;
}
}
break;
@@ -19346,8 +19425,8 @@ void ET39_SIL_step(void)
* ActionPort: '<S83>/Action Port'
*/
/* If: '<S83>/If' */
if ((ET39_SIL_B.params_a[1] > rtb_Merge6) && (ET39_SIL_B.params_a[1]
< rtb_Merge7)) {
if ((ET39_SIL_B.params_a[1] > rtb_Merge7) && (ET39_SIL_B.params_a[1]
< rtb_Merge6)) {
/* Outputs for IfAction SubSystem: '<S83>/Subsystem' incorporates:
* ActionPort: '<S89>/Action Port'
*/
@@ -22197,15 +22276,7 @@ void ET39_SIL_step(void)
break;
case ET39_SIL_IN_Hover:
ET39_SIL_B.AFCS_VERT_cq = ENUM_AFCS_VERT_VNAV2HDOT;
if ((ET39_SIL_B.BusAssignment.rc.throttle_cmd < 0.25F) &&
ET39_SIL_B.BusAssignment.landing_cmd) {
ET39_SIL_B.landing_cmd_out_g = false;
ET39_SIL_DW.is_c11_ET39_autopilot = ET39_SIL_IN_Sink;
ET39_SIL_B.AFCS_VERT_cq = ENUM_AFCS_VERT_OFF;
ET39_SIL_B.AG_h = ENUM_AG_HDOT_MC;
ET39_SIL_B.hdot_c_out_p = -0.5F;
}
ET39_SIL_Hover();
break;
case ET39_SIL_IN_Hovering:
@@ -22663,45 +22734,35 @@ void ET39_SIL_step(void)
break;
case ET39_SIL_IN_Hover1:
if (ET39_SIL_Y.traj.rel_alt < ET39_SIL_P.LandHoverAgl + 1.0F)
{
ET39_SIL_DW.is_c27_ET39_autopilot = ET39_SIL_IN_Wait4Cmd;
ET39_SIL_B.landing_cmd_out_m = false;
}
ET39_SIL_Hover1();
break;
case ET39_SIL_IN_Hovering_m:
ET39_SIL_Hovering();
ET39_SIL_B.engine_mode_j = 0U;
ET39_SIL_B.mode_f = ENUM_mode_AUTO_LAND;
ET39_SIL_B.landed_state_n = ENUM_LANDED_STATE_LANDING;
ET39_SIL_B.AFCS_LAT_a = ENUM_AFCS_LAT_MC_HOLD_POS;
ET39_SIL_B.AFCS_VERT_c = ENUM_AFCS_VERT_VNAV2HDOT;
ET39_SIL_B.use_mission_traj_j = false;
if (ET39_SIL_Y.traj.dist < 5.0F) {
ET39_SIL_DW.is_c27_ET39_autopilot = ET39_SIL_IN_Hover1;
ET39_SIL_B.traj_k.h1 = ET39_SIL_B.home.h1 +
ET39_SIL_P.LandHoverAgl;
}
break;
case ET39_SIL_IN_Landed_m:
if (ET39_SIL_DW.temporalCounter_i1_p >= 2000U) {
ET39_SIL_DW.is_c27_ET39_autopilot = ET39_SIL_IN_Unarmed_g;
ET39_SIL_B.landed_state_n = ENUM_LANDED_STATE_ON_GROUND;
ET39_SIL_B.AFCS_LAT_a = ENUM_AFCS_LAT_OFF;
ET39_SIL_B.AFCS_VERT_c = ENUM_AFCS_VERT_OFF;
ET39_SIL_B.CSAS_roll_m = ENUM_CSAS_ROLL_OFF;
ET39_SIL_B.CSAS_pitch_a = ENUM_CSAS_PITCH_OFF;
ET39_SIL_B.CSAS_yaw_j = ENUM_CSAS_YAW_OFF;
ET39_SIL_B.AT_p = ENUM_AT_OFF;
ET39_SIL_B.AG_d = ENUM_AG_OFF;
ET39_SIL_B.armed_out_d = false;
} else {
if ((ET39_SIL_B.BusAssignment_b.rc.throttle_cmd > 0.1F) ||
(ET39_SIL_Y.traj.hdot < -0.1F) ||
(ET39_SIL_B.BusAssignment_n.satnum < 9)) {
ET39_SIL_DW.is_c27_ET39_autopilot = ET39_SIL_IN_Sink_l;
ET39_SIL_B.AFCS_VERT_c = ENUM_AFCS_VERT_OFF;
ET39_SIL_B.AG_d = ENUM_AG_HDOT_MC;
ET39_SIL_B.hdot_c = -0.5F;
}
}
ET39_SIL_Landed();
break;
case ET39_SIL_IN_Liftoff:
ET39_SIL_Liftoff();
break;
case ET39_SIL_IN_Liftoff1:
ET39_SIL_Liftoff1();
break;
case ET39_SIL_IN_OnRunWay:
ET39_SIL_OnRunWay();
break;
@@ -22775,12 +22836,12 @@ void ET39_SIL_step(void)
ET39_SIL_P.force_sysauto_level) ||
((ET39_SIL_DW.temporalCounter_i1_p >= 600U) &&
ET39_SIL_B.BusAssignment_b.takeoff_cmd)) {
ET39_SIL_DW.is_c27_ET39_autopilot = ET39_SIL_IN_Liftoff;
ET39_SIL_DW.is_c27_ET39_autopilot = ET39_SIL_IN_Liftoff1;
ET39_SIL_DW.temporalCounter_i1_p = 0U;
ET39_SIL_B.mode_f = ENUM_mode_AUTO_TAKEOFF;
ET39_SIL_B.state = ENUM_SystemState_ACTIVE;
ET39_SIL_B.landed_state_n = ENUM_LANDED_STATE_TAKEOFF;
ET39_SIL_B.AFCS_VERT_c = ENUM_AFCS_VERT_VNAV2HDOT;
ET39_SIL_B.AFCS_VERT_c = ENUM_AFCS_VERT_OFF;
ET39_SIL_B.AFCS_LAT_a = ENUM_AFCS_LAT_MC_HOLD_POS;
ET39_SIL_B.CSAS_roll_m = ENUM_CSAS_ROLL_ROLL_CTRL;
ET39_SIL_B.CSAS_pitch_a = ENUM_CSAS_PITCH_THT_CTRL;
@@ -22796,7 +22857,8 @@ void ET39_SIL_step(void)
ET39_SIL_B.abort_takeoff_cmd_out_h = false;
ET39_SIL_B.takeoff_cmd_out = false;
ET39_SIL_DW.tick_abort = 0U;
ET39_SIL_B.engine_mode_j = 1U;
ET39_SIL_B.engine_mode_j = 0U;
ET39_SIL_B.hdot_c = 0.5F;
} else {
if (((!ET39_SIL_P.force_sysauto_level) &&
(ET39_SIL_B.BusAssignment_b.rc.throttle_cmd < 0.5F)) ||
@@ -22996,15 +23058,7 @@ void ET39_SIL_step(void)
} else {
switch (ET39_SIL_DW.is_c26_ET39_autopilot) {
case ET39_SIL_IN_Hover_j:
ET39_SIL_B.AFCS_VERT = ENUM_AFCS_VERT_VNAV2HDOT;
if ((ET39_SIL_B.BusAssignment_b.rc.throttle_cmd < 0.25F) &&
ET39_SIL_B.BusAssignment_b.landing_cmd) {
ET39_SIL_B.landing_cmd_out = false;
ET39_SIL_DW.is_c26_ET39_autopilot = ET39_SIL_IN_Sink_f;
ET39_SIL_B.AFCS_VERT = ENUM_AFCS_VERT_OFF;
ET39_SIL_B.AG = ENUM_AG_HDOT_MC;
ET39_SIL_B.hdot_c_out = -0.5F;
}
ET39_SIL_Hover_i();
break;
case ET39_SIL_IN_Hovering_mj:
@@ -23319,8 +23373,7 @@ void ET39_SIL_step(void)
case ET39_SIL_IN_Trans2FW1:
switch (ET39_SIL_DW.is_Trans2FW1) {
case ET39_SIL_IN_EngineStart_p:
if ((ET39_SIL_DW.temporalCounter_i1_do >= 1600U) &&
(ET39_SIL_B.BusAssignment_n.RPMs[4] > 1000)) {
if (ET39_SIL_DW.temporalCounter_i1_do >= 1600U) {
ET39_SIL_DW.is_Trans2FW1 = ET39_SIL_IN_EngineStarted;
ET39_SIL_DW.temporalCounter_i1_do = 0U;
ET39_SIL_B.engine_mode = 1U;
@@ -23329,30 +23382,9 @@ void ET39_SIL_step(void)
break;
case ET39_SIL_IN_EngineStarted:
if (ET39_SIL_DW.temporalCounter_i1_do >= 600U) {
if (ET39_SIL_DW.temporalCounter_i1_do >= 200U) {
ET39_SIL_DW.is_Trans2FW1 = ET39_SIL_IN_Trans2FW_gw;
ET39_SIL_B.gs_c_out = ET39_SIL_P.TransferSpeed * 2.0F;
} else {
if ((ET39_SIL_B.BusAssignment_b.rc.throttle_cmd < 0.25F) ||
ET39_SIL_B.BusAssignment_b.abort_takeoff_cmd ||
(ET39_SIL_B.BusAssignment_n.RPMs[4] < 1000)) {
ET39_SIL_B.abort_takeoff_cmd_out = false;
ET39_SIL_DW.is_Trans2FW1 = 0;
ET39_SIL_DW.is_c19_ET39_autopilot = ET39_SIL_IN_MC;
ET39_SIL_DW.temporalCounter_i1_do = 0U;
ET39_SIL_B.vtol_state_out = ENUM_VTOL_STATE_MC;
ET39_SIL_B.engine_mode =
ET39_SIL_B.BusAssignment_b.engine_mode;
ET39_SIL_B.AFCS_VERT_out_m = ENUM_AFCS_VERT_VNAV2HDOT;
ET39_SIL_B.AFCS_LAT_out =
ENUM_AFCS_LAT_MC_HOLD_POS_VCTRL;
ET39_SIL_B.CSAS_pitch_out = ENUM_CSAS_PITCH_THT_CTRL;
ET39_SIL_B.CSAS_roll_out = ENUM_CSAS_ROLL_ROLL_CTRL;
ET39_SIL_B.CSAS_yaw_out = ENUM_CSAS_YAW_PSIDOT_CTRL;
ET39_SIL_B.AT_out_m = ENUM_AT_OFF;
ET39_SIL_B.AG_out = ENUM_AG_HDOT_MC;
ET39_SIL_B.gs_c_out = 1.0F;
}
}
break;
@@ -23381,23 +23413,15 @@ void ET39_SIL_step(void)
case ET39_SIL_IN_Idle:
if (ET39_SIL_DW.temporalCounter_i1_do >= 200U) {
if (ET39_SIL_B.BusAssignment_n.RPMs[4] < 1000) {
ET39_SIL_DW.is_Trans2FW1 = ET39_SIL_IN_EngineStart_p;
ET39_SIL_DW.temporalCounter_i1_do = 0U;
ET39_SIL_B.engine_mode = 2U;
} else {
ET39_SIL_DW.is_Trans2FW1 = ET39_SIL_IN_EngineStarted;
ET39_SIL_DW.temporalCounter_i1_do = 0U;
ET39_SIL_B.engine_mode = 1U;
ET39_SIL_B.abort_takeoff_cmd_out = false;
}
ET39_SIL_DW.is_Trans2FW1 = ET39_SIL_IN_EngineStart_p;
ET39_SIL_DW.temporalCounter_i1_do = 0U;
ET39_SIL_B.engine_mode = 2U;
}
break;
default:
if ((ET39_SIL_B.BusAssignment_b.rc.throttle_cmd < 0.25F) ||
ET39_SIL_B.BusAssignment_b.abort_takeoff_cmd ||
(ET39_SIL_B.BusAssignment_n.RPMs[4] < 1000)) {
ET39_SIL_B.BusAssignment_b.abort_takeoff_cmd) {
ET39_SIL_B.abort_takeoff_cmd_out = false;
ET39_SIL_DW.is_Trans2FW1 = 0;
ET39_SIL_DW.is_c19_ET39_autopilot = ET39_SIL_IN_MC;
@@ -23425,8 +23449,11 @@ void ET39_SIL_step(void)
ET39_SIL_B.AG_out = ENUM_AG_COMMAND;
ET39_SIL_B.gyro_c_out =
ET39_SIL_B.BusAssignment_b.rot_heave;
ET39_SIL_B.engine_mode = 1U;
} else {
ET39_SIL_B.WP_out_h = ET39_SIL_B.BusAssignment_b.WP_cur;
ET39_SIL_B.engine_mode =
ET39_SIL_B.BusAssignment_b.engine_mode;
}
break;
}
@@ -5,7 +5,7 @@
*
* Model version : 1.1309
* Simulink Coder version : 9.0 (R2018b) 24-May-2018
* C/C++ source code generated on : Tue Jan 11 14:52:20 2022
* C/C++ source code generated on : Tue Jan 11 21:07:27 2022
*
* Target selection: ert_shrlib.tlc
* Embedded hardware selection: Intel->x86-64 (Windows64)
@@ -5,7 +5,7 @@
*
* Model version : 1.1309
* Simulink Coder version : 9.0 (R2018b) 24-May-2018
* C/C++ source code generated on : Tue Jan 11 14:52:20 2022
* C/C++ source code generated on : Tue Jan 11 21:07:27 2022
*
* Target selection: ert_shrlib.tlc
* Embedded hardware selection: Intel->x86-64 (Windows64)
@@ -860,10 +860,10 @@ static rtwCAPI_ModelMappingStaticInfo mmiStatic = {
rtElementMap, rtSampleTimeMap, rtDimensionArray },
"float",
{ 2692892647U,
3190921328U,
2282311794U,
1061714550U },
{ 2698813529U,
3770494989U,
3750461543U,
4266635828U },
(NULL), 0,
0
};
@@ -5,7 +5,7 @@
*
* Model version : 1.1309
* Simulink Coder version : 9.0 (R2018b) 24-May-2018
* C/C++ source code generated on : Tue Jan 11 14:52:20 2022
* C/C++ source code generated on : Tue Jan 11 21:07:27 2022
*
* Target selection: ert_shrlib.tlc
* Embedded hardware selection: Intel->x86-64 (Windows64)
@@ -5,7 +5,7 @@
*
* Model version : 1.1309
* Simulink Coder version : 9.0 (R2018b) 24-May-2018
* C/C++ source code generated on : Tue Jan 11 14:52:20 2022
* C/C++ source code generated on : Tue Jan 11 21:07:27 2022
*
* Target selection: ert_shrlib.tlc
* Embedded hardware selection: Intel->x86-64 (Windows64)
@@ -59,7 +59,7 @@ const ConstB_ET39_SIL_T ET39_SIL_ConstB = {
{ -0.062, -0.107, 0.16 }, /* '<S1191>/Selector1' */
{ 0.251, 0.0, 0.16 }, /* '<S1191>/Selector' */
{ 0.12, 0.0, 0.16 }, /* '<S1191>/Selector' */
{ -0.062, 0.107, 0.16 }, /* '<S1191>/Selector2' */
@@ -1129,7 +1129,7 @@ P_ET39_SIL_T ET39_SIL_P = {
/* Variable: prop_pwm_lst2
* Referenced by: '<S1383>/Constant1'
*/
{ 1100.0F, 1425.0F, 1540.0F, 1600.0F, 1650.0F, 1750.0F, 1760.0F },
{ 1100.0F, 1425.0F, 1540.0F, 1600.0F, 1650.0F, 1740.0F, 1750.0F },
/* Variable: prop_rpm_lst
* Referenced by:
@@ -5,7 +5,7 @@
*
* Model version : 1.1309
* Simulink Coder version : 9.0 (R2018b) 24-May-2018
* C/C++ source code generated on : Tue Jan 11 14:52:20 2022
* C/C++ source code generated on : Tue Jan 11 21:07:27 2022
*
* Target selection: ert_shrlib.tlc
* Embedded hardware selection: Intel->x86-64 (Windows64)
@@ -5,7 +5,7 @@
*
* Model version : 1.1309
* Simulink Coder version : 9.0 (R2018b) 24-May-2018
* C/C++ source code generated on : Tue Jan 11 14:52:20 2022
* C/C++ source code generated on : Tue Jan 11 21:07:27 2022
*
* Target selection: ert_shrlib.tlc
* Embedded hardware selection: Intel->x86-64 (Windows64)
Binary file not shown.
@@ -5,7 +5,7 @@
*
* Model version : 1.1309
* Simulink Coder version : 9.0 (R2018b) 24-May-2018
* C/C++ source code generated on : Tue Jan 11 14:52:20 2022
* C/C++ source code generated on : Tue Jan 11 21:07:27 2022
*
* Target selection: ert_shrlib.tlc
* Embedded hardware selection: Intel->x86-64 (Windows64)