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

📄 serialsim_no_observer_acc.c

📁 SVPWM应用
💻 C
📖 第 1 页 / 共 5 页
字号:
      }
    } else {
      /* Determine if any values need to change */
      if (serialsim_no_observer_DWork->Pulse_Generator_RWORK.nextTime <= time) {
        if (serialsim_no_observer_DWork->Pulse_Generator_IWORK.currValue == 1) {
          serialsim_no_observer_DWork->Pulse_Generator_IWORK.currValue = 0;
          serialsim_no_observer_DWork->Pulse_Generator_RWORK.nextTime = delay +
            (serialsim_no_observer_DWork->Pulse_Generator_IWORK.numCompleteCycles
            + 1) * serialsim_no_observer_P->Pulse_Generator_Period;
        } else {
          if ( serialsim_no_observer_DWork->Pulse_Generator_RWORK.nextTime !=
           delay) {
            serialsim_no_observer_DWork->Pulse_Generator_IWORK.numCompleteCycles
            += 1;
          }
          serialsim_no_observer_DWork->Pulse_Generator_IWORK.currValue = 1;
          serialsim_no_observer_DWork->Pulse_Generator_RWORK.nextTime = delay +
            serialsim_no_observer_DWork->Pulse_Generator_IWORK.numCompleteCycles
            * serialsim_no_observer_P->Pulse_Generator_Period
            + 0.01 * serialsim_no_observer_P->Pulse_Generator_Duty *
            serialsim_no_observer_P->Pulse_Generator_Period;
        }
      }
    }

    /* Set the next hit time */
    {
      real_T tNext = serialsim_no_observer_DWork->Pulse_Generator_RWORK.nextTime;
      _ssSetVarNextHitTime(S, (int_T)0.0, tNext);
    }

    /* Output the values */
    if (serialsim_no_observer_DWork->Pulse_Generator_IWORK.currValue == 1){
      serialsim_no_observer_B->Pulse_Generator =
        serialsim_no_observer_P->Pulse_Generator_Amp;
    } else {
      serialsim_no_observer_B->Pulse_Generator = 0;
    }
  }

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

    /* Constant: '<S5>/T2' */
    serialsim_no_observer_B->T2_a = serialsim_no_observer_P->T2_a_Value;

    /* Constant: '<S5>/T3' */
    serialsim_no_observer_B->T3_a = serialsim_no_observer_P->T3_a_Value;

    /* Constant: '<S5>/T4' */
    serialsim_no_observer_B->T4_a = serialsim_no_observer_P->T4_a_Value;

    /* Constant: '<S5>/T1' */
    serialsim_no_observer_B->T1_a = serialsim_no_observer_P->T1_a_Value;

    /* Constant: '<S5>/T7' */
    serialsim_no_observer_B->T7 = serialsim_no_observer_P->T7_Value;

    /* Constant: '<S9>/T1' */
    serialsim_no_observer_B->T1_b = serialsim_no_observer_P->T1_b_Value;

    /* Constant: '<S9>/T2' */
    serialsim_no_observer_B->T2_b = serialsim_no_observer_P->T2_b_Value;

    /* Constant: '<S9>/T3' */
    serialsim_no_observer_B->T3_b = serialsim_no_observer_P->T3_b_Value;

    /* Constant: '<S9>/T4' */
    serialsim_no_observer_B->T4_b = serialsim_no_observer_P->T4_b_Value;

    /* Constant: '<S9>/T5' */
    serialsim_no_observer_B->T5_a = serialsim_no_observer_P->T5_a_Value;

    /* Constant: '<S9>/T6' */
    serialsim_no_observer_B->T6_a = serialsim_no_observer_P->T6_a_Value;
  }

  if (ssIsSampleHit(S, 3, tid)) {       /* Sample time: [-2.0, 1.0] */

    /* DiscretePulseGenerator: '<S5>/Pulse Generator1' */
    real_T time = ssGetTaskTime(S,tid);
    real_T delay = 0.0;
    if ( (int_T)serialsim_no_observer_DWork->Pulse_Generator1_IWORK.justEnabled
     ) {
      serialsim_no_observer_DWork->Pulse_Generator1_IWORK.justEnabled = 0;
      if (time >= delay) {
        real_T ratio = (time - delay)/
          serialsim_no_observer_P->Pulse_Generator1_Period;

        serialsim_no_observer_DWork->Pulse_Generator1_IWORK.numCompleteCycles =
          (int)floor(ratio);

        if (
         fabs((serialsim_no_observer_DWork->Pulse_Generator1_IWORK.numCompleteCycles+1)-
          ratio ) < DBL_EPSILON * ratio )
        {
          serialsim_no_observer_DWork->Pulse_Generator1_IWORK.numCompleteCycles
          =
            serialsim_no_observer_DWork->Pulse_Generator1_IWORK.numCompleteCycles+1;
        }
        serialsim_no_observer_DWork->Pulse_Generator1_IWORK.numCompleteCycles =
          serialsim_no_observer_DWork->Pulse_Generator1_IWORK.numCompleteCycles;
        if (time < delay +
         serialsim_no_observer_DWork->Pulse_Generator1_IWORK.numCompleteCycles *
         serialsim_no_observer_P->Pulse_Generator1_Period
         + serialsim_no_observer_P->Pulse_Generator1_Duty *
         serialsim_no_observer_P->Pulse_Generator1_Period/100) {
          serialsim_no_observer_DWork->Pulse_Generator1_IWORK.currValue = 1;
          serialsim_no_observer_DWork->Pulse_Generator1_RWORK.nextTime = delay +
            serialsim_no_observer_DWork->Pulse_Generator1_IWORK.numCompleteCycles
            * serialsim_no_observer_P->Pulse_Generator1_Period
            + serialsim_no_observer_P->Pulse_Generator1_Duty *
            serialsim_no_observer_P->Pulse_Generator1_Period/100;
        } else {
          serialsim_no_observer_DWork->Pulse_Generator1_IWORK.currValue = 0;
          serialsim_no_observer_DWork->Pulse_Generator1_RWORK.nextTime = delay +
            (serialsim_no_observer_DWork->Pulse_Generator1_IWORK.numCompleteCycles
            + 1) * serialsim_no_observer_P->Pulse_Generator1_Period;
        }
      } else {
        serialsim_no_observer_DWork->Pulse_Generator1_IWORK.numCompleteCycles =
          0;
        serialsim_no_observer_DWork->Pulse_Generator1_IWORK.currValue = 0;
        serialsim_no_observer_DWork->Pulse_Generator1_RWORK.nextTime = delay;
      }
    } else {
      /* Determine if any values need to change */
      if (serialsim_no_observer_DWork->Pulse_Generator1_RWORK.nextTime <= time) {
        if (serialsim_no_observer_DWork->Pulse_Generator1_IWORK.currValue == 1) {
          serialsim_no_observer_DWork->Pulse_Generator1_IWORK.currValue = 0;
          serialsim_no_observer_DWork->Pulse_Generator1_RWORK.nextTime = delay +
            (serialsim_no_observer_DWork->Pulse_Generator1_IWORK.numCompleteCycles
            + 1) * serialsim_no_observer_P->Pulse_Generator1_Period;
        } else {
          if ( serialsim_no_observer_DWork->Pulse_Generator1_RWORK.nextTime !=
           delay) {
            serialsim_no_observer_DWork->Pulse_Generator1_IWORK.numCompleteCycles
            += 1;
          }
          serialsim_no_observer_DWork->Pulse_Generator1_IWORK.currValue = 1;
          serialsim_no_observer_DWork->Pulse_Generator1_RWORK.nextTime = delay +
            serialsim_no_observer_DWork->Pulse_Generator1_IWORK.numCompleteCycles
            * serialsim_no_observer_P->Pulse_Generator1_Period
            + 0.01 * serialsim_no_observer_P->Pulse_Generator1_Duty *
            serialsim_no_observer_P->Pulse_Generator1_Period;
        }
      }
    }

    /* Set the next hit time */
    {
      real_T tNext =
        serialsim_no_observer_DWork->Pulse_Generator1_RWORK.nextTime;
      _ssSetVarNextHitTime(S, (int_T)1.0, tNext);
    }

    /* Output the values */
    if (serialsim_no_observer_DWork->Pulse_Generator1_IWORK.currValue == 1){
      serialsim_no_observer_B->Pulse_Generator1 =
        serialsim_no_observer_P->Pulse_Generator1_Amp;
    } else {
      serialsim_no_observer_B->Pulse_Generator1 = 0;
    }
  }

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

    /* DiscretePulseGenerator: '<S5>/Pulse Generator2' */
    real_T time = ssGetTaskTime(S,tid);
    real_T delay = 0.0015;
    if ( (int_T)serialsim_no_observer_DWork->Pulse_Generator2_IWORK.justEnabled
     ) {
      serialsim_no_observer_DWork->Pulse_Generator2_IWORK.justEnabled = 0;
      if (time >= delay) {
        real_T ratio = (time - delay)/
          serialsim_no_observer_P->Pulse_Generator2_Period;

        serialsim_no_observer_DWork->Pulse_Generator2_IWORK.numCompleteCycles =
          (int)floor(ratio);

        if (
         fabs((serialsim_no_observer_DWork->Pulse_Generator2_IWORK.numCompleteCycles+1)-
          ratio ) < DBL_EPSILON * ratio )
        {
          serialsim_no_observer_DWork->Pulse_Generator2_IWORK.numCompleteCycles
          =
            serialsim_no_observer_DWork->Pulse_Generator2_IWORK.numCompleteCycles+1;
        }
        serialsim_no_observer_DWork->Pulse_Generator2_IWORK.numCompleteCycles =
          serialsim_no_observer_DWork->Pulse_Generator2_IWORK.numCompleteCycles;
        if (time < delay +
         serialsim_no_observer_DWork->Pulse_Generator2_IWORK.numCompleteCycles *
         serialsim_no_observer_P->Pulse_Generator2_Period
         + serialsim_no_observer_P->Pulse_Generator2_Duty *
         serialsim_no_observer_P->Pulse_Generator2_Period/100) {
          serialsim_no_observer_DWork->Pulse_Generator2_IWORK.currValue = 1;
          serialsim_no_observer_DWork->Pulse_Generator2_RWORK.nextTime = delay +
            serialsim_no_observer_DWork->Pulse_Generator2_IWORK.numCompleteCycles
            * serialsim_no_observer_P->Pulse_Generator2_Period
            + serialsim_no_observer_P->Pulse_Generator2_Duty *
            serialsim_no_observer_P->Pulse_Generator2_Period/100;
        } else {
          serialsim_no_observer_DWork->Pulse_Generator2_IWORK.currValue = 0;
          serialsim_no_observer_DWork->Pulse_Generator2_RWORK.nextTime = delay +
            (serialsim_no_observer_DWork->Pulse_Generator2_IWORK.numCompleteCycles
            + 1) * serialsim_no_observer_P->Pulse_Generator2_Period;
        }
      } else {
        serialsim_no_observer_DWork->Pulse_Generator2_IWORK.numCompleteCycles =
          0;
        serialsim_no_observer_DWork->Pulse_Generator2_IWORK.currValue = 0;
        serialsim_no_observer_DWork->Pulse_Generator2_RWORK.nextTime = delay;
      }
    } else {
      /* Determine if any values need to change */
      if (serialsim_no_observer_DWork->Pulse_Generator2_RWORK.nextTime <= time) {
        if (serialsim_no_observer_DWork->Pulse_Generator2_IWORK.currValue == 1) {
          serialsim_no_observer_DWork->Pulse_Generator2_IWORK.currValue = 0;
          serialsim_no_observer_DWork->Pulse_Generator2_RWORK.nextTime = delay +
            (serialsim_no_observer_DWork->Pulse_Generator2_IWORK.numCompleteCycles
            + 1) * serialsim_no_observer_P->Pulse_Generator2_Period;
        } else {
          if ( serialsim_no_observer_DWork->Pulse_Generator2_RWORK.nextTime !=
           delay) {
            serialsim_no_observer_DWork->Pulse_Generator2_IWORK.numCompleteCycles
            += 1;
          }
          serialsim_no_observer_DWork->Pulse_Generator2_IWORK.currValue = 1;
          serialsim_no_observer_DWork->Pulse_Generator2_RWORK.nextTime = delay +
            serialsim_no_observer_DWork->Pulse_Generator2_IWORK.numCompleteCycles
            * serialsim_no_observer_P->Pulse_Generator2_Period
            + 0.01 * serialsim_no_observer_P->Pulse_Generator2_Duty *
            serialsim_no_observer_P->Pulse_Generator2_Period;
        }
      }
    }

    /* Set the next hit time */
    {
      real_T tNext =
        serialsim_no_observer_DWork->Pulse_Generator2_RWORK.nextTime;
      _ssSetVarNextHitTime(S, (int_T)2.0, tNext);
    }

    /* Output the values */
    if (serialsim_no_observer_DWork->Pulse_Generator2_IWORK.currValue == 1){
      serialsim_no_observer_B->Pulse_Generator2 =
        serialsim_no_observer_P->Pulse_Generator2_Amp;
    } else {
      serialsim_no_observer_B->Pulse_Generator2 = 0;
    }
  }

  if (ssIsSampleHit(S, 5, tid)) {       /* Sample time: [-2.0, 3.0] */

    /* DiscretePulseGenerator: '<S5>/Pulse Generator3' */
    real_T time = ssGetTaskTime(S,tid);
    real_T delay = 0.0015;
    if ( (int_T)serialsim_no_observer_DWork->Pulse_Generator3_IWORK.justEnabled
     ) {
      serialsim_no_observer_DWork->Pulse_Generator3_IWORK.justEnabled = 0;
      if (time >= delay) {
        real_T ratio = (time - delay)/
          serialsim_no_observer_P->Pulse_Generator3_Period;

        serialsim_no_observer_DWork->Pulse_Generator3_IWORK.numCompleteCycles =
          (int)floor(ratio);

        if (
         fabs((serialsim_no_observer_DWork->Pulse_Generator3_IWORK.numCompleteCycles+1)-
          ratio ) < DBL_EPSILON * ratio )
        {
          serialsim_no_observer_DWork->Pulse_Generator3_IWORK.numCompleteCycles
          =
            serialsim_no_observer_DWork->Pulse_Generator3_IWORK.numCompleteCycles+1;
        }
        serialsim_no_observer_DWork->Pulse_Generator3_IWORK.numCompleteCycles =
          serialsim_no_observer_DWork->Pulse_Generator3_IWORK.numCompleteCycles;
        if (time < delay +
         serialsim_no_observer_DWork->Pulse_Generator3_IWORK.numCompleteCycles *
         serialsim_no_observer_P->Pulse_Generator3_Period
         + serialsim_no_observer_P->Pulse_Generator3_Duty *
         serialsim_no_observer_P->Pulse_Generator3_Period/100) {
          serialsim_no_observer_DWork->Pulse_Generator3_IWORK.currValue = 1;
          serialsim_no_observer_DWork->Pulse_Generator3_RWORK.nextTime = delay +
            serialsim_no_observer_DWork->Pulse_Generator3_IWORK.numCompleteCycles
            * serialsim_no_observer_P->Pulse_Generator3_Period
            + serialsim_no_observer_P->Pulse_Generator3_Duty *
            serialsim_no_observer_P->Pulse_Generator3_Period/100;
        } else {
          serialsim_no_observer_DWork->Pulse_Generator3_IWORK.currValue = 0;
          serialsim_no_observer_DWork->Pulse_Generator3_RWORK.nextTime = delay +
            (serialsim_no_observer_DWork->Pulse_Generator3_IWORK.numCompleteCycles
            + 1) * serialsim_no_observer_P->Pulse_Generator3_Period;
        }
      } else {
        serialsim_no_observer_DWork->Pulse_Generator3_IWORK.numCompleteCycles =
          0;
        serialsim_no_observer_DWork->Pulse_Generator3_IWORK.currValue = 0;
        serialsim_no_observer_DWork->Pulse_Generator3_RWORK.nextTime = delay;
      }
    } else {
      /* Determine if any values need to change */
      if (serialsim_no_observer_DWork->Pulse_Generator3_RWORK.nextTime <= time) {
        if (serialsim_no_observer_DWork->Pulse_Generator3_IWORK.currValue == 1) {
          serialsim_no_observer_DWork->Pulse_Generator3_IWORK.currValue = 0;
          serialsim_no_observer_DWork->Pulse_Generator3_RWORK.nextTime = delay +
            (serialsim_no_observer_DWork->Pulse_Generator3_IWORK.numCompleteCycles
            + 1) * serialsim_no_observer_P->Pulse_Generator3_Period;
        } else {
          if ( serialsim_no_observer_DWork->Pulse_Generator3_RWORK.nextTime !=
           delay) {
            serialsim_no_observer_DWork->Pulse_Generator3_IWORK.numCompleteCycles
            += 1;
          }
          serialsim_no_observer_DWork->Pulse_Generator3_IWORK.currValue = 1;
          serialsim_no_observer_DWork->Pulse_Generator3_RWORK.nextTime = delay +
            serialsim_no_observer_DWork->Pulse_Generator3_IWORK.numCompleteCycles
            * serialsim_no_observer_P->Pulse_Generator3_Period
            + 0.01 * serialsim_no_observer_P->Pulse_Generator3_Duty *
            serialsim_no_observer_P->Pulse_Generator3_Period;
        }
      }
    }

    /* Set the next hit time */
    {
      real_T tNext =
        serialsim_no_observer_DWork->Pulse_Generator3_RWORK.nextTime;
      _ssSetVarNextHitTime(S, (int_T)3.0, tNext);

⌨️ 快捷键说明

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