Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Nucleo_spi 2015_denziben_i2c_S2 Nucleo_Motor Nucleo_Motor
Fork of PID by
Diff: PID.h
- Revision:
- 4:a3c85727f0f6
- Parent:
- 3:34f4f22b18e7
--- a/PID.h Tue Aug 18 04:45:10 2015 +0000
+++ b/PID.h Mon Sep 14 07:43:57 2015 +0000
@@ -1,32 +1,57 @@
-
-#ifndef PID_H
-#define PID_H
-
-#include "mbed.h"
-class PID
-{
- public:
-
- PID(float tauKc, float tauKi, float tauKd);
-
- double s_dErrIntg ,dErr_prev;
- void Start();
- void Reset();
- void setInterval(double inter);
- //Getters.
- void stop();
- double dTarget; double dPoint;
- // PI制御ゲイン
- double GAIN_P ;//1.5 // 比例ゲイン
- double GAIN_I ;//2.8 // 積分ゲイン
- double GAIN_D ;//0.2
- double data;
- private:
- Timer timer;
- Ticker T;
- float interval;
- void PIDctrl();
-
-};
-
-#endif
\ No newline at end of file
+
+#ifndef PID_H
+#define PID_H
+
+#include "mbed.h"
+class PID
+{
+protected:
+ PID(const PID& p);
+ PID& operator=(const PID &p) {
+ return *this;
+ }
+ void PIDctrl();
+public:
+ void InputLimits(float max,float min);
+ void OutputLimits(float max,float min);
+ PID(float tauKc, float tauKi, float tauKd ,Timer *T);
+
+ double s_dErrIntg ,dErr_prev;
+ void Start();
+ void pid_reset();
+ void setInterval(double inter);
+ //Getters.
+ void stop();
+ double dTarget;
+ double dPoint;
+ // PI制御ゲイン
+ double GAIN_P ;//1.5 // 比例ゲイン
+ double GAIN_I ;//2.8 // 積分ゲイン
+ double GAIN_D ;//0.2
+ double data;
+private:
+ double dErr;
+
+ double dErrDiff;
+ float OutMax;
+ float InMax;
+ float OutMin;
+ float InMin;
+ float OutSpan;
+ float InSpan;
+ Timer *timer;
+ float prev_time;
+ float gettime() {
+ float a = timer->read()-prev_time;
+ //printf("%f ",prev_time);
+ prev_time=timer->read();
+ return a;
+ }
+ float T;
+ double dRet;
+ //Ticker T;
+ float interval;
+
+};
+
+#endif
