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

📄 ex0701.c

📁 使用须知 1. 文件夹 两个文件夹:Mbook和Mfiles。 Mbook文件夹:存放可以用于教学或自学的Mbook形式的文档。 MFiles文件夹:存放所有例题的M文件
💻 C
字号:
/*
 * Real-Time Workshop code generation for Simulink model "Ex0701.mdl".
 *
 * Model Version                        : 1.1
 * Real-Time Workshop file version      : 5.0 $Date: 2002/05/30 19:21:33 $
 * Real-Time Workshop file generated on : Sat Nov 29 23:13:27 2003
 * TLC version                          : 5.0 (Jun 18 2002)
 * C source code generated on           : Sat Nov 29 23:13:29 2003
 */

#include <math.h>
#include <string.h>
#include "Ex0701.h"
#include "Ex0701_private.h"

/* Block signals (auto storage) */
BlockIO rtB;

/* Block states (auto storage) */
D_Work rtDWork;

/* Parent Simstruct */
static rtModel_Ex0701 model_S;
rtModel_Ex0701 *const rtM_Ex0701 = &model_S;

/* Start for root system: '<Root>' */
void MdlStart(void)
{
}

/* Outputs for root system: '<Root>' */
void MdlOutputs(int_T tid)
{
  /* tid is required for a uniform function interface. This system
   * is single rate, and in this case, tid is not accessed. */
  UNUSED_PARAMETER(tid);

  /* Sin: '<Root>/Sine Wave' */

  rtB.Sine_Wave = rtP.Sine_Wave_Amp *
    sin(rtP.Sine_Wave_Freq * rtmGetT(rtM_Ex0701) + rtP.Sine_Wave_Phase) +
    rtP.Sine_Wave_Bias;
}

/* Update for root system: '<Root>' */
void MdlUpdate(int_T tid)
{

  /* tid is required for a uniform function interface. This system
   * is single rate, and in this case, tid is not accessed. */
  UNUSED_PARAMETER(tid);
}

/* Terminate for root system: '<Root>' */
void MdlTerminate(void)
{
  if(rtM_Ex0701 != NULL) {
  }
}

/* Function to initialize sizes */
void MdlInitializeSizes(void)
{
  rtM_Ex0701->Sizes.numContStates = (0); /* Number of continuous states */
  rtM_Ex0701->Sizes.numY = (0);         /* Number of model outputs */
  rtM_Ex0701->Sizes.numU = (0);         /* Number of model inputs */
  rtM_Ex0701->Sizes.sysDirFeedThru = (0); /* The model is not direct feedthrough */
  rtM_Ex0701->Sizes.numSampTimes = (2); /* Number of sample times */
  rtM_Ex0701->Sizes.numBlocks = (2);    /* Number of blocks */
  rtM_Ex0701->Sizes.numBlockIO = (1);   /* Number of block outputs */
  rtM_Ex0701->Sizes.numBlockPrms = (4); /* Sum of parameter "widths" */
}

/* Function to initialize sample times */
void MdlInitializeSampleTimes(void)
{
  /* task periods */
  rtM_Ex0701->Timing.sampleTimes[0] = (0.0);
  rtM_Ex0701->Timing.sampleTimes[1] = (0.2);

  /* task offsets */
  rtM_Ex0701->Timing.offsetTimes[0] = (0.0);
  rtM_Ex0701->Timing.offsetTimes[1] = (0.0);
}

/* Function to register the model */
rtModel_Ex0701 *Ex0701(void)
{
  (void)memset((char *)rtM_Ex0701, 0, sizeof(rtModel_Ex0701));

  {
    /* Setup solver object */
    static RTWSolverInfo rt_SolverInfo;
    rtM_Ex0701->solverInfo = (&rt_SolverInfo);

    rtsiSetSimTimeStepPtr(rtM_Ex0701->solverInfo,
     &rtM_Ex0701->Timing.simTimeStep);
    rtsiSetTPtr(rtM_Ex0701->solverInfo, &rtmGetTPtr(rtM_Ex0701));
    rtsiSetStepSizePtr(rtM_Ex0701->solverInfo, &rtM_Ex0701->Timing.stepSize);
    rtsiSetdXPtr(rtM_Ex0701->solverInfo, &rtM_Ex0701->ModelData.derivs);
    rtsiSetContStatesPtr(rtM_Ex0701->solverInfo,
     &rtM_Ex0701->ModelData.contStates);
    rtsiSetNumContStatesPtr(rtM_Ex0701->solverInfo,
     &rtM_Ex0701->Sizes.numContStates);
    rtsiSetErrorStatusPtr(rtM_Ex0701->solverInfo,
     &rtmGetErrorStatus(rtM_Ex0701));

    rtsiSetRTModelPtr(rtM_Ex0701->solverInfo, rtM_Ex0701);
  }

  /* timing info */
  {
    static time_T mdlPeriod[NSAMPLE_TIMES];
    static time_T mdlOffset[NSAMPLE_TIMES];
    static time_T mdlTaskTimes[NSAMPLE_TIMES];
    static int_T mdlTsMap[NSAMPLE_TIMES];
    static int_T mdlSampleHits[NSAMPLE_TIMES];

    {
      int_T i;

      for(i = 0; i < NSAMPLE_TIMES; i++) {
        mdlPeriod[i] = 0.0;
        mdlOffset[i] = 0.0;
        mdlTaskTimes[i] = 0.0;
      }
    }
    (void)memset((char_T *)&mdlTsMap[0], 0, 2 * sizeof(int_T));
    (void)memset((char_T *)&mdlSampleHits[0], 0, 2 * sizeof(int_T));

    rtM_Ex0701->Timing.sampleTimes = (&mdlPeriod[0]);
    rtM_Ex0701->Timing.offsetTimes = (&mdlOffset[0]);
    rtM_Ex0701->Timing.sampleTimeTaskIDPtr = (&mdlTsMap[0]);
    rtmSetTPtr(rtM_Ex0701, &mdlTaskTimes[0]);
    rtM_Ex0701->Timing.sampleHits = (&mdlSampleHits[0]);
  }
  rtsiSetSolverMode(rtM_Ex0701->solverInfo, SOLVER_MODE_SINGLETASKING);

  /*
   * initialize model vectors and cache them in SimStruct
   */

  /* block I/O */
  {
    void *b = (void *) &rtB;
    rtM_Ex0701->ModelData.blockIO = (b);

    {
      int_T i;

      b =&rtB.Sine_Wave;
      for (i = 0; i < 1; i++) {
        ((real_T*)b)[i] = 0.0;
      }
    }
  }

  /* parameters */
  rtM_Ex0701->ModelData.defaultParam = ((real_T *) &rtP);

  /* data type work */
  {
    void *dwork = (void *) &rtDWork;
    rtM_Ex0701->Work.dwork = (dwork);
    (void)memset((char_T *) dwork, 0, sizeof(D_Work));
  }

  /* Model specific registration */

  rtM_Ex0701->modelName = ("Ex0701");
  rtM_Ex0701->path = ("Ex0701");

  rtmSetTStart(rtM_Ex0701, 0.0);
  rtM_Ex0701->Timing.tFinal = (10.0);
  rtM_Ex0701->Timing.stepSize = (0.2);
  rtsiSetFixedStepSize(rtM_Ex0701->solverInfo, 0.2);
  /* Setup for data logging */
  {
    static RTWLogInfo rt_DataLoggingInfo;

    rtM_Ex0701->rtwLogInfo = (&rt_DataLoggingInfo);

    rtliSetLogFormat(rtM_Ex0701->rtwLogInfo, 0);

    rtliSetLogMaxRows(rtM_Ex0701->rtwLogInfo, 1000);

    rtliSetLogDecimation(rtM_Ex0701->rtwLogInfo, 1);

    rtliSetLogVarNameModifier(rtM_Ex0701->rtwLogInfo, "rt_");

    rtliSetLogT(rtM_Ex0701->rtwLogInfo, "tout");

    rtliSetLogX(rtM_Ex0701->rtwLogInfo, "");

    rtliSetLogXFinal(rtM_Ex0701->rtwLogInfo, "");

    rtliSetLogXSignalInfo(rtM_Ex0701->rtwLogInfo, NULL);

    rtliSetLogXSignalPtrs(rtM_Ex0701->rtwLogInfo, NULL);

    rtliSetLogY(rtM_Ex0701->rtwLogInfo, "");

    rtliSetLogYSignalInfo(rtM_Ex0701->rtwLogInfo, NULL);

    rtliSetLogYSignalPtrs(rtM_Ex0701->rtwLogInfo, NULL);
  }

  rtM_Ex0701->Sizes.checksums[0] = (2902955948U);
  rtM_Ex0701->Sizes.checksums[1] = (3314152765U);
  rtM_Ex0701->Sizes.checksums[2] = (1797761248U);
  rtM_Ex0701->Sizes.checksums[3] = (1524306962U);

  return rtM_Ex0701;
}

⌨️ 快捷键说明

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