PID

Bonjour,
Je suis entrain de réaliser l’asservissement d’un drone, un quadricopter équipé de 4 moteurs DC et fonctionnant avant une carte arduino Uno et un shield adafruit. Je souhaiterais dans un premier temps que le drone se stabilise selon l’axe des Z, normale au drone ( pouvoir régler l’altitude). Mais pour qu’il soit stable lors de sa montée en vol stationnaire je m’intéresse au PID. J’ai donc acheté une centrale inertielle ADXL 335 qui fonctionne parfaitement.
Seulement je ne comprend pas le code basic de la librairie PID sur Arduino.
A quoi correspondent les constantes au début du programme? Comment les choisir ?

voici le programme :

#include <PID_v1.h>

#define PIN_INPUT 0
#define PIN_OUTPUT 3

//Define Variables we’ll be connecting to
double Setpoint, Input, Output;

//Specify the links and initial tuning parameters
double Kp=2, Ki=5, Kd=1;
PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT);

void setup()
{
//initialize the variables we’re linked to
Input = analogRead(PIN_INPUT);
Setpoint = 100;

//turn the PID on
myPID.SetMode(AUTOMATIC);
}

void loop()
{
Input = analogRead(PIN_INPUT);
myPID.Compute();
analogWrite(PIN_OUTPUT, Output);
}

C’est la partie en gras que je ne comprend pas. Quelqu’un peut-il me donner plus d’informations ? Merci

Pour faire simple se sont des valeurs que tu doit ajuster pour que le drone soit stable.

là: http://playground.arduino.cc/Code/PIDLibrary

et là: http://playground.arduino.cc/Code/PIDAutotuneLibrary

Lit ça aussi http://www.ferdinandpiette.com/blog/2012/04/asservissement-en-vitesse-dun-moteur-avec-arduino/

super intéressent ton lien Jambe