.
Dependencies: L432KC_SPI_Pey_Lal
asservissement.cpp@118:67d6698069fd, 2022-05-23 (annotated)
- Committer:
- voltxd
- Date:
- Mon May 23 17:18:33 2022 +0000
- Revision:
- 118:67d6698069fd
- Parent:
- 115:156b8234f2de
ajoutvitesse;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
voltxd | 113:2f8f255e99f2 | 1 | #include "asservissement.hpp" |
voltxd | 113:2f8f255e99f2 | 2 | #include "toolbox.hpp" |
voltxd | 113:2f8f255e99f2 | 3 | |
voltxd | 113:2f8f255e99f2 | 4 | double kp = 1; |
voltxd | 113:2f8f255e99f2 | 5 | double ki = 1; |
voltxd | 113:2f8f255e99f2 | 6 | double errorIntegral = 0; |
voltxd | 113:2f8f255e99f2 | 7 | double integralLimit = 10; |
voltxd | 113:2f8f255e99f2 | 8 | |
voltxd | 113:2f8f255e99f2 | 9 | uint32_t PID(double error, double sampleRate) |
voltxd | 113:2f8f255e99f2 | 10 | { |
voltxd | 113:2f8f255e99f2 | 11 | errorIntegral += error / sampleRate; |
voltxd | 113:2f8f255e99f2 | 12 | errorIntegral = limitToInterval(errorIntegral, -integralLimit, integralLimit); |
voltxd | 113:2f8f255e99f2 | 13 | double correction = kp * error + ki * errorIntegral; |
voltxd | 113:2f8f255e99f2 | 14 | double correctionPWM = SPEED_TO_PWM_TRANSFORM(correction); |
voltxd | 113:2f8f255e99f2 | 15 | return limitToInterval(correctionPWM, 1000, 1500); |
voltxd | 115:156b8234f2de | 16 | } |
voltxd | 115:156b8234f2de | 17 | |
voltxd | 115:156b8234f2de | 18 | void setPIDParameters(double kp_, double ki_) |
voltxd | 115:156b8234f2de | 19 | { |
voltxd | 115:156b8234f2de | 20 | kp = kp_; |
voltxd | 115:156b8234f2de | 21 | ki = ki_; |
voltxd | 113:2f8f255e99f2 | 22 | } |