static void sf_c4_MigrationBGOW_Proto6_MultiSwarm
  (SFc4_MigrationBGOW_Proto6_MultiSwarmInstanceStruct *chartInstance)
{
  real_T c4_hoistedGlobal;
  real_T c4_b_hoistedGlobal;
  real_T c4_x;
  real_T c4_y;
  uint32_T c4_debug_family_var_map[5];
  real_T c4_nargin = 2.0;
  real_T c4_nargout = 1.0;
  real_T c4_z;
  real_T c4_b_x;
  real_T c4_c_x;
  real_T *c4_d_x;
  real_T *c4_b_y;
  real_T *c4_b_z;
  c4_b_z = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);
  c4_b_y = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);
  c4_d_x = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 3U, chartInstance->c4_sfEvent);
  _SFD_DATA_RANGE_CHECK(*c4_d_x, 0U);
  _SFD_DATA_RANGE_CHECK(*c4_b_y, 1U);
  _SFD_DATA_RANGE_CHECK(*c4_b_z, 2U);
  chartInstance->c4_sfEvent = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 3U, chartInstance->c4_sfEvent);
  c4_hoistedGlobal = *c4_d_x;
  c4_b_hoistedGlobal = *c4_b_y;
  c4_x = c4_hoistedGlobal;
  c4_y = c4_b_hoistedGlobal;
  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 5U, 5U, c4_debug_family_names,
    c4_debug_family_var_map);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargin, 0U, c4_sf_marshallOut,
    c4_sf_marshallIn);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargout, 1U, c4_sf_marshallOut,
    c4_sf_marshallIn);
  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_x, 2U, c4_sf_marshallOut);
  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_y, 3U, c4_sf_marshallOut);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_z, 4U, c4_sf_marshallOut,
    c4_sf_marshallIn);
  CV_EML_FCN(0, 0);
  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 3);
  c4_b_x = (26.4196 - c4_mpower(chartInstance, c4_x - 1.44)) - c4_mpower
    (chartInstance, c4_y - 0.3677);
  c4_z = c4_b_x;
  if (c4_z < 0.0) {
    c4_eml_error(chartInstance);
  }

  c4_c_x = c4_z;
  c4_z = c4_c_x;
  c4_z = muDoubleScalarSqrt(c4_z);
  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 4);
  c4_z += 1.6;
  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, -4);
  _SFD_SYMBOL_SCOPE_POP();
  *c4_b_z = c4_z;
  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 3U, chartInstance->c4_sfEvent);
  _SFD_CHECK_FOR_STATE_INCONSISTENCY
    (_MigrationBGOW_Proto6_MultiSwarmMachineNumber_, chartInstance->chartNumber,
     chartInstance->instanceNumber);
}
예제 #2
0
static void sf_c4_trajectory_test(void)
{
  uint8_T c4_previousEvent;
  real_T c4_b_a0;
  real_T c4_b_a1;
  real_T c4_b_a2;
  real_T c4_b_a3;
  real_T c4_b_a4;
  real_T c4_b_a5;
  real_T c4_b_t_sim;
  real_T c4_b_t_end;
  real_T c4_Q[3];
  real_T c4_T[6][3];
  real_T c4_b_qapp;
  real_T c4_b_qap;
  real_T c4_b_qa;
  real_T c4_a;
  real_T c4_b_a;
  real_T c4_b;
  real_T c4_k;
  real_T c4_b_k;
  real_T c4_x;
  real_T c4_xk;
  real_T c4_ak;
  real_T c4_b_x;
  real_T c4_b_xk;
  real_T c4_bk;
  real_T c4_c_x;
  real_T c4_y;
  real_T c4_b_y;
  real_T c4_c;
  real_T c4_A;
  real_T c4_B;
  real_T c4_d_x;
  real_T c4_c_y;
  real_T c4_z;
  real_T c4_d_y;
  real_T c4_b_A;
  real_T c4_b_B;
  real_T c4_e_x;
  real_T c4_e_y;
  real_T c4_b_z;
  real_T c4_f_y;
  real_T c4_c_A;
  real_T c4_c_B;
  real_T c4_f_x;
  real_T c4_g_y;
  real_T c4_c_z;
  real_T c4_h_y;
  real_T c4_d_A;
  real_T c4_d_B;
  real_T c4_g_x;
  real_T c4_i_y;
  real_T c4_d_z;
  real_T c4_j_y;
  real_T c4_e_A;
  real_T c4_e_B;
  real_T c4_h_x;
  real_T c4_k_y;
  real_T c4_e_z;
  real_T c4_l_y;
  real_T c4_f_A;
  real_T c4_f_B;
  real_T c4_i_x;
  real_T c4_m_y;
  real_T c4_f_z;
  real_T c4_n_y;
  real_T c4_g_A;
  real_T c4_g_B;
  real_T c4_j_x;
  real_T c4_o_y;
  real_T c4_g_z;
  real_T c4_p_y;
  real_T c4_q_y[6][1];
  real_T c4_r_y[6][1];
  real_T c4_em_dv0[6][1];
  int32_T c4_em_i0;
  int32_T c4_em_i1;
  int32_T c4_em_i2;
  real_T c4_c_a0[6];
  int32_T c4_em_i3;
  int32_T c4_em_i4;
  _sfTime_ = (real_T)ssGetT(chartInstance.S);
  _SFD_DATA_RANGE_CHECK(*c4_a0(), 7U);
  _SFD_DATA_RANGE_CHECK(*c4_a1(), 6U);
  _SFD_DATA_RANGE_CHECK(*c4_a2(), 2U);
  _SFD_DATA_RANGE_CHECK(*c4_a3(), 10U);
  _SFD_DATA_RANGE_CHECK(*c4_a4(), 8U);
  _SFD_DATA_RANGE_CHECK(*c4_a5(), 1U);
  _SFD_DATA_RANGE_CHECK(*c4_t_sim(), 4U);
  _SFD_DATA_RANGE_CHECK(*c4_qa(), 9U);
  _SFD_DATA_RANGE_CHECK(*c4_qap(), 3U);
  _SFD_DATA_RANGE_CHECK(*c4_qapp(), 0U);
  _SFD_DATA_RANGE_CHECK(*c4_t_end(), 5U);
  c4_previousEvent = _sfEvent_;
  _sfEvent_ = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG,1);
  c4_b_a0 = *c4_a0();
  c4_b_a1 = *c4_a1();
  c4_b_a2 = *c4_a2();
  c4_b_a3 = *c4_a3();
  c4_b_a4 = *c4_a4();
  c4_b_a5 = *c4_a5();
  c4_b_t_sim = *c4_t_sim();
  c4_b_t_end = *c4_t_end();
  sf_debug_push_symbol_scope(13U, 0U);
  sf_debug_symbol_scope_add_symbol("Q", 0, 1U, 3U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 1, &c4_Q, 0);
  sf_debug_symbol_scope_add_symbol("T", 0, 2U, 3U, 6U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 1, &c4_T, 0);
  sf_debug_symbol_scope_add_symbol("qapp", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 0, &c4_b_qapp, 0);
  sf_debug_symbol_scope_add_symbol("qap", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c4_b_qap, 0);
  sf_debug_symbol_scope_add_symbol("qa", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c4_b_qa, 0);
  sf_debug_symbol_scope_add_symbol("t_end", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 0, &c4_b_t_end, 0);
  sf_debug_symbol_scope_add_symbol("t_sim", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 0, &c4_b_t_sim, 0);
  sf_debug_symbol_scope_add_symbol("a5", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c4_b_a5, 0);
  sf_debug_symbol_scope_add_symbol("a4", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c4_b_a4, 0);
  sf_debug_symbol_scope_add_symbol("a3", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c4_b_a3, 0);
  sf_debug_symbol_scope_add_symbol("a2", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c4_b_a2, 0);
  sf_debug_symbol_scope_add_symbol("a1", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c4_b_a1, 0);
  sf_debug_symbol_scope_add_symbol("a0", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c4_b_a0, 0);
  CV_EML_FCN(0, 0);
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,4);
  if(CV_EML_IF(0, 0, c4_b_t_sim >= c4_b_t_end)) {
    /*  This block supports an embeddable subset of the MATLAB language. */
    /*  See the help menu for details.  */
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,5);
    c4_b_t_sim = c4_b_t_end;
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,7);
  c4_a = c4_b_t_sim;
  c4_b_a = c4_a;
  c4_b = 5.0;
  c4_k = 1.0;
  c4_b_k = c4_k;
  c4_x = c4_b_a;
  c4_xk = c4_x;
  c4_ak = c4_xk;
  c4_b_x = c4_b;
  c4_b_xk = c4_b_x;
  c4_bk = c4_b_xk;
  if(c4_ak < 0.0) {
    c4_c_x = c4_bk;
    c4_y = floor(c4_c_x);
    if(c4_y != c4_bk) {
      sf_mex_call("error", 0U, 1U, 15,
       "Domain error. To compute complex results, make at least one input complex, e.g. \'power(complex(a),b)\'.");
    }
  }
  _SFD_EML_ARRAY_BOUNDS_CHECK("y", (int32_T)_SFD_INTEGER_CHECK("k", c4_b_k), 1,
   1, 1);
  c4_b_y = pow(c4_ak, c4_bk);
  c4_c = c4_b_y;
  c4_A = c4_c;
  c4_B = 20.0;
  c4_d_x = c4_A;
  c4_c_y = c4_B;
  c4_z = c4_d_x / c4_c_y;
  c4_d_y = c4_z;
  c4_b_A = c4_mpower(c4_b_t_sim);
  c4_b_B = 12.0;
  c4_e_x = c4_b_A;
  c4_e_y = c4_b_B;
  c4_b_z = c4_e_x / c4_e_y;
  c4_f_y = c4_b_z;
  c4_c_A = c4_b_mpower(c4_b_t_sim);
  c4_c_B = 6.0;
  c4_f_x = c4_c_A;
  c4_g_y = c4_c_B;
  c4_c_z = c4_f_x / c4_g_y;
  c4_h_y = c4_c_z;
  c4_d_A = c4_c_mpower(c4_b_t_sim);
  c4_d_B = 2.0;
  c4_g_x = c4_d_A;
  c4_i_y = c4_d_B;
  c4_d_z = c4_g_x / c4_i_y;
  c4_j_y = c4_d_z;
  c4_e_A = c4_mpower(c4_b_t_sim);
  c4_e_B = 4.0;
  c4_h_x = c4_e_A;
  c4_k_y = c4_e_B;
  c4_e_z = c4_h_x / c4_k_y;
  c4_l_y = c4_e_z;
  c4_f_A = c4_b_mpower(c4_b_t_sim);
  c4_f_B = 3.0;
  c4_i_x = c4_f_A;
  c4_m_y = c4_f_B;
  c4_f_z = c4_i_x / c4_m_y;
  c4_n_y = c4_f_z;
  c4_g_A = c4_c_mpower(c4_b_t_sim);
  c4_g_B = 2.0;
  c4_j_x = c4_g_A;
  c4_o_y = c4_g_B;
  c4_g_z = c4_j_x / c4_o_y;
  c4_p_y = c4_g_z;
  c4_q_y[0][0] = c4_d_y;
  c4_q_y[1][0] = c4_f_y;
  c4_q_y[2][0] = c4_h_y;
  c4_q_y[3][0] = c4_j_y;
  c4_q_y[4][0] = c4_b_t_sim;
  c4_q_y[5][0] = 1.0;
  c4_r_y[0][0] = c4_l_y;
  c4_r_y[1][0] = c4_n_y;
  c4_r_y[2][0] = c4_p_y;
  c4_r_y[3][0] = c4_b_t_sim;
  c4_r_y[4][0] = 1.0;
  c4_r_y[5][0] = 0.0;
  c4_em_dv0[0][0] = c4_b_mpower(c4_b_t_sim);
  c4_em_dv0[1][0] = c4_c_mpower(c4_b_t_sim);
  c4_em_dv0[2][0] = c4_b_t_sim;
  c4_em_dv0[3][0] = 1.0;
  c4_em_dv0[4][0] = 0.0;
  c4_em_dv0[5][0] = 0.0;
  for(c4_em_i0 = 0; c4_em_i0 < 6; c4_em_i0 = c4_em_i0 + 1) {
    c4_T[c4_em_i0][0] = c4_q_y[c4_em_i0][0];
  }
  for(c4_em_i1 = 0; c4_em_i1 < 6; c4_em_i1 = c4_em_i1 + 1) {
    c4_T[c4_em_i1][1] = c4_r_y[c4_em_i1][0];
  }
  for(c4_em_i2 = 0; c4_em_i2 < 6; c4_em_i2 = c4_em_i2 + 1) {
    c4_T[c4_em_i2][2] = c4_em_dv0[c4_em_i2][0];
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,10);
  c4_c_a0[0] = c4_b_a0;
  c4_c_a0[1] = c4_b_a1;
  c4_c_a0[2] = c4_b_a2;
  c4_c_a0[3] = c4_b_a3;
  c4_c_a0[4] = c4_b_a4;
  c4_c_a0[5] = c4_b_a5;
  for(c4_em_i3 = 0; c4_em_i3 < 3; c4_em_i3 = c4_em_i3 + 1) {
    c4_Q[c4_em_i3] = 0.0;
    for(c4_em_i4 = 0; c4_em_i4 < 6; c4_em_i4 = c4_em_i4 + 1) {
      c4_Q[c4_em_i3] = c4_Q[c4_em_i3] + c4_T[c4_em_i4][c4_em_i3] *
        c4_c_a0[c4_em_i4];
    }
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,12);
  c4_b_qa = c4_Q[0];
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,13);
  c4_b_qap = c4_Q[1];
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,14);
  c4_b_qapp = c4_Q[2];
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,-14);
  sf_debug_pop_symbol_scope();
  *c4_qa() = c4_b_qa;
  *c4_qap() = c4_b_qap;
  *c4_qapp() = c4_b_qapp;
  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG,1);
  _sfEvent_ = c4_previousEvent;
  sf_debug_check_for_state_inconsistency(_trajectory_testMachineNumber_,
   chartInstance.chartNumber, chartInstance.instanceNumber);
}