MD_PID
Dependents: Omni_2017_z BETA_A ALPHA_A GAMMA_A ... more
MD_PID.h@12:d930cbffd2c9, 2017-09-27 (annotated)
- 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?
User | Revision | Line number | New 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 |