Tankmodell
Ein Zustand: der Wasserstand
Der Wasserstand `h(t)` wird als Zustandsmodell erster Ordnung beschrieben. Die effektive Beckenflaeche `A` verbindet Volumenstrom und Aenderung des Wasserstands.
Der freie Ablauf wird als Wurzelkennlinie angenaehert. Die Pumpe wird ueber eine normierte Stellgroesse `u` zwischen 0 und 1 beschrieben.
q_out(h) = c * sqrt(h)
q_pump(u) = u * q_pump_max
0 <= u <= 1
Diskrete Simulation
Euler-Schritt mit fester Abtastzeit
h[k + 1] = h[k] + Delta_t * dh_dt
Nach jedem Schritt wird der Wasserstand auf den physikalisch sinnvollen Bereich zwischen 0 m und maximaler Beckenhoehe begrenzt.
PID-Regler
Positiver Fehler bedeutet: Pumpe staerker fahren
Im Projekt ist der Fehler als `e[k] = h[k] - h_set` definiert. Ist der Wasserstand zu hoch, wird der Fehler positiv und die Pumpenleistung steigt.
Der I-Anteil wird begrenzt. Ausserdem pausiert die Integration, wenn die Pumpe bereits an einer Stellgrenze liegt und der Fehler die Saettigung weiter verstaerken wuerde.
u[k] = Kp * e[k]
+ Ki * sum(e[i] * Delta_t)
+ Kd * (e[k] - e[k-1]) / Delta_t