akihiro takeda / pid
Committer:
orihika
Date:
Thu Sep 21 05:13:54 2017 +0000
Revision:
2:484b8b5fbe29
Parent:
1:e153634d7432
ContestSpecification

Who changed what in which revision?

UserRevisionLine numberNew contents of line
orihika 2:484b8b5fbe29 1 /*********************************************
orihika 2:484b8b5fbe29 2 PID library
orihika 2:484b8b5fbe29 3
orihika 2:484b8b5fbe29 4 PositionPid : 位置型
orihika 2:484b8b5fbe29 5 SpeedPid : 速度型
orihika 2:484b8b5fbe29 6
orihika 2:484b8b5fbe29 7 setup(float Kp, float Ki, float Kd, float dt)
orihika 2:484b8b5fbe29 8 パラメータ、制御周期の設定
orihika 2:484b8b5fbe29 9 Kp : Pゲイン
orihika 2:484b8b5fbe29 10 Ki : Iゲイン
orihika 2:484b8b5fbe29 11 Kd : Dゲイン
orihika 2:484b8b5fbe29 12 dt : 制御周期[s]
orihika 2:484b8b5fbe29 13
orihika 2:484b8b5fbe29 14 calculate(float target, float nowValue)
orihika 2:484b8b5fbe29 15 PIDの計算をする
orihika 2:484b8b5fbe29 16 target : 目標値
orihika 2:484b8b5fbe29 17 nowValue : 現在値
orihika 2:484b8b5fbe29 18
orihika 2:484b8b5fbe29 19 duty()
orihika 2:484b8b5fbe29 20 計算結果を-1~1で返す
orihika 2:484b8b5fbe29 21 *********************************************/
orihika 2:484b8b5fbe29 22
orihika 0:2806fecd5288 23 #ifndef MBED_PID_H
orihika 0:2806fecd5288 24 #define MBED_PID_H
orihika 0:2806fecd5288 25
orihika 0:2806fecd5288 26 #include "mbed.h"
orihika 0:2806fecd5288 27
orihika 0:2806fecd5288 28 class PositionPid
orihika 0:2806fecd5288 29 {
orihika 0:2806fecd5288 30 public :
orihika 0:2806fecd5288 31 void setup(float Kp, float Ki, float Kd, float dt);
orihika 0:2806fecd5288 32
orihika 2:484b8b5fbe29 33 void calculate(float target, float nowValue);
orihika 0:2806fecd5288 34
orihika 0:2806fecd5288 35 float duty();
orihika 0:2806fecd5288 36
orihika 0:2806fecd5288 37 private :
orihika 0:2806fecd5288 38 float kp, ki, kd,
orihika 0:2806fecd5288 39 time, frequency,
orihika 0:2806fecd5288 40 old, now,
orihika 0:2806fecd5288 41 p, i, d, result;
orihika 0:2806fecd5288 42 };
orihika 0:2806fecd5288 43
orihika 0:2806fecd5288 44 class SpeedPid
orihika 0:2806fecd5288 45 {
orihika 0:2806fecd5288 46 public :
orihika 0:2806fecd5288 47 void setup(float Kp, float Ki, float Kd, float dt);
orihika 0:2806fecd5288 48
orihika 2:484b8b5fbe29 49 void calculate(float target, float nowValue);
orihika 0:2806fecd5288 50
orihika 0:2806fecd5288 51 float duty();
orihika 0:2806fecd5288 52
orihika 0:2806fecd5288 53 private :
orihika 0:2806fecd5288 54 float kp, ki, kd,
orihika 0:2806fecd5288 55 time, frequency,
orihika 0:2806fecd5288 56 e, e1, e2,
orihika 0:2806fecd5288 57 p, i, d, result;
orihika 0:2806fecd5288 58 };
orihika 0:2806fecd5288 59
orihika 0:2806fecd5288 60 #endif