ssyn
Level-2
- Beiträge
- 224
- Reaktionspunkte
- 23
-> Hier kostenlos registrieren
Ich komme zu Frage mit PID Regler und kann leider nicht selbst die Funktionalität vollständig erfassen.
Ich möchte den Fall mit Wassertank simulieren, wo muss bestimmte Temperatur eingehalten werden.
Es gibt "Heater", sobald ist "Heater" aktiv, steigt die Temperatur auf 0.01 Grad pro Zyklus (20 ms)
Es gibt "Coller", sobald ist "Cooler" aktiv, sinkt die Temperatur auf 0.01 Grad pro Zyklus
Und Wassertemperatur sinkt zusätzlich ständig auf 0.003 Grad pro Zyklus wegen Wärmeverluste.
Ich möchte es mit PID Regler machen, aber heater and cooler startet zu oft, ich spielte viel mit KP, TN und TV, aber Problem bleibt doch da.
Können Sie bitte mir erklären, was mache ich falsch?
Ich möchte den Fall mit Wassertank simulieren, wo muss bestimmte Temperatur eingehalten werden.
Es gibt "Heater", sobald ist "Heater" aktiv, steigt die Temperatur auf 0.01 Grad pro Zyklus (20 ms)
Es gibt "Coller", sobald ist "Cooler" aktiv, sinkt die Temperatur auf 0.01 Grad pro Zyklus
Und Wassertemperatur sinkt zusätzlich ständig auf 0.003 Grad pro Zyklus wegen Wärmeverluste.
Ich möchte es mit PID Regler machen, aber heater and cooler startet zu oft, ich spielte viel mit KP, TN und TV, aber Problem bleibt doch da.
Code:
PROGRAM PLC_PRG
VAR
controller: PID;
ActT : REAL ;
SetT : Real ;
heater: BOOL;
cooler: BOOL;
END_VAR
Code:
controller(actual:=ActT,Set_Point:=SetT);
IF controller.Y > SetT THEN
heater := TRUE;
cooler := FALSE;
ELSIF controller.Y < SetT THEN
heater := FALSE;
cooler := TRUE;
END_IF
IF heater THEN
ActT := ActT + 0.01;
ActT := ActT - 0.003;
END_IF
IF cooler THEN
ActT := ActT - 0.01;
ActT := ActT - 0.003;
END_IF

Können Sie bitte mir erklären, was mache ich falsch?