Ist Arduino das Richtige für Regelungsaufgaben?
lima-city → Forum → Sonstiges → Technik und Elektronik
arbeiten
benutzen
dank
frage
funktion
http
komplett geschlossenes ventil
kreisen
messen
programmierung
pumpe
regeln
regler
stellen
temperatur
umlauf
url
ventil
vergleichen
wasser
-
Hallo zusammen,
hier im Forum hab ich das erste mal von dem Mikrocontroller "Arduino" gehört und weiß das ein paar hier auch damit arbeiten.
Da ich selber keine Erfahrung mit dem System hab und nur ein Semster Informatik (C) hatte hoffe ich, dass vielleicht von euch jemand mehr zu meiner Frage weiß.
Mein Regelungsaufgabe:
1. Eine Temperatur soll gemessen werden (optional mit Ausgabe der Temperatur auf Display)
2. Ausgehend von der Temperatur sollen 2 Motoren angesteuert werden können, die eine bestimmte Umdrehung je nach Programmierung machen
Ist so etwas mit Arduino möglich?
Wie lang schätzt ihr die Programmierzeit?
Oder kennt ihr ein besseres System für solch eine Aufgabe?
Viele Grüße
Robert
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Oh je...
Du gehst das falsch an fürchte ich, daher so unverfänglich wie möglich:
Grundsätzlich möglich: ja.
Geschätzte reine Programmierzeit: 2h
Bessere Alternativen sind mit deiner Schilderung der Regelaufgabe nicht möglich. Aus der kalten kann man jeden PID Regler benutzen wenn man die Ansteuerung entsprechend hinfummelt.
Fragen die man sich stellen sollte sind:
a) Wie schnell ändert sich die Temperatur, wie schnell muss der Regler sein ?
b) Wie genau muss die Temperatur gemessen werden und wie will man überhaupt messen ?
c) Wie schnell und genau muss man stellen, wie erfolgt die Ansteuerung der Stellglieder ?
d) Wie erfolgt die Sollwertvorgabe ?
Im übrigen würden dir auch 10 Semester Informatik nicht helfen, du brauchst einen Grundkurs in Regelungstechnik und Elektronik.
Die Programmierung ist bei soetwas vom Aufwand etwa bei 10% des Gesamtumfangs anzusiedeln. -
Hey fatfox,
ich hatte gehofft, dass du das Thema liest :)
Danke für deine Antwort.
Ich muss ehrlich sagen, dass ich auch ein Semester MSR hatte. Das war aber nur theoretisch und ich wusste nicht das man ein PID-Regler einfach kaufen kann.
Die Temperatur will ich mit einem Thermoelement messen und das auf "nur" ein Grad genau.
An Arduino dachte ich eigentlich nur um die Regelung einigermaßen "intelligent", sodass keine große Schwingung entsteht...
Meinst du so einen 0815-PI-Regler wie diesen: http://www.mercateo.com/p/413-PCE(2d)RE22T(2d)1/2_Punkt_PID_Regler_PCE_RE22T_1_fuer_Temperatur_230_V_AC_.html?showSimplePage=NO&ViewName=live~showGrossColumn&pk_campaign=SEA_PLA&pk_keyword=Sonstige#pce-instruments-2-punkt-pid-regler-pce-re22t-1-fuer-temperatur-230-v-ac-pce
Beitrag zuletzt geändert: 27.2.2013 19:58:11 von robi-total -
Der Regler allein ist natürlich nur die halbe Miete :-)
Du möchtest abhänig von der gemessenen Temperatur einen Stellantrieb aktivieren.
Die erste Frage ist jetzt wie messen wir die Temperatur, du sagst du möchtest ein Thermoelement benutzen, ok, da gibt es jetzt diverse Möglichkeiten an was hattest du gedacht ? PTC, NTC, PT100, PT1000, K, J, Halbleiter usw.
Wenn wir das wissen brauchen wir eine Sc haltung um den gewählten Sensor mit dem Arduino auszuwerten, da wir die Temperatur betragsmäßig erfassen möchten und ein Thermoelement benutzen wollen wird das vermutlich auf die Abfrage eines analogen Eingangs hinauslaufen.
Jetzt kennen wir die aktuelle Temperatur.
Jetzt ist die Frage was tun wir mit der Information, wollen wir eine Heizung so regeln das die temperatur durch geziehlte Nachführung möglichst konstant gehalten (Heizregler) wird oder möchten wir das eine bestimmte Grenztemperatur nicht überschritten wird (Kühlregler) oder wollen wir was ganz anderes ?
So jetzt vergleichen wir unseren Istwert (irgendwie, je nach gewünschter Funktion) mit einem entsprechenden Sollwert und im Ergebnis haben wir eine Entscheidung was wir tun müssen um die gewünschte Funktion zu erreichen (wie viele Umdrehungen wir fahren lassen müssen und im Zweifel auch in welche Richtung)
Jetzt müssen wir noch dafür sorgen das wir erfahren ob der von uns angeforderte regeleingriff auch tatsächlich erfolgt ist (die Umdrehungen zählen)
Wenn der Vorgang abgeschlossen ist beginnen wir von vorn messen, vergleichen, stellen.
Was wir noch prüfen sollten ist die Tatsache ob ev. ein Fehler unserem Regeleingriff verhindert hat, bspw. ein defekter Motor oder ein schwergäniges Ventil. Dazu konnen wir den Strom des Motors überwachen und ev. das Moment an unserem Ventil, ganz egal wir müssen nur wissen wenn etwas schief läuft.
Außerdem ist es ev. sinnvoll bei Überschreitung / Unterschreitung bestimmter Grenzwerte eine Aktion durchzuführen (Hupe an, Lampe an, Selbstzerstörung, what ever)
Du müsstest also ein wenig genauer beschreiben was du genau vorhast, dann weiss man auch ob man einen fertigen Regler nehmen kann oder Eigenbau sinnvoller ist. -
Hey, sorry das meine Antwort so lange auf sich warten hat lassen. Hab das ganze natürlich nicht vergessen :)
Ich hab mal mit Paint die Messaufgabe gezeichnet, hoffe mal kann etwas erkennen.
http://robi-total.lima-city.de/messaufgabe.jpg
Das ganze soll eine Kühlung sein. Das Kühlwasser kommt mithilfe einer Pumpe mit 15°C und wird dann durch einen Wärmeübertrager geleitet.
Auf der rechten Seite muss die Temperatur 26°C betragen. Die roten Leitungen sollen darstellten, das hier gemessen wird und dadurch die Ventile geregelt werden.
Das linke Ventil regelt den Durchfluss. Das Rechte Drei-Wege-Vetil soll die Temperatur wieder auf 26°C erhöhen, wenn die Temperatur zu gering ist.
Ich hoffe das ist eignermaßen verständlich :O
Viele Grüße :)
-------------------------------
Achso, es gibt zwar solche Ventile die quasi wie ein Heizungsthermostat funktionieren sind mir aber mit ca. 500€ zu teuer. Ich dachte mir das es mit einem Mikrokontroller eventuell günstiger werden könnte.
Beitrag zuletzt geändert: 4.3.2013 21:18:55 von robi-total -
Also, ich habe das ganze mal etwas ergänzt damit man besser darüber sprechen kann, ich beziehe mich im folgenden auf diese Skizze:
http://www.abload.de/img/messaufgabeyfjst.jpg
Du möchtest an Punkt X möglichst konstant 26°C haben, der Kreislauf von X strebt aber danach sich zu erwärmen.
Um dem entgegen zu wirken wird mithilfe der Pumpe P1 15°C kaltes Wasser in einen Wärmetauscher geleitet und der Wärmetauscher kühlt den Kreis von X. Die Kühlwirkung ist umso stärker je weiter Y1 geöffnet wird.
Außerdem hast du im Kreis von X ein Umschaltventil (Y2) das verhindert das der Kreis von X über den Wärmetauscher läuft wenn es angesteuert wird, damit möchtest du den Kreis von X wieder erwärmen falls er zu kalt werden würde.
Habe ich das richtig verstanden ?
Ich hab noch weitere Fragen:
Wie wird Y1 betätigt ? (Drehrad, Proportionalmagnet, Schritmotor, Anderes ?)
Wie wird Y2 betätigt ? (Drehrad, Proportionalmagnet, Schritmotor, Anderes ?)
Gibt es die Ventile bereits ?
Welche Drücke herrschen in den Systemen, über welche Stoffe reden wir in den Kreisläufen ? (links Wasser, rechts ?)
Überlege dir mal ob es dir nicht genügt den Durchfluss zu regeln und das "Kurzschließen" des Kreislaufes von X zu lassen, denn:
Wenn man Y1 auf machen kann damit mehr Wasser durch läuft und somit mehr gekühlt wird kann man es natürlich genausogut ein Stück zu drehen damit weniger Wasser durchläuft und weniger gekühlt wird.
Denke auch drüber nach ob die Pumpe P1 gegen ein komplett geschlossenes Ventil Y1 arbeiten kann (und darf !)
-
Hallo :)
Ja genau du hast alles richtig verstanden :)
Danke für die Ergänzung der Zeichnung.
Ventile hab ich noch keine, aber die sollen über einen normalen Stellmotor für Regelventile gedreht werden.
Im linken Kreislauf ist Wasser mit einem Pumpendruck von ca 1 bar und links Öl mit ebenfals ca. 1 bar.
Überlege dir mal ob es dir nicht genügt den Durchfluss zu regeln und das "Kurzschließen" des Kreislaufes von X zu lassen, denn:
Ja du hast recht... Ich dachte dieser zweite Kreis könnte dabei helfen, die Temperatur genauer hinzurkriegen...
So wie ich dich verstehe, macht dieser Zusatz, die Messaufgabe viel komplizierter oder ?
Denke auch drüber nach ob die Pumpe P1 gegen ein komplett geschlossenes Ventil Y1 arbeiten kann (und darf !)
Eine Pumpe versorgt mehrere solcher Kreise, also läuft die Pumpe nicht gegen ein komplett geschlossenes Ventil.
Viele Grüße
Robert -
Ich habe deine Anordnung mal ein wenig modifiziert (nur die linke Seite dargestellt, rechts passiert nichts interessantes außer das das Öl durch den Wärmetauscher zirkuliert):
http://www.abload.de/img/skizze1oj4c.jpg
Y1 ist ein sogenanntes Proportionalventil (bspw. sowas) Y2 ist ein einfaches Magnetventil das immer dann wenn das Proportionalventil fast ganz zu geregelt ist für einen drucklosen umlauf sorgt.
Die Programmierung ist jetzt denkbar einfach, das Proportionalventil wird mit einem Normsignal 4-20mA / 0-10V angesteuert, der Arduino kann 0-5V an einem Analogausgang bereitstellen, man benutzt dann einen Wandler (bspw. sowas) um aus 0..5V bspw. 0..10V zu machen.
Jetzt muss man nur abhänig vom Messwert einen Analogwert auf den Pin schieben und wenn der Wert zu klein wird den Digitalausgang für den drucklosen Umlauf einschalten, angesteuert wird das Magnetventil mit nem Transistor und einer Freilaufdiode.
Dann hat man mal die Grundfunktion. -
Die Funktion von Y2 ist mir nicht ganz klar.
Reicht das Ventil Y1 alleine nicht aus ? Das von 0...100% regelt ?
Was meinst du mit Drucklsoen Umlauf ? Wenn der Kälteverbraucher aus ist, sollte das Ventil komplett zu sein. -
Ah Mist das kannst du nicht verstehen, weil ich den drucklosen Umlauf hinter Y1 gezeichnet habe, aber der muss selbstverständlich davor sitzen (sonst ist er ja sinnlos).
Sinn ist das die Pumpe nicht gegen das Proportionalventil drückt wenn das Proportionalventil ganz zu ist, da du mehrere Kreise mit einer Pumpe versorgst kannst du die Pumpe nicht abschalten, also muss die mehr oder weniger immer laufen. Wenn das Ventil Y1 aber ganz zu ist erhöht sich der Widerstand in diesem Kreis, die Pumpe muss mehr leisten, wird warm, braucht mehr Strom, das ist nicht effizient.
Deswegen macht Y2 in dem Fall auf (sonst ist es zu) und ermöglicht der Pumpe gewissermaßen wiederstandslos Wasser im Kreris zu pumpen bis es wieder benötigt wird um zu kühlen.
Damit es jetzt nicht zurück in den Wärmetauscher fließt, kann man in die Rücklaufleitung noch ein Rückschlagventil einbauen, sieht dann so aus:
http://www.abload.de/img/p30500050nu2e.jpg
-
Sorry, dass meine Antwor fas einen Monat auf sich warten hat lassen.
Danke nochmal für die vielen Tipps.
Diesen Bypass kann in meiner Schaltung weglassen, da es sich um eine Hocheffizienzpumpe handelt mit Proportional-Einstellung.
Die regelt also von selber zu, wenn alle Ventile zu sind :) -
Also dann einfach Proportionalventil an den Analog Ausgang / Pegelwandler und Temperatursensor an den Analogeingang
Temperatur einlesen
mit Sollwert vergleichen
Abhänig vom Abstand zum Sollwert Ventil mehr oder weniger aufsteuern
kurz abwarten
neu beginnen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage