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:
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.
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.
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
Zatím žádné komentáře.