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_controller.h@0:7a97ebb833eb, 2019-05-05 (annotated)
- Committer:
- rzalog
- Date:
- Sun May 05 00:02:11 2019 +0000
- Revision:
- 0:7a97ebb833eb
test commit;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| rzalog | 0:7a97ebb833eb | 1 | #pragma once |
| rzalog | 0:7a97ebb833eb | 2 | |
| rzalog | 0:7a97ebb833eb | 3 | #include "globals.h" |
| rzalog | 0:7a97ebb833eb | 4 | |
| rzalog | 0:7a97ebb833eb | 5 | const float KpX = 0.01; |
| rzalog | 0:7a97ebb833eb | 6 | const float KdX = 0.1; |
| rzalog | 0:7a97ebb833eb | 7 | |
| rzalog | 0:7a97ebb833eb | 8 | const float KpW = 0.003; |
| rzalog | 0:7a97ebb833eb | 9 | const float KdW = 0; |
| rzalog | 0:7a97ebb833eb | 10 | |
| rzalog | 0:7a97ebb833eb | 11 | // for turning KpW=0.01, KdW=0.1 |
| rzalog | 0:7a97ebb833eb | 12 | |
| rzalog | 0:7a97ebb833eb | 13 | const float min_speed = 0.08; |
| rzalog | 0:7a97ebb833eb | 14 | const float max_speed = 0.16; |
| rzalog | 0:7a97ebb833eb | 15 | |
| rzalog | 0:7a97ebb833eb | 16 | const int done_limit = 150; |
| rzalog | 0:7a97ebb833eb | 17 | |
| rzalog | 0:7a97ebb833eb | 18 | class PIDController { |
| rzalog | 0:7a97ebb833eb | 19 | public: |
| rzalog | 0:7a97ebb833eb | 20 | PIDController(); |
| rzalog | 0:7a97ebb833eb | 21 | |
| rzalog | 0:7a97ebb833eb | 22 | void reset() volatile; |
| rzalog | 0:7a97ebb833eb | 23 | void update() volatile; |
| rzalog | 0:7a97ebb833eb | 24 | |
| rzalog | 0:7a97ebb833eb | 25 | void setXGoal(int counts); |
| rzalog | 0:7a97ebb833eb | 26 | void setWGoal(int counts); |
| rzalog | 0:7a97ebb833eb | 27 | |
| rzalog | 0:7a97ebb833eb | 28 | bool isDone() volatile; |
| rzalog | 0:7a97ebb833eb | 29 | char* getData(); |
| rzalog | 0:7a97ebb833eb | 30 | private: |
| rzalog | 0:7a97ebb833eb | 31 | void getSensorFeedback() volatile; |
| rzalog | 0:7a97ebb833eb | 32 | void x_controller() volatile; |
| rzalog | 0:7a97ebb833eb | 33 | void w_controller() volatile; |
| rzalog | 0:7a97ebb833eb | 34 | void updateMotorPwm() volatile; |
| rzalog | 0:7a97ebb833eb | 35 | |
| rzalog | 0:7a97ebb833eb | 36 | int m_goalW; |
| rzalog | 0:7a97ebb833eb | 37 | int m_goalX; |
| rzalog | 0:7a97ebb833eb | 38 | |
| rzalog | 0:7a97ebb833eb | 39 | float m_pwmW; |
| rzalog | 0:7a97ebb833eb | 40 | float m_pwmX; |
| rzalog | 0:7a97ebb833eb | 41 | |
| rzalog | 0:7a97ebb833eb | 42 | int m_errorW; |
| rzalog | 0:7a97ebb833eb | 43 | int m_errorX; |
| rzalog | 0:7a97ebb833eb | 44 | int m_errorW_old; |
| rzalog | 0:7a97ebb833eb | 45 | int m_errorX_old; |
| rzalog | 0:7a97ebb833eb | 46 | |
| rzalog | 0:7a97ebb833eb | 47 | int m_countsW; |
| rzalog | 0:7a97ebb833eb | 48 | int m_countsX; |
| rzalog | 0:7a97ebb833eb | 49 | |
| rzalog | 0:7a97ebb833eb | 50 | char buf[200]; |
| rzalog | 0:7a97ebb833eb | 51 | |
| rzalog | 0:7a97ebb833eb | 52 | int m_doneCounter; |
| rzalog | 0:7a97ebb833eb | 53 | }; |
| rzalog | 0:7a97ebb833eb | 54 |