// // File: PmsmSimUt.h // // Code generated for Simulink model 'PmsmSimUt'. // // Model version : 1.18 // Simulink Coder version : 9.4 (R2020b) 29-Jul-2020 // C/C++ source code generated on : Tue Aug 1 23:42:37 2023 // // Target selection: ert.tlc // Embedded hardware selection: Intel->x86-64 (Windows64) // Code generation objectives: Unspecified // Validation result: Not run // #ifndef RTW_HEADER_PmsmSimUt_h_ #define RTW_HEADER_PmsmSimUt_h_ #include #include #include "rtwtypes.h" #include "PmsmSimUt_types.h" #include "rt_nonfinite.h" #include "rtGetInf.h" // Macros for accessing real-time model data structure #ifndef rtmGetErrorStatus #define rtmGetErrorStatus(rtm) ((rtm)->errorStatus) #endif #ifndef rtmSetErrorStatus #define rtmSetErrorStatus(rtm, val) ((rtm)->errorStatus = (val)) #endif // Class declaration for model PmsmSimUt class PmsmSimUtModelClass { // public data and function members public: // Block signals (default storage) typedef struct { real_T Fcn; // '/Fcn' real_T Fcn1; // '/Fcn1' real_T Fcn_a; // '/Fcn' real_T Fcn1_p; // '/Fcn1' real_T DiscreteTimeIntegrator; // '/Discrete-Time Integrator' real_T Iq_ref; // '/Saturation2' real_T DiscreteTimeIntegrator1; // '/Discrete-Time Integrator1' real_T Fcn_g; // '/Fcn' real_T Fcn1_e; // '/Fcn1' real_T Fcn_b; // '/Fcn' real_T Fcn1_n; // '/Fcn1' } B_PmsmSimUt_T; // Block states (default storage) for system '' typedef struct { real_T DiscreteTimeIntegrator_DSTATE;// '/Discrete-Time Integrator' real_T DiscreteTimeIntegrator1_DSTATE;// '/Discrete-Time Integrator1' real_T DiscreteTimeIntegrator_DSTATE_c;// '/Discrete-Time Integrator' real_T DiscreteTimeIntegrator_DSTATE_j;// '/Discrete-Time Integrator' real_T DiscreteTimeIntegrator_DSTATE_g;// '/Discrete-Time Integrator' real_T DiscreteTimeIntegrator_DSTATE_n;// '/Discrete-Time Integrator' real_T DiscreteTimeIntegrator1_DSTAT_d;// '/Discrete-Time Integrator1' real_T Memory_PreviousInput; // '/Memory' boolean_T Relay1_Mode; // '/Relay1' boolean_T Relay2_Mode; // '/Relay2' boolean_T Subsystem_MODE; // '/Subsystem' } DW_PmsmSimUt_T; // External inputs (root inport signals with default storage) typedef struct { InputBus CtrlIn; // '/CtrlIn' ObsInputBus ObsIn; // '/ObsIn' ICtrlInputBus ICtrlIn; // '/ICtrlIn' } ExtU_PmsmSimUt_T; // External outputs (root outports fed by signals with default storage) typedef struct { OutputBus Out; // '/Out' } ExtY_PmsmSimUt_T; // Parameters (default storage) struct P_PmsmSimUt_T { struct_tYah6PAnMSQyhFn3I8nH0C Params;// Variable: Params // Referenced by: // '/Constant1' // '/Constant2' // '/Constant3' // '/Constant4' // '/Gain1' // '/Constant4' // '/Constant1' // '/Constant2' // '/Constant3' // '/Gain' // '/Gain' // '/Kp4' // '/Kp5' // '/Gain' // '/Kp4' // '/Kp5' // '/Constant' // '/Constant1' // '/Constant2' // '/Constant3' // '/Discrete-Time Integrator' // '/Gain' // '/Gain1' // '/Gain2' // '/Gain' // '/Gain1' // '/Gain' // '/Kp4' // '/Kp5' // '/Constant1' // '/Gain' // '/Gain1' real_T AlphaBetaZerotodq0_Alignment; // Mask Parameter: AlphaBetaZerotodq0_Alignment // Referenced by: '/Constant' real_T AlphaBetaZerotodq0_Alignment_e; // Mask Parameter: AlphaBetaZerotodq0_Alignment_e // Referenced by: '/Constant' real_T Subsystem_Init; // Mask Parameter: Subsystem_Init // Referenced by: '/Discrete-Time Integrator' real_T Subsystem1_Init; // Mask Parameter: Subsystem1_Init // Referenced by: '/Discrete-Time Integrator' real_T Subsystem_Init_c; // Mask Parameter: Subsystem_Init_c // Referenced by: '/Discrete-Time Integrator' real_T CompareToConstant_const; // Mask Parameter: CompareToConstant_const // Referenced by: '/Constant' real_T CompareToConstant1_const; // Mask Parameter: CompareToConstant1_const // Referenced by: '/Constant' real_T CompareToConstant_const_a; // Mask Parameter: CompareToConstant_const_a // Referenced by: '/Constant' real_T CompareToConstant1_const_o; // Mask Parameter: CompareToConstant1_const_o // Referenced by: '/Constant' real_T dq_Y0[2]; // Expression: [0,0] // Referenced by: '/dq' real_T dq_Y0_e[2]; // Expression: [0,0] // Referenced by: '/dq' real_T Wm_Y0; // Computed Parameter: Wm_Y0 // Referenced by: '/Wm' real_T DiscreteTimeIntegrator1_gainval; // Computed Parameter: DiscreteTimeIntegrator1_gainval // Referenced by: '/Discrete-Time Integrator1' real_T DiscreteTimeIntegrator1_IC; // Expression: 0 // Referenced by: '/Discrete-Time Integrator1' real_T Gain3_Gain; // Expression: pi/30 // Referenced by: '/Gain3' real_T Iq_ref_Y0; // Computed Parameter: Iq_ref_Y0 // Referenced by: '/Iq_ref' real_T DiscreteTimeIntegrator_gainval; // Computed Parameter: DiscreteTimeIntegrator_gainval // Referenced by: '/Discrete-Time Integrator' real_T DiscreteTimeIntegrator_UpperSat;// Expression: Limits(1) // Referenced by: '/Discrete-Time Integrator' real_T DiscreteTimeIntegrator_LowerSat;// Expression: Limits(2) // Referenced by: '/Discrete-Time Integrator' real_T Saturation2_UpperSat; // Expression: Limits(1) // Referenced by: '/Saturation2' real_T Saturation2_LowerSat; // Expression: Limits(2) // Referenced by: '/Saturation2' real_T Constant5_Value; // Expression: 0 // Referenced by: '/Constant5' real_T Constant6_Value; // Expression: 1 // Referenced by: '/Constant6' real_T Saturation2_UpperSat_o; // Expression: Limits(1) // Referenced by: '/Saturation2' real_T Saturation2_LowerSat_o; // Expression: Limits(2) // Referenced by: '/Saturation2' real_T Saturation2_UpperSat_b; // Expression: Limits(1) // Referenced by: '/Saturation2' real_T Saturation2_LowerSat_j; // Expression: Limits(2) // Referenced by: '/Saturation2' real_T dq_Y0_l[2]; // Expression: [0,0] // Referenced by: '/dq' real_T dq_Y0_f[2]; // Expression: [0,0] // Referenced by: '/dq' real_T DiscreteTimeIntegrator_gainva_p; // Computed Parameter: DiscreteTimeIntegrator_gainva_p // Referenced by: '/Discrete-Time Integrator' real_T DiscreteTimeIntegrator_IC; // Expression: 0 // Referenced by: '/Discrete-Time Integrator' real_T Constant_Value; // Expression: 2*pi // Referenced by: '/Constant' real_T DiscreteTimeIntegrator1_gainv_b; // Computed Parameter: DiscreteTimeIntegrator1_gainv_b // Referenced by: '/Discrete-Time Integrator1' real_T DiscreteTimeIntegrator1_IC_a;// Expression: 0 // Referenced by: '/Discrete-Time Integrator1' real_T DiscreteTimeIntegrator_gainv_pq; // Computed Parameter: DiscreteTimeIntegrator_gainv_pq // Referenced by: '/Discrete-Time Integrator' real_T Constant_Value_e; // Expression: 0 // Referenced by: '/Constant' real_T K1_Gain; // Expression: K1 // Referenced by: '/K1' real_T K2_Gain; // Expression: K2 // Referenced by: '/K2' real_T Switch2_Threshold; // Expression: 0 // Referenced by: '/Switch2' real_T Switch_Threshold; // Expression: 0 // Referenced by: '/Switch' real_T Switch3_Threshold; // Expression: 0 // Referenced by: '/Switch3' real_T Gain1_Gain; // Expression: -1 // Referenced by: '/Gain1' real_T Switch5_Threshold; // Expression: 0 // Referenced by: '/Switch5' real_T Switch4_Threshold; // Expression: 0 // Referenced by: '/Switch4' real_T DiscreteTimeIntegrator_gainva_b; // Computed Parameter: DiscreteTimeIntegrator_gainva_b // Referenced by: '/Discrete-Time Integrator' real_T DiscreteTimeIntegrator_UpperS_b;// Expression: Limits(1) // Referenced by: '/Discrete-Time Integrator' real_T DiscreteTimeIntegrator_LowerS_l;// Expression: Limits(2) // Referenced by: '/Discrete-Time Integrator' real_T Switch1_Threshold; // Expression: 0 // Referenced by: '/Switch1' real_T Memory_InitialCondition; // Expression: 0 // Referenced by: '/Memory' real_T Saturation2_UpperSat_p; // Expression: 10000 // Referenced by: '/Saturation2' real_T Saturation2_LowerSat_f; // Expression: -10000 // Referenced by: '/Saturation2' real_T DiscreteTimeIntegrator_gainva_c; // Computed Parameter: DiscreteTimeIntegrator_gainva_c // Referenced by: '/Discrete-Time Integrator' real_T DiscreteTimeIntegrator_UpperS_k;// Expression: Limits(1) // Referenced by: '/Discrete-Time Integrator' real_T DiscreteTimeIntegrator_LowerS_a;// Expression: Limits(2) // Referenced by: '/Discrete-Time Integrator' real_T Switch6_Threshold; // Expression: 0 // Referenced by: '/Switch6' real_T Constant_Value_p; // Expression: 0 // Referenced by: '/Constant' real_T K1_Gain_j; // Expression: K1 // Referenced by: '/K1' real_T K2_Gain_b; // Expression: K2 // Referenced by: '/K2' real_T Gain3_Gain_j[9]; // Expression: [ 1 -1/2 -1/2; 0 sqrt(3)/2 -sqrt(3)/2; 1/2 1/2 1/2 ] // Referenced by: '/Gain3' real_T Gain1_Gain_e; // Expression: 2/3 // Referenced by: '/Gain1' real_T Gain2_Gain; // Expression: 30/pi // Referenced by: '/Gain2' real_T DeadZone_Start; // Expression: -0.01 // Referenced by: '/Dead Zone' real_T DeadZone_End; // Expression: 0.01 // Referenced by: '/Dead Zone' real_T Relay1_OnVal; // Expression: 0.1 // Referenced by: '/Relay1' real_T Relay1_OffVal; // Expression: 0 // Referenced by: '/Relay1' real_T Relay1_YOn; // Expression: 1000 // Referenced by: '/Relay1' real_T Relay1_YOff; // Expression: 0 // Referenced by: '/Relay1' real_T Relay2_OnVal; // Expression: 0 // Referenced by: '/Relay2' real_T Relay2_OffVal; // Expression: -0.1 // Referenced by: '/Relay2' real_T Relay2_YOn; // Expression: 0 // Referenced by: '/Relay2' real_T Relay2_YOff; // Expression: -1000 // Referenced by: '/Relay2' uint8_T ManualSwitch1_CurrentSetting; // Computed Parameter: ManualSwitch1_CurrentSetting // Referenced by: '/Manual Switch1' }; // Real-time Model Data Structure struct RT_MODEL_PmsmSimUt_T { const char_T * volatile errorStatus; }; // Tunable parameters static P_PmsmSimUt_T PmsmSimUt_P; // External inputs ExtU_PmsmSimUt_T PmsmSimUt_U; // External outputs ExtY_PmsmSimUt_T PmsmSimUt_Y; // model initialize function void initialize(); // model event function void PmsmSimUt_reset(); // model step function void step(); // model terminate function void terminate(); // Constructor PmsmSimUtModelClass(); // Destructor ~PmsmSimUtModelClass(); // Block parameters get method const PmsmSimUtModelClass::P_PmsmSimUt_T & getBlockParameters() const { return PmsmSimUt_P; } // Block parameters set method void setBlockParameters(const P_PmsmSimUt_T *pPmsmSimUt_P) { PmsmSimUt_P = *pPmsmSimUt_P; } // Root-level structure-based inputs set method // Root inports set method void setExternalInputs(const ExtU_PmsmSimUt_T* pExtU_PmsmSimUt_T) { PmsmSimUt_U = *pExtU_PmsmSimUt_T; } // Root-level structure-based outputs get method // Root outports get method const PmsmSimUtModelClass::ExtY_PmsmSimUt_T & getExternalOutputs() const { return PmsmSimUt_Y; } // Real-Time Model get method PmsmSimUtModelClass::RT_MODEL_PmsmSimUt_T * getRTM(); // private data and function members private: // Block signals B_PmsmSimUt_T PmsmSimUt_B; // Block states DW_PmsmSimUt_T PmsmSimUt_DW; // Real-Time Model RT_MODEL_PmsmSimUt_T PmsmSimUt_M; }; //- // These blocks were eliminated from the model due to optimizations: // // Block '/Constant' : Unused code path elimination // Block '/Scope' : Unused code path elimination // Block '/Scope1' : Unused code path elimination // Block '/Scope' : Unused code path elimination // Block '/Scope' : Unused code path elimination // Block '/Scope1' : Unused code path elimination // Block '/Scope3' : Unused code path elimination // Block '/Scope4' : Unused code path elimination // Block '/Scope5' : Unused code path elimination //- // The generated code includes comments that allow you to trace directly // back to the appropriate location in the model. The basic format // is /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('') - opens system 3 // hilite_system('/Kp') - opens and selects block Kp which resides in S3 // // Here is the system hierarchy for this model // // '' : 'PmsmSimUt' // '' : 'PmsmSimUt/Alpha-Beta-Zero to dq0' // '' : 'PmsmSimUt/Initialize Function' // '' : 'PmsmSimUt/PI Controller' // '' : 'PmsmSimUt/PM_Motor in dq frame ' // '' : 'PmsmSimUt/Subsystem' // '' : 'PmsmSimUt/Subsystem1' // '' : 'PmsmSimUt/Subsystem2' // '' : 'PmsmSimUt/abc to dq0' // '' : 'PmsmSimUt/dq to abc' // '' : 'PmsmSimUt/dq to abc1' // '' : 'PmsmSimUt/Alpha-Beta-Zero to dq0/Compare To Constant' // '' : 'PmsmSimUt/Alpha-Beta-Zero to dq0/Compare To Constant1' // '' : 'PmsmSimUt/Alpha-Beta-Zero to dq0/Subsystem - pi//2 delay' // '' : 'PmsmSimUt/Alpha-Beta-Zero to dq0/Subsystem1' // '' : 'PmsmSimUt/PI Controller/Subsystem' // '' : 'PmsmSimUt/PI Controller/Subsystem1' // '' : 'PmsmSimUt/PM_Motor in dq frame /Electrical Modelling' // '' : 'PmsmSimUt/PM_Motor in dq frame /Mechanical Modelling' // '' : 'PmsmSimUt/PM_Motor in dq frame /Mechanical Modelling/Subsystem' // '' : 'PmsmSimUt/Subsystem/Subsystem' // '' : 'PmsmSimUt/abc to dq0/Alpha-Beta-Zero to dq0' // '' : 'PmsmSimUt/abc to dq0/abc to Alpha-Beta-Zero' // '' : 'PmsmSimUt/abc to dq0/Alpha-Beta-Zero to dq0/Compare To Constant' // '' : 'PmsmSimUt/abc to dq0/Alpha-Beta-Zero to dq0/Compare To Constant1' // '' : 'PmsmSimUt/abc to dq0/Alpha-Beta-Zero to dq0/Subsystem - pi//2 delay' // '' : 'PmsmSimUt/abc to dq0/Alpha-Beta-Zero to dq0/Subsystem1' // '' : 'PmsmSimUt/dq to abc/An_Park' // '' : 'PmsmSimUt/dq to abc/Inverse Clarke Transform2' // '' : 'PmsmSimUt/dq to abc1/An_Park' // '' : 'PmsmSimUt/dq to abc1/Inverse Clarke Transform2' #endif // RTW_HEADER_PmsmSimUt_h_ // // File trailer for generated code. // // [EOF] //