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.
pid.h@2:484b8b5fbe29, 2017-09-21 (annotated)
- Committer:
- orihika
- Date:
- Thu Sep 21 05:13:54 2017 +0000
- Revision:
- 2:484b8b5fbe29
- Parent:
- 1:e153634d7432
ContestSpecification
Who changed what in which revision?
| User | Revision | Line number | New 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 |