PID pour moteur BLDC drivé en Spwm

Salut,

désolé, j'ai tellement fait d'essai que je crois que la ligne a sauté avant mon copier/collé

void asservissement()
{

int tick = ticksCodeur;
ticksCodeur = 0;

// Calcul de l'erreur
erreur = consnbticks - tick;
somme_erreur += erreur;

float delta_erreur = erreur - erreur_precedente;
erreur_precedente = erreur;

//PID : calcul de la commande
int pid = kperreur + kisomme_erreur + kd*delta_erreur;

En fait le résultat de PID tend vers 0 et plus le moteur accélère et plus il tend vers +infini et plus il ralenti.
LE fait qu'il gère la fréquence de la boucle cela inverse l'effet.

William