Esempio n. 1
0
static void sf_c2_linearproto(SFc2_linearprotoInstanceStruct *chartInstance)
{
  real_T c2_hoistedGlobal;
  real_T c2_x;
  uint32_T c2_debug_family_var_map[4];
  real_T c2_nargin = 1.0;
  real_T c2_nargout = 1.0;
  real_T c2_y;
  real_T c2_b;
  real_T c2_b_y;
  real_T c2_u;
  const mxArray *c2_c_y = NULL;
  real_T *c2_b_x;
  real_T *c2_d_y;
  c2_d_y = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);
  c2_b_x = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 0U, chartInstance->c2_sfEvent);
  _SFD_DATA_RANGE_CHECK(*c2_b_x, 0U);
  _SFD_DATA_RANGE_CHECK(*c2_d_y, 1U);
  chartInstance->c2_sfEvent = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 0U, chartInstance->c2_sfEvent);
  c2_hoistedGlobal = *c2_b_x;
  c2_x = c2_hoistedGlobal;
  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 4U, 4U, c2_debug_family_names,
    c2_debug_family_var_map);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c2_nargin, 0U, c2_sf_marshallOut,
    c2_sf_marshallIn);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c2_nargout, 1U, c2_sf_marshallOut,
    c2_sf_marshallIn);
  _SFD_SYMBOL_SCOPE_ADD_EML(&c2_x, 2U, c2_sf_marshallOut);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c2_y, 3U, c2_sf_marshallOut,
    c2_sf_marshallIn);
  CV_EML_FCN(0, 0);
  _SFD_EML_CALL(0U, chartInstance->c2_sfEvent, 4);
  if (CV_EML_IF(0, 1, 0, c2_x < 0.9)) {
    _SFD_EML_CALL(0U, chartInstance->c2_sfEvent, 6);
    c2_b = c2_x;
    c2_b_y = 13.8125 * c2_b;
    c2_y = c2_b_y - 9.93;
    sf_mex_printf("%s =\\n", "y");
    c2_u = c2_y;
    c2_c_y = NULL;
    sf_mex_assign(&c2_c_y, sf_mex_create("y", &c2_u, 0, 0U, 0U, 0U, 0), FALSE);
    sf_mex_call_debug("disp", 0U, 1U, 14, c2_c_y);
  } else {
    _SFD_EML_CALL(0U, chartInstance->c2_sfEvent, 9);
    c2_y = 2.5;
  }

  _SFD_EML_CALL(0U, chartInstance->c2_sfEvent, -9);
  _SFD_SYMBOL_SCOPE_POP();
  *c2_d_y = c2_y;
  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 0U, chartInstance->c2_sfEvent);
  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_linearprotoMachineNumber_,
    chartInstance->chartNumber, chartInstance->instanceNumber);
}
static void sf_c4_Force_Rendering(void)
{
  uint8_T c4_previousEvent;
  int32_T c4_i0;
  real_T c4_t[3];
  real_T c4_y[3];
  real_T c4_u[3];
  const mxArray *c4_b_y = NULL;
  real_T (*c4_c_y)[3];
  real_T (*c4_b_t)[3];
  c4_b_t = (real_T (*)[3])ssGetInputPortSignal(chartInstance.S, 0);
  c4_c_y = (real_T (*)[3])ssGetOutputPortSignal(chartInstance.S, 1);
  _sfTime_ = (real_T)ssGetT(chartInstance.S);
  c4_previousEvent = _sfEvent_;
  _sfEvent_ = CALL_EVENT;
  for(c4_i0 = 0; c4_i0 < 3; c4_i0 = c4_i0 + 1) {
    c4_t[c4_i0] = (*c4_b_t)[c4_i0];
    /*  Smart Saturation: allows channels to go up to 1.6A  */
    /*  unless the total exceeds 2.2A in which case all channels */
    /*  are scaled so that the cumulative current is equal to 2.2A. */
    c4_y[c4_i0] = 0.0;
  }
  sf_mex_printf("%s =\\n", "y");
  for(c4_i0 = 0; c4_i0 < 3; c4_i0 = c4_i0 + 1) {
    c4_u[c4_i0] = 0.0;
  }
  c4_b_y = NULL;
  sf_mex_assign(&c4_b_y, sf_mex_create(&c4_u, "y", 0, 0U, 1U, 1, 3));
  sf_mex_call("disp", 0U, 1U, 14, c4_b_y);
  c4_y[0] = c4_t[0];
  c4_y[2] = c4_t[2];
  c4_y[1] = c4_t[1] - c4_t[2];
  for(c4_i0 = 0; c4_i0 < 3; c4_i0 = c4_i0 + 1) {
    (*c4_c_y)[c4_i0] = c4_y[c4_i0];
  }
  _sfEvent_ = c4_previousEvent;
}
Esempio n. 3
0
File: c3_V2A1_2.c Progetto: d-f/MTP
static void sf_c3_V2A1_2(SFc3_V2A1_2InstanceStruct *chartInstance)
{
  int32_T c3_i2;
  real_T c3_hoistedGlobal;
  real_T c3_b_hoistedGlobal;
  real_T c3_delta;
  real_T c3_hoehe;
  uint32_T c3_debug_family_var_map[9];
  real_T c3_er;
  real_T c3_bogen_delta;
  real_T c3_x;
  real_T c3_y;
  real_T c3_nargin = 2.0;
  real_T c3_nargout = 1.0;
  real_T c3_x0[2];
  real_T c3_a;
  real_T c3_b_y;
  real_T c3_A;
  real_T c3_b_x;
  real_T c3_c_x;
  real_T c3_d_x;
  real_T c3_e_x;
  real_T c3_b_a;
  real_T c3_b;
  real_T c3_f_x;
  real_T c3_g_x;
  real_T c3_c_a;
  real_T c3_b_b;
  int32_T c3_i3;
  real_T c3_u[2];
  const mxArray *c3_c_y = NULL;
  int32_T c3_i4;
  real_T *c3_b_hoehe;
  real_T *c3_b_delta;
  real_T (*c3_b_x0)[2];
  c3_b_hoehe = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);
  c3_b_x0 = (real_T (*)[2])ssGetOutputPortSignal(chartInstance->S, 1);
  c3_b_delta = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);
  _SFD_SYMBOL_SCOPE_PUSH(0U, 0U);
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 2U, chartInstance->c3_sfEvent);
  _SFD_DATA_RANGE_CHECK(*c3_b_delta, 0U);
  for (c3_i2 = 0; c3_i2 < 2; c3_i2++) {
    _SFD_DATA_RANGE_CHECK((*c3_b_x0)[c3_i2], 1U);
  }

  _SFD_DATA_RANGE_CHECK(*c3_b_hoehe, 2U);
  chartInstance->c3_sfEvent = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 2U, chartInstance->c3_sfEvent);
  c3_hoistedGlobal = *c3_b_delta;
  c3_b_hoistedGlobal = *c3_b_hoehe;
  c3_delta = c3_hoistedGlobal;
  c3_hoehe = c3_b_hoistedGlobal;
  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 9U, 9U, c3_debug_family_names,
    c3_debug_family_var_map);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_er, 0U, c3_b_sf_marshallOut,
    c3_b_sf_marshallIn);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_bogen_delta, 1U, c3_b_sf_marshallOut,
    c3_b_sf_marshallIn);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_x, 2U, c3_b_sf_marshallOut,
    c3_b_sf_marshallIn);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_y, 3U, c3_b_sf_marshallOut,
    c3_b_sf_marshallIn);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargin, 4U, c3_b_sf_marshallOut,
    c3_b_sf_marshallIn);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargout, 5U, c3_b_sf_marshallOut,
    c3_b_sf_marshallIn);
  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_delta, 6U, c3_b_sf_marshallOut);
  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_hoehe, 7U, c3_b_sf_marshallOut);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c3_x0, 8U, c3_sf_marshallOut,
    c3_sf_marshallIn);
  CV_EML_FCN(0, 0);
  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 2);
  c3_er = 6.378E+6;
  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 3);
  c3_a = c3_delta;
  c3_b_y = c3_a * 3.1415926535897931;
  c3_A = c3_b_y;
  c3_b_x = c3_A;
  c3_c_x = c3_b_x;
  c3_bogen_delta = c3_c_x / 180.0;
  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 4);
  c3_d_x = c3_bogen_delta;
  c3_e_x = c3_d_x;
  c3_e_x = muDoubleScalarCos(c3_e_x);
  c3_b_a = c3_e_x;
  c3_b = c3_er + c3_hoehe;
  c3_x = c3_b_a * c3_b;
  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 5);
  c3_f_x = c3_bogen_delta;
  c3_g_x = c3_f_x;
  c3_g_x = muDoubleScalarSin(c3_g_x);
  c3_c_a = c3_g_x;
  c3_b_b = c3_er + c3_hoehe;
  c3_y = c3_c_a * c3_b_b;
  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 7);
  c3_x0[0] = c3_x;
  c3_x0[1] = c3_y;
  sf_mex_printf("%s =\\n", "x0");
  for (c3_i3 = 0; c3_i3 < 2; c3_i3++) {
    c3_u[c3_i3] = c3_x0[c3_i3];
  }

  c3_c_y = NULL;
  sf_mex_assign(&c3_c_y, sf_mex_create("y", c3_u, 0, 0U, 1U, 0U, 1, 2), FALSE);
  sf_mex_call_debug("disp", 0U, 1U, 14, c3_c_y);
  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, -7);
  _SFD_SYMBOL_SCOPE_POP();
  for (c3_i4 = 0; c3_i4 < 2; c3_i4++) {
    (*c3_b_x0)[c3_i4] = c3_x0[c3_i4];
  }

  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 2U, chartInstance->c3_sfEvent);
  _SFD_SYMBOL_SCOPE_POP();
  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_V2A1_2MachineNumber_,
    chartInstance->chartNumber, chartInstance->instanceNumber);
}
static void sf_c9_testing_control_with_estimate
  (SFc9_testing_control_with_estimateInstanceStruct *chartInstance)
{
  real_T c9_hoistedGlobal;
  real_T c9_b_hoistedGlobal;
  real_T c9_c_hoistedGlobal;
  real_T c9_d_hoistedGlobal;
  real_T c9_s1;
  real_T c9_dc1;
  real_T c9_s2;
  real_T c9_dc2;
  uint32_T c9_debug_family_var_map[10];
  real_T c9_dc[3];
  real_T c9_nargin = 4.0;
  real_T c9_nargout = 3.0;
  real_T c9_Va;
  real_T c9_Vb;
  real_T c9_Vc;
  int32_T c9_i0;
  int32_T c9_i1;
  real_T c9_u[3];
  const mxArray *c9_y = NULL;
  int32_T c9_i2;
  real_T c9_b_u[3];
  const mxArray *c9_b_y = NULL;
  real_T c9_a;
  real_T c9_b_a;
  real_T c9_c_a;
  real_T *c9_b_s1;
  real_T *c9_b_Va;
  real_T *c9_b_dc1;
  real_T *c9_b_s2;
  real_T *c9_b_dc2;
  real_T *c9_b_Vb;
  real_T *c9_b_Vc;
  c9_b_Vc = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);
  c9_b_Vb = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);
  c9_b_dc2 = (real_T *)ssGetInputPortSignal(chartInstance->S, 3);
  c9_b_s2 = (real_T *)ssGetInputPortSignal(chartInstance->S, 2);
  c9_b_dc1 = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);
  c9_b_Va = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);
  c9_b_s1 = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 5U, chartInstance->c9_sfEvent);
  _SFD_DATA_RANGE_CHECK(*c9_b_s1, 0U);
  _SFD_DATA_RANGE_CHECK(*c9_b_Va, 1U);
  _SFD_DATA_RANGE_CHECK(*c9_b_dc1, 2U);
  _SFD_DATA_RANGE_CHECK(*c9_b_s2, 3U);
  _SFD_DATA_RANGE_CHECK(*c9_b_dc2, 4U);
  _SFD_DATA_RANGE_CHECK(*c9_b_Vb, 5U);
  _SFD_DATA_RANGE_CHECK(*c9_b_Vc, 6U);
  chartInstance->c9_sfEvent = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 5U, chartInstance->c9_sfEvent);
  c9_hoistedGlobal = *c9_b_s1;
  c9_b_hoistedGlobal = *c9_b_dc1;
  c9_c_hoistedGlobal = *c9_b_s2;
  c9_d_hoistedGlobal = *c9_b_dc2;
  c9_s1 = c9_hoistedGlobal;
  c9_dc1 = c9_b_hoistedGlobal;
  c9_s2 = c9_c_hoistedGlobal;
  c9_dc2 = c9_d_hoistedGlobal;
  sf_debug_symbol_scope_push_eml(0U, 10U, 10U, c9_debug_family_names,
    c9_debug_family_var_map);
  sf_debug_symbol_scope_add_eml_importable(c9_dc, 0U, c9_b_sf_marshallOut,
    c9_b_sf_marshallIn);
  sf_debug_symbol_scope_add_eml_importable(&c9_nargin, 1U, c9_sf_marshallOut,
    c9_sf_marshallIn);
  sf_debug_symbol_scope_add_eml_importable(&c9_nargout, 2U, c9_sf_marshallOut,
    c9_sf_marshallIn);
  sf_debug_symbol_scope_add_eml(&c9_s1, 3U, c9_sf_marshallOut);
  sf_debug_symbol_scope_add_eml(&c9_dc1, 4U, c9_sf_marshallOut);
  sf_debug_symbol_scope_add_eml(&c9_s2, 5U, c9_sf_marshallOut);
  sf_debug_symbol_scope_add_eml(&c9_dc2, 6U, c9_sf_marshallOut);
  sf_debug_symbol_scope_add_eml_importable(&c9_Va, 7U, c9_sf_marshallOut,
    c9_sf_marshallIn);
  sf_debug_symbol_scope_add_eml_importable(&c9_Vb, 8U, c9_sf_marshallOut,
    c9_sf_marshallIn);
  sf_debug_symbol_scope_add_eml_importable(&c9_Vc, 9U, c9_sf_marshallOut,
    c9_sf_marshallIn);
  CV_EML_FCN(0, 0);
  _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 10);
  for (c9_i0 = 0; c9_i0 < 3; c9_i0++) {
    c9_dc[c9_i0] = 0.0;
  }

  _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 12);
  switch ((int32_T)_SFD_INTEGER_CHECK("s1", c9_s1)) {
   case 1:
    CV_EML_SWITCH(0, 1, 0, 1);
    _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 15);
    if (CV_EML_IF(0, 1, 0, c9_s2 == 2.0)) {
      _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 16);
      c9_dc[0] = c9_dc1 + c9_dc2;
      c9_dc[1] = c9_dc2;
      c9_dc[2] = 0.0;
    } else {
      _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 18);
      c9_dc[0] = c9_dc1 + c9_dc2;
      c9_dc[1] = 0.0;
      c9_dc[2] = c9_dc2;
    }
    break;

   case 2:
    CV_EML_SWITCH(0, 1, 0, 2);
    _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 21);
    if (CV_EML_IF(0, 1, 1, c9_s2 == 3.0)) {
      _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 22);
      c9_dc[0] = c9_dc1;
      c9_dc[1] = c9_dc1 + c9_dc2;
      c9_dc[2] = 0.0;
    } else {
      _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 24);
      c9_dc[0] = c9_dc1 + c9_dc2;
      c9_dc[1] = c9_dc1;
      c9_dc[2] = 0.0;
    }
    break;

   case 3:
    CV_EML_SWITCH(0, 1, 0, 3);
    _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 27);
    if (CV_EML_IF(0, 1, 2, c9_s2 == 4.0)) {
      _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 28);
      c9_dc[0] = 0.0;
      c9_dc[1] = c9_dc1 + c9_dc2;
      c9_dc[2] = c9_dc2;
    } else {
      _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 30);
      c9_dc[0] = c9_dc2;
      c9_dc[1] = c9_dc1 + c9_dc2;
      c9_dc[2] = 0.0;
    }
    break;

   case 4:
    CV_EML_SWITCH(0, 1, 0, 4);
    _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 33);
    if (CV_EML_IF(0, 1, 3, c9_s2 == 5.0)) {
      _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 34);
      c9_dc[0] = 0.0;
      c9_dc[1] = c9_dc1;
      c9_dc[2] = c9_dc1 + c9_dc2;
    } else {
      _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 36);
      c9_dc[0] = 0.0;
      c9_dc[1] = c9_dc1 + c9_dc2;
      c9_dc[2] = c9_dc1;
      sf_mex_printf("%s =\\n", "dc");
      for (c9_i1 = 0; c9_i1 < 3; c9_i1++) {
        c9_u[c9_i1] = c9_dc[c9_i1];
      }

      c9_y = NULL;
      sf_mex_assign(&c9_y, sf_mex_create("y", c9_u, 0, 0U, 1U, 0U, 2, 1, 3),
                    FALSE);
      sf_mex_call_debug("disp", 0U, 1U, 14, c9_y);
    }
    break;

   case 5:
    CV_EML_SWITCH(0, 1, 0, 5);
    _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 39);
    if (CV_EML_IF(0, 1, 4, c9_s2 == 6.0)) {
      _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 40);
      c9_dc[0] = c9_dc2;
      c9_dc[1] = 0.0;
      c9_dc[2] = c9_dc1 + c9_dc2;
    } else {
      _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 42);
      c9_dc[0] = 0.0;
      c9_dc[1] = c9_dc2;
      c9_dc[2] = c9_dc1 + c9_dc2;
    }
    break;

   case 6:
    CV_EML_SWITCH(0, 1, 0, 6);
    _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 46);
    if (CV_EML_IF(0, 1, 5, c9_s2 == 1.0)) {
      _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 47);
      c9_dc[0] = c9_dc1 + c9_dc2;
      c9_dc[1] = 0.0;
      c9_dc[2] = c9_dc1;
    } else {
      _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 49);
      c9_dc[0] = c9_dc1;
      c9_dc[1] = 0.0;
      c9_dc[2] = c9_dc1 + c9_dc2;
      sf_mex_printf("%s =\\n", "dc");
      for (c9_i2 = 0; c9_i2 < 3; c9_i2++) {
        c9_b_u[c9_i2] = c9_dc[c9_i2];
      }

      c9_b_y = NULL;
      sf_mex_assign(&c9_b_y, sf_mex_create("y", c9_b_u, 0, 0U, 1U, 0U, 2, 1, 3),
                    FALSE);
      sf_mex_call_debug("disp", 0U, 1U, 14, c9_b_y);
    }
    break;

   default:
    CV_EML_SWITCH(0, 1, 0, 0);
    break;
  }

  _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 54);
  c9_a = c9_dc[0];
  c9_Va = c9_a * 12.0;
  _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 55);
  c9_b_a = c9_dc[1];
  c9_Vb = c9_b_a * 12.0;
  _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, 56);
  c9_c_a = c9_dc[2];
  c9_Vc = c9_c_a * 12.0;
  _SFD_EML_CALL(0U, chartInstance->c9_sfEvent, -56);
  sf_debug_symbol_scope_pop();
  *c9_b_Va = c9_Va;
  *c9_b_Vb = c9_Vb;
  *c9_b_Vc = c9_Vc;
  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 5U, chartInstance->c9_sfEvent);
  sf_debug_check_for_state_inconsistency
    (_testing_control_with_estimateMachineNumber_, chartInstance->chartNumber,
     chartInstance->instanceNumber);
}