Mar 20, 2014
11:47 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Mar 20, 2014
11:47 AM
Hello,
I’m implementing a sensorless control of a PMSMachine working as generator, using the XMC4500 relax kit and PWMSVM01 DAVE 3 App.
The PWM frequency is 10kHz, The Space Vector modulation index is given by M = (PI/2)*V/Vdc were V=sqrt(vd^2+vq2) and Vdc is the DC bus voltage.
M must be <= 0,9069 to avoid the non-linear zone. I have also the theta angle used in dq to alpha beta to abc (and vice-versa), reference frame transformations.
These two variables: M and theta (or V and theta)) are the ones I have been used in my SVM control process simulations.
The question is how to "translate" my modulation index M and my theta angle (or V and theta) to the PWMSVM01_SVM(&PWMSVM01_Handle0, "Amplitude", "Angle") command.
The PWMSVM01_SVM(&PWMSVM01_Handle0, "Amplitude", "Angle") command is executed every 100us within the PWMSVM01 Period Match Interrupt.
The documentation I found about this command (in DAVE PWMSVM01 App Help) only sais:
"Call PWMSVM01_SVM(HandlePtr, Amplitude, Angle) API periodically to execute the SVM algorithm. 0 to 100% Amplitude is mapped to 0 to PWM period value and 0 to 360 degrees Angle is mapped to 0 to 0xFFFF".
This is confusing to me. Could you please help me?
Give an example please.
Thank you in advance
Rui Brito
I’m implementing a sensorless control of a PMSMachine working as generator, using the XMC4500 relax kit and PWMSVM01 DAVE 3 App.
The PWM frequency is 10kHz, The Space Vector modulation index is given by M = (PI/2)*V/Vdc were V=sqrt(vd^2+vq2) and Vdc is the DC bus voltage.
M must be <= 0,9069 to avoid the non-linear zone. I have also the theta angle used in dq to alpha beta to abc (and vice-versa), reference frame transformations.
These two variables: M and theta (or V and theta)) are the ones I have been used in my SVM control process simulations.
The question is how to "translate" my modulation index M and my theta angle (or V and theta) to the PWMSVM01_SVM(&PWMSVM01_Handle0, "Amplitude", "Angle") command.
The PWMSVM01_SVM(&PWMSVM01_Handle0, "Amplitude", "Angle") command is executed every 100us within the PWMSVM01 Period Match Interrupt.
The documentation I found about this command (in DAVE PWMSVM01 App Help) only sais:
"Call PWMSVM01_SVM(HandlePtr, Amplitude, Angle) API periodically to execute the SVM algorithm. 0 to 100% Amplitude is mapped to 0 to PWM period value and 0 to 360 degrees Angle is mapped to 0 to 0xFFFF".
This is confusing to me. Could you please help me?
Give an example please.
Thank you in advance
Rui Brito
1 Reply
Apr 10, 2014
02:04 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Apr 10, 2014
02:04 AM
Hallo Rui Brito,
In the PWMSVM01 App the amplitude is given in 0 to PWM period. You can see the PWM period in the App GUI “SVM Configurations” “Period Register: “ or in the C file PWMSVM01_Handle0.kMaxAmplitude.
The 100% are referred to the Us = sqr(3)/2 Ur. That leads to the fact that the SVM App can’t provide over modulation.
In other words 100% will be the maximum circle inside of the hexagon.
Regards
Eric
In the PWMSVM01 App the amplitude is given in 0 to PWM period. You can see the PWM period in the App GUI “SVM Configurations” “Period Register: “ or in the C file PWMSVM01_Handle0.kMaxAmplitude.
The 100% are referred to the Us = sqr(3)/2 Ur. That leads to the fact that the SVM App can’t provide over modulation.
In other words 100% will be the maximum circle inside of the hexagon.
Regards
Eric