.

Dependencies:   L432KC_SPI_Pey_Lal

Committer:
voltxd
Date:
Mon May 23 17:18:33 2022 +0000
Revision:
118:67d6698069fd
Parent:
115:156b8234f2de
ajoutvitesse;

Who changed what in which revision?

UserRevisionLine numberNew 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 }