⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dtc_svm_416_acc.c

📁 关于永磁同步电机DTC系统的无速度传感器
💻 C
📖 第 1 页 / 共 5 页
字号:
    dtc_svm_416_B->Sum_j = rtb_temp192
      - (dtc_svm_416_B->Resistance_a * dtc_svm_416_B->Fcn6);

    /* Sum: '<S20>/Sum1' incorporates:
     *   Product: '<S20>/Product1'
     */
    dtc_svm_416_B->Sum1_f = rtb_temp195
      - (dtc_svm_416_B->Fcn5 * dtc_svm_416_B->Resistance_a);
  }

  if (ssIsSampleHit(S, 2, tid)) {       /* Sample time: [1.0E-006, 0.0] */

    /* Scope: '<S7>/Pulse' */
    /* Call into Simulink for Scope */
    ssCallAccelRunBlock(S, 8, 156, SS_CALL_MDL_OUTPUTS);

    /* Scope: '<S7>/Pulse2' */
    /* Call into Simulink for Scope */
    ssCallAccelRunBlock(S, 8, 157, SS_CALL_MDL_OUTPUTS);
  }

  if (ssIsSampleHit(S, 6, tid)) {       /* Sample time: [0.0001, 0.0] */

    /* Scope: '<S7>/Pulse4' */
    /* Call into Simulink for Scope */
    ssCallAccelRunBlock(S, 8, 158, SS_CALL_MDL_OUTPUTS);
  }

  if (ssIsSampleHit(S, 2, tid)) {       /* Sample time: [1.0E-006, 0.0] */

    /* Gain: '<S21>/Kp5'
     *
     * Regarding '<S21>/Kp5':
     *   Gain value: dtc_svm_416_P->Kp5_b_Gain
     */
    dtc_svm_416_B->Kp5_b = rtb_Sum_b * dtc_svm_416_P->Kp5_b_Gain;
  }

  if (ssIsSampleHit(S, 5, tid)) {       /* Sample time: [0.00005, 0.0] */

    /* DiscreteIntegrator: '<S22>/Discrete-Time Integrator'
     *
     * Regarding '<S22>/Discrete-Time Integrator':
     *    Limited, w/o Saturation Port
     */
    dtc_svm_416_B->Discrete_Time_Integrat_e =
      dtc_svm_416_DWork->Discrete_Time_Integrat_e_DSTATE;
    if ( dtc_svm_416_B->Discrete_Time_Integrat_e >=
     dtc_svm_416_P->Discrete_Time_Integrat_e_UpperS ) {
      dtc_svm_416_B->Discrete_Time_Integrat_e =
        dtc_svm_416_P->Discrete_Time_Integrat_e_UpperS;
    } else if ( dtc_svm_416_B->Discrete_Time_Integrat_e <=
     dtc_svm_416_P->Discrete_Time_Integrat_e_LowerS ) {
      dtc_svm_416_B->Discrete_Time_Integrat_e =
        dtc_svm_416_P->Discrete_Time_Integrat_e_LowerS;
    }
  }

  if (ssIsContinuousTask(S, tid)) {     /* Sample time: [0.0, 0.0] */

    /* TransferFcn Block: <S8>/Transfer Fcn */
    rtb_temp192 =
      dtc_svm_416_P->Transfer_Fcn_C*dtc_svm_416_X->Transfer_Fcn_CSTATE;

    /* Sum: '<S8>/Sum4' */
    rtb_Sum4 = rtb_temp193 - rtb_temp192;

    /* Gain: '<S22>/Kp5'
     *
     * Regarding '<S22>/Kp5':
     *   Gain value: dtc_svm_416_P->Kp5_c_Gain
     */
    dtc_svm_416_B->Kp5_c = rtb_Sum4 * dtc_svm_416_P->Kp5_c_Gain;

    /* Sum: '<S22>/Sum6' incorporates:
     *   Gain: '<S22>/Kp4'
     *
     * Regarding '<S22>/Kp4':
     *   Gain value: dtc_svm_416_P->Kp4_c_Gain
     */
    dtc_svm_416_B->Sum6_d = (rtb_Sum4 * dtc_svm_416_P->Kp4_c_Gain)
      + dtc_svm_416_B->Discrete_Time_Integrat_e;

    /* Saturate: '<S22>/Saturation2'
     *
     * Regarding '<S22>/Saturation2':
     *   Lower limit: dtc_svm_416_P->Saturation2_c_LowerSat
     *   Upper limit: dtc_svm_416_P->Saturation2_c_UpperSat
     */
    if (ssIsMajorTimeStep(S)) {
      if (dtc_svm_416_B->Sum6_d >= dtc_svm_416_P->Saturation2_c_UpperSat) {
        dtc_svm_416_DWork->Saturation2_c_MODE = 1;
      } else if (dtc_svm_416_B->Sum6_d <= dtc_svm_416_P->Saturation2_c_LowerSat)
      {
        dtc_svm_416_DWork->Saturation2_c_MODE = -1;
      } else {
        dtc_svm_416_DWork->Saturation2_c_MODE = 0;
      }
    }
    /* Output value */
    if (dtc_svm_416_DWork->Saturation2_c_MODE == 1) {
      dtc_svm_416_B->Saturation2_c = dtc_svm_416_P->Saturation2_c_UpperSat;
    } else if (dtc_svm_416_DWork->Saturation2_c_MODE == -1) {
      dtc_svm_416_B->Saturation2_c = dtc_svm_416_P->Saturation2_c_LowerSat;
    } else {
      dtc_svm_416_B->Saturation2_c = dtc_svm_416_B->Sum6_d;
    }
  }

  if (ssIsSampleHit(S, 5, tid)) {       /* Sample time: [0.00005, 0.0] */

    /* DiscreteIntegrator: '<S23>/Discrete-Time Integrator'
     *
     * Regarding '<S23>/Discrete-Time Integrator':
     *    Limited, w/o Saturation Port
     */
    dtc_svm_416_B->Discrete_Time_Integrat_f =
      dtc_svm_416_DWork->Discrete_Time_Integrat_f_DSTATE;
    if ( dtc_svm_416_B->Discrete_Time_Integrat_f >=
     dtc_svm_416_P->Discrete_Time_Integrat_f_UpperS ) {
      dtc_svm_416_B->Discrete_Time_Integrat_f =
        dtc_svm_416_P->Discrete_Time_Integrat_f_UpperS;
    } else if ( dtc_svm_416_B->Discrete_Time_Integrat_f <=
     dtc_svm_416_P->Discrete_Time_Integrat_f_LowerS ) {
      dtc_svm_416_B->Discrete_Time_Integrat_f =
        dtc_svm_416_P->Discrete_Time_Integrat_f_LowerS;
    }
  }

  if (ssIsContinuousTask(S, tid)) {     /* Sample time: [0.0, 0.0] */

    /* TransferFcn Block: <S8>/Transfer Fcn1 */
    rtb_temp193 =
      dtc_svm_416_P->Transfer_Fcn1_C*dtc_svm_416_X->Transfer_Fcn1_CSTATE;

    /* Sum: '<S8>/Sum1' */
    rtb_Sum1_g = rtb_temp194 - rtb_temp193;

    /* Gain: '<S23>/Kp5'
     *
     * Regarding '<S23>/Kp5':
     *   Gain value: dtc_svm_416_P->Kp5_d_Gain
     */
    dtc_svm_416_B->Kp5_d = rtb_Sum1_g * dtc_svm_416_P->Kp5_d_Gain;

    /* Sum: '<S23>/Sum6' incorporates:
     *   Gain: '<S23>/Kp4'
     *
     * Regarding '<S23>/Kp4':
     *   Gain value: dtc_svm_416_P->Kp4_d_Gain
     */
    dtc_svm_416_B->Sum6_e = (rtb_Sum1_g * dtc_svm_416_P->Kp4_d_Gain)
      + dtc_svm_416_B->Discrete_Time_Integrat_f;

    /* Saturate: '<S23>/Saturation2'
     *
     * Regarding '<S23>/Saturation2':
     *   Lower limit: dtc_svm_416_P->Saturation2_d_LowerSat
     *   Upper limit: dtc_svm_416_P->Saturation2_d_UpperSat
     */
    if (ssIsMajorTimeStep(S)) {
      if (dtc_svm_416_B->Sum6_e >= dtc_svm_416_P->Saturation2_d_UpperSat) {
        dtc_svm_416_DWork->Saturation2_d_MODE = 1;
      } else if (dtc_svm_416_B->Sum6_e <= dtc_svm_416_P->Saturation2_d_LowerSat)
      {
        dtc_svm_416_DWork->Saturation2_d_MODE = -1;
      } else {
        dtc_svm_416_DWork->Saturation2_d_MODE = 0;
      }
    }
    /* Output value */
    if (dtc_svm_416_DWork->Saturation2_d_MODE == 1) {
      dtc_svm_416_B->Saturation2_d = dtc_svm_416_P->Saturation2_d_UpperSat;
    } else if (dtc_svm_416_DWork->Saturation2_d_MODE == -1) {
      dtc_svm_416_B->Saturation2_d = dtc_svm_416_P->Saturation2_d_LowerSat;
    } else {
      dtc_svm_416_B->Saturation2_d = dtc_svm_416_B->Sum6_e;
    }
  }

  if (ssIsSampleHit(S, 5, tid)) {       /* Sample time: [0.00005, 0.0] */

    /* DiscreteIntegrator: '<S24>/Discrete-Time Integrator'
     *
     * Regarding '<S24>/Discrete-Time Integrator':
     *    Limited, w/o Saturation Port
     */
    dtc_svm_416_B->Discrete_Time_Integrat_g =
      dtc_svm_416_DWork->Discrete_Time_Integrat_g_DSTATE;
    if ( dtc_svm_416_B->Discrete_Time_Integrat_g >=
     dtc_svm_416_P->Discrete_Time_Integrat_g_UpperS ) {
      dtc_svm_416_B->Discrete_Time_Integrat_g =
        dtc_svm_416_P->Discrete_Time_Integrat_g_UpperS;
    } else if ( dtc_svm_416_B->Discrete_Time_Integrat_g <=
     dtc_svm_416_P->Discrete_Time_Integrat_g_LowerS ) {
      dtc_svm_416_B->Discrete_Time_Integrat_g =
        dtc_svm_416_P->Discrete_Time_Integrat_g_LowerS;
    }
  }

  if (ssIsContinuousTask(S, tid)) {     /* Sample time: [0.0, 0.0] */

    /* TransferFcn Block: <S8>/Transfer Fcn2 */
    rtb_temp194 =
      dtc_svm_416_P->Transfer_Fcn2_C*dtc_svm_416_X->Transfer_Fcn2_CSTATE;

    /* Sum: '<S8>/Sum2' */
    rtb_Sum2_e = rtb_temp196 - rtb_temp194;

    /* Gain: '<S24>/Kp5'
     *
     * Regarding '<S24>/Kp5':
     *   Gain value: dtc_svm_416_P->Kp5_e_Gain
     */
    dtc_svm_416_B->Kp5_e = rtb_Sum2_e * dtc_svm_416_P->Kp5_e_Gain;

    /* Sum: '<S24>/Sum6' incorporates:
     *   Gain: '<S24>/Kp4'
     *
     * Regarding '<S24>/Kp4':
     *   Gain value: dtc_svm_416_P->Kp4_e_Gain
     */
    dtc_svm_416_B->Sum6_f = (rtb_Sum2_e * dtc_svm_416_P->Kp4_e_Gain)
      + dtc_svm_416_B->Discrete_Time_Integrat_g;

    /* Saturate: '<S24>/Saturation2'
     *
     * Regarding '<S24>/Saturation2':
     *   Lower limit: dtc_svm_416_P->Saturation2_e_LowerSat
     *   Upper limit: dtc_svm_416_P->Saturation2_e_UpperSat
     */
    if (ssIsMajorTimeStep(S)) {
      if (dtc_svm_416_B->Sum6_f >= dtc_svm_416_P->Saturation2_e_UpperSat) {
        dtc_svm_416_DWork->Saturation2_e_MODE = 1;
      } else if (dtc_svm_416_B->Sum6_f <= dtc_svm_416_P->Saturation2_e_LowerSat)
      {
        dtc_svm_416_DWork->Saturation2_e_MODE = -1;
      } else {
        dtc_svm_416_DWork->Saturation2_e_MODE = 0;
      }
    }
    /* Output value */
    if (dtc_svm_416_DWork->Saturation2_e_MODE == 1) {
      dtc_svm_416_B->Saturation2_e = dtc_svm_416_P->Saturation2_e_UpperSat;
    } else if (dtc_svm_416_DWork->Saturation2_e_MODE == -1) {
      dtc_svm_416_B->Saturation2_e = dtc_svm_416_P->Saturation2_e_LowerSat;
    } else {
      dtc_svm_416_B->Saturation2_e = dtc_svm_416_B->Sum6_f;
    }
  }

  if (ssIsSampleHit(S, 1, tid)) {       /* Sample time: [0.0, 1.0] */

    /* Scope: '<S9>/Scope' */
    /* Call into Simulink for Scope */
    ssCallAccelRunBlock(S, 8, 181, SS_CALL_MDL_OUTPUTS);

    /* Scope: '<S9>/Scope1' */
    /* Call into Simulink for Scope */
    ssCallAccelRunBlock(S, 8, 182, SS_CALL_MDL_OUTPUTS);
  }

  if (ssIsSampleHit(S, 2, tid)) {       /* Sample time: [1.0E-006, 0.0] */

    /* Scope: '<S9>/Scope2' */
    /* Call into Simulink for Scope */
    ssCallAccelRunBlock(S, 8, 183, SS_CALL_MDL_OUTPUTS);
  }

  if (ssIsSampleHit(S, 1, tid)) {       /* Sample time: [0.0, 1.0] */

    /* Scope: '<S9>/Scope3' */
    /* Call into Simulink for Scope */
    ssCallAccelRunBlock(S, 8, 184, SS_CALL_MDL_OUTPUTS);

    /* Sum: '<S27>/Sum' */
    dtc_svm_416_B->temp116 = rtb_Multiport_Switch1_a + rtb_Multiport_Switch_a;

    /* Scope: '<S27>/Scope' */
    /* Call into Simulink for Scope */
    ssCallAccelRunBlock(S, 8, 186, SS_CALL_MDL_OUTPUTS);
  }

  if (ssIsContinuousTask(S, tid)) {     /* Sample time: [0.0, 0.0] */

    /* Scope: '<S28>/Scope' */
    /* Call into Simulink for Scope */
    ssCallAccelRunBlock(S, 8, 187, SS_CALL_MDL_OUTPUTS);
  }

  if (ssIsSampleHit(S, 4, tid)) {       /* Sample time: [0.00001, 0.0] */

    /* Constant: '<S11>/Simulation method' */
    dtc_svm_416_B->Simulation_method_a =
      dtc_svm_416_P->Simulation_method_a_Value;
  }

  /* SubSystem: '<S11>/Phasor Measurements' */
  dtc_svm_416_Phasor_Measur(S, tid, dtc_svm_416_B->Simulation_method_a,
   dtc_svm_416_B->State_Space[6], &dtc_svm_416_DWork->Phasor_Mea_a,
   (rtP_dtc_svm_416_Phasor_Measur *) &dtc_svm_416_P->Phasor_Mea_a);

  if (ssIsSampleHit(S, 4, tid)) {       /* Sample time: [0.00001, 0.0] */

    /* Constant: '<S12>/Simulation method' */
    dtc_svm_416_B->Simulation_method_b =
      dtc_svm_416_P->Simulation_method_b_Value;
  }

  /* SubSystem: '<S12>/Phasor Measurements' */
  dtc_svm_416_Phasor_Measur(S, tid, dtc_svm_416_B->Simulation_method_b,
   dtc_svm_416_B->State_Space[7], &dtc_svm_416_DWork->Phasor_Mea_b,
   (rtP_dtc_svm_416_Phasor_Measur *) &dtc_svm_416_P->Phasor_Mea_b);

  if (ssIsSampleHit(S, 4, tid)) {       /* Sample time: [0.00001, 0.0] */

    /* Constant: '<S13>/Simulation method' */
    dtc_svm_416_B->Simulation_method_c =
      dtc_svm_416_P->Simulation_method_c_Value;
  }

  /* SubSystem: '<S13>/Phasor Measurements' */
  dtc_svm_416_Phasor_Measur(S, tid, dtc_svm_416_B->Simulation_method_c,
   dtc_svm_416_B->State_Space[8], &dtc_svm_416_DWork->Phasor_Mea_c,
   (rtP_dtc_svm_416_Phasor_Measur *) &dtc_svm_416_P->Phasor_Mea_c);

  if (ssIsSampleHit(S, 4, tid)) {       /* Sample time: [0.00001, 0.0] */

    /* Gain: '<S38>/1//Rsw'
     *
     * Regarding '<S38>/1//Rsw':
     *   Gain value: dtc_svm_416_P->Rsw_Gain
     */
    {
      int_T i1;

      const real_T *u0 = &dtc_svm_416_B->State_Space[0];
      real_T *y0 = &dtc_svm_416_B->Rsw[0];

      for (i1=0; i1 < 6; i1++) {
        y0[i1] = u0[i1] * dtc_svm_416_P->Rsw_Gain;
      }
    }
  }

  if (ssIsSampleHit(S, 1, tid)) {       /* Sample time: [0.0, 1.0] */

    /* Constant: '<S38>/Constant1' */
    dtc_svm_416_B->Constant1_b = dtc_svm_416_P->Constant1_b_Value;
  }

  if (ssIsSampleHit(S, 4, tid)) {       /* Sample time: [0.00001, 0.0] */

    /* Gain: '<S38>/Gain'
     *
     * Regarding '<S38>/Gain':
     *   Gain value: dtc_svm_416_P->Gain_e_Gain
     */
    {
      int_T i1;

      const real_T *u0 = &dtc_svm_416_B->State_Space[0];
      real_T *y0 = &dtc_svm_416_B->Gain_e[0];

      for (i1=0; i1 < 6; i1++) {
        y0[i1] = u0[i1] * dtc_svm_416_P->Gain_e_Gain;
      }
    }
  }

  if (ssIsSampleHit(S, 1, tid)) {       /* Sample time: [0.0, 1.0] */

    /* Constant: '<S39>/0 2' */
    dtc_svm_416_B->id_b = dtc_svm_416_P->id_b_Value;
  }

  if (ssIsSampleHit(S, 4, tid)) {       /* Sample time: [0.00001, 0.0] */

    /* UnitDelay: '<S43>/Unit Delay' */
    {
      int_T i1;

      boolean_T *y0 = &dtc_svm_416_B->Unit_Delay_b[0];
      boolean_T *dw_DSTATE = &dtc_svm_416_DWork->Unit_Delay_b_DSTATE[0];

      for (i1=0; i1 < 6; i1++) {
        y0[i1] = dw_DSTATE[i1];
      }
    }

    /* Logic: '<S43>/Logical Operator' */
    {
      int_T i1;

      boolean_T *y0 = &dtc_svm_416_B->Logical_Operator_b[0];
      const boolean_T *u0 = &dtc_svm_416_B->Unit_Delay_b[0];

      for (i1=0; i1 < 6; i1++) {
        y0[i1] = !u0[i1];
      }
    }
  }

  if (ssIsSampleHit(S, 1, tid)) {       /* Sample time: [0.0, 1.0] */

    /* Constant: '<S40>/Vpos' */
    dtc_svm_416_B->Vpos = dtc_svm_416_P->Vpos_Value;

    /* Constant: '<S40>/    ' */
    dtc_svm_416_B->id_c = dtc_svm_416_P->id_c_Value;

    /* DataTypeConversion: '<S40>/Data Type  Conversion3' */
    rtb_Data_Type_Conversion3_a = (dtc_svm_416_B->id_c != 0.0);

    /* Logic: '<S40>/. ' incorporates:
     *   DataTypeConversion: '<S40>/Data Type  Conversion1'
     *   RelationalOperator: '<S40>/b'
     *   Data

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -