Output target value of PID
PIDcontroller.h@0:90457f6c41ea, 2018-08-10 (annotated)
- Committer:
- Uchida0923
- Date:
- Fri Aug 10 07:22:48 2018 +0000
- Revision:
- 0:90457f6c41ea
PID????????????????????????
Who changed what in which revision?
User | Revision | Line number | New 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 |