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

📄 fox_nofcn.c

📁 这是一个用MATLAB仿真后生成的PID控制程序
💻 C
字号:
/*
 * File: fox_noFCN.c
 *
 * Real-Time Workshop code generated for Simulink model fox_noFCN.
 *
 * Model version                        : 1.166
 * Real-Time Workshop file version      : 7.0  (R2007b)  02-Aug-2007
 * Real-Time Workshop file generated on : Mon Jun 30 02:19:40 2008
 * TLC version                          : 7.0 (Jul 26 2007)
 * C source code generated on           : Mon Jun 30 02:19:41 2008
 */

#include "fox_noFCN.h"
#include "fox_noFCN_private.h"

/* Block signals (auto storage) */
BlockIO_fox_noFCN fox_noFCN_B;

/* Block states (auto storage) */
D_Work_fox_noFCN fox_noFCN_DWork;

/* External inputs (root inport signals with auto storage) */
ExternalInputs_fox_noFCN fox_noFCN_U;

/* External outputs (root outports fed by signals with auto storage) */
ExternalOutputs_fox_noFCN fox_noFCN_Y;

/* Model step function */
void fox_noFCN_step(void)
{
  /* local block i/o variables */
  real_T rtb_Sum;
  real_T rtb_u;
  real_T rtb_u_h;
  real_T rtb_Switch;

  /* Memory: '<Root>/Memory' */
  rtb_Switch = fox_noFCN_DWork.Memory_PreviousInput;

  /* Outport: '<Root>/Out1' */
  fox_noFCN_Y.Out1 = rtb_Switch;

  /* Sum: '<Root>/Sum' incorporates:
   *  Inport: '<Root>/In1'
   */
  rtb_Sum = fox_noFCN_U.In1 - rtb_Switch;

  /* Gain: '<Root>/  ' */
  rtb_u = 1.8 * rtb_Sum;

  /* DiscreteIntegrator: '<Root>/Discrete-Time Integrator ' */
  if (fox_noFCN_DWork.DiscreteTimeIntegrator_SYSTEM_E) {
    fox_noFCN_B.DiscreteTimeIntegrator =
      fox_noFCN_DWork.DiscreteTimeIntegrator_DSTATE;
    fox_noFCN_DWork.DiscreteTimeIntegrator_SYSTEM_E = 0U;
  } else {
    fox_noFCN_B.DiscreteTimeIntegrator = 20.0 * rtb_Sum +
      fox_noFCN_DWork.DiscreteTimeIntegrator_DSTATE;
  }

  /* DiscreteTransferFcn: '<Root>/Discrete Transfer Fcn ' */
  rtb_Switch = 1.0*rtb_Sum;
  rtb_Switch += -1.0*fox_noFCN_DWork.DiscreteTransferFcn_DSTATE;

  /* Gain: '<Root>/     ' */
  rtb_u_h = 0.2 * rtb_Switch;

  /* Switch: '<Root>/Switch' incorporates:
   *  Fcn: '<Root>/Fcn'
   *  Gain: '<Root>/    '
   *  Gain: '<Root>/   '
   */
  if (fabs(rtb_Sum) >= 0.8) {
    rtb_Switch = 0.0 * rtb_Sum;
  } else {
    rtb_Switch = 0.05 * fox_noFCN_B.DiscreteTimeIntegrator;
  }

  /* Update for Memory: '<Root>/Memory' incorporates:
   *  Sum: '<Root>/Sum2'
   */
  fox_noFCN_DWork.Memory_PreviousInput = (rtb_u + rtb_u_h) + rtb_Switch;

  /* Update for DiscreteIntegrator: '<Root>/Discrete-Time Integrator ' */
  fox_noFCN_DWork.DiscreteTimeIntegrator_DSTATE =
    fox_noFCN_B.DiscreteTimeIntegrator;

  /* DiscreteTransferFcn Block: '<Root>/Discrete Transfer Fcn ' */
  {
    fox_noFCN_DWork.DiscreteTransferFcn_DSTATE = rtb_Sum + (0.0)*
      fox_noFCN_DWork.DiscreteTransferFcn_DSTATE;
  }
}

/* Model initialize function */
void fox_noFCN_initialize(boolean_T firstTime)
{
  (void)firstTime;

  /* InitializeConditions for Memory: '<Root>/Memory' */
  fox_noFCN_DWork.Memory_PreviousInput = 0.0;

  /* Enable for DiscreteIntegrator: '<Root>/Discrete-Time Integrator ' */
  fox_noFCN_DWork.DiscreteTimeIntegrator_SYSTEM_E = 1U;
}

/* File trailer for Real-Time Workshop generated code.
 *
 * [EOF]
 */

⌨️ 快捷键说明

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