FOC Implementation for putting multirotor motors in robots

Dependencies:   FastPWM3 mbed

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?

UserRevisionLine numberNew 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