Zpět na domů

PID regulátor: modelování částí P I D

Článek demonstruje modelování PID regulátoru prostřednictvím FDTD simulace ohřívače a mechanického systému. Analyzují se efekty komponent P, I, D s příklady kódu Mathematica. Diskutuje se odstranění statické chyby a optimalizace odezvy.

Jak funguje PID: simulace s kódem a grafy
Advertisement 728x90

Modelování PID regulátoru: od základní proporcionalní části po kompletní cyklus

PID-regulátor generuje řídící signál na základě chyby e(t) = cílová_hodnota - měřená_hodnota. V nejjednodušším případě se proporcionalní část u(t) = K_p * e(t) používá k úpravě odchylek. Příkladem je řízení hladiny vody v nádrži: při e(t) > 0 se ventil otevírá podle velikosti chyby, ale signál je omezen maximálním průtokem.

Skutečné systémy ukazují zpoždění. U ohřívače se teplo šíří podle rovnice vedení tepla ∂w/∂t = Δw + f(x,y,t), kde f je zdroj ohřevu. Jedná se o difuzní proces s tlumením, podobný vlnám s útlumem.

Číselné modelování vedení tepla

Analytické řešení rovnice vedení tepla v Mathematica ukazuje evoluci teploty:

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}
];

V bodě vzdáleném od zdroje se teplota zvyšuje se zpožděním. Pro simulaci zpětné vazby se přechází k diskretizaci metodou FDTD (Finite-Difference Time-Domain).

Základní krok pro 2D rovnici:

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}
];

Podmínka stability CFL: δt / δx² ≤ 0.25. Simulace zapnutí/vypnutí ohřívače potvrzuje setrvačnost systému.

Google AdInline article slot

Proporcionální regulátor: systematická chyba

Připojení P-regulátoru: heater = K_p * Clip[error, {0, ∞}]. Při nízké výkonu ohřívače se teplota stabilizuje pod cílovou hodnotou kvůli ztrátám. Zvýšení K_p zesiluje oscilace, ale stálá chyba zůstává.

Graf ukazuje:

  • Nízký výkon: pomalý nárůst, nedosáhne cílové hodnoty.
  • Vysoký výkon: oscilace bez dosažení cíle.

Integrální složka pro odstranění chyby

Integrál akumuluje chybu: accError += error; u(t) = K_p error + K_i accError. Toto kompenzuje statické ztráty.

Google AdInline article slot

Příklad s nižším výkonem:

Module[{w = Table[0., {50}, {50}], accError = 0.0},
  Table[
    With[{error = (0.0022 - w[[25, 25]])},
      {
        heater = 20000.0 Clip[error + 0.001 accError, {0, Infinity}]
      },
      accError += error;
      w = solveHeat[w, Function[{i, j}, If[Max[Abs[{i, j} - {25, 2}]] < 1, heater, 0.0]]];
      {{steps, w[[25, 25]]}, {steps, heater/30000.0}}
    ],
    {steps, 1, 3000}
  ]
];

Teplota konverguje k cílové hodnotě bez oscilací.

Derivativní složka: předpověď oscilací

D-složka reaguje na rychlost změny chyby: u(t) = K_p e + K_i ∫e + K_d * de/dt. Tato zpomaluje budoucí oscilace.

Plný PID snižuje dobu náběhu, ale vyžaduje přesnou kalibraci koeficientů. Příliš velké K_d způsobuje artefakty.

Srovnání:

  • Pouze P: pomalá odezva, chyba.
  • PI: konvergence, možné přehřátí.
  • PID: optimální čas, minimální oscilace.

Formální definice a mechanický systém

Plná formule: u(t) = K_p e(t) + K_i ∫₀ᵗ e(τ) dτ + K_d de/dt.

Pro hmotný objekt o hmotnosti m: x''(t) = u(t)/m. Derivace PID zjednoduší: u'(t) = K_i e + K_p e' + K_d e''.

Ověření bez regulátoru: konstantní u=1 dává x(t) = t²/(2m) — parabolická trajektorie.

S P-regulátorem e(t) = a - x(t) vytváří uzavřený okruh. Kalibrace koeficientů je iterační proces s ohledem na dynamiku systému.

Důležité:

  • Proporcionální část poskytuje základní reakci, ale zůstává statická chyba.
  • Integrál odstraňuje akumulované odchylky v setrvačných systémech.
  • Derivativní část předpovídá změny a urychlují stabilizaci.
  • FDTD-modelování vizualizuje efekty pro ladění.
  • Stabilita vyžaduje dodržení CFL a omezení na u(t).

— Editorial Team

Advertisement 728x90

Číst dál