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

📄 demo1103_io_ad_pwm3_v7.c

📁 代码由matlab自动生成
💻 C
📖 第 1 页 / 共 2 页
字号:
/*
 * File: Demo1103_IO_AD_PWM3_V7.c
 *
 * Real-Time Workshop code generated for Simulink model Demo1103_IO_AD_PWM3_V7.
 *
 * Model version                        : 1.103
 * Real-Time Workshop file version      : 6.6  (R2007a)  01-Feb-2007
 * Real-Time Workshop file generated on : Thu Apr 10 19:48:30 2008
 * TLC version                          : 6.6 (Jan 16 2007)
 * C source code generated on           : Thu Apr 10 19:48:31 2008
 */

#include "Demo1103_IO_AD_PWM3_V7.h"
#include "Demo1103_IO_AD_PWM3_V7_private.h"

/* Block signals (auto storage) */
BlockIO_Demo1103_IO_AD_PWM3_V7 Demo1103_IO_AD_PWM3_V7_B;

/* Block states (auto storage) */
D_Work_Demo1103_IO_AD_PWM3_V7 Demo1103_IO_AD_PWM3_V7_DWork;

/* Real-time model */
RT_MODEL_Demo1103_IO_AD_PWM3_V7 Demo1103_IO_AD_PWM3_V7_M_;
RT_MODEL_Demo1103_IO_AD_PWM3_V7 *Demo1103_IO_AD_PWM3_V7_M =
  &Demo1103_IO_AD_PWM3_V7_M_;

/* Model step function */
void Demo1103_IO_AD_PWM3_V7_step(void)
{
  /* Memory: '<S5>/Memory1' */
  Demo1103_IO_AD_PWM3_V7_B.Memory1 =
    Demo1103_IO_AD_PWM3_V7_DWork.Memory1_PreviousInput;

  /* RelationalOperator: '<S2>/Relational Operator' incorporates:
   *  Constant: '<S2>/Constant1'
   */
  Demo1103_IO_AD_PWM3_V7_B.EnableSignal = (Demo1103_IO_AD_PWM3_V7_B.Memory1 >=
    Demo1103_IO_AD_PWM3_V7_P.Constant1_Value);

  /* DataStoreRead: '<S2>/Data Store Read' */
  Demo1103_IO_AD_PWM3_V7_B.DataStoreRead =
    Demo1103_IO_AD_PWM3_V7_DWork.Flag_data;

  /* Logic: '<S2>/Logical Operator' */
  Demo1103_IO_AD_PWM3_V7_B.LogicalOperator =
    (Demo1103_IO_AD_PWM3_V7_B.EnableSignal ||
     (Demo1103_IO_AD_PWM3_V7_B.DataStoreRead != 0.0));
  if (Demo1103_IO_AD_PWM3_V7_B.LogicalOperator) {
    /* Output and update for enable system: '<Root>/Enabled Subsystem' */

    /* DataStoreWrite: '<S3>/Data Store Write' incorporates:
     *  Constant: '<S3>/Constant1'
     */
    Demo1103_IO_AD_PWM3_V7_DWork.Flag_data =
      Demo1103_IO_AD_PWM3_V7_P.Constant1_Value_p;

    /* DiscreteTransferFcn Block: '<S8>/PT2'
     */
    Demo1103_IO_AD_PWM3_V7_B.PT2 = Demo1103_IO_AD_PWM3_V7_P.PT2_C*
      Demo1103_IO_AD_PWM3_V7_DWork.PT2_DSTATE;

    {
      real_T rtsaturate_U0DataInY0Container;
      real_T rtsaturate_U0DataInY0Containe_0;
      real_T rtsaturate_U0DataInY0Containe_1;
      real_T rtsaturate_U0DataInY0Containe_2;

      /* Saturate: '<S8>/Saturation' */
      rtsaturate_U0DataInY0Container = rt_SATURATE(Demo1103_IO_AD_PWM3_V7_B.PT2,
        Demo1103_IO_AD_PWM3_V7_P.Saturation_LowerSat,
        Demo1103_IO_AD_PWM3_V7_P.Saturation_UpperSat);
      Demo1103_IO_AD_PWM3_V7_B.Saturation = rtsaturate_U0DataInY0Container;

      /* Gain: '<S8>/to_fract' */
      Demo1103_IO_AD_PWM3_V7_B.to_fract = Demo1103_IO_AD_PWM3_V7_P.to_fract_Gain
        * Demo1103_IO_AD_PWM3_V7_B.Saturation;

      /* Gain: '<S3>/toggle' */
      Demo1103_IO_AD_PWM3_V7_B.toggle = Demo1103_IO_AD_PWM3_V7_P.toggle_Gain *
        Demo1103_IO_AD_PWM3_V7_B.to_fract;

      /* Switch: '<S3>/Switch' incorporates:
       *  Constant: '<S3>/Emergency stop'
       *  Constant: '<S3>/Original Position'
       */
      if (Demo1103_IO_AD_PWM3_V7_P.Emergencystop_Value >=
          Demo1103_IO_AD_PWM3_V7_P.Switch_Threshold) {
        Demo1103_IO_AD_PWM3_V7_B.Switch_p = Demo1103_IO_AD_PWM3_V7_B.toggle;
      } else {
        Demo1103_IO_AD_PWM3_V7_B.Switch_p =
          Demo1103_IO_AD_PWM3_V7_P.OriginalPosition_Value;
      }

      /* Saturate: '<S3>/control out' */
      rtsaturate_U0DataInY0Containe_0 = rt_SATURATE
        (Demo1103_IO_AD_PWM3_V7_B.Switch_p,
         Demo1103_IO_AD_PWM3_V7_P.controlout_LowerSat,
         Demo1103_IO_AD_PWM3_V7_P.controlout_UpperSat);
      Demo1103_IO_AD_PWM3_V7_B.controlout = rtsaturate_U0DataInY0Containe_0;

      /* Sum: '<S3>/Subtract1' incorporates:
       *  Constant: '<S3>/Duty_in_a'
       *  Constant: '<S3>/Duty_in_a1'
       */
      Demo1103_IO_AD_PWM3_V7_B.Subtract1 = (Demo1103_IO_AD_PWM3_V7_B.controlout
        + Demo1103_IO_AD_PWM3_V7_P.Duty_in_a_Value) -
        Demo1103_IO_AD_PWM3_V7_P.Duty_in_a1_Value;

      /* Saturate: '<S3>/Saturation1' */
      rtsaturate_U0DataInY0Containe_1 = rt_SATURATE
        (Demo1103_IO_AD_PWM3_V7_B.Subtract1,
         Demo1103_IO_AD_PWM3_V7_P.Saturation1_LowerSat,
         Demo1103_IO_AD_PWM3_V7_P.Saturation1_UpperSat);
      Demo1103_IO_AD_PWM3_V7_B.Saturation1 = rtsaturate_U0DataInY0Containe_1;

      /* Gain: '<S3>/toggle1' */
      Demo1103_IO_AD_PWM3_V7_B.toggle1 = Demo1103_IO_AD_PWM3_V7_P.toggle1_Gain *
        Demo1103_IO_AD_PWM3_V7_B.Saturation1;

      /* Sum: '<S3>/Subtract2' incorporates:
       *  Constant: '<S3>/Duty_in_a'
       *  Constant: '<S3>/Duty_in_a1'
       */
      Demo1103_IO_AD_PWM3_V7_B.Subtract2 =
        (Demo1103_IO_AD_PWM3_V7_P.Duty_in_a_Value +
         Demo1103_IO_AD_PWM3_V7_P.Duty_in_a1_Value) +
        Demo1103_IO_AD_PWM3_V7_B.controlout;

      /* Saturate: '<S3>/Saturation2' */
      rtsaturate_U0DataInY0Containe_2 = rt_SATURATE
        (Demo1103_IO_AD_PWM3_V7_B.Subtract2,
         Demo1103_IO_AD_PWM3_V7_P.Saturation2_LowerSat,
         Demo1103_IO_AD_PWM3_V7_P.Saturation2_UpperSat);
      Demo1103_IO_AD_PWM3_V7_B.Saturation2 = rtsaturate_U0DataInY0Containe_2;

      /* Gain: '<S3>/toggle2' */
      Demo1103_IO_AD_PWM3_V7_B.toggle2 = Demo1103_IO_AD_PWM3_V7_P.toggle2_Gain *
        Demo1103_IO_AD_PWM3_V7_B.Saturation2;
    }

    /* Gain: '<S6>/Slider Gain' incorporates:
     *  Constant: '<S3>/Aim_position'
     */
    Demo1103_IO_AD_PWM3_V7_B.SliderGain =
      Demo1103_IO_AD_PWM3_V7_P.SliderGain_Gain *
      Demo1103_IO_AD_PWM3_V7_P.Aim_position_Value;

    /* Gain: '<S7>/Slider Gain' incorporates:
     *  Constant: '<S3>/Constant2'
     */
    Demo1103_IO_AD_PWM3_V7_B.SliderGain_p =
      Demo1103_IO_AD_PWM3_V7_P.SliderGain_Gain_f *
      Demo1103_IO_AD_PWM3_V7_P.Constant2_Value;

    /* DiscreteTransferFcn Block: '<S8>/PT1'
     */
    Demo1103_IO_AD_PWM3_V7_B.PT1 = Demo1103_IO_AD_PWM3_V7_P.PT1_C*
      Demo1103_IO_AD_PWM3_V7_DWork.PT1_DSTATE;

    /* Sum: '<S8>/Sum1' */
    Demo1103_IO_AD_PWM3_V7_B.Sum1 = Demo1103_IO_AD_PWM3_V7_B.SliderGain -
      Demo1103_IO_AD_PWM3_V7_B.SliderGain_p;

    /* Gain: '<S8>/to_V' */
    Demo1103_IO_AD_PWM3_V7_B.to_V = Demo1103_IO_AD_PWM3_V7_P.to_V_Gain *
      Demo1103_IO_AD_PWM3_V7_B.Sum1;

    /* Gain: '<S8>/f_k_d' */
    Demo1103_IO_AD_PWM3_V7_B.f_k_d = Demo1103_IO_AD_PWM3_V7_P.f_k_d_Gain *
      Demo1103_IO_AD_PWM3_V7_B.to_V;

    /* DiscreteTransferFcn Block: '<S8>/DT1'
     */
    Demo1103_IO_AD_PWM3_V7_B.DT1 = Demo1103_IO_AD_PWM3_V7_P.DT1_D*
      Demo1103_IO_AD_PWM3_V7_B.f_k_d;
    Demo1103_IO_AD_PWM3_V7_B.DT1 += Demo1103_IO_AD_PWM3_V7_P.DT1_C*
      Demo1103_IO_AD_PWM3_V7_DWork.DT1_DSTATE;

    /* Gain: '<S8>/f_k_d1' */
    Demo1103_IO_AD_PWM3_V7_B.f_k_d1 = Demo1103_IO_AD_PWM3_V7_P.f_k_d1_Gain *
      Demo1103_IO_AD_PWM3_V7_B.DT1;

    /* DiscreteTransferFcn Block: '<S8>/DT2'
     */
    Demo1103_IO_AD_PWM3_V7_B.DT2 = Demo1103_IO_AD_PWM3_V7_P.DT2_D*
      Demo1103_IO_AD_PWM3_V7_B.f_k_d1;
    Demo1103_IO_AD_PWM3_V7_B.DT2 += Demo1103_IO_AD_PWM3_V7_P.DT2_C*
      Demo1103_IO_AD_PWM3_V7_DWork.DT2_DSTATE;

    /* Sum: '<S8>/Sum3' */
    Demo1103_IO_AD_PWM3_V7_B.Sum3 = (Demo1103_IO_AD_PWM3_V7_B.PT1 +
      Demo1103_IO_AD_PWM3_V7_B.DT1) + Demo1103_IO_AD_PWM3_V7_B.DT2;

    /* Fcn: '<S10>/Fcn' */
    Demo1103_IO_AD_PWM3_V7_B.Fcn = -(real_T)(fabs(Demo1103_IO_AD_PWM3_V7_B.Sum3)
      >= 0.59999999999999998);

    /* Switch: '<S10>/Switch' incorporates:
     *  Constant: '<S10>/zero'
     */
    if (Demo1103_IO_AD_PWM3_V7_B.Fcn >=
        Demo1103_IO_AD_PWM3_V7_P.Switch_Threshold_e) {
      Demo1103_IO_AD_PWM3_V7_B.Switch_a = Demo1103_IO_AD_PWM3_V7_B.to_V;
    } else {
      Demo1103_IO_AD_PWM3_V7_B.Switch_a = Demo1103_IO_AD_PWM3_V7_P.zero_Value;
    }

    /* DiscreteTransferFcn Block: '<S8>/I'
     */
    Demo1103_IO_AD_PWM3_V7_B.I = Demo1103_IO_AD_PWM3_V7_P.I_C*
      Demo1103_IO_AD_PWM3_V7_DWork.I_DSTATE;

    {
      real_T rtsaturate_U0DataInY0Container;

      /* Gain: '<S8>/f_k_p' */
      Demo1103_IO_AD_PWM3_V7_B.f_k_p = Demo1103_IO_AD_PWM3_V7_P.f_k_p_Gain *
        Demo1103_IO_AD_PWM3_V7_B.to_V;

      /* Gain: '<S8>/k_p' */
      Demo1103_IO_AD_PWM3_V7_B.k_p = Demo1103_IO_AD_PWM3_V7_P.k_p_Gain *
        Demo1103_IO_AD_PWM3_V7_B.f_k_p;

⌨️ 快捷键说明

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