コード例 #1
0
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);
}
コード例 #2
0
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);
}