MD_PID

Dependencies:   QEI

Dependents:   Omni_2017_z BETA_A ALPHA_A GAMMA_A ... more

Committer:
hirotayamato
Date:
Wed Sep 27 06:49:24 2017 +0000
Revision:
12:d930cbffd2c9
Parent:
8:16a31803a60d
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_);
hirotayamato 12:d930cbffd2c9 13 double Drive(int a, 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();
hirotayamato 8:16a31803a60d 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;
hirotayamato 8:16a31803a60d 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;
hirotayamato 8:16a31803a60d 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