Ben Katz
/
Hobbyking_Cheetah_V1
FOC Implementation for putting multirotor motors in robots
CurrentRegulator/CurrentRegulator.h@0:4e1c4df6aabd, 2016-02-05 (annotated)
- Committer:
- benkatz
- Date:
- Fri Feb 05 00:52:53 2016 +0000
- Revision:
- 0:4e1c4df6aabd
- Child:
- 4:c023f7b6f462
It works!
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
benkatz | 0:4e1c4df6aabd | 1 | #ifndef CURRENTRETULATOR_H |
benkatz | 0:4e1c4df6aabd | 2 | #define CURRENTREGULATOR_H |
benkatz | 0:4e1c4df6aabd | 3 | #include "Inverter.h" |
benkatz | 0:4e1c4df6aabd | 4 | #include "SVM.h" |
benkatz | 0:4e1c4df6aabd | 5 | #include "PositionSensor.h" |
benkatz | 0:4e1c4df6aabd | 6 | |
benkatz | 0:4e1c4df6aabd | 7 | class CurrentRegulator{ |
benkatz | 0:4e1c4df6aabd | 8 | public: |
benkatz | 0:4e1c4df6aabd | 9 | CurrentRegulator(Inverter *inverter, PositionSensor *position_sensor, float Kp, float Ki); |
benkatz | 0:4e1c4df6aabd | 10 | void UpdateRef(float D, float Q); |
benkatz | 0:4e1c4df6aabd | 11 | void Commutate(); |
benkatz | 0:4e1c4df6aabd | 12 | private: |
benkatz | 0:4e1c4df6aabd | 13 | float IQ_Ref, ID_Ref, V_Q, V_D, V_Alpha, V_Beta, I_Q, I_D, I_A, I_B, I_C, I_Alpha, I_Beta, theta_elec, _Kp, _Ki; |
benkatz | 0:4e1c4df6aabd | 14 | float Q_Integral, D_Integral, Q_Error, D_Error, Int_Max, DTC_Max; |
benkatz | 0:4e1c4df6aabd | 15 | void SampleCurrent(); |
benkatz | 0:4e1c4df6aabd | 16 | void SetVoltage(); |
benkatz | 0:4e1c4df6aabd | 17 | void Update(); |
benkatz | 0:4e1c4df6aabd | 18 | Inverter* _Inverter; |
benkatz | 0:4e1c4df6aabd | 19 | PositionSensor* _PositionSensor; |
benkatz | 0:4e1c4df6aabd | 20 | SPWM* PWM; |
benkatz | 0:4e1c4df6aabd | 21 | int count; |
benkatz | 0:4e1c4df6aabd | 22 | |
benkatz | 0:4e1c4df6aabd | 23 | |
benkatz | 0:4e1c4df6aabd | 24 | |
benkatz | 0:4e1c4df6aabd | 25 | }; |
benkatz | 0:4e1c4df6aabd | 26 | |
benkatz | 0:4e1c4df6aabd | 27 | |
benkatz | 0:4e1c4df6aabd | 28 | #endif |