Output target value of PID

Committer:
Uchida0923
Date:
Fri Aug 10 07:22:48 2018 +0000
Revision:
0:90457f6c41ea
PID????????????????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Uchida0923 0:90457f6c41ea 1 /*
Uchida0923 0:90457f6c41ea 2 * タイトル:PID制御用のプログラム
Uchida0923 0:90457f6c41ea 3 * 説明 :目標値に対しての出力を返す
Uchida0923 0:90457f6c41ea 4 *製作者:Uchida Masayuki
Uchida0923 0:90457f6c41ea 5 * 変更履歴:2018.08.10
Uchida0923 0:90457f6c41ea 6 *
Uchida0923 0:90457f6c41ea 7 */
Uchida0923 0:90457f6c41ea 8
Uchida0923 0:90457f6c41ea 9
Uchida0923 0:90457f6c41ea 10 /*
Uchida0923 0:90457f6c41ea 11 メソッドの説明
Uchida0923 0:90457f6c41ea 12 コンストラクタ 刻み値(割り込み値)を代入
Uchida0923 0:90457f6c41ea 13 print() //目標値に対する出力値を表示
Uchida0923 0:90457f6c41ea 14 output(float 実際の値,float 目標値); //
Uchida0923 0:90457f6c41ea 15
Uchida0923 0:90457f6c41ea 16 */
Uchida0923 0:90457f6c41ea 17
Uchida0923 0:90457f6c41ea 18
Uchida0923 0:90457f6c41ea 19
Uchida0923 0:90457f6c41ea 20 #ifndef PIDcontroller_H
Uchida0923 0:90457f6c41ea 21 #define PIDcontroller_H
Uchida0923 0:90457f6c41ea 22
Uchida0923 0:90457f6c41ea 23 #include "mbed.h"
Uchida0923 0:90457f6c41ea 24
Uchida0923 0:90457f6c41ea 25
Uchida0923 0:90457f6c41ea 26 class PIDController{
Uchida0923 0:90457f6c41ea 27 private:
Uchida0923 0:90457f6c41ea 28 float diff1;
Uchida0923 0:90457f6c41ea 29 float diff2;
Uchida0923 0:90457f6c41ea 30 float integral;
Uchida0923 0:90457f6c41ea 31 float delta_t;
Uchida0923 0:90457f6c41ea 32 static const float KP=0.005;
Uchida0923 0:90457f6c41ea 33 float KI;
Uchida0923 0:90457f6c41ea 34 float KD;
Uchida0923 0:90457f6c41ea 35 float sum;
Uchida0923 0:90457f6c41ea 36
Uchida0923 0:90457f6c41ea 37 public:
Uchida0923 0:90457f6c41ea 38 PIDController(float dt){
Uchida0923 0:90457f6c41ea 39 diff1=0;
Uchida0923 0:90457f6c41ea 40 diff2=0;
Uchida0923 0:90457f6c41ea 41 integral=0;
Uchida0923 0:90457f6c41ea 42 KI=KP/dt;
Uchida0923 0:90457f6c41ea 43 KD=KP*dt;
Uchida0923 0:90457f6c41ea 44 this->delta_t=dt;
Uchida0923 0:90457f6c41ea 45 } //コンストラクタ
Uchida0923 0:90457f6c41ea 46 float output(float sensorVal,float targetVal);
Uchida0923 0:90457f6c41ea 47 void print();
Uchida0923 0:90457f6c41ea 48
Uchida0923 0:90457f6c41ea 49 };
Uchida0923 0:90457f6c41ea 50 #endif