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.
Fork of PID by
Revision 6:775c9421fe3b, committed 2015-10-30
- Comitter:
- kikoaac
- Date:
- Fri Oct 30 12:47:54 2015 +0000
- Parent:
- 5:3519920d064d
- Child:
- 7:66e3f3fd08d8
- Commit message:
- ???
Changed in this revision
| PID.cpp | Show annotated file Show diff for this revision Revisions of this file |
| PID.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/PID.cpp Wed Sep 23 06:01:32 2015 +0000
+++ b/PID.cpp Fri Oct 30 12:47:54 2015 +0000
@@ -52,6 +52,7 @@
{
timer = p.timer;
data = 0;
+ bias=0;
GAIN_P = p.GAIN_P;
GAIN_I = p.GAIN_I;
GAIN_D = p.GAIN_D;
@@ -63,6 +64,7 @@
{
timer=T;
data = 0;
+ bias=0;
GAIN_P = tauKp;
GAIN_I = tauKi;
GAIN_D = tauKd;
@@ -137,7 +139,7 @@
else if(data<OutMin)s_dErrIntg=OutMin;
else s_dErrIntg += (dErr+dErr_prev )* T /2.0;
// 制御入力
- dRet = GAIN_P * dErr + GAIN_I * s_dErrIntg + GAIN_D*dErrDiff;
+ dRet = bias+GAIN_P * dErr + GAIN_I * s_dErrIntg + GAIN_D*dErrDiff;
dErr_prev = dErr;
if(dRet>OutMax)data=OutMax;
@@ -150,3 +152,4 @@
+
--- a/PID.h Wed Sep 23 06:01:32 2015 +0000
+++ b/PID.h Fri Oct 30 12:47:54 2015 +0000
@@ -1,51 +1,52 @@
-
-#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:
- float OutMax;
- float InMax;
- float OutMin;
- float InMin;
- float OutSpan;
- float InSpan;
- Timer *timer;
- float gettime() {
- static float prev_time;
- float a = timer->read()-prev_time;
- prev_time=timer->read();
- return a;
- }
- //Ticker T;
- float interval;
-
-};
-
+
+#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);
+ void setbias(float bias_){bias=bias_;}
+ 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:
+ float bias;
+ float OutMax;
+ float InMax;
+ float OutMin;
+ float InMin;
+ float OutSpan;
+ float InSpan;
+ Timer *timer;
+ float gettime() {
+ static float prev_time;
+ float a = timer->read()-prev_time;
+ prev_time=timer->read();
+ return a;
+ }
+ //Ticker T;
+ float interval;
+
+};
+
#endif
