Ben Katz
/
Hobbyking_Cheetah_V1
FOC Implementation for putting multirotor motors in robots
CurrentRegulator/CurrentRegulator.h@14:80ce59119d93, 2016-10-31 (annotated)
- Committer:
- benkatz
- Date:
- Mon Oct 31 16:48:16 2016 +0000
- Revision:
- 14:80ce59119d93
- Parent:
- 12:c473a25f54f7
Misc. changes. Finally fixed transforms (turns out B and C current measurements were accidentally swapped)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
benkatz | 9:d7eb815cb057 | 1 | #ifndef CURRENTREGULATOR_H |
benkatz | 0:4e1c4df6aabd | 2 | #define CURRENTREGULATOR_H |
benkatz | 9:d7eb815cb057 | 3 | |
benkatz | 0:4e1c4df6aabd | 4 | #include "Inverter.h" |
benkatz | 0:4e1c4df6aabd | 5 | #include "SVM.h" |
benkatz | 0:4e1c4df6aabd | 6 | #include "PositionSensor.h" |
benkatz | 0:4e1c4df6aabd | 7 | |
benkatz | 0:4e1c4df6aabd | 8 | class CurrentRegulator{ |
benkatz | 0:4e1c4df6aabd | 9 | public: |
benkatz | 12:c473a25f54f7 | 10 | CurrentRegulator(Inverter *inverter, PositionSensor *position_sensor, PositionSensor *velocity_sensor, float L, float Kp, float Ki); |
benkatz | 0:4e1c4df6aabd | 11 | void UpdateRef(float D, float Q); |
benkatz | 0:4e1c4df6aabd | 12 | void Commutate(); |
benkatz | 9:d7eb815cb057 | 13 | void Reset(); |
benkatz | 11:c83b18d41e54 | 14 | virtual float GetQ(); |
benkatz | 0:4e1c4df6aabd | 15 | private: |
benkatz | 14:80ce59119d93 | 16 | float IQ_Ref, ID_Ref, V_Q, V_D, V_Alpha, V_Beta, V_A, V_B, V_C, I_Q, I_D, IQ_Old,ID_Old,I_A, I_B, I_C, I_Alpha, I_Beta, theta_elec, _Kp, _Ki, _L; |
benkatz | 9:d7eb815cb057 | 17 | float Q_Integral, D_Integral, Q_Error, D_Error, Int_Max, DTC_Max, Q_Max; |
benkatz | 0:4e1c4df6aabd | 18 | void SampleCurrent(); |
benkatz | 0:4e1c4df6aabd | 19 | void SetVoltage(); |
benkatz | 0:4e1c4df6aabd | 20 | void Update(); |
benkatz | 4:c023f7b6f462 | 21 | void SendSPI(); |
benkatz | 0:4e1c4df6aabd | 22 | Inverter* _Inverter; |
benkatz | 0:4e1c4df6aabd | 23 | PositionSensor* _PositionSensor; |
benkatz | 12:c473a25f54f7 | 24 | PositionSensor* _VelocitySensor; |
benkatz | 6:4ee1cdc43aa8 | 25 | SVM* PWM; |
benkatz | 10:370851e6e132 | 26 | //Serial* pc; |
benkatz | 8:10ae7bc88d6e | 27 | int count; |
benkatz | 0:4e1c4df6aabd | 28 | |
benkatz | 0:4e1c4df6aabd | 29 | |
benkatz | 0:4e1c4df6aabd | 30 | |
benkatz | 0:4e1c4df6aabd | 31 | }; |
benkatz | 0:4e1c4df6aabd | 32 | |
benkatz | 0:4e1c4df6aabd | 33 | |
benkatz | 0:4e1c4df6aabd | 34 | #endif |