MD_PID

Dependencies:   QEI

Dependents:   Omni_2017_z BETA_A ALPHA_A GAMMA_A ... more

Committer:
hirotayamato
Date:
Sat Aug 05 02:28:54 2017 +0000
Revision:
4:374ca057d8d5
Parent:
3:0157bb21ba04
Child:
6:0b2d21052b4a
MD_PID

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Auk 0:fe6ec67653f4 1 #ifndef _MD_PID_H_
Auk 0:fe6ec67653f4 2 #define _MD_PID_H_
Auk 0:fe6ec67653f4 3
Auk 0:fe6ec67653f4 4 #include "MD.h"
Auk 0:fe6ec67653f4 5 #include "QEI.h"
Auk 0:fe6ec67653f4 6
Auk 0:fe6ec67653f4 7 class MD_PID
Auk 0:fe6ec67653f4 8 {
Auk 0:fe6ec67653f4 9 public:
Auk 0:fe6ec67653f4 10 MD_PID();
Auk 0:fe6ec67653f4 11 MD_PID( MD *motor_,
Auk 0:fe6ec67653f4 12 double kp_, double ki_, double kd_, int pulse_, QEI *qei_);
Auk 3:0157bb21ba04 13 double Drive(double ref, double stop);
Auk 0:fe6ec67653f4 14 double PID(double target);
Auk 0:fe6ec67653f4 15 void Read_Speed();
Auk 0:fe6ec67653f4 16 double Speed();
Auk 0:fe6ec67653f4 17 void Reset();
Auk 0:fe6ec67653f4 18
Auk 0:fe6ec67653f4 19 void PID_Step(double interval);
Auk 0:fe6ec67653f4 20 private:
Auk 0:fe6ec67653f4 21 double ref1;
Auk 0:fe6ec67653f4 22 double duty;
Auk 0:fe6ec67653f4 23
Auk 0:fe6ec67653f4 24 double diff[2];
Auk 0:fe6ec67653f4 25 double integral;
Auk 0:fe6ec67653f4 26 double delta;
Auk 0:fe6ec67653f4 27 double p, i, d;
Auk 0:fe6ec67653f4 28 double kp, ki, kd;
Auk 0:fe6ec67653f4 29 int pulse;
Auk 0:fe6ec67653f4 30 double qs;
Auk 0:fe6ec67653f4 31
Auk 0:fe6ec67653f4 32 QEI *qei;
Auk 0:fe6ec67653f4 33 MD *md;
Auk 0:fe6ec67653f4 34 Timer timer;
Auk 0:fe6ec67653f4 35 };
Auk 0:fe6ec67653f4 36
hirotayamato 4:374ca057d8d5 37 MD_PID* Create_MD_PID( PinName channelA, PinName channelB, PinName index, int pulsesPerRev, QEI::Encoding encoding, double kp, double ki, double kd, int pulse, PinName pwm, PinName dere);
Auk 0:fe6ec67653f4 38
Auk 0:fe6ec67653f4 39 #endif