Modélisation d'un régulateur PID : du fondamental proportionnel à la boucle de rétroaction complète
Un régulateur PID génère un signal de commande en fonction de l'erreur e(t) = consigne - valeur mesurée. Sous sa forme la plus simple, la composante proportionnelle u(t) = K_p * e(t) corrige les écarts. Par exemple, dans le contrôle du niveau d'eau : lorsque e(t) > 0, une vanne s'ouvre proportionnellement à l'erreur, mais le signal est limité au débit maximal.
Les systèmes réels présentent des retards. Pour un chauffage, la chaleur se propage selon l'équation de diffusion ∂w/∂t = Δw + f(x,y,t), où f représente la source de chaleur. Il s'agit d'un processus diffusif amorti — similaire aux ondes avec perte d'énergie.
Simulation numérique de la diffusion thermique
Les solutions analytiques sous Mathematica montrent l'évolution de la température :
sol = NDSolveValue[
{
D[w[x, y, t], t] == Laplacian[w[x, y, t], {x, y}] +
If[(x + 2)^2 + y^2 < 0.1 && t > 0.0, 100.0, 0],
w[x, y, 0] == 0
},
w,
{x, y} ∈ Rectangle[{-2, -1}, {2, 1}],
{t, 0, 10}
];
La température aux points éloignés de la source augmente avec un retard. Pour simuler la rétroaction, on passe à une modélisation discrète dans le domaine temporel via la méthode FDTD (Différences finies en temps et espace).
Étape de base pour l'équation de la chaleur 2D :
solveHeat[w_, f_, dt_: 0.0025, dx_: 0.1] := Table[
If[i > 1 && i < 50 && j > 1 && j < 50,
w[[i, j]] + dt (
w[[i - 1, j]] + w[[i, j - 1]] - 4 w[[i, j]] +
w[[i, j + 1]] + w[[i + 1, j]]
)/dx^2 + dt f[i, j],
w[[i, j]]
],
{i, 50}, {j, 50}
];
Condition de stabilité CFL : δt / δx² ≤ 0.25. Les simulations d'allumage/éteignage du chauffage confirment l'inertie du système.
Régulateur proportionnel : erreur persistante
Connexion P-régulateur : chauffage = K_p * Clip[erreur, {0, ∞}]. À faible puissance, la température se stabilise en dessous de la cible en raison des pertes. Augmenter K_p réduit le temps de réponse mais amplifie les oscillations — l'erreur en régime permanent reste.
Graphique montre :
- Faible puissance : montée lente, ne parvient pas à atteindre la consigne.
- Haute puissance : oscillations sans convergence.
Composante intégrale : suppression de l'erreur en régime permanent
L'intégrale accumule l'erreur : accErreur += erreur ; u(t) = K_p erreur + K_i accErreur. Cela compense les pertes statiques.
Exemple avec puissance réduite :
Module[{w = Table[0., {50}, {50}], accError = 0.0},
Table[
With[{erreur = (0.0022 - w[[25, 25]])},
{
chauffage = 20000.0 Clip[erreur + 0.001 accError, {0, Infinity}]
},
accError += erreur;
w = solveHeat[w, Function[{i, j}, If[Max[Abs[{i, j} - {25, 2}]] < 1, chauffage, 0.0]]];
{{étapes, w[[25, 25]]}, {étapes, chauffage/30000.0}}
],
{étapes, 1, 3000}
]
];
La température converge vers la consigne sans oscillation.
Composante dérivée : prédiction des oscillations
La dérivée réagit au taux de variation de l'erreur : u(t) = K_p e + K_i ∫e + K_d * de/dt. Elle atténue les dépassements futurs.
Le PID complet réduit le temps de montée mais exige un réglage précis. Un K_d trop élevé introduit des artefacts.
Comparaison :
- P seul : réponse lente, erreur persistante.
- PI : convergence, possible dépassement.
- PID : réponse optimale, oscillations minimales.
Définition formelle et système mécanique
Formule complète : u(t) = K_p e(t) + K_i ∫₀ᵗ e(τ) dτ + K_d de/dt.
Pour une masse m : x''(t) = u(t)/m. En dérivant le PID, on obtient : u'(t) = K_i e + K_p e' + K_d e''.
Sans régulateur : u constant = 1 donne x(t) = t²/(2m) — trajectoire parabolique.
Avec régulateur P : e(t) = a - x(t) forme une boucle fermée. Le réglage des coefficients est un processus itératif tenant compte de la dynamique du système.
Points clés :
- La composante proportionnelle fournit une réponse de base mais laisse une erreur en régime permanent.
- L'intégrale élimine l'écart accumulé dans les systèmes inertiels.
- La dérivée prédit les changements, accélérant la stabilisation.
- La simulation FDTD visualise les effets pour le débogage.
- La stabilité nécessite la satisfaction de la condition CFL et la limitation de u(t).
— Editorial Team
Aucun commentaire pour le moment.