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