PMSM_Controller.h 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470
  1. /*
  2. * File: PMSM_Controller.h
  3. *
  4. * Code generated for Simulink model 'PMSM_Controller'.
  5. *
  6. * Model version : 1.1301
  7. * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
  8. * C/C++ source code generated on : Mon Apr 18 19:32:18 2022
  9. *
  10. * Target selection: ert.tlc
  11. * Embedded hardware selection: ARM Compatible->ARM Cortex-M
  12. * Code generation objectives:
  13. * 1. Execution efficiency
  14. * 2. RAM efficiency
  15. * Validation result: Not run
  16. */
  17. #ifndef RTW_HEADER_PMSM_Controller_h_
  18. #define RTW_HEADER_PMSM_Controller_h_
  19. #ifndef PMSM_Controller_COMMON_INCLUDES_
  20. #define PMSM_Controller_COMMON_INCLUDES_
  21. #include "rtwtypes.h"
  22. #include "zero_crossing_types.h"
  23. #endif /* PMSM_Controller_COMMON_INCLUDES_ */
  24. /* Model Code Variants */
  25. /* Macros for accessing real-time model data structure */
  26. #ifndef rtmGetErrorStatus
  27. #define rtmGetErrorStatus(rtm) ((rtm)->errorStatus)
  28. #endif
  29. #ifndef rtmSetErrorStatus
  30. #define rtmSetErrorStatus(rtm, val) ((rtm)->errorStatus = (val))
  31. #endif
  32. /* Forward declaration for rtModel */
  33. typedef struct tag_RTM RT_MODEL;
  34. /* Block signals and states (default storage) for system '<S40>/Counter' */
  35. typedef struct {
  36. uint16_T UnitDelay_DSTATE; /* '<S45>/UnitDelay' */
  37. } DW_Counter;
  38. /* Block signals and states (default storage) for system '<S36>/either_edge' */
  39. typedef struct {
  40. boolean_T UnitDelay_DSTATE; /* '<S41>/UnitDelay' */
  41. } DW_either_edge;
  42. /* Block signals and states (default storage) for system '<S35>/Debounce_Filter' */
  43. typedef struct {
  44. DW_either_edge either_edge_j; /* '<S36>/either_edge' */
  45. DW_Counter Counter_d; /* '<S39>/Counter' */
  46. DW_Counter Counter_f; /* '<S40>/Counter' */
  47. boolean_T UnitDelay_DSTATE; /* '<S36>/UnitDelay' */
  48. } DW_Debounce_Filter;
  49. /* Block signals and states (default storage) for system '<S46>/Low_Pass_Filter' */
  50. typedef struct {
  51. int16_T UnitDelay1_DSTATE[2]; /* '<S56>/UnitDelay1' */
  52. } DW_Low_Pass_Filter;
  53. /* Block signals and states (default storage) for system '<S61>/PI_iq' */
  54. typedef struct {
  55. int32_T UnitDelay_DSTATE; /* '<S66>/UnitDelay' */
  56. int32_T ResettableDelay_DSTATE; /* '<S68>/Resettable Delay' */
  57. uint8_T icLoad; /* '<S68>/Resettable Delay' */
  58. } DW_PI_backCalc_fixdt;
  59. /* Zero-crossing (trigger) state for system '<S61>/PI_iq' */
  60. typedef struct {
  61. ZCSigState ResettableDelay_Reset_ZCE_p;/* '<S68>/Resettable Delay' */
  62. } ZCE_PI_backCalc_fixdt;
  63. /* Block signals and states (default storage) for system '<S90>/pi_speed' */
  64. typedef struct {
  65. int32_T UnitDelay_DSTATE; /* '<S93>/UnitDelay' */
  66. int32_T ResettableDelay_DSTATE; /* '<S94>/Resettable Delay' */
  67. uint8_T icLoad; /* '<S94>/Resettable Delay' */
  68. } DW_pi_speed;
  69. /* Zero-crossing (trigger) state for system '<S90>/pi_speed' */
  70. typedef struct {
  71. ZCSigState ResettableDelay_Reset_ZCE;/* '<S94>/Resettable Delay' */
  72. } ZCE_pi_speed;
  73. /* Block signals and states (default storage) for system '<Root>' */
  74. typedef struct {
  75. DW_pi_speed pi_speed_d; /* '<S90>/pi_speed' */
  76. DW_PI_backCalc_fixdt PI_id; /* '<S60>/PI_id' */
  77. DW_PI_backCalc_fixdt PI_iq; /* '<S61>/PI_iq' */
  78. DW_Low_Pass_Filter Low_Pass_Filter_d;/* '<S46>/Low_Pass_Filter' */
  79. DW_either_edge either_edge_f; /* '<S35>/either_edge' */
  80. DW_Debounce_Filter Debounce_Filter_i;/* '<S35>/Debounce_Filter' */
  81. uint32_T z_counterRawPrev; /* '<S19>/z_counterRawPrev' */
  82. uint32_T UnitDelay1_DSTATE; /* '<S7>/UnitDelay1' */
  83. uint32_T UnitDelay3_DSTATE; /* '<S14>/UnitDelay3' */
  84. uint32_T UnitDelay2_DSTATE; /* '<S19>/UnitDelay2' */
  85. uint32_T UnitDelay3_DSTATE_l; /* '<S19>/UnitDelay3' */
  86. uint32_T UnitDelay5_DSTATE; /* '<S19>/UnitDelay5' */
  87. int16_T Merge[2]; /* '<S26>/Merge' */
  88. int16_T Merge_c[2]; /* '<S83>/Merge' */
  89. int16_T Switch[2]; /* '<S82>/Switch' */
  90. int16_T Divide; /* '<S33>/Divide' */
  91. int16_T Merge_f; /* '<S84>/Merge' */
  92. int16_T Switch2; /* '<S65>/Switch2' */
  93. int16_T Switch2_d; /* '<S69>/Switch2' */
  94. int16_T r_currTgt; /* '<S30>/r_currTgt' */
  95. int16_T Switch_i; /* '<S33>/Switch' */
  96. int16_T Switch1; /* '<S33>/Switch1' */
  97. int16_T Merge_i; /* '<S3>/Merge' */
  98. int16_T Merge1; /* '<S26>/Merge1' */
  99. int16_T Divide11; /* '<S19>/Divide11' */
  100. int16_T UnitDelay2_DSTATE_p; /* '<S6>/UnitDelay2' */
  101. int16_T UnitDelay1_DSTATE_f; /* '<S6>/UnitDelay1' */
  102. int16_T UnitDelay1_DSTATE_g; /* '<S81>/Unit Delay1' */
  103. int16_T UnitDelay_DSTATE; /* '<S29>/Unit Delay' */
  104. int16_T UnitDelay_DSTATE_f; /* '<S34>/UnitDelay' */
  105. uint16_T UnitDelay2_DSTATE_f; /* '<S20>/UnitDelay2' */
  106. uint16_T UnitDelay3_DSTATE_lh; /* '<S20>/UnitDelay3' */
  107. uint16_T UnitDelay5_DSTATE_f; /* '<S20>/UnitDelay5' */
  108. uint16_T UnitDelay4_DSTATE; /* '<S14>/UnitDelay4' */
  109. int8_T Switch2_i; /* '<S8>/Switch2' */
  110. int8_T UnitDelay2_DSTATE_j; /* '<S8>/UnitDelay2' */
  111. uint8_T Delay_DSTATE; /* '<S9>/Delay' */
  112. uint8_T Delay1_DSTATE; /* '<S9>/Delay1' */
  113. uint8_T Delay2_DSTATE; /* '<S9>/Delay2' */
  114. uint8_T UnitDelay_DSTATE_j; /* '<S35>/UnitDelay' */
  115. uint8_T UnitDelay_DSTATE_b; /* '<S48>/Unit Delay' */
  116. uint8_T UnitDelay_DSTATE_p; /* '<S81>/Unit Delay' */
  117. uint8_T is_active_c5_PMSM_Controller;/* '<S4>/Control_Mode_Manager' */
  118. uint8_T is_c5_PMSM_Controller; /* '<S4>/Control_Mode_Manager' */
  119. uint8_T is_ACTIVE; /* '<S4>/Control_Mode_Manager' */
  120. boolean_T Compare; /* '<S22>/Compare' */
  121. boolean_T UnitDelay1_DSTATE_i; /* '<S19>/UnitDelay1' */
  122. boolean_T n_SpeedCtrl_Mode; /* '<S24>/n_SpeedCtrl' */
  123. boolean_T n_commDeacv_Mode; /* '<S20>/n_commDeacv' */
  124. } DW;
  125. /* Zero-crossing (trigger) state */
  126. typedef struct {
  127. ZCE_pi_speed pi_speed_d; /* '<S90>/pi_speed' */
  128. ZCE_PI_backCalc_fixdt PI_id; /* '<S60>/PI_id' */
  129. ZCE_PI_backCalc_fixdt PI_iq; /* '<S61>/PI_iq' */
  130. } PrevZCX;
  131. /* Invariant block signals for system '<S61>/PI_iq' */
  132. typedef struct {
  133. const int32_T DataTypeConversion2; /* '<S68>/Data Type Conversion2' */
  134. } ConstB_PI_backCalc_fixdt;
  135. /* Invariant block signals (default storage) */
  136. typedef struct {
  137. ConstB_PI_backCalc_fixdt PI_id; /* '<S60>/PI_id' */
  138. ConstB_PI_backCalc_fixdt PI_iq; /* '<S61>/PI_iq' */
  139. } ConstB;
  140. /* Constant parameters (default storage) */
  141. typedef struct {
  142. /* Pooled Parameter (Expression: r_sin_M1)
  143. * Referenced by:
  144. * '<S58>/r_sin_M1'
  145. * '<S89>/r_sin_M1'
  146. */
  147. int16_T pooled11[1441];
  148. /* Pooled Parameter (Expression: r_cos_M1)
  149. * Referenced by:
  150. * '<S58>/r_cos_M1'
  151. * '<S89>/r_cos_M1'
  152. */
  153. int16_T pooled12[1441];
  154. /* Computed Parameter: vec_hallToPos_Value
  155. * Referenced by: '<S11>/vec_hallToPos'
  156. */
  157. int8_T vec_hallToPos_Value[8];
  158. } ConstP;
  159. /* External inputs (root inport signals with default storage) */
  160. typedef struct {
  161. int16_T adc_a; /* '<Root>/adc_a' */
  162. int16_T adc_b; /* '<Root>/adc_b' */
  163. int16_T speed_target; /* '<Root>/speed_target' */
  164. int16_T current_target; /* '<Root>/current_target' */
  165. uint8_T hall_a; /* '<Root>/hall_a' */
  166. uint8_T hall_b; /* '<Root>/hall_b' */
  167. uint8_T hall_c; /* '<Root>/hall_c' */
  168. uint32_T hw_count; /* '<Root>/hw_count' */
  169. boolean_T b_motEna; /* '<Root>/b_motEna' */
  170. boolean_T b_cruiseEna; /* '<Root>/b_cruiseEna' */
  171. uint8_T n_ctrlModReq; /* '<Root>/n_ctrlModReq' */
  172. int16_T DC_iLimit; /* '<Root>/DC_iLimit' */
  173. int16_T speed_limit; /* '<Root>/speed_limit' */
  174. int16_T vbus_voltage; /* '<Root>/vbus_voltage' */
  175. uint16_T foc_calibrate; /* '<Root>/foc_calibrate' */
  176. int16_T vdq_open_target[2]; /* '<Root>/vdq_open_target' */
  177. int16_T open_theta; /* '<Root>/open_theta' */
  178. } ExtU;
  179. /* External outputs (root outports fed by signals with default storage) */
  180. typedef struct {
  181. int16_T PWM[3]; /* '<Root>/PWM' */
  182. uint8_T sector; /* '<Root>/sector' */
  183. uint8_T n_MotError; /* '<Root>/n_MotError' */
  184. int16_T VdPrev; /* '<Root>/VdPrev' */
  185. int16_T VqPrev; /* '<Root>/VqPrev' */
  186. int16_T id; /* '<Root>/id' */
  187. int16_T iq; /* '<Root>/iq' */
  188. int16_T angle; /* '<Root>/angle' */
  189. int16_T rpm; /* '<Root>/rpm' */
  190. int16_T hall_angle; /* '<Root>/hall_angle' */
  191. uint8_T hall_state; /* '<Root>/hall_state' */
  192. uint8_T running_mode; /* '<Root>/running_mode' */
  193. } ExtY;
  194. /* Real-time Model Data Structure */
  195. struct tag_RTM {
  196. const char_T * volatile errorStatus;
  197. PrevZCX *prevZCSigState;
  198. ExtU *inputs;
  199. ExtY *outputs;
  200. DW *dwork;
  201. };
  202. extern const ConstB rtConstB; /* constant block i/o */
  203. /* Constant parameters (default storage) */
  204. extern const ConstP rtConstP;
  205. /* Model entry point functions */
  206. extern void PMSM_Controller_initialize(RT_MODEL *const rtM);
  207. extern void PMSM_Controller_step(RT_MODEL *const rtM);
  208. /*-
  209. * These blocks were eliminated from the model due to optimizations:
  210. *
  211. * Block '<S2>/Scope' : Unused code path elimination
  212. * Block '<S8>/Scope' : Unused code path elimination
  213. * Block '<S10>/Scope' : Unused code path elimination
  214. * Block '<S11>/Scope' : Unused code path elimination
  215. * Block '<S3>/Scope' : Unused code path elimination
  216. * Block '<S14>/Logical Operator4' : Unused code path elimination
  217. * Block '<S19>/Abs2' : Unused code path elimination
  218. * Block '<S19>/Add' : Unused code path elimination
  219. * Block '<S21>/Compare' : Unused code path elimination
  220. * Block '<S21>/Constant' : Unused code path elimination
  221. * Block '<S19>/Scope1' : Unused code path elimination
  222. * Block '<S19>/Sum7' : Unused code path elimination
  223. * Block '<S19>/UnitDelay4' : Unused code path elimination
  224. * Block '<S19>/UnitDelay6' : Unused code path elimination
  225. * Block '<S19>/UnitDelay7' : Unused code path elimination
  226. * Block '<S19>/UnitDelay8' : Unused code path elimination
  227. * Block '<S19>/dz_cntTrnsDet' : Unused code path elimination
  228. * Block '<S14>/Scope1' : Unused code path elimination
  229. * Block '<S14>/Scope2' : Unused code path elimination
  230. * Block '<S4>/Scope' : Unused code path elimination
  231. * Block '<S26>/Scope' : Unused code path elimination
  232. * Block '<S32>/Data Type Duplicate' : Unused code path elimination
  233. * Block '<S32>/Data Type Propagation' : Unused code path elimination
  234. * Block '<S31>/Scope' : Unused code path elimination
  235. * Block '<S31>/Scope1' : Unused code path elimination
  236. * Block '<S1>/Scope2' : Unused code path elimination
  237. * Block '<S55>/Scope' : Unused code path elimination
  238. * Block '<S46>/Scope' : Unused code path elimination
  239. * Block '<S46>/Scope1' : Unused code path elimination
  240. * Block '<S58>/Scope' : Unused code path elimination
  241. * Block '<S47>/Divide' : Unused code path elimination
  242. * Block '<S47>/Divide1' : Unused code path elimination
  243. * Block '<S59>/Add1' : Unused code path elimination
  244. * Block '<S59>/Data Type Duplicate' : Unused code path elimination
  245. * Block '<S59>/Filter_Constant' : Unused code path elimination
  246. * Block '<S59>/One' : Unused code path elimination
  247. * Block '<S59>/Product' : Unused code path elimination
  248. * Block '<S59>/Product1' : Unused code path elimination
  249. * Block '<S59>/Unit Delay' : Unused code path elimination
  250. * Block '<S47>/Math Function1' : Unused code path elimination
  251. * Block '<S47>/Saturation' : Unused code path elimination
  252. * Block '<S47>/Scope' : Unused code path elimination
  253. * Block '<S47>/Sqrt1' : Unused code path elimination
  254. * Block '<S47>/Sum of Elements1' : Unused code path elimination
  255. * Block '<S48>/Scope' : Unused code path elimination
  256. * Block '<S65>/Data Type Duplicate' : Unused code path elimination
  257. * Block '<S65>/Data Type Propagation' : Unused code path elimination
  258. * Block '<S63>/Data Type Duplicate' : Unused code path elimination
  259. * Block '<S63>/Data Type Propagation' : Unused code path elimination
  260. * Block '<S60>/Scope' : Unused code path elimination
  261. * Block '<S69>/Data Type Duplicate' : Unused code path elimination
  262. * Block '<S69>/Data Type Propagation' : Unused code path elimination
  263. * Block '<S67>/Data Type Duplicate' : Unused code path elimination
  264. * Block '<S67>/Data Type Propagation' : Unused code path elimination
  265. * Block '<S61>/Scope' : Unused code path elimination
  266. * Block '<S49>/Scope' : Unused code path elimination
  267. * Block '<S78>/Scope' : Unused code path elimination
  268. * Block '<S6>/Scope12' : Unused code path elimination
  269. * Block '<S80>/Data Type Duplicate' : Unused code path elimination
  270. * Block '<S82>/Scope1' : Unused code path elimination
  271. * Block '<S89>/Scope' : Unused code path elimination
  272. * Block '<S84>/Scope' : Unused code path elimination
  273. * Block '<S92>/Data Type Duplicate' : Unused code path elimination
  274. * Block '<S92>/Data Type Propagation' : Unused code path elimination
  275. * Block '<S90>/Scope' : Unused code path elimination
  276. * Block '<S90>/Scope2' : Unused code path elimination
  277. * Block '<S95>/Data Type Duplicate' : Unused code path elimination
  278. * Block '<S95>/Data Type Propagation' : Unused code path elimination
  279. * Block '<S96>/Data Type Duplicate' : Unused code path elimination
  280. * Block '<S96>/Data Type Propagation' : Unused code path elimination
  281. * Block '<S91>/Scope' : Unused code path elimination
  282. * Block '<S85>/Scope1' : Unused code path elimination
  283. * Block '<S10>/Manual Switch' : Eliminated due to constant selection input
  284. * Block '<S26>/Data Type Conversion' : Eliminate redundant data type conversion
  285. * Block '<S6>/Data Type Conversion' : Eliminate redundant data type conversion
  286. * Block '<S86>/Data Type Conversion1' : Eliminate redundant data type conversion
  287. * Block '<S87>/Data Type Conversion' : Eliminate redundant data type conversion
  288. * Block '<S90>/Manual Switch' : Eliminated due to constant selection input
  289. * Block '<S10>/Constant' : Unused code path elimination
  290. * Block '<S19>/Divide14' : Unused code path elimination
  291. * Block '<S19>/smooth' : Unused code path elimination
  292. * Block '<S80>/Add1' : Unused code path elimination
  293. * Block '<S80>/Filter_Constant' : Unused code path elimination
  294. * Block '<S80>/One' : Unused code path elimination
  295. * Block '<S80>/Product' : Unused code path elimination
  296. * Block '<S80>/Product1' : Unused code path elimination
  297. * Block '<S80>/Unit Delay' : Unused code path elimination
  298. * Block '<S82>/Constant1' : Unused code path elimination
  299. * Block '<S82>/Constant3' : Unused code path elimination
  300. * Block '<S82>/Constant4' : Unused code path elimination
  301. * Block '<S82>/Data Type Conversion' : Unused code path elimination
  302. * Block '<S82>/Gain' : Unused code path elimination
  303. * Block '<S82>/Gain1' : Unused code path elimination
  304. * Block '<S86>/Data Type Conversion2' : Unused code path elimination
  305. * Block '<S86>/Resettable Delay' : Unused code path elimination
  306. * Block '<S86>/Sum1' : Unused code path elimination
  307. * Block '<S82>/Math Function1' : Unused code path elimination
  308. * Block '<S82>/Math Function2' : Unused code path elimination
  309. * Block '<S82>/Saturation' : Unused code path elimination
  310. * Block '<S82>/Sqrt' : Unused code path elimination
  311. * Block '<S82>/Sum' : Unused code path elimination
  312. * Block '<S82>/Sum of Elements' : Unused code path elimination
  313. * Block '<S82>/Sum1' : Unused code path elimination
  314. * Block '<S82>/Sum2' : Unused code path elimination
  315. * Block '<S82>/Sum3' : Unused code path elimination
  316. * Block '<S82>/Sum4' : Unused code path elimination
  317. * Block '<S82>/Unit Delay' : Unused code path elimination
  318. * Block '<S82>/Unit Delay1' : Unused code path elimination
  319. * Block '<S90>/Constant' : Unused code path elimination
  320. */
  321. /*-
  322. * The generated code includes comments that allow you to trace directly
  323. * back to the appropriate location in the model. The basic format
  324. * is <system>/block_name, where system is the system number (uniquely
  325. * assigned by Simulink) and block_name is the name of the block.
  326. *
  327. * Note that this particular code originates from a subsystem build,
  328. * and has its own system numbers different from the parent model.
  329. * Refer to the system hierarchy for this subsystem below, and use the
  330. * MATLAB hilite_system command to trace the generated code back
  331. * to the parent model. For example,
  332. *
  333. * hilite_system('MotorController_FOC/PMSM_Controller') - opens subsystem MotorController_FOC/PMSM_Controller
  334. * hilite_system('MotorController_FOC/PMSM_Controller/Kp') - opens and selects block Kp
  335. *
  336. * Here is the system hierarchy for this model
  337. *
  338. * '<Root>' : 'MotorController_FOC'
  339. * '<S1>' : 'MotorController_FOC/PMSM_Controller'
  340. * '<S2>' : 'MotorController_FOC/PMSM_Controller/1ms_Scheduler'
  341. * '<S3>' : 'MotorController_FOC/PMSM_Controller/Angle_Speed_Estimation'
  342. * '<S4>' : 'MotorController_FOC/PMSM_Controller/Control_Mode_Manager'
  343. * '<S5>' : 'MotorController_FOC/PMSM_Controller/Diagnostics'
  344. * '<S6>' : 'MotorController_FOC/PMSM_Controller/controller'
  345. * '<S7>' : 'MotorController_FOC/PMSM_Controller/1ms_Scheduler/counter'
  346. * '<S8>' : 'MotorController_FOC/PMSM_Controller/Angle_Speed_Estimation/Direction_Detection'
  347. * '<S9>' : 'MotorController_FOC/PMSM_Controller/Angle_Speed_Estimation/Edge_Detect'
  348. * '<S10>' : 'MotorController_FOC/PMSM_Controller/Angle_Speed_Estimation/Electrical_Angle_Estimation'
  349. * '<S11>' : 'MotorController_FOC/PMSM_Controller/Angle_Speed_Estimation/Hall_Angle_Raw'
  350. * '<S12>' : 'MotorController_FOC/PMSM_Controller/Angle_Speed_Estimation/If Action Subsystem'
  351. * '<S13>' : 'MotorController_FOC/PMSM_Controller/Angle_Speed_Estimation/If Action Subsystem1'
  352. * '<S14>' : 'MotorController_FOC/PMSM_Controller/Angle_Speed_Estimation/Speed_Estimation'
  353. * '<S15>' : 'MotorController_FOC/PMSM_Controller/Angle_Speed_Estimation/Electrical_Angle_Estimation/degree_rad'
  354. * '<S16>' : 'MotorController_FOC/PMSM_Controller/Angle_Speed_Estimation/Electrical_Angle_Estimation/degree_rad/If Action Subsystem'
  355. * '<S17>' : 'MotorController_FOC/PMSM_Controller/Angle_Speed_Estimation/Electrical_Angle_Estimation/degree_rad/If Action Subsystem1'
  356. * '<S18>' : 'MotorController_FOC/PMSM_Controller/Angle_Speed_Estimation/Electrical_Angle_Estimation/degree_rad/If Action Subsystem2'
  357. * '<S19>' : 'MotorController_FOC/PMSM_Controller/Angle_Speed_Estimation/Speed_Estimation/Raw_Motor_Speed_Estimation'
  358. * '<S20>' : 'MotorController_FOC/PMSM_Controller/Angle_Speed_Estimation/Speed_Estimation/Subsystem'
  359. * '<S21>' : 'MotorController_FOC/PMSM_Controller/Angle_Speed_Estimation/Speed_Estimation/Raw_Motor_Speed_Estimation/Compare To Constant'
  360. * '<S22>' : 'MotorController_FOC/PMSM_Controller/Angle_Speed_Estimation/Speed_Estimation/Subsystem/Compare To Constant'
  361. * '<S23>' : 'MotorController_FOC/PMSM_Controller/Control_Mode_Manager/Control_Mode_Manager'
  362. * '<S24>' : 'MotorController_FOC/PMSM_Controller/Control_Mode_Manager/Mode_Transition_Calculation'
  363. * '<S25>' : 'MotorController_FOC/PMSM_Controller/Control_Mode_Manager/Subsystem'
  364. * '<S26>' : 'MotorController_FOC/PMSM_Controller/Control_Mode_Manager/target_scale'
  365. * '<S27>' : 'MotorController_FOC/PMSM_Controller/Control_Mode_Manager/target_scale/If Action Subsystem'
  366. * '<S28>' : 'MotorController_FOC/PMSM_Controller/Control_Mode_Manager/target_scale/If Action Subsystem1'
  367. * '<S29>' : 'MotorController_FOC/PMSM_Controller/Control_Mode_Manager/target_scale/open_mode'
  368. * '<S30>' : 'MotorController_FOC/PMSM_Controller/Control_Mode_Manager/target_scale/torque_mode'
  369. * '<S31>' : 'MotorController_FOC/PMSM_Controller/Control_Mode_Manager/target_scale/open_mode/Rate_Control'
  370. * '<S32>' : 'MotorController_FOC/PMSM_Controller/Control_Mode_Manager/target_scale/open_mode/Rate_Control/Saturation Dynamic'
  371. * '<S33>' : 'MotorController_FOC/PMSM_Controller/Control_Mode_Manager/target_scale/open_mode/Rate_Control/Subsystem'
  372. * '<S34>' : 'MotorController_FOC/PMSM_Controller/Control_Mode_Manager/target_scale/open_mode/Rate_Control/delayUnit'
  373. * '<S35>' : 'MotorController_FOC/PMSM_Controller/Diagnostics/Diagnostics_Enabled'
  374. * '<S36>' : 'MotorController_FOC/PMSM_Controller/Diagnostics/Diagnostics_Enabled/Debounce_Filter'
  375. * '<S37>' : 'MotorController_FOC/PMSM_Controller/Diagnostics/Diagnostics_Enabled/either_edge'
  376. * '<S38>' : 'MotorController_FOC/PMSM_Controller/Diagnostics/Diagnostics_Enabled/Debounce_Filter/Default'
  377. * '<S39>' : 'MotorController_FOC/PMSM_Controller/Diagnostics/Diagnostics_Enabled/Debounce_Filter/Dequalification'
  378. * '<S40>' : 'MotorController_FOC/PMSM_Controller/Diagnostics/Diagnostics_Enabled/Debounce_Filter/Qualification'
  379. * '<S41>' : 'MotorController_FOC/PMSM_Controller/Diagnostics/Diagnostics_Enabled/Debounce_Filter/either_edge'
  380. * '<S42>' : 'MotorController_FOC/PMSM_Controller/Diagnostics/Diagnostics_Enabled/Debounce_Filter/Dequalification/Counter'
  381. * '<S43>' : 'MotorController_FOC/PMSM_Controller/Diagnostics/Diagnostics_Enabled/Debounce_Filter/Dequalification/Counter/rst_Delay'
  382. * '<S44>' : 'MotorController_FOC/PMSM_Controller/Diagnostics/Diagnostics_Enabled/Debounce_Filter/Qualification/Counter'
  383. * '<S45>' : 'MotorController_FOC/PMSM_Controller/Diagnostics/Diagnostics_Enabled/Debounce_Filter/Qualification/Counter/rst_Delay'
  384. * '<S46>' : 'MotorController_FOC/PMSM_Controller/controller/Clarke_Park_Transform_Forward'
  385. * '<S47>' : 'MotorController_FOC/PMSM_Controller/controller/Motor_Limitations_Enabled'
  386. * '<S48>' : 'MotorController_FOC/PMSM_Controller/controller/PID_IDQ'
  387. * '<S49>' : 'MotorController_FOC/PMSM_Controller/controller/Park_Transform_Inverse'
  388. * '<S50>' : 'MotorController_FOC/PMSM_Controller/controller/SVM'
  389. * '<S51>' : 'MotorController_FOC/PMSM_Controller/controller/circle_limition'
  390. * '<S52>' : 'MotorController_FOC/PMSM_Controller/controller/current_sample'
  391. * '<S53>' : 'MotorController_FOC/PMSM_Controller/controller/idq_Calc'
  392. * '<S54>' : 'MotorController_FOC/PMSM_Controller/controller/pid_schdule'
  393. * '<S55>' : 'MotorController_FOC/PMSM_Controller/controller/Clarke_Park_Transform_Forward/Clarke'
  394. * '<S56>' : 'MotorController_FOC/PMSM_Controller/controller/Clarke_Park_Transform_Forward/Low_Pass_Filter'
  395. * '<S57>' : 'MotorController_FOC/PMSM_Controller/controller/Clarke_Park_Transform_Forward/Park'
  396. * '<S58>' : 'MotorController_FOC/PMSM_Controller/controller/Clarke_Park_Transform_Forward/Sine_Cosine_Approximation'
  397. * '<S59>' : 'MotorController_FOC/PMSM_Controller/controller/Motor_Limitations_Enabled/IIR Filter'
  398. * '<S60>' : 'MotorController_FOC/PMSM_Controller/controller/PID_IDQ/id_ctrl'
  399. * '<S61>' : 'MotorController_FOC/PMSM_Controller/controller/PID_IDQ/iq_ctrl'
  400. * '<S62>' : 'MotorController_FOC/PMSM_Controller/controller/PID_IDQ/id_ctrl/PI_id'
  401. * '<S63>' : 'MotorController_FOC/PMSM_Controller/controller/PID_IDQ/id_ctrl/Saturation Dynamic1'
  402. * '<S64>' : 'MotorController_FOC/PMSM_Controller/controller/PID_IDQ/id_ctrl/PI_id/Integrator1'
  403. * '<S65>' : 'MotorController_FOC/PMSM_Controller/controller/PID_IDQ/id_ctrl/PI_id/Saturation Dynamic1'
  404. * '<S66>' : 'MotorController_FOC/PMSM_Controller/controller/PID_IDQ/iq_ctrl/PI_iq'
  405. * '<S67>' : 'MotorController_FOC/PMSM_Controller/controller/PID_IDQ/iq_ctrl/Saturation Dynamic2'
  406. * '<S68>' : 'MotorController_FOC/PMSM_Controller/controller/PID_IDQ/iq_ctrl/PI_iq/Integrator1'
  407. * '<S69>' : 'MotorController_FOC/PMSM_Controller/controller/PID_IDQ/iq_ctrl/PI_iq/Saturation Dynamic1'
  408. * '<S70>' : 'MotorController_FOC/PMSM_Controller/controller/SVM/SVPWM'
  409. * '<S71>' : 'MotorController_FOC/PMSM_Controller/controller/SVM/SVPWM/duty_gen'
  410. * '<S72>' : 'MotorController_FOC/PMSM_Controller/controller/SVM/SVPWM/sector_select'
  411. * '<S73>' : 'MotorController_FOC/PMSM_Controller/controller/SVM/SVPWM/duty_gen/sector1'
  412. * '<S74>' : 'MotorController_FOC/PMSM_Controller/controller/SVM/SVPWM/duty_gen/sector2'
  413. * '<S75>' : 'MotorController_FOC/PMSM_Controller/controller/SVM/SVPWM/duty_gen/sector3'
  414. * '<S76>' : 'MotorController_FOC/PMSM_Controller/controller/SVM/SVPWM/duty_gen/sector4'
  415. * '<S77>' : 'MotorController_FOC/PMSM_Controller/controller/SVM/SVPWM/duty_gen/sector5'
  416. * '<S78>' : 'MotorController_FOC/PMSM_Controller/controller/SVM/SVPWM/duty_gen/sector6'
  417. * '<S79>' : 'MotorController_FOC/PMSM_Controller/controller/circle_limition/Compare To Constant'
  418. * '<S80>' : 'MotorController_FOC/PMSM_Controller/controller/circle_limition/IIR Filter'
  419. * '<S81>' : 'MotorController_FOC/PMSM_Controller/controller/idq_Calc/Subsystem'
  420. * '<S82>' : 'MotorController_FOC/PMSM_Controller/controller/idq_Calc/Subsystem/FW_Calc'
  421. * '<S83>' : 'MotorController_FOC/PMSM_Controller/controller/idq_Calc/Subsystem/MPTA_Calc'
  422. * '<S84>' : 'MotorController_FOC/PMSM_Controller/controller/idq_Calc/Subsystem/idq_Get'
  423. * '<S85>' : 'MotorController_FOC/PMSM_Controller/controller/idq_Calc/Subsystem/ivbus_limition'
  424. * '<S86>' : 'MotorController_FOC/PMSM_Controller/controller/idq_Calc/Subsystem/FW_Calc/Intergrator_z'
  425. * '<S87>' : 'MotorController_FOC/PMSM_Controller/controller/idq_Calc/Subsystem/MPTA_Calc/MTPA_Calc'
  426. * '<S88>' : 'MotorController_FOC/PMSM_Controller/controller/idq_Calc/Subsystem/MPTA_Calc/MTPA_Cali'
  427. * '<S89>' : 'MotorController_FOC/PMSM_Controller/controller/idq_Calc/Subsystem/MPTA_Calc/MTPA_Cali/Sine_Cosine_Approximation'
  428. * '<S90>' : 'MotorController_FOC/PMSM_Controller/controller/idq_Calc/Subsystem/idq_Get/speed_mode'
  429. * '<S91>' : 'MotorController_FOC/PMSM_Controller/controller/idq_Calc/Subsystem/idq_Get/torque_mode'
  430. * '<S92>' : 'MotorController_FOC/PMSM_Controller/controller/idq_Calc/Subsystem/idq_Get/speed_mode/Saturation Dynamic3'
  431. * '<S93>' : 'MotorController_FOC/PMSM_Controller/controller/idq_Calc/Subsystem/idq_Get/speed_mode/pi_speed'
  432. * '<S94>' : 'MotorController_FOC/PMSM_Controller/controller/idq_Calc/Subsystem/idq_Get/speed_mode/pi_speed/Integrator'
  433. * '<S95>' : 'MotorController_FOC/PMSM_Controller/controller/idq_Calc/Subsystem/idq_Get/speed_mode/pi_speed/Saturation Dynamic1'
  434. * '<S96>' : 'MotorController_FOC/PMSM_Controller/controller/idq_Calc/Subsystem/idq_Get/torque_mode/Saturation Dynamic'
  435. */
  436. #endif /* RTW_HEADER_PMSM_Controller_h_ */
  437. /*
  438. * File trailer for generated code.
  439. *
  440. * [EOF]
  441. */