static void sf_c7_adcs_v15_integral_Power(void) { int32_T c7_i3; int32_T c7_i4; int32_T c7_previousEvent; int32_T c7_i5; real_T c7_x[7]; real_T c7_nargout = 1.0; real_T c7_nargin = 1.0; real_T c7_q[4]; real_T c7_xN[7]; int32_T c7_i6; int32_T c7_i7; real_T c7_A[4]; int32_T c7_i8; real_T c7_a[4]; int32_T c7_i9; real_T c7_b[4]; int32_T c7_i10; real_T c7_b_a[4]; int32_T c7_i11; real_T c7_b_b[4]; int32_T c7_i12; real_T c7_b_x[4]; int32_T c7_i13; real_T c7_y[4]; int32_T c7_i14; real_T c7_c_x[4]; int32_T c7_i15; real_T c7_b_y[4]; int32_T c7_i16; real_T c7_d_x[4]; int32_T c7_i17; real_T c7_c_y[4]; int32_T c7_i18; real_T c7_e_x[4]; int32_T c7_i19; real_T c7_d_y[4]; real_T c7_f_x; real_T c7_B; real_T c7_g_x; int32_T c7_i20; real_T c7_h_x[4]; real_T c7_e_y; int32_T c7_i21; real_T c7_i_x[4]; real_T c7_f_y; int32_T c7_i22; real_T c7_j_x[4]; real_T c7_g_y; int32_T c7_i23; int32_T c7_i24; int32_T c7_i25; int32_T c7_i26; real_T (*c7_b_xN)[7]; real_T (*c7_k_x)[7]; c7_b_xN = (real_T (*)[7])ssGetOutputPortSignal(chartInstance.S, 1); c7_k_x = (real_T (*)[7])ssGetInputPortSignal(chartInstance.S, 0); _sfTime_ = (real_T)ssGetT(chartInstance.S); _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG,5); for (c7_i3 = 0; c7_i3 < 7; c7_i3 = c7_i3 + 1) { _SFD_DATA_RANGE_CHECK((*c7_k_x)[c7_i3], 0U); } for (c7_i4 = 0; c7_i4 < 7; c7_i4 = c7_i4 + 1) { _SFD_DATA_RANGE_CHECK((*c7_b_xN)[c7_i4], 1U); } c7_previousEvent = _sfEvent_; _sfEvent_ = CALL_EVENT; _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG,5); for (c7_i5 = 0; c7_i5 < 7; c7_i5 = c7_i5 + 1) { c7_x[c7_i5] = (*c7_k_x)[c7_i5]; } sf_debug_symbol_scope_push(5U, 0U); sf_debug_symbol_scope_add("nargout", &c7_nargout, c7_c_sf_marshall); sf_debug_symbol_scope_add("nargin", &c7_nargin, c7_c_sf_marshall); sf_debug_symbol_scope_add("q", &c7_q, c7_b_sf_marshall); sf_debug_symbol_scope_add("xN", &c7_xN, c7_sf_marshall); sf_debug_symbol_scope_add("x", &c7_x, c7_sf_marshall); CV_EML_FCN(0, 0); /* This block gives DCM for converting from ECI to ORBIT frames */ /* inputs: state vector in ECI */ /* output: DCM */ _SFD_EML_CALL(0,6); for (c7_i6 = 0; c7_i6 < 4; c7_i6 = c7_i6 + 1) { c7_q[c7_i6] = c7_x[c7_i6]; } _SFD_EML_CALL(0,7); for (c7_i7 = 0; c7_i7 < 4; c7_i7 = c7_i7 + 1) { c7_A[c7_i7] = c7_q[c7_i7]; } for (c7_i8 = 0; c7_i8 < 4; c7_i8 = c7_i8 + 1) { c7_a[c7_i8] = c7_q[c7_i8]; } for (c7_i9 = 0; c7_i9 < 4; c7_i9 = c7_i9 + 1) { c7_b[c7_i9] = c7_q[c7_i9]; } c7_eml_scalar_eg(); for (c7_i10 = 0; c7_i10 < 4; c7_i10 = c7_i10 + 1) { c7_b_a[c7_i10] = c7_a[c7_i10]; } for (c7_i11 = 0; c7_i11 < 4; c7_i11 = c7_i11 + 1) { c7_b_b[c7_i11] = c7_b[c7_i11]; } for (c7_i12 = 0; c7_i12 < 4; c7_i12 = c7_i12 + 1) { c7_b_x[c7_i12] = c7_b_a[c7_i12]; } for (c7_i13 = 0; c7_i13 < 4; c7_i13 = c7_i13 + 1) { c7_y[c7_i13] = c7_b_b[c7_i13]; } for (c7_i14 = 0; c7_i14 < 4; c7_i14 = c7_i14 + 1) { c7_c_x[c7_i14] = c7_b_x[c7_i14]; } for (c7_i15 = 0; c7_i15 < 4; c7_i15 = c7_i15 + 1) { c7_b_y[c7_i15] = c7_y[c7_i15]; } for (c7_i16 = 0; c7_i16 < 4; c7_i16 = c7_i16 + 1) { c7_d_x[c7_i16] = c7_c_x[c7_i16]; } for (c7_i17 = 0; c7_i17 < 4; c7_i17 = c7_i17 + 1) { c7_c_y[c7_i17] = c7_b_y[c7_i17]; } for (c7_i18 = 0; c7_i18 < 4; c7_i18 = c7_i18 + 1) { c7_e_x[c7_i18] = c7_d_x[c7_i18]; } for (c7_i19 = 0; c7_i19 < 4; c7_i19 = c7_i19 + 1) { c7_d_y[c7_i19] = c7_c_y[c7_i19]; } c7_f_x = c7_ceval_xdot(4, c7_e_x, 1, 1, c7_d_y, 1, 1); c7_B = c7_f_x; if (c7_B < 0.0) { c7_eml_error(); } c7_g_x = c7_B; c7_B = c7_g_x; c7_B = muDoubleScalarSqrt(c7_B); for (c7_i20 = 0; c7_i20 < 4; c7_i20 = c7_i20 + 1) { c7_h_x[c7_i20] = c7_A[c7_i20]; } c7_e_y = c7_B; if (c7_e_y == 0.0) { c7_eml_warning(); } for (c7_i21 = 0; c7_i21 < 4; c7_i21 = c7_i21 + 1) { c7_i_x[c7_i21] = c7_h_x[c7_i21]; } c7_f_y = c7_e_y; for (c7_i22 = 0; c7_i22 < 4; c7_i22 = c7_i22 + 1) { c7_j_x[c7_i22] = c7_i_x[c7_i22]; } c7_g_y = c7_f_y; for (c7_i23 = 0; c7_i23 < 4; c7_i23 = c7_i23 + 1) { c7_q[c7_i23] = c7_j_x[c7_i23] / c7_g_y; } _SFD_EML_CALL(0,8); for (c7_i24 = 0; c7_i24 < 4; c7_i24 = c7_i24 + 1) { c7_xN[c7_i24] = c7_q[c7_i24]; } for (c7_i25 = 0; c7_i25 < 3; c7_i25 = c7_i25 + 1) { c7_xN[c7_i25 + 4] = c7_x[c7_i25 + 4]; } _SFD_EML_CALL(0,-8); sf_debug_symbol_scope_pop(); for (c7_i26 = 0; c7_i26 < 7; c7_i26 = c7_i26 + 1) { (*c7_b_xN)[c7_i26] = c7_xN[c7_i26]; } _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG,5); _sfEvent_ = c7_previousEvent; sf_debug_check_for_state_inconsistency(_adcs_v15_integral_PowerMachineNumber_, chartInstance.chartNumber, chartInstance. instanceNumber); }
static void sf_c7_WEC_Sim_Driver(SFc7_WEC_Sim_DriverInstanceStruct *chartInstance) { int32_T c7_i2; int32_T c7_i3; int32_T c7_i4; real_T c7_Q[4]; uint32_T c7_debug_family_var_map[4]; real_T c7_nargin = 1.0; real_T c7_nargout = 1.0; real_T c7_E[3]; int32_T c7_i5; real_T c7_a; real_T c7_b; real_T c7_y; real_T c7_b_a; real_T c7_b_b; real_T c7_b_y; real_T c7_c_b; real_T c7_c_y; real_T c7_d_b; real_T c7_d_y; real_T c7_A; real_T c7_B; real_T c7_x; real_T c7_e_y; real_T c7_b_x; real_T c7_f_y; real_T c7_g_y; real_T c7_c_x; real_T c7_d_x; real_T c7_c_a; real_T c7_e_b; real_T c7_h_y; real_T c7_d_a; real_T c7_f_b; real_T c7_i_y; real_T c7_g_b; real_T c7_j_y; real_T c7_e_x; real_T c7_f_x; real_T c7_e_a; real_T c7_h_b; real_T c7_k_y; real_T c7_f_a; real_T c7_i_b; real_T c7_l_y; real_T c7_j_b; real_T c7_m_y; real_T c7_k_b; real_T c7_n_y; real_T c7_b_A; real_T c7_b_B; real_T c7_g_x; real_T c7_o_y; real_T c7_h_x; real_T c7_p_y; real_T c7_q_y; real_T c7_i_x; real_T c7_j_x; int32_T c7_i6; real_T (*c7_b_E)[3]; real_T (*c7_b_Q)[4]; boolean_T guard1 = FALSE; c7_b_E = (real_T (*)[3])ssGetOutputPortSignal(chartInstance->S, 1); c7_b_Q = (real_T (*)[4])ssGetInputPortSignal(chartInstance->S, 0); _sfTime_ = (real_T)ssGetT(chartInstance->S); _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 3U, chartInstance->c7_sfEvent); for (c7_i2 = 0; c7_i2 < 4; c7_i2++) { _SFD_DATA_RANGE_CHECK((*c7_b_Q)[c7_i2], 0U); } for (c7_i3 = 0; c7_i3 < 3; c7_i3++) { _SFD_DATA_RANGE_CHECK((*c7_b_E)[c7_i3], 1U); } chartInstance->c7_sfEvent = CALL_EVENT; _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 3U, chartInstance->c7_sfEvent); for (c7_i4 = 0; c7_i4 < 4; c7_i4++) { c7_Q[c7_i4] = (*c7_b_Q)[c7_i4]; } _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 4U, 4U, c7_debug_family_names, c7_debug_family_var_map); _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c7_nargin, 0U, c7_c_sf_marshallOut, c7_b_sf_marshallIn); _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c7_nargout, 1U, c7_c_sf_marshallOut, c7_b_sf_marshallIn); _SFD_SYMBOL_SCOPE_ADD_EML(c7_Q, 2U, c7_b_sf_marshallOut); _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c7_E, 3U, c7_sf_marshallOut, c7_sf_marshallIn); CV_EML_FCN(0, 0); _SFD_EML_CALL(0U, chartInstance->c7_sfEvent, 3); for (c7_i5 = 0; c7_i5 < 3; c7_i5++) { c7_E[c7_i5] = 0.0; } _SFD_EML_CALL(0U, chartInstance->c7_sfEvent, 4); c7_a = c7_Q[0]; c7_b = c7_Q[1]; c7_y = c7_a * c7_b; c7_b_a = c7_Q[2]; c7_b_b = c7_Q[3]; c7_b_y = c7_b_a * c7_b_b; c7_c_b = c7_y + c7_b_y; c7_c_y = 2.0 * c7_c_b; c7_d_b = c7_mpower(chartInstance, c7_Q[1]) + c7_mpower(chartInstance, c7_Q[2]); c7_d_y = 2.0 * c7_d_b; c7_A = c7_c_y; c7_B = 1.0 - c7_d_y; c7_x = c7_A; c7_e_y = c7_B; c7_b_x = c7_x; c7_f_y = c7_e_y; c7_g_y = c7_b_x / c7_f_y; c7_c_x = c7_g_y; c7_d_x = c7_c_x; c7_d_x = muDoubleScalarAtan(c7_d_x); c7_E[0] = c7_d_x; _SFD_EML_CALL(0U, chartInstance->c7_sfEvent, 5); c7_c_a = c7_Q[0]; c7_e_b = c7_Q[2]; c7_h_y = c7_c_a * c7_e_b; c7_d_a = c7_Q[3]; c7_f_b = c7_Q[1]; c7_i_y = c7_d_a * c7_f_b; c7_g_b = c7_h_y - c7_i_y; c7_j_y = 2.0 * c7_g_b; c7_e_x = c7_j_y; c7_f_x = c7_e_x; guard1 = FALSE; if (c7_f_x < -1.0) { guard1 = TRUE; } else { if (1.0 < c7_f_x) { guard1 = TRUE; } } if (guard1 == TRUE) { c7_eml_error(chartInstance); } c7_f_x = muDoubleScalarAsin(c7_f_x); c7_E[1] = c7_f_x; _SFD_EML_CALL(0U, chartInstance->c7_sfEvent, 6); c7_e_a = c7_Q[0]; c7_h_b = c7_Q[3]; c7_k_y = c7_e_a * c7_h_b; c7_f_a = c7_Q[1]; c7_i_b = c7_Q[2]; c7_l_y = c7_f_a * c7_i_b; c7_j_b = c7_k_y + c7_l_y; c7_m_y = 2.0 * c7_j_b; c7_k_b = c7_mpower(chartInstance, c7_Q[2]) + c7_mpower(chartInstance, c7_Q[3]); c7_n_y = 2.0 * c7_k_b; c7_b_A = c7_m_y; c7_b_B = 1.0 - c7_n_y; c7_g_x = c7_b_A; c7_o_y = c7_b_B; c7_h_x = c7_g_x; c7_p_y = c7_o_y; c7_q_y = c7_h_x / c7_p_y; c7_i_x = c7_q_y; c7_j_x = c7_i_x; c7_j_x = muDoubleScalarAtan(c7_j_x); c7_E[2] = c7_j_x; _SFD_EML_CALL(0U, chartInstance->c7_sfEvent, -6); _SFD_SYMBOL_SCOPE_POP(); for (c7_i6 = 0; c7_i6 < 3; c7_i6++) { (*c7_b_E)[c7_i6] = c7_E[c7_i6]; } _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 3U, chartInstance->c7_sfEvent); _SFD_CHECK_FOR_STATE_INCONSISTENCY(_WEC_Sim_DriverMachineNumber_, chartInstance->chartNumber, chartInstance->instanceNumber); }