Retour à l'accueil

Contrôleur PID : modélisation des parties P I D

L'article démontre la modélisation du contrôleur PID via simulation FDTD du chauffage et du système mécanique. Les effets des composants P, I, D sont analysés avec des exemples de code Mathematica. L'élimination de l'erreur statique et l'optimisation de la réponse sont discutés.

Comment fonctionne PID : simulation avec code et graphiques
Advertisement 728x90

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 :

Google AdInline article slot
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.

Google AdInline article slot

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.

Google AdInline article slot

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

Advertisement 728x90

Lire ensuite