Hey Leute! Ich hab ein System bei dem die Temperatur möglichst konstant bei 30, max.31 Grad sein soll. Die Daten der Temp. werden über einen Arduino auf dem PC gespeichert. Das ganze wird über einen Dreipunktregler geregelt. Also bei Temp. über 31Grad wird gekühlt, unter 30Grad wird geheizt und zwischen 30 und 31 Grad passiert nichts. Die Temp. ist abhängig vom Strom auf dem System. Der Strom könnte schlagartig von 0 auf 10A geändert werden. Alle Werte dazwischen gehen auch. Jetzt ist es so, dass das System sehr spät erfährt, ob es kühlen oder heizen soll. Dadurch können große Schwankungen entstehen. Ich habe informationen darüber, wie hoch meine Temp. bei entsprechenden Strom ist. Vielleicht kann ich dadurch irgendeinen nutzen ziehen für eine bessere Temperaturregelung?! Ziel ist es die Temp. möglichst schnell zu erreichen und hohe Temperaturschwankungen zu vermeiden Danke über jeden Tipp!
Identifikation der Regelstrecke, Überlegungen zur Identifikation der richtigen Regelgröße sind nicht verkehrt. Ein paar Details zu deinem System wären auch nicht schlecht
Was du suchst ist ein PID-Regler. Der ist an und für sich nicht sehr schwer (gibt es auch für deinen Arduino fertig). Den muss man nur noch parametrisieren (die drei Parameter P, I und D an deine Anwendung anpassen). Die Ermittelung dieser Parameter ist das wirklich knifflige an der Regelung. Dafür kann man beliebigen Aufwand treiben. Man kann das auch einfach ausprobieren: https://de.wikipedia.org/wiki/Faustformelverfahren_(Automatisierungstechnik)#Empirische_Dimensionierung
Tim schrieb: > zwischen 30 und 31 Grad passiert nichts. Damit kannst Du unmöglich auf 1° regeln. Die Sensoren sollten mindestens auf 1/10 besser auflösen, als Du regeln willst, d.h. besser 0,1°. Nimm die klassische PID-Regelung und rechne in float. Eine digitale Regelung hat noch einen 4. Parameter, die Abtastzeit. Diese wählt man so, daß sie gleich oder etwas kleiner als die Totzeit des Regelkreises ist.
123 schrieb: > https://de.wikipedia.org/wiki/Faustformelverfahren_(Automatisierungstechnik)#Empirische_Dimensionierung Etwas besser: Ziegler/Nichols oder Chien/Reswick/Hrones.
Tim schrieb: > Ich hab ein System bei dem die Temperatur möglichst konstant bei 30, > max.31 Grad sein soll. Die Daten der Temp. werden über einen Arduino auf > dem PC gespeichert. Das ganze wird über einen Dreipunktregler geregelt. > Also bei Temp. über 31Grad wird gekühlt, unter 30Grad wird geheizt und > zwischen 30 und 31 Grad passiert nichts. Tja, das Verfahren taugt also nicht, man braucht einen PID Regler. Das macht jeder billige Temperaturregler aus der Bucht http://www.ebay.de/itm/TA4-RNR-Digital-Programmable-F-C-PID-Temperature-Controller-90-260V-AC-DC-TE593-/162464877620
wenn die Temperatur abhängig vom Strom ist - warum regelst du dann nicht über den Strom (und ggf. verknüpft mit der aktuellen Temperatur ) ? dürfte deutlich schneller reagieren als deine bisherige Strom - Temperatur-Wandlung und dann Temperaturregelung Gruß Ben
Benjamin M. schrieb: > warum regelst du dann nicht > über den Strom Ich nehme mal an daß der Strom durch Umstände von aussen bestimmt wird, also eher eine Störgröße ist. Man könnte aber als Regelgröße mit der zu- bzw. abzuführenden Leistung rechnen, und nach dem Ausgang des PID Reglers die Leistung die durch den Strom in das System eingebracht wird von der Regelgröße abziehen. Das wäre streng genommen ein "modellbasierter prädiktiver Ansatz" wenn ich das noch richtig im Kopf habe, allerdings eher als praktischer Ansatz ohne Theorie. :-)
123 schrieb: > Was du suchst ist ein PID-Regler Der würde das wohl nicht schaffen, sieht eher nach Anwendung für Feedforward aus: https://de.mathworks.com/help/control/examples/temperature-control-in-a-heat-exchanger.html
Danke für die Antworten. Ich werde mir den PID Regler genauer ansehen und mich ggf. nochmals melden! Benjamin M. schrieb: > wenn die Temperatur abhängig vom Strom ist - warum regelst du dann > nicht > über den Strom (und ggf. verknüpft mit der aktuellen Temperatur ) ? > dürfte deutlich schneller reagieren als deine bisherige Strom - > Temperatur-Wandlung und dann Temperaturregelung > > Gruß Ben Das ist so, dass der Strom per Hand eingestellt wird, je nachdem wie ich mein System gerade haben möchte. Ich könnte also mein System vorher schon bescheid geben, welche Temp. diese erreichen würden ohne Regelung. Der Andere schrieb: > Benjamin M. schrieb: >> warum regelst du dann nicht >> über den Strom > > Ich nehme mal an daß der Strom durch Umstände von aussen bestimmt wird, > also eher eine Störgröße ist. > > Man könnte aber als Regelgröße mit der zu- bzw. abzuführenden Leistung > rechnen, und nach dem Ausgang des PID Reglers die Leistung die durch den > Strom in das System eingebracht wird von der Regelgröße abziehen. > > Das wäre streng genommen ein "modellbasierter prädiktiver Ansatz" wenn > ich das noch richtig im Kopf habe, allerdings eher als praktischer > Ansatz ohne Theorie. :-) Wäre super wenn du es genauer erklären könntest. Das könnte genau das sein, was ich mir erhofft habe?!
Ein PID Regler wäre schon mal eine gute Basis. Weil man die wesentliche Störgröße wohl kennt, kann man den Einfluss noch einmal zusätzlich kompensieren - das wäre eine Form des feed forward. Der PID Regler, etwa für Änderungen der Raumtemperatur, oder die Fehler die man bei der Kompensation des Stromes macht bleibt aber in der Regel erhalten.
Allenfalls die Leistungen reduzieren... Anstelle mit 10A, mit 0.5A drauf, was auch immer das bedeutet. Ich wuerd aber auch auf einen PID gehen. Allenfalls ohne Kuehlung. Dh gegenueber Raumtemperatur, welche dann tiefer sein muss.
Heizung und Kühlung separat behandeln. z.B.: Heizung: <30.0°C einschalten >30.6°C ausschalten (etwaiges Überschwingen muss natürlich vorher mal ermittelt werden so das die 30,0°C nicht überschritten werden). Kühlung: >31.0°C einschalten <30.7°C ausschalten (halt so das es noch knapp oberhalb von 30,6°C bleibt) Hart von Heizung auf Kühlung umschalten gibt bestenfalls einen Lustigen Schwingkreis.
Danke erstmal für die Antworten. Eine PID Regelung zu erstellen und über einen Mikrocontroller zu steuern ist nicht so einfach. Zumindest als laie nicht. Wer könnte da helfen, wie ich vorgehen muss? Wie man die Parameter P,I,D bestimmen kann? Was habe ich? -Sollwert -Istwert wird über einen Temperatursensor angezeigt. Ist bereits implementiert und läuft über einen Arduino -Das Heizen funktioniert wie bei einer Heizung(Könnte verschiedene Werte einstellen) Einfacher ist es natürlich nur ein- und auszuschalten(max. Temp.) -Kühlung geht nur ein oder aus (max. Kühlung, keine Werte dazwischen) Kühlung ist der Hauptpunkt. Ist es bei einer zweipunktkühlung überhaupt möglich? Habe aus einem anderen Forum folgendes gefunden: Für P-Anteil: Istwert-Sollwert Für I-Anteil: (Istwert-Sollwert)*Zeitdifferenz Für D-Anteil habe ich das hier gefunden: ((Änderung des istwertes seit letzter Berechnung)/zeitdifferenz) Wie ist das zu verstehen? Die Messung findet doch kontinuierlich statt?! bzw. wie könnte ich das herausfinden? Temperatursensor: DS18B20
Tim schrieb: > Eine PID Regelung zu erstellen und über > einen Mikrocontroller zu steuern ist nicht so einfach. Zumindest als > laie nicht. Das ist das einfachste. Den kauft man fertig bei ebay. > Wer könnte da helfen, wie ich vorgehen muss? Wie man die Parameter P,I,D > bestimmen kann? Das ist das eigentliche Problem. Dazu brauchst Du wenigstens ein Grundlagenwissen in Regelungstechnik. > Was habe ich? > -Sollwert > -Istwert wird über einen Temperatursensor angezeigt. Ist bereits > implementiert und läuft über einen Arduino > > -Das Heizen funktioniert wie bei einer Heizung(Könnte verschiedene Werte > einstellen) Einfacher ist es natürlich nur ein- und auszuschalten(max. > Temp.) > > -Kühlung geht nur ein oder aus (max. Kühlung, keine Werte dazwischen) > Kühlung ist der Hauptpunkt. Ist es bei einer zweipunktkühlung überhaupt > möglich? Sehr wichtig ist vor allen das Messen der sogenannten Sprungantworten und das jeweilige Überschwingen. Daraus kann man dann schon einige grobe Parameter berechnen. Ich hatte mal beruflich mit einem PI-Regler für einen Abstandssensor zu tun. Da war das Einstellen des I-Anteils recht einfach. Ich stellte den Anteil solange hoch, bis der Sensor anfing zu schwingen. Dann ein Stückchen zurück und schon stimmte der I-Anteil. :-)
Harald W. schrieb: > Ich stellte den Anteil solange hoch, bis der Sensor > anfing zu schwingen. Dann ein Stückchen zurück und schon stimmte der > I-Anteil. :-) Nennt sich Ziegler Nichols.
Tim schrieb: > Wie ist das zu verstehen? Die Messung findet doch kontinuierlich statt?! Nein, ein DS18B20 misst genau dann, wenn du ihm sagst, dass er messen soll. > Für I-Anteil: (Istwert-Sollwert)*Zeitdifferenz Da fehlt noch die entscheidende Operation. Wenn du das "I" mal ausschreibst, nähmlich als "Integral" wird schon klarer, was das für ein Fehler ist, nähmlich der über die Zeit aufintegrierte Fehler bzw. bei einem Abtastsystem mit festem Abtastintervall der aussummierte Fehler.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.