AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR
Filtrage PID

Description détaillée

Graphe de collaboration de Filtrage PID:

Structures de données

struct  xPidData
 Structure contenant l'état du filtre PID. Plus de détails...
 

Fonctions

int32_t iPidProcess (int32_t iSetPoint, int32_t mesure, xPidData *xPid)
 Calcul PID. Plus de détails...
 
void vPidInit (float fKp, float fKi, float fKd, xPidData *xPid)
 Initialise le filtre PID. Plus de détails...
 
void vPidResetIntegrator (xPidData *xPid)
 Remise à zéro de la somme des erreurs.
 

Macros

#define SCALING_FACTOR   128
 

Définitions de type

typedef struct xPidData xPidData
 Structure contenant l'état du filtre PID. Plus de détails...
 

Documentation des définitions de type

typedef struct xPidData xPidData

Structure contenant l'état du filtre PID.

Erreur: e = consigne - mesure Facteur d'échelle: SK = SCALING_FACTOR (128) de = e - e_précédente Se = somme des erreurs alors u, consigne filtrée: u = Kp.e + Kd.de/dt + Ki.Se.dt On n'en déduit: fKp = Kp.SK fKd = Kd.SK/dt fKi = Ki.SK.dt

Documentation des fonctions

int32_t iPidProcess ( int32_t  iSetPoint,
int32_t  mesure,
xPidData xPid 
)

Calcul PID.

Paramètres
consigneValeur de consigne Desired value.
mesureValeur mesuréeMeasured value.
xPidFiltre à utiliser
Renvoie
la valeur filtrée
void vPidInit ( float  fKp,
float  fKi,
float  fKd,
xPidData xPid 
)

Initialise le filtre PID.

Paramètres
fKpCoefficient du terme proportionnel (fKp=128.Kp)
fKiCoefficient du terme intégral (fKi=128.Ki=128.Kp.dT/Ti)
fKdCoefficient du terme dérivé (fKd=128.Kd=128.Kp.Td/dT)
xPidFiltre à initialiser
Note
dT est la période d'appel de la fonction iPidProcess()