LabVIEWForum.de - Temperaturreglung mit Schmitt Trigger

LabVIEWForum.de

Normale Version: Temperaturreglung mit Schmitt Trigger
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich versuche eine Temperaturregelung für eine Heizplatte mit Labview 2011 zu Programmieren. Ein Thermoelement Typ K misst die Temperatur und dementsprechend wird ein Heizpatrone ein- oder ausgeschaltet damit die Temperatur "konstant" bleibt.
Man kann mit einem PID-Regler die Aufgabe lösen mich würde aber Interessieren, wie ich es mit einem Schmitt Trigger schaffe.

danke im Voraus für eure Hilfe.
Hallo choksled,

ein Schmitttrigger ist ein Schalter mit Hysterese…

Vorschlag:
Code:
IF temp => T_Soll + Hysterese THEN
  Heizplatte := aus
ENDIF
IF temp <= T_Soll - Hysterese THEN
  Heizplatte := an
ENDIF

Wenn man sich dann mal ein passendes subVI an- und in seiner user.lib abgelegt hat, kann das ganze so aussehen:
[attachment=54635]
Big Grin
(17.11.2015 12:30 )choksled schrieb: [ -> ]dementsprechend wird ein Heizpatrone ein- oder ausgeschaltet damit die Temperatur "konstant" bleibt.
Man kann mit einem PID-Regler die Aufgabe lösen mich würde aber Interessieren, wie ich es mit einem Schmitt Trigger schaffe.
Regeln mit dem Schmitt-Trigger (On/Off-Regelung) an sich funktioniert - es kommt aber sehr auf dein zu regelndes System an. Ich selbst habe auch schon eine Temperatur mit On/Off-Regelung eingestellt.

Regelung hat immer den Touch von Ausprobieren - gerade bei On/Off-Regelung. Relevant sind die einzelnen Elemente des einzustellenden Systems. Wie schnell erzeugt die Heizung die Wärme? Wie lange heizt sie nach, nachdem die abgeschaltet wurde? Wie lange braucht die Wärme, um vom Heizelement zur Messstelle zu gelangen? Ist die Messstelle auch die Stelle, die eine relevante Wärme haben soll? Beachte z.B.: Ein Heizelement macht (z.B.) 180°, die einzustellende Temperatur soll aber nur 60° betragen - etc.

Nichtsdestoweniger kann man auch eine On/Off-Regelung intelligenter machen: Du musst ja nicht kontinuierlich Heizen - du kannst ja auch stoßweise heizen, obwohl die Temperatur noch nicht erreicht ist.

Probleme sehe ich eher beim Hochfahren von Raumtemperatur auf Endtemperatur (120°), weniger beim Halten der Temperatur.
Vielen Dank GerdW.
Ich werde es mit der hysterese versuchen. Kannst du mir sagen wo ich diese VI finde? Ich habe Labview 2011
(17.11.2015 13:42 )choksled schrieb: [ -> ]Vielen Dank GerdW.
Ich werde es mit der hysterese versuchen. Kannst du mir sagen wo ich diese VI finde? Ich habe Labview 2011
Das findest du in der user.lib von Gerd...

Gruß, Jens
[/quote]
Regelung hat immer den Touch von Ausprobieren - gerade bei On/Off-Regelung.
[/quote]

Genau.
Ich bin gerade noch bei der Suche nach möglichen Lösungen. Schmitt-Trigger ist eine Variante.
Ich muss noch alles zusammen bauen und dann kann ich Einbissen experimentieren
Hier mal ein Beispiel für ein Schmitt-Trigger-SubVI, allerdings ohne Graphik im Ikon. Die 2 Schaltpunkte werden hier in einem Schieberegister gespeichert, so daß man diese nicht bei jedem Aufruf des VI mit übergeben muß. Das kann man natürlich auch weglassen.
[attachment=54641]
[attachment=54655]
Noch ein Vorschlag:
Code:
state_new := pv > (setpoint + hysteresis * state_previous)
(Der aktuelle Schaltzustand entscheidet darüber, ob die Hysterese addiert oder subtrahiert wird.)

So sieht das in LabVIEW aus:
[attachment=54642]
(Wenn man will, kann man noch einen "/state"-Ausgang anlegen, wenn man mal keine Heizung, sondern eine Kühlung betreiben will. Big Grin)
Das ist übrigens der Inhalt des oben gezeigten VI-Icons. Das VI reentrant setzen und nach Belieben im Code verwenden…

Ich würde den Sollwert und die Reglerparameter nicht im Regler-VI speichern, da diese Werte immer von einer übergeordneten Instanz bereitgestellt werden…
Danke Leute.
Ich werde erstmal eure Lösungen ausprobieren.
Danke GerdW.
Deine Lösung ist einfach und es funktioniert. Das ist genau was ich gesucht habe ;-)
Seiten: 1 2
Referenz-URLs