MD_PID
Dependents: Omni_2017_z BETA_A ALPHA_A GAMMA_A ... more
MD_PID.h@0:fe6ec67653f4, 2016-08-18 (annotated)
- Committer:
- Auk
- Date:
- Thu Aug 18 06:36:14 2016 +0000
- Revision:
- 0:fe6ec67653f4
- Child:
- 3:0157bb21ba04
First Commit.
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_); |
Auk | 0:fe6ec67653f4 | 13 | double Drive(double ref); |
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 | |
Auk | 0:fe6ec67653f4 | 37 | MD_PID* Create_MD_PID( int number, int i2c_addr, I2C *i2c, // QEI |
Auk | 0:fe6ec67653f4 | 38 | double kp, double ki, double kd, int pulse, // PID |
Auk | 0:fe6ec67653f4 | 39 | PinName pwm, PinName dere); // MD |
Auk | 0:fe6ec67653f4 | 40 | |
Auk | 0:fe6ec67653f4 | 41 | #endif |