static void sf_c3_car_model(SFc3_car_modelInstanceStruct *chartInstance) { int32_T c3_i3; int32_T c3_i4; int32_T c3_i5; int32_T c3_previousEvent; int32_T c3_i6; real_T c3_hoistedGlobal[4]; int32_T c3_i7; real_T c3_b_hoistedGlobal[3]; int32_T c3_i8; real_T c3_X[4]; int32_T c3_i9; real_T c3_u[3]; uint32_T c3_debug_family_var_map[22]; real_T c3_l_F; real_T c3_l_R; real_T c3_Vx; real_T c3_Vy; real_T c3_r; real_T c3_psi; real_T c3_f_Fx; real_T c3_f_Rx; real_T c3_delta; real_T c3_beta; real_T c3_V; real_T c3_s_Fy_num; real_T c3_s_Fy_denum; real_T c3_s_Fy; real_T c3_s_Ry_num; real_T c3_s_Ry_denum; real_T c3_s_Ry; real_T c3_nargin = 2.0; real_T c3_nargout = 1.0; real_T c3_s[2]; real_T c3_A; real_T c3_B; real_T c3_x; real_T c3_y; real_T c3_b_x; real_T c3_b_y; real_T c3_c_x; real_T c3_c_y; real_T c3_d_y; real_T c3_d_x; real_T c3_e_x; real_T c3_f_x; real_T c3_g_x; real_T c3_h_x; real_T c3_i_x; real_T c3_j_x; real_T c3_a; real_T c3_b; real_T c3_e_y; real_T c3_b_a; real_T c3_f_y; real_T c3_k_x; real_T c3_l_x; real_T c3_m_x; real_T c3_c_a; real_T c3_b_b; real_T c3_g_y; real_T c3_n_x; real_T c3_o_x; real_T c3_p_x; real_T c3_d_a; real_T c3_c_b; real_T c3_h_y; real_T c3_e_a; real_T c3_i_y; real_T c3_q_x; real_T c3_r_x; real_T c3_s_x; real_T c3_f_a; real_T c3_d_b; real_T c3_j_y; real_T c3_b_A; real_T c3_b_B; real_T c3_t_x; real_T c3_k_y; real_T c3_u_x; real_T c3_l_y; real_T c3_v_x; real_T c3_m_y; real_T c3_w_x; real_T c3_x_x; real_T c3_y_x; real_T c3_g_a; real_T c3_e_b; real_T c3_n_y; real_T c3_h_a; real_T c3_o_y; real_T c3_ab_x; real_T c3_bb_x; real_T c3_cb_x; real_T c3_i_a; real_T c3_f_b; real_T c3_c_A; real_T c3_c_B; real_T c3_db_x; real_T c3_p_y; real_T c3_eb_x; real_T c3_q_y; real_T c3_fb_x; real_T c3_r_y; int32_T c3_i10; real_T (*c3_b_s)[2]; real_T (*c3_b_u)[3]; real_T (*c3_b_X)[4]; c3_b_u = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 1); c3_b_s = (real_T (*)[2])ssGetOutputPortSignal(chartInstance->S, 1); c3_b_X = (real_T (*)[4])ssGetInputPortSignal(chartInstance->S, 0); _sfTime_ = (real_T)ssGetT(chartInstance->S); _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG,2); for (c3_i3 = 0; c3_i3 < 4; c3_i3 = c3_i3 + 1) { _SFD_DATA_RANGE_CHECK((*c3_b_X)[c3_i3], 0U); } for (c3_i4 = 0; c3_i4 < 2; c3_i4 = c3_i4 + 1) { _SFD_DATA_RANGE_CHECK((*c3_b_s)[c3_i4], 1U); } for (c3_i5 = 0; c3_i5 < 3; c3_i5 = c3_i5 + 1) { _SFD_DATA_RANGE_CHECK((*c3_b_u)[c3_i5], 2U); } c3_previousEvent = _sfEvent_; _sfEvent_ = CALL_EVENT; _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG,2); for (c3_i6 = 0; c3_i6 < 4; c3_i6 = c3_i6 + 1) { c3_hoistedGlobal[c3_i6] = (*c3_b_X)[c3_i6]; } for (c3_i7 = 0; c3_i7 < 3; c3_i7 = c3_i7 + 1) { c3_b_hoistedGlobal[c3_i7] = (*c3_b_u)[c3_i7]; } for (c3_i8 = 0; c3_i8 < 4; c3_i8 = c3_i8 + 1) { c3_X[c3_i8] = c3_hoistedGlobal[c3_i8]; } for (c3_i9 = 0; c3_i9 < 3; c3_i9 = c3_i9 + 1) { c3_u[c3_i9] = c3_b_hoistedGlobal[c3_i9]; } sf_debug_symbol_scope_push_eml(0U, 22U, 22U, c3_debug_family_names, c3_debug_family_var_map); sf_debug_symbol_scope_add_eml(&c3_l_F, c3_d_sf_marshall, 0U); sf_debug_symbol_scope_add_eml(&c3_l_R, c3_d_sf_marshall, 1U); sf_debug_symbol_scope_add_eml(&c3_Vx, c3_d_sf_marshall, 2U); sf_debug_symbol_scope_add_eml(&c3_Vy, c3_d_sf_marshall, 3U); sf_debug_symbol_scope_add_eml(&c3_r, c3_d_sf_marshall, 4U); sf_debug_symbol_scope_add_eml(&c3_psi, c3_d_sf_marshall, 5U); sf_debug_symbol_scope_add_eml(&c3_f_Fx, c3_d_sf_marshall, 6U); sf_debug_symbol_scope_add_eml(&c3_f_Rx, c3_d_sf_marshall, 7U); sf_debug_symbol_scope_add_eml(&c3_delta, c3_d_sf_marshall, 8U); sf_debug_symbol_scope_add_eml(&c3_beta, c3_d_sf_marshall, 9U); sf_debug_symbol_scope_add_eml(&c3_V, c3_d_sf_marshall, 10U); sf_debug_symbol_scope_add_eml(&c3_s_Fy_num, c3_d_sf_marshall, 11U); sf_debug_symbol_scope_add_eml(&c3_s_Fy_denum, c3_d_sf_marshall, 12U); sf_debug_symbol_scope_add_eml(&c3_s_Fy, c3_d_sf_marshall, 13U); sf_debug_symbol_scope_add_eml(&c3_s_Ry_num, c3_d_sf_marshall, 14U); sf_debug_symbol_scope_add_eml(&c3_s_Ry_denum, c3_d_sf_marshall, 15U); sf_debug_symbol_scope_add_eml(&c3_s_Ry, c3_d_sf_marshall, 16U); sf_debug_symbol_scope_add_eml(&c3_nargin, c3_d_sf_marshall, 17U); sf_debug_symbol_scope_add_eml(&c3_nargout, c3_d_sf_marshall, 18U); sf_debug_symbol_scope_add_eml(&c3_X, c3_c_sf_marshall, 19U); sf_debug_symbol_scope_add_eml(&c3_u, c3_b_sf_marshall, 20U); sf_debug_symbol_scope_add_eml(&c3_s, c3_sf_marshall, 21U); CV_EML_FCN(0, 0); /* l_F = param.l_F; */ /* l_R = param.l_R; */ _SFD_EML_CALL(0,7); c3_l_F = 1.1; _SFD_EML_CALL(0,8); c3_l_R = 1.6; _SFD_EML_CALL(0,10); c3_Vx = c3_X[0]; _SFD_EML_CALL(0,11); c3_Vy = c3_X[1]; _SFD_EML_CALL(0,12); c3_r = c3_X[2]; _SFD_EML_CALL(0,13); c3_psi = c3_X[3]; _SFD_EML_CALL(0,15); c3_f_Fx = c3_u[0]; _SFD_EML_CALL(0,16); c3_f_Rx = c3_u[1]; _SFD_EML_CALL(0,17); c3_delta = c3_u[2]; _SFD_EML_CALL(0,20); if (CV_EML_COND(0, 0, c3_Vx == 0.0)) { if (CV_EML_COND(0, 1, c3_Vy == 0.0)) { CV_EML_MCDC(0, 0, TRUE); CV_EML_IF(0, 0, TRUE); _SFD_EML_CALL(0,21); c3_beta = 0.0; goto label_1; } } CV_EML_MCDC(0, 0, FALSE); CV_EML_IF(0, 0, FALSE); _SFD_EML_CALL(0,23); c3_A = c3_Vy; c3_B = c3_Vx; c3_x = c3_A; c3_y = c3_B; c3_b_x = c3_x; c3_b_y = c3_y; c3_c_x = c3_b_x; c3_c_y = c3_b_y; c3_d_y = c3_c_x / c3_c_y; c3_d_x = c3_d_y; c3_beta = c3_d_x; c3_e_x = c3_beta; c3_beta = c3_e_x; c3_beta = muDoubleScalarAtan(c3_beta); label_1: ; _SFD_EML_CALL(0,26); c3_f_x = c3_mpower(chartInstance, c3_Vx) + c3_mpower(chartInstance, c3_Vy); c3_V = c3_f_x; if (c3_V < 0.0) { c3_eml_error(chartInstance); } c3_g_x = c3_V; c3_V = c3_g_x; c3_V = muDoubleScalarSqrt(c3_V); _SFD_EML_CALL(0,28); c3_h_x = c3_beta - c3_delta; c3_i_x = c3_h_x; c3_j_x = c3_i_x; c3_i_x = c3_j_x; c3_i_x = muDoubleScalarSin(c3_i_x); c3_a = c3_V; c3_b = c3_i_x; c3_e_y = c3_a * c3_b; c3_b_a = c3_r; c3_f_y = c3_b_a * 1.1; c3_k_x = c3_delta; c3_l_x = c3_k_x; c3_m_x = c3_l_x; c3_l_x = c3_m_x; c3_l_x = muDoubleScalarCos(c3_l_x); c3_c_a = c3_f_y; c3_b_b = c3_l_x; c3_g_y = c3_c_a * c3_b_b; c3_s_Fy_num = c3_e_y + c3_g_y; _SFD_EML_CALL(0,29); c3_n_x = c3_beta - c3_delta; c3_o_x = c3_n_x; c3_p_x = c3_o_x; c3_o_x = c3_p_x; c3_o_x = muDoubleScalarCos(c3_o_x); c3_d_a = c3_V; c3_c_b = c3_o_x; c3_h_y = c3_d_a * c3_c_b; c3_e_a = c3_r; c3_i_y = c3_e_a * 1.1; c3_q_x = c3_delta; c3_r_x = c3_q_x; c3_s_x = c3_r_x; c3_r_x = c3_s_x; c3_r_x = muDoubleScalarSin(c3_r_x); c3_f_a = c3_i_y; c3_d_b = c3_r_x; c3_j_y = c3_f_a * c3_d_b; c3_s_Fy_denum = c3_h_y + c3_j_y; _SFD_EML_CALL(0,31); if (CV_EML_COND(0, 2, c3_s_Fy_num == 0.0)) { if (CV_EML_COND(0, 3, c3_s_Fy_denum == 0.0)) { CV_EML_MCDC(0, 1, TRUE); CV_EML_IF(0, 1, TRUE); _SFD_EML_CALL(0,32); c3_s_Fy = 0.0; goto label_2; } } CV_EML_MCDC(0, 1, FALSE); CV_EML_IF(0, 1, FALSE); _SFD_EML_CALL(0,34); c3_b_A = c3_s_Fy_num; c3_b_B = c3_s_Fy_denum; c3_t_x = c3_b_A; c3_k_y = c3_b_B; c3_u_x = c3_t_x; c3_l_y = c3_k_y; c3_v_x = c3_u_x; c3_m_y = c3_l_y; c3_s_Fy = c3_v_x / c3_m_y; label_2: ; _SFD_EML_CALL(0,37); c3_w_x = c3_beta; c3_x_x = c3_w_x; c3_y_x = c3_x_x; c3_x_x = c3_y_x; c3_x_x = muDoubleScalarSin(c3_x_x); c3_g_a = c3_V; c3_e_b = c3_x_x; c3_n_y = c3_g_a * c3_e_b; c3_h_a = c3_r; c3_o_y = c3_h_a * 1.6; c3_s_Ry_num = c3_n_y - c3_o_y; _SFD_EML_CALL(0,38); c3_ab_x = c3_beta; c3_bb_x = c3_ab_x; c3_cb_x = c3_bb_x; c3_bb_x = c3_cb_x; c3_bb_x = muDoubleScalarCos(c3_bb_x); c3_i_a = c3_V; c3_f_b = c3_bb_x; c3_s_Ry_denum = c3_i_a * c3_f_b; _SFD_EML_CALL(0,40); if (CV_EML_COND(0, 4, c3_s_Ry_num == 0.0)) { if (CV_EML_COND(0, 5, c3_s_Ry_denum == 0.0)) { CV_EML_MCDC(0, 2, TRUE); CV_EML_IF(0, 2, TRUE); _SFD_EML_CALL(0,41); c3_s_Ry = 0.0; goto label_3; } } CV_EML_MCDC(0, 2, FALSE); CV_EML_IF(0, 2, FALSE); _SFD_EML_CALL(0,43); c3_c_A = c3_s_Ry_num; c3_c_B = c3_s_Ry_denum; c3_db_x = c3_c_A; c3_p_y = c3_c_B; c3_eb_x = c3_db_x; c3_q_y = c3_p_y; c3_fb_x = c3_eb_x; c3_r_y = c3_q_y; c3_s_Ry = c3_fb_x / c3_r_y; label_3: ; _SFD_EML_CALL(0,46); c3_s[0] = c3_s_Fy; c3_s[1] = c3_s_Ry; _SFD_EML_CALL(0,-46); sf_debug_symbol_scope_pop(); for (c3_i10 = 0; c3_i10 < 2; c3_i10 = c3_i10 + 1) { (*c3_b_s)[c3_i10] = c3_s[c3_i10]; } _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG,2); _sfEvent_ = c3_previousEvent; sf_debug_check_for_state_inconsistency(_car_modelMachineNumber_, chartInstance->chartNumber, chartInstance->instanceNumber); }
static void sf_c3_varymultiswarm(SFc3_varymultiswarmInstanceStruct *chartInstance) { real_T c3_hoistedGlobal; real_T c3_b_hoistedGlobal; real_T c3_x; real_T c3_y; uint32_T c3_debug_family_var_map[5]; real_T c3_nargin = 2.0; real_T c3_nargout = 1.0; real_T c3_z; real_T c3_b_x; real_T c3_c_x; real_T *c3_d_x; real_T *c3_b_y; real_T *c3_b_z; c3_b_z = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); c3_b_y = (real_T *)ssGetInputPortSignal(chartInstance->S, 1); c3_d_x = (real_T *)ssGetInputPortSignal(chartInstance->S, 0); _sfTime_ = (real_T)ssGetT(chartInstance->S); _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 2U, chartInstance->c3_sfEvent); _SFD_DATA_RANGE_CHECK(*c3_d_x, 0U); _SFD_DATA_RANGE_CHECK(*c3_b_y, 1U); _SFD_DATA_RANGE_CHECK(*c3_b_z, 2U); chartInstance->c3_sfEvent = CALL_EVENT; _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 2U, chartInstance->c3_sfEvent); c3_hoistedGlobal = *c3_d_x; c3_b_hoistedGlobal = *c3_b_y; c3_x = c3_hoistedGlobal; c3_y = c3_b_hoistedGlobal; _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 5U, 5U, c3_debug_family_names, c3_debug_family_var_map); _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargin, 0U, c3_sf_marshallOut, c3_sf_marshallIn); _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargout, 1U, c3_sf_marshallOut, c3_sf_marshallIn); _SFD_SYMBOL_SCOPE_ADD_EML(&c3_x, 2U, c3_sf_marshallOut); _SFD_SYMBOL_SCOPE_ADD_EML(&c3_y, 3U, c3_sf_marshallOut); _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_z, 4U, c3_sf_marshallOut, c3_sf_marshallIn); CV_EML_FCN(0, 0); _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 3); c3_b_x = (26.4196 - c3_mpower(chartInstance, c3_x - 1.44)) - c3_mpower (chartInstance, c3_y - 0.3677); c3_z = c3_b_x; if (c3_z < 0.0) { c3_eml_error(chartInstance); } c3_c_x = c3_z; c3_z = c3_c_x; c3_z = muDoubleScalarSqrt(c3_z); _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 4); c3_z += 1.6; _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, -4); _SFD_SYMBOL_SCOPE_POP(); *c3_b_z = c3_z; _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 2U, chartInstance->c3_sfEvent); _SFD_CHECK_FOR_STATE_INCONSISTENCY(_varymultiswarmMachineNumber_, chartInstance->chartNumber, chartInstance->instanceNumber); }