📄 ex0701.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 + -