Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
SVM/SVM.cpp@5:51c6560bf624, 2016-03-12 (annotated)
- Committer:
- benkatz
- Date:
- Sat Mar 12 18:45:22 2016 +0000
- Revision:
- 5:51c6560bf624
- Parent:
- 0:4e1c4df6aabd
- Child:
- 6:4ee1cdc43aa8
Moved InvClarke out of SVM
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
benkatz | 0:4e1c4df6aabd | 1 | |
benkatz | 0:4e1c4df6aabd | 2 | #include "mbed.h" |
benkatz | 0:4e1c4df6aabd | 3 | #include "SVM.h" |
benkatz | 0:4e1c4df6aabd | 4 | #include "Inverter.h" |
benkatz | 0:4e1c4df6aabd | 5 | |
benkatz | 0:4e1c4df6aabd | 6 | SPWM::SPWM(Inverter *inverter, float V_Bus){ |
benkatz | 0:4e1c4df6aabd | 7 | _inverter = inverter; |
benkatz | 0:4e1c4df6aabd | 8 | _V_Bus = V_Bus; |
benkatz | 0:4e1c4df6aabd | 9 | } |
benkatz | 5:51c6560bf624 | 10 | |
benkatz | 5:51c6560bf624 | 11 | void SPWM::Update_DTC(float V_A, float V_B, float V_C){ |
benkatz | 5:51c6560bf624 | 12 | float DTC_A = V_A/_V_Bus + .5f; |
benkatz | 5:51c6560bf624 | 13 | float DTC_B = V_B/_V_Bus + .5f; |
benkatz | 5:51c6560bf624 | 14 | float DTC_C = V_C/_V_Bus + .5f; |
benkatz | 0:4e1c4df6aabd | 15 | |
benkatz | 0:4e1c4df6aabd | 16 | if(DTC_A > .95f) DTC_A = .95f; |
benkatz | 0:4e1c4df6aabd | 17 | else if(DTC_A < .05f) DTC_A = .05f; |
benkatz | 0:4e1c4df6aabd | 18 | if(DTC_B > .95f) DTC_B = .95f; |
benkatz | 0:4e1c4df6aabd | 19 | else if(DTC_B < .05f) DTC_B = .05f; |
benkatz | 0:4e1c4df6aabd | 20 | if(DTC_C > .95f) DTC_C = .95f; |
benkatz | 0:4e1c4df6aabd | 21 | else if(DTC_C < .05f) DTC_C = .05f; |
benkatz | 0:4e1c4df6aabd | 22 | _inverter->SetDTC(DTC_A, DTC_B, DTC_C); |
benkatz | 5:51c6560bf624 | 23 | } |
benkatz | 5:51c6560bf624 | 24 | |
benkatz | 5:51c6560bf624 | 25 | SVPWM::SVPWM(Inverter *inverter, float V_Bus){ |
benkatz | 5:51c6560bf624 | 26 | _inverter = inverter; |
benkatz | 5:51c6560bf624 | 27 | _V_Bus = V_Bus; |
benkatz | 5:51c6560bf624 | 28 | } |
benkatz | 5:51c6560bf624 | 29 | |
benkatz | 5:51c6560bf624 | 30 | void SVPWM::Update_DTC(float V_A, float V_B, float V_C){ |
benkatz | 5:51c6560bf624 | 31 | float DTC_A = V_A/_V_Bus + .5f; |
benkatz | 5:51c6560bf624 | 32 | float DTC_B = V_B/_V_Bus + .5f; |
benkatz | 5:51c6560bf624 | 33 | float DTC_C = V_C/_V_Bus + .5f; |
benkatz | 5:51c6560bf624 | 34 | |
benkatz | 5:51c6560bf624 | 35 | if(DTC_A > .95f) DTC_A = .95f; |
benkatz | 5:51c6560bf624 | 36 | else if(DTC_A < .05f) DTC_A = .05f; |
benkatz | 5:51c6560bf624 | 37 | if(DTC_B > .95f) DTC_B = .95f; |
benkatz | 5:51c6560bf624 | 38 | else if(DTC_B < .05f) DTC_B = .05f; |
benkatz | 5:51c6560bf624 | 39 | if(DTC_C > .95f) DTC_C = .95f; |
benkatz | 5:51c6560bf624 | 40 | else if(DTC_C < .05f) DTC_C = .05f; |
benkatz | 5:51c6560bf624 | 41 | _inverter->SetDTC(DTC_A, DTC_B, DTC_C); |
benkatz | 5:51c6560bf624 | 42 | } |
benkatz | 5:51c6560bf624 | 43 |