FOC Implementation for putting multirotor motors in robots

Dependencies:   FastPWM3 mbed

Committer:
benkatz
Date:
Sun May 22 00:14:59 2016 +0000
Revision:
11:c83b18d41e54
Parent:
10:370851e6e132
Child:
12:c473a25f54f7
summer cleaning;

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 0:4e1c4df6aabd 10 CurrentRegulator(Inverter *inverter, PositionSensor *position_sensor, 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 5:51c6560bf624 16 float IQ_Ref, ID_Ref, V_Q, V_D, V_Alpha, V_Beta, V_A, V_B, V_C, I_Q, I_D, I_A, I_B, I_C, I_Alpha, I_Beta, theta_elec, _Kp, _Ki;
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 6:4ee1cdc43aa8 24 SVM* PWM;
benkatz 10:370851e6e132 25 //Serial* pc;
benkatz 8:10ae7bc88d6e 26 int count;
benkatz 0:4e1c4df6aabd 27
benkatz 0:4e1c4df6aabd 28
benkatz 0:4e1c4df6aabd 29
benkatz 0:4e1c4df6aabd 30 };
benkatz 0:4e1c4df6aabd 31
benkatz 0:4e1c4df6aabd 32
benkatz 0:4e1c4df6aabd 33 #endif