NOT FINISHED YET!!! My first try to get a self built fully working Quadrocopter based on an mbed, a self built frame and some other more or less cheap parts.
PID/PID.h@29:8b7362a2ee14, 2012-12-15 (annotated)
- Committer:
- maetugr
- Date:
- Sat Dec 15 08:42:36 2012 +0000
- Revision:
- 29:8b7362a2ee14
- Child:
- 30:021e13b62575
gyro only version running ESCs on 490Hz now
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
maetugr | 29:8b7362a2ee14 | 1 | #include "mbed.h" |
maetugr | 29:8b7362a2ee14 | 2 | |
maetugr | 29:8b7362a2ee14 | 3 | #ifndef PID_H |
maetugr | 29:8b7362a2ee14 | 4 | #define PID_H |
maetugr | 29:8b7362a2ee14 | 5 | |
maetugr | 29:8b7362a2ee14 | 6 | class PID { |
maetugr | 29:8b7362a2ee14 | 7 | public: |
maetugr | 29:8b7362a2ee14 | 8 | PID(float P, float I, float D, float Integral_Max); |
maetugr | 29:8b7362a2ee14 | 9 | float compute(float SetPoint, float ProcessValue); |
maetugr | 29:8b7362a2ee14 | 10 | void setIntegrate(bool Integrate); |
maetugr | 29:8b7362a2ee14 | 11 | |
maetugr | 29:8b7362a2ee14 | 12 | private: |
maetugr | 29:8b7362a2ee14 | 13 | float P,I,D; // PID Values |
maetugr | 29:8b7362a2ee14 | 14 | |
maetugr | 29:8b7362a2ee14 | 15 | Timer dtTimer; // Timer to measure time between every compute |
maetugr | 29:8b7362a2ee14 | 16 | float LastTime; // Time when last loop was |
maetugr | 29:8b7362a2ee14 | 17 | |
maetugr | 29:8b7362a2ee14 | 18 | float SetPoint; // the Point you want to reach |
maetugr | 29:8b7362a2ee14 | 19 | float Integral; // the sum of all errors (constaind so it doesn't get infinite) |
maetugr | 29:8b7362a2ee14 | 20 | float Integral_Max; // maximum that the sum of all errors can get (not important: last error not counted) |
maetugr | 29:8b7362a2ee14 | 21 | float PreviousError; // the Error of the last computation to get derivative |
maetugr | 29:8b7362a2ee14 | 22 | bool Integrate; // if the integral is used / the controller is in use |
maetugr | 29:8b7362a2ee14 | 23 | }; |
maetugr | 29:8b7362a2ee14 | 24 | |
maetugr | 29:8b7362a2ee14 | 25 | #endif |