409 lines
11 KiB
C
409 lines
11 KiB
C
/*
|
|
* Model.h
|
|
*
|
|
* Code generation for model "Model".
|
|
*
|
|
* Model version : 1.1
|
|
* Simulink Coder version : 9.7 (R2022a) 13-Nov-2021
|
|
* C++ source code generated on : Thu Mar 26 17:54:04 2026
|
|
*
|
|
* Target selection: grt.tlc
|
|
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
|
* Embedded hardware selection: Intel->x86-64 (Windows64)
|
|
* Code generation objectives: Unspecified
|
|
* Validation result: Not run
|
|
*/
|
|
|
|
#ifndef RTW_HEADER_Model_h_
|
|
#define RTW_HEADER_Model_h_
|
|
#include "rtwtypes.h"
|
|
#include "rtw_continuous.h"
|
|
#include "rtw_solver.h"
|
|
#include "rt_logging.h"
|
|
#include "Model_types.h"
|
|
#include <cfloat>
|
|
#include <cstring>
|
|
|
|
extern "C" {
|
|
|
|
#include "rt_nonfinite.h"
|
|
|
|
}
|
|
/* Macros for accessing real-time model data structure */
|
|
#ifndef rtmGetContStateDisabled
|
|
#define rtmGetContStateDisabled(rtm) ((rtm)->contStateDisabled)
|
|
#endif
|
|
|
|
#ifndef rtmSetContStateDisabled
|
|
#define rtmSetContStateDisabled(rtm, val) ((rtm)->contStateDisabled = (val))
|
|
#endif
|
|
|
|
#ifndef rtmGetContStates
|
|
#define rtmGetContStates(rtm) ((rtm)->contStates)
|
|
#endif
|
|
|
|
#ifndef rtmSetContStates
|
|
#define rtmSetContStates(rtm, val) ((rtm)->contStates = (val))
|
|
#endif
|
|
|
|
#ifndef rtmGetContTimeOutputInconsistentWithStateAtMajorStepFlag
|
|
#define rtmGetContTimeOutputInconsistentWithStateAtMajorStepFlag(rtm) ((rtm)->CTOutputIncnstWithState)
|
|
#endif
|
|
|
|
#ifndef rtmSetContTimeOutputInconsistentWithStateAtMajorStepFlag
|
|
#define rtmSetContTimeOutputInconsistentWithStateAtMajorStepFlag(rtm, val) ((rtm)->CTOutputIncnstWithState = (val))
|
|
#endif
|
|
|
|
#ifndef rtmGetDerivCacheNeedsReset
|
|
#define rtmGetDerivCacheNeedsReset(rtm) ((rtm)->derivCacheNeedsReset)
|
|
#endif
|
|
|
|
#ifndef rtmSetDerivCacheNeedsReset
|
|
#define rtmSetDerivCacheNeedsReset(rtm, val) ((rtm)->derivCacheNeedsReset = (val))
|
|
#endif
|
|
|
|
#ifndef rtmGetFinalTime
|
|
#define rtmGetFinalTime(rtm) ((rtm)->Timing.tFinal)
|
|
#endif
|
|
|
|
#ifndef rtmGetIntgData
|
|
#define rtmGetIntgData(rtm) ((rtm)->intgData)
|
|
#endif
|
|
|
|
#ifndef rtmSetIntgData
|
|
#define rtmSetIntgData(rtm, val) ((rtm)->intgData = (val))
|
|
#endif
|
|
|
|
#ifndef rtmGetOdeF
|
|
#define rtmGetOdeF(rtm) ((rtm)->odeF)
|
|
#endif
|
|
|
|
#ifndef rtmSetOdeF
|
|
#define rtmSetOdeF(rtm, val) ((rtm)->odeF = (val))
|
|
#endif
|
|
|
|
#ifndef rtmGetOdeY
|
|
#define rtmGetOdeY(rtm) ((rtm)->odeY)
|
|
#endif
|
|
|
|
#ifndef rtmSetOdeY
|
|
#define rtmSetOdeY(rtm, val) ((rtm)->odeY = (val))
|
|
#endif
|
|
|
|
#ifndef rtmGetPeriodicContStateIndices
|
|
#define rtmGetPeriodicContStateIndices(rtm) ((rtm)->periodicContStateIndices)
|
|
#endif
|
|
|
|
#ifndef rtmSetPeriodicContStateIndices
|
|
#define rtmSetPeriodicContStateIndices(rtm, val) ((rtm)->periodicContStateIndices = (val))
|
|
#endif
|
|
|
|
#ifndef rtmGetPeriodicContStateRanges
|
|
#define rtmGetPeriodicContStateRanges(rtm) ((rtm)->periodicContStateRanges)
|
|
#endif
|
|
|
|
#ifndef rtmSetPeriodicContStateRanges
|
|
#define rtmSetPeriodicContStateRanges(rtm, val) ((rtm)->periodicContStateRanges = (val))
|
|
#endif
|
|
|
|
#ifndef rtmGetRTWLogInfo
|
|
#define rtmGetRTWLogInfo(rtm) ((rtm)->rtwLogInfo)
|
|
#endif
|
|
|
|
#ifndef rtmGetZCCacheNeedsReset
|
|
#define rtmGetZCCacheNeedsReset(rtm) ((rtm)->zCCacheNeedsReset)
|
|
#endif
|
|
|
|
#ifndef rtmSetZCCacheNeedsReset
|
|
#define rtmSetZCCacheNeedsReset(rtm, val) ((rtm)->zCCacheNeedsReset = (val))
|
|
#endif
|
|
|
|
#ifndef rtmGetdX
|
|
#define rtmGetdX(rtm) ((rtm)->derivs)
|
|
#endif
|
|
|
|
#ifndef rtmSetdX
|
|
#define rtmSetdX(rtm, val) ((rtm)->derivs = (val))
|
|
#endif
|
|
|
|
#ifndef rtmGetErrorStatus
|
|
#define rtmGetErrorStatus(rtm) ((rtm)->errorStatus)
|
|
#endif
|
|
|
|
#ifndef rtmSetErrorStatus
|
|
#define rtmSetErrorStatus(rtm, val) ((rtm)->errorStatus = (val))
|
|
#endif
|
|
|
|
#ifndef rtmGetStopRequested
|
|
#define rtmGetStopRequested(rtm) ((rtm)->Timing.stopRequestedFlag)
|
|
#endif
|
|
|
|
#ifndef rtmSetStopRequested
|
|
#define rtmSetStopRequested(rtm, val) ((rtm)->Timing.stopRequestedFlag = (val))
|
|
#endif
|
|
|
|
#ifndef rtmGetStopRequestedPtr
|
|
#define rtmGetStopRequestedPtr(rtm) (&((rtm)->Timing.stopRequestedFlag))
|
|
#endif
|
|
|
|
#ifndef rtmGetT
|
|
#define rtmGetT(rtm) (rtmGetTPtr((rtm))[0])
|
|
#endif
|
|
|
|
#ifndef rtmGetTFinal
|
|
#define rtmGetTFinal(rtm) ((rtm)->Timing.tFinal)
|
|
#endif
|
|
|
|
#ifndef rtmGetTPtr
|
|
#define rtmGetTPtr(rtm) ((rtm)->Timing.t)
|
|
#endif
|
|
|
|
/* Block signals (default storage) */
|
|
struct B_Model_T {
|
|
real_T Gain; /* '<S1>/Gain' */
|
|
real_T Gain2; /* '<S1>/Gain2' */
|
|
real_T Gain5; /* '<S1>/Gain5' */
|
|
};
|
|
|
|
/* Continuous states (default storage) */
|
|
struct X_Model_T {
|
|
real_T Integrator1_CSTATE; /* '<S1>/Integrator1' */
|
|
real_T Integrator_CSTATE; /* '<S1>/Integrator' */
|
|
real_T Integrator2_CSTATE; /* '<S1>/Integrator2' */
|
|
};
|
|
|
|
/* State derivatives (default storage) */
|
|
struct XDot_Model_T {
|
|
real_T Integrator1_CSTATE; /* '<S1>/Integrator1' */
|
|
real_T Integrator_CSTATE; /* '<S1>/Integrator' */
|
|
real_T Integrator2_CSTATE; /* '<S1>/Integrator2' */
|
|
};
|
|
|
|
/* State disabled */
|
|
struct XDis_Model_T {
|
|
boolean_T Integrator1_CSTATE; /* '<S1>/Integrator1' */
|
|
boolean_T Integrator_CSTATE; /* '<S1>/Integrator' */
|
|
boolean_T Integrator2_CSTATE; /* '<S1>/Integrator2' */
|
|
};
|
|
|
|
#ifndef ODE3_INTG
|
|
#define ODE3_INTG
|
|
|
|
/* ODE3 Integration Data */
|
|
struct ODE3_IntgData {
|
|
real_T *y; /* output */
|
|
real_T *f[3]; /* derivatives */
|
|
};
|
|
|
|
#endif
|
|
|
|
/* External inputs (root inport signals with default storage) */
|
|
struct ExtU_Model_T {
|
|
real_T Stellgrad; /* '<Root>/Stellgrad' */
|
|
};
|
|
|
|
/* External outputs (root outports fed by signals with default storage) */
|
|
struct ExtY_Model_T {
|
|
real_T Temperatur; /* '<Root>/Temperatur' */
|
|
};
|
|
|
|
/* Parameters (default storage) */
|
|
struct P_Model_T_ {
|
|
real_T AHD; /* Variable: AHD
|
|
* Referenced by: '<S1>/Gain1'
|
|
*/
|
|
real_T A_Aussen; /* Variable: A_Aussen
|
|
* Referenced by: '<S1>/Gain7'
|
|
*/
|
|
real_T Ai; /* Variable: Ai
|
|
* Referenced by: '<S1>/Gain4'
|
|
*/
|
|
real_T CES; /* Variable: CES
|
|
* Referenced by: '<S1>/Gain2'
|
|
*/
|
|
real_T CHD; /* Variable: CHD
|
|
* Referenced by: '<S1>/Gain'
|
|
*/
|
|
real_T CSW; /* Variable: CSW
|
|
* Referenced by: '<S1>/Gain5'
|
|
*/
|
|
real_T Cl; /* Variable: Cl
|
|
* Referenced by: '<S1>/Gain2'
|
|
*/
|
|
real_T T_amb; /* Variable: T_amb
|
|
* Referenced by:
|
|
* '<S1>/Integrator'
|
|
* '<S1>/Integrator1'
|
|
* '<S1>/Integrator2'
|
|
*/
|
|
real_T alphaHD; /* Variable: alphaHD
|
|
* Referenced by: '<S1>/Gain1'
|
|
*/
|
|
real_T alphaSW; /* Variable: alphaSW
|
|
* Referenced by: '<S1>/Gain4'
|
|
*/
|
|
real_T alpha_aussen; /* Variable: alpha_aussen
|
|
* Referenced by: '<S1>/Gain7'
|
|
*/
|
|
real_T mES; /* Variable: mES
|
|
* Referenced by: '<S1>/Gain2'
|
|
*/
|
|
real_T mHD; /* Variable: mHD
|
|
* Referenced by: '<S1>/Gain'
|
|
*/
|
|
real_T mSW; /* Variable: mSW
|
|
* Referenced by: '<S1>/Gain5'
|
|
*/
|
|
real_T ml; /* Variable: ml
|
|
* Referenced by: '<S1>/Gain2'
|
|
*/
|
|
real_T Constant_Value; /* Expression: 0
|
|
* Referenced by: '<Root>/Constant'
|
|
*/
|
|
};
|
|
|
|
/* Real-time Model Data Structure */
|
|
struct tag_RTM_Model_T {
|
|
const char_T *errorStatus;
|
|
RTWLogInfo *rtwLogInfo;
|
|
RTWSolverInfo solverInfo;
|
|
X_Model_T *contStates;
|
|
int_T *periodicContStateIndices;
|
|
real_T *periodicContStateRanges;
|
|
real_T *derivs;
|
|
boolean_T *contStateDisabled;
|
|
boolean_T zCCacheNeedsReset;
|
|
boolean_T derivCacheNeedsReset;
|
|
boolean_T CTOutputIncnstWithState;
|
|
real_T odeY[3];
|
|
real_T odeF[3][3];
|
|
ODE3_IntgData intgData;
|
|
|
|
/*
|
|
* Sizes:
|
|
* The following substructure contains sizes information
|
|
* for many of the model attributes such as inputs, outputs,
|
|
* dwork, sample times, etc.
|
|
*/
|
|
struct {
|
|
int_T numContStates;
|
|
int_T numPeriodicContStates;
|
|
int_T numSampTimes;
|
|
} Sizes;
|
|
|
|
/*
|
|
* Timing:
|
|
* The following substructure contains information regarding
|
|
* the timing information for the model.
|
|
*/
|
|
struct {
|
|
uint32_T clockTick0;
|
|
uint32_T clockTickH0;
|
|
time_T stepSize0;
|
|
uint32_T clockTick1;
|
|
uint32_T clockTickH1;
|
|
time_T tFinal;
|
|
SimTimeStep simTimeStep;
|
|
boolean_T stopRequestedFlag;
|
|
time_T *t;
|
|
time_T tArray[2];
|
|
} Timing;
|
|
};
|
|
|
|
/* Block parameters (default storage) */
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
extern P_Model_T Model_P;
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
#endif
|
|
|
|
/* Block signals (default storage) */
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
extern struct B_Model_T Model_B;
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
#endif
|
|
|
|
/* Continuous states (default storage) */
|
|
extern X_Model_T Model_X;
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
/* External inputs (root inport signals with default storage) */
|
|
extern struct ExtU_Model_T Model_U;
|
|
|
|
/* External outputs (root outports fed by signals with default storage) */
|
|
extern struct ExtY_Model_T Model_Y;
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
/* Model entry point functions */
|
|
extern void Model_initialize(void);
|
|
extern void Model_step(void);
|
|
extern void Model_terminate(void);
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
#endif
|
|
|
|
/* Real-time Model object */
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
extern RT_MODEL_Model_T *const Model_M;
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
#endif
|
|
|
|
/*-
|
|
* The generated code includes comments that allow you to trace directly
|
|
* back to the appropriate location in the model. The basic format
|
|
* is <system>/block_name, where system is the system number (uniquely
|
|
* assigned by Simulink) and block_name is the name of the block.
|
|
*
|
|
* Use the MATLAB hilite_system command to trace the generated code back
|
|
* to the model. For example,
|
|
*
|
|
* hilite_system('<S3>') - opens system 3
|
|
* hilite_system('<S3>/Kp') - opens and selects block Kp which resides in S3
|
|
*
|
|
* Here is the system hierarchy for this model
|
|
*
|
|
* '<Root>' : 'Model'
|
|
* '<S1>' : 'Model/Subsystem3'
|
|
*/
|
|
#endif /* RTW_HEADER_Model_h_ */
|