Temperaturregelung mehrstufig (Arduino?)

Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese

Matt
Beiträge: 6091
Registriert: So 24. Aug 2014, 21:22

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von Matt »

Glaubensfrage? Nee!

Ich selber kann nur das Ding empfehlen, das ich damit befassen und ggf..lehren kann.

4k überschreite ich öfter, wenn ich Menu bzw. viele Funktion einbaue.
Dazu ist C weitverbreiter. Dahr fiel meine Wahl damals drauf.
Benutzeravatar
Sunset
Beiträge: 1513
Registriert: Fr 6. Dez 2013, 15:19

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von Sunset »

Bascom, C, Python, letztendlich ist es doch vollkommen egal, solange die Aufgabe erfüllt wird. Die Programmiersprache ist ein Tool, ein Werkzeug, nicht mehr und nicht weniger.

Ich nehme auch keinen Hammer, um eine Schraube einzudrehen, auch wenn es gehen würde oder umgekehrt nehme ich keinen Schraubendreher, um einen Nagel in die Wand zu klopfen.

Für die eine Aufgabe ist halt Bascom gut, für die andere Aufgabe ist C besser geeignet, möge doch jeder Entwickler selber entscheiden, welches Werkzeug er zur Aufgabenlösung einsetzt.

Just my 2 cents.. ;)
IPv6
Beiträge: 2210
Registriert: Fr 17. Mär 2017, 22:05

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von IPv6 »

Ich bin auch ein Arduino Neuling und möchte auch meinen Senf dazu abgeben.

Von BASCOM würde ich auch abraten, nicht weil ich das doof finden würde aber aus einem ähnlichen Grund wie Sir Death.
Die Community hinter Arduino ist einfach riesig.
Egal was du machen willst, ob du ein Display ansteuern willst, einen Senesor auslesen, einen Schrittmotor ansteuern,..Irgend jemand hat dafür schon Code geschrieben, der sich als Bibliothek einbinden und verwenden lässt. Dann braucht es "nur noch" Befehle wie beispielsweise ein "Sensor.readValue()" oder ein "display.drawLine(startpunk, endpunkt)" und es läuft. Was da genau im Hintergrund abläuft damit da eine Linie auf dem Display erscheint kann einem am Anfang völlig egal sein.
Genau das macht die Sache so unglaublich einfach. Wirklich nachdenken muss man dafür kaum. Ich habe mit dem Arduino Kram vor vielleicht einem halben Jahr angefangen (exakt zu Weihnachten - last minute Geschenk für die Freundin) und habe selbst unter Zeitdruck ohne Vorkentnisse das Geschenk fertig bekommen! Den Code würde ich heute zwar etwas anders schreiben aber er lief problemlos.

Die Arduino Geschichte ist ja extra so einsteigerfreundlich. USB Kabel dran, Software runterladen und es läuft. Bei Problemen oder Fragen gibts im Netz eine riesen Gemeinde und haufenweise existierenden Code.

Und das ganze Zubehör erst! Für Thermoelemente gibts fertige Platinen mit Verstärker drauf und gleich den passenden Code zum runterladen. Adafruit ist da eine gute Anlaufstelle (psst...die meisten Platinen von denen kopiert auch der Chinese, wobei ich Adafruid wirklich unterstützenswert finde und dort selber kaufe).

Und das Zeug ist billig! Zumindest, solange man ein paar Wochen warten kann.
Der Link zum Nano ist immernoch zu teuer, ich kaufe meine Nanos im 10er Pack beim Ali für unter 2$ pro Stück. Wenn man weiter sparen möchte kauft man die Nanos mit dem 168 Prozessor (statt 328), der bietet etwas weniger Speicher was aber für die meisten kleinen Projekte völlig ausreicht.

Eine solche Temperaturregelung ist wirklich einfach umzusetzen, vielleicht zunächst als Zweipunktregler, später kann man da sicher auch mit PID spielen.

Einen Arduino an einen Rechner hängen, ein Poti einlesen und damit eine LED zu dimmen hast du ehrlich in 30 Minuten am laufen. Das sind zwei Zeilen Code und braucht noch nichtmal eine Variable.
Ein Display ansteuern ist auch kein Hexenwerk und kostet dich inklusive dem Runterladen der Bibliothek vielleicht nochmal eine halbe Stunde bis dort "hello world" steht.

Sicherlich gibt es Leute die es sinnvoller finden, gleich "richtig" Mikrocontroller programmieren zu lernen.
Für mich war das aber auch nur immer Mittel zum Zweck, es muss laufen und das ohne Wochen damit zu verbringen. Der erzeugte Code ist verhältnismäßig langsam und ineffizient, mir ist es aber völlig egal ob ein Sensorwert auslesen nun eine oder zehn Millisekunden dauert.
Profipruckel
Beiträge: 1506
Registriert: Di 13. Aug 2013, 19:10
Wohnort: Niedersachsen Süd-Ost

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von Profipruckel »

Mino hat geschrieben:Also wenn Du Nägel mit Köpfen machen willst dann besorg Dir folgendes:
1.) ISP Programmer, z.B.: http://shop.myavr.de/Systemboards%20und ... tID=200006
Genau das will man mit Arduino nicht! Das Ding kommt an den USB-Port und man lädt die Software rein, ohne sich mit sonstiger Hardware befassen zu müssen. Mit ISP bräuchte ich keinen Arduino, damit fasst man den blanken Controller an.
2.) Einen oder mehr ☺ Arduino Nano: https://www.ebay.de/i/132536008901?chn=ps (Mein Gott sind die günstig geworden….)
Der Nano ist mein Standard, da er ordentlich in Lochrasterplatten passt.

Für meine ersten Gehversuche habe ich allerdings einen Uno gekauft, der aber niemals eine reale Anwendung gefunden hat - wegen seiner dämlichen Mechanik.
Dann noch ein paar Taster und LEDs und los geht’s. Das Display brauchste erst mal nicht. Auf dem Arduino nano ist eine LED drauf die mit einem Ausgang (Port) des µC verbunden ist, d.h. du kannst diese mit einem Programm direkt blinken lassen.
Nee, nach "Blink" habe ich ein Display, zwei Taster, drei LEDs und ein Drehpoti an den Uno gelötet und die grundsätzlichen Dinge durchgespielt. Ein Display will man früher oder später sowieso haben, und die zwei-euro-fuffzig beim Chinesen machen niemanden arm.
Eins möchte ich nicht verschweigen….das schwierigstes ist die Installation, d.h. man muss den richtigen virtuellen COM Port „finden“ und einstellen, den Programmer definieren usw. das dauert ein bisschen und man muss auch viel probieren.
Wenn man mit Windows auch nur halbwegs vertraut ist, ist der USB- bzw. COM-Treiber nun eines der geringsten aller Probleme.
IPv6 hat geschrieben:Ich bin auch ein Arduino Neuling und möchte auch meinen Senf dazu abgeben.
Von BASCOM würde ich auch abraten, nicht weil ich das doof finden würde aber aus einem ähnlichen Grund wie Sir Death. ... Die Community hinter Arduino ist einfach riesig.

Die Arduino Geschichte ist ja extra so einsteigerfreundlich. USB Kabel dran, Software runterladen und es läuft. Bei Problemen oder Fragen gibts im Netz eine riesen Gemeinde und haufenweise existierenden Code.
Bascom habe ich nie gesehen und will auch in den Glaubenskrieg nicht einsteigen. Ob ich C++ sonderlich toll finde, werde ich hier auch nicht diskutieren.

Es bleibt, wie auch Du es gesagt hast: Die vorgefertigte Kinderumgebung (Arduino IDE) verwendet C++, es gibt jede Menge Libraries, also finde ich mich damit ab. Ich stehe dazu, genau diese Kinderumgebung zu benutzen und der "richtigen" Programmierung aus dem Wege zu bleiben, weil sie mich mit wenig Aufwand zum Ziel bringt, z.B. https://www.fingers-welt.de/phpBB/viewt ... 50#p117043
Benutzeravatar
RMK
Beiträge: 5409
Registriert: Di 20. Jan 2015, 14:59
Wohnort: östlich von Stuttgart

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von RMK »

okay, kurzes Update von mir, da der ISP-Adapter noch nicht hier ist habe ich halt mal mit
der Arduino-IDE ein paar Codeschnipsel zusammengewurstelt und immerhin mal eine
Anzeige auf dem LCD bekommen.
(Die Zahlenwerte sind willkürlich!)

Bild


jetzt muss ich halt noch auf die Adapter für den K-Typ-Temperatursensor warten und mir
überlegen wie ich die Regelung überhaupt gestalte (zB wie oft ich die Temperatur
einlese, ich will nicht dass der Ofen 2x pro Sekunde ein- und ausschaltet - Regelung auf
3° genau oder so reicht mir ja locker...)

also es bleibt auf alle Fälle spannend.

... seufz.. dabei habe ich eigentlich schon genug Hobbys und offene Projekte, jetzt auch noch µC anfangen..?! #-)
Benutzeravatar
barclay66
Beiträge: 1077
Registriert: Di 13. Aug 2013, 04:12
Wohnort: im Speckgürtel Münchens

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von barclay66 »

Hey,

ist doch schon klasse, wie viel Du schon erreicht hast. Und das Gefühl, wenn Dein Projekt dann fertig ist, ist eben das unbezahlbare. Sozusagen die persönliche kleine Weltherrschaft!

Weiter so!

Gruß
barclay66
Benutzeravatar
RMK
Beiträge: 5409
Registriert: Di 20. Jan 2015, 14:59
Wohnort: östlich von Stuttgart

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von RMK »

Danke :)

da ich jetzt zwei Wochen auf Montage gehe (was mir auch das FT versaut...)
und abends blöd im Hotel hocke nehme ich bisl Arduinokram mit,
mal sehen wie weit ich komme ;-)
IPv6
Beiträge: 2210
Registriert: Fr 17. Mär 2017, 22:05

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von IPv6 »

Du könntest als Nächstes ein Poti für zum Werte simulieren verwenden. Das ist dann nacher nicht schwer auf einen Temperatursensor umzustellen und das Verhalten lässt sich ganz gut überprüfen.
Vielleicht reicht für so einen Ofen auch eine etwas verbesserte Zweipunktregelung, sind 500 °C eingestellt heizt er bis 480 °C oder so mit Vollgas und heizt dann mit 50 % Leistung im Pulsbetrieb weiter bis er bei 500 °C ganz ausmacht. Und dann mit einer Hysterese von ein paar Grad wieder heizen wenn die Temperatur zu weit abgefallen ist.
So macht das zumindest eine meiner Nebelmaschinen, die 25 kg Aluminium mit 9 kW auf Temperatur bringen muss. Geschaltet wird der Strom mit einem solid state Relais mit Nulldurchgangserkennung.
Eine "richtige" Regelung ist da vielleicht zu viel des Guten wenn es auf ein paar Grad nicht ankommt.

Vielleicht kannst du im Hotelzimmer eine Temperaturregelung mit einer Glühbirne, einem PT100 und einem kleinen halbwegs isolierten Kistchen testen?

Zwei Mal pro Seunde einschalten sollte doch nicht schlimm sein, du wirst ja keinen mechanischen Schalter verwenden wollen (oder?).
Muss ja bei der Leistung keine Phasenanschnittsauerei werden, aber immer mal wieder ein paar Wellen auf die Heizung loslassen könnte ganz gut funktionieren.
Benutzeravatar
RMK
Beiträge: 5409
Registriert: Di 20. Jan 2015, 14:59
Wohnort: östlich von Stuttgart

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von RMK »

nee, kein mechanisches Relais- meine Frau killt mich wenn das dauernd klackert :-)

ich dachte auch an ein solid state, mal sehen.

Problem ist dass ich viele Stufen fahren muss/soll - also beispielsweise 60 Grad, das 20 min
halten, dann 100 Grad, nochmal 20 min, dann 180 - 260 - 320 usw immer mit einer
gewissen Haltezeit. und das Ganze bis 1100 Grad....
wenn das von Hand regeln musst kannst fast nix anderes machen an dem
Nachmittag.... ;-)

also soll diese Strafarbeit ein uC übernehmen....

das heisst halt ein entsprechendes Programm schreiben. schaun wir
mal, es ist noch nicht aller Fragen Abend :-)
Benutzeravatar
barclay66
Beiträge: 1077
Registriert: Di 13. Aug 2013, 04:12
Wohnort: im Speckgürtel Münchens

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von barclay66 »

Hi,

ich denke, es würde Sinn machen, wenn Du vor der Programmierung noch einige Daten zur Heizwirkung bzw. Abkühlungsdauer sammelst. Wenn Du schon vorher weißt, wie lang z. B. das Aufheizen von 200 zu 400 C dauert oder wie lange es braucht um von 800 auf 400 C abzukühlen, kannst Du die Steuerung vielleicht mit weniger Aufwand planen und umsetzen. Zumindest kommst Du dann nicht in Situationen, in denen eine Programmschleife womöglich vergeblich auf einen Zustand wartet, der aus technischen Gründen nie eintreten kann. Hängt aber sicher davon ab, wie Du so ein Programm bauen willst. Wenn es nur stumpf nach dem Motto geht: Zielwert -> Heizung an oder aus je nach gemessener Temperatur -> Warte bis Zielwert erreicht -> Heize nach falls Temperatur unter Zielwert (bei Abweichung > 5 C) -> Halte Zustand für festgelegte Zeit -> nächster Zielwert... ist es natürlich nicht so wichtig...

Gruß
barclay66
Profipruckel
Beiträge: 1506
Registriert: Di 13. Aug 2013, 19:10
Wohnort: Niedersachsen Süd-Ost

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von Profipruckel »

RMK hat geschrieben:okay, kurzes Update von mir, da der ISP-Adapter noch nicht hier ist
Wozu braucht man den, wenn man Arduino nutzt? Ich komme ohne aus.
habe ich halt mal mit der Arduino-IDE ein paar Codeschnipsel zusammengewurstelt und immerhin mal eine Anzeige auf dem LCD bekommen.
(Die Zahlenwerte sind willkürlich!)
Gut gemacht, Du bist auf dem richtigen Weg!
RMK hat geschrieben:.. und abends blöd im Hotel hocke nehme ich bisl Arduinokram mit,
mal sehen wie weit ich komme ;-)
Auch der Ansatz gefällt mir!

Wie von IPv6 angeregt: Baue Dir ein Drehpoti um 10kOhm zwischen Plus und Masse auf einen Analogeingang an und zeige dessen Spannung an. Setze eine LED an einen Ausgang und programmiere, bei Spannung x an- oder aus zu gehen.

Und weiter so, Dein Projekt hat ein paar kleine Fallen, aber die wirst Du lösen, wenn Du systematisch Schritt für Schritt vorgehst.
Benutzeravatar
Später Gast
Beiträge: 1699
Registriert: Di 5. Apr 2016, 22:03
Wohnort: Karlsruhe
Kontaktdaten:

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von Später Gast »

IPv6 hat geschrieben:Vielleicht reicht für so einen Ofen auch eine etwas verbesserte Zweipunktregelung, sind 500 °C eingestellt heizt er bis 480 °C oder so mit Vollgas und heizt dann mit 50 % Leistung im Pulsbetrieb weiter bis er bei 500 °C ganz ausmacht. Und dann mit einer Hysterese von ein paar Grad wieder heizen wenn die Temperatur zu weit abgefallen ist.
...
Eine "richtige" Regelung ist da vielleicht zu viel des Guten wenn es auf ein paar Grad nicht ankommt.
Also wenn es um Keramik geht, kann man nicht 100% bis x heizen und dann halten, Weiterheizen. Oder ginge schon, aber dann muss man viele einzelne Stufen so auslegen, dass eine PWM draus wird.
Bis zum Quarzsprung heizt man so mit 50-100°K pro Stunde auf, bei großen Werkstücken langsamer. Mit mehr Stufen spart man vor allem Zeit und Strom, weil man unkritische Bereiche schneller überfahren kann. Wenn dickwandige Sachen dabei sind, kann man zwischen 120 und 220°C noch mal langsamer fahren, um chemisch gebundenem Wasser die Gelegenheit zu geben abzudampfen. Bei 580-600°C (Quarzsprung) halten, damit wirklich alles Material über den Sprung ist, ab da dann Vollgas bis Endtemperatur. Bei Glasurbränden kann man danach nochmal Stufen in die Abkühlung reinmachen, oder wenn Risse im Glas auftreten in der Abkühlphase das Glas nochmal kurz anschmelzen mit nem kurzen 100% Hitzeschub über die Schmelztemperatur der Glasur.

@RMK: Am wasfürnem Ofen läuft das Dingen nacher, wenn ich fragen darf?
Benutzeravatar
RMK
Beiträge: 5409
Registriert: Di 20. Jan 2015, 14:59
Wohnort: östlich von Stuttgart

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von RMK »

Später Gast hat geschrieben: Also wenn es um Keramik geht, kann man nicht 100% bis x heizen und dann halten, Weiterheizen.
Oder ginge schon, aber dann muss man viele einzelne Stufen so auslegen, dass eine PWM draus wird.
so arbeiten wir gerade.
Heizen bis 60°, dann ne halbe Stunde halten (das macht der Ofen von selber..), dann auf 120 drehen, wieder ne halbe
Stunde... usw...
aber ich bin für "Programmvorschläge" sehr dankbar :)
@RMK: Am wasfürnem Ofen läuft das Dingen nacher, wenn ich fragen darf?
im Moment habe ich nur einen winzigkleinen Vorwärmofen aus dem Dentallaborbereich hier, Finger kennt die Kiste
sicherlich - Brennraum 12x12x15 cm (reicht halt für Gebisse, normalerweise, jetzt auch für kleine Blumentöpfchen
glasieren usw... wenn ich mal günstig an einen gescheiten Ofen komme wird das halt der Test-Ofen :-) )

im Prinzip lässt sich die Steuerung später aber an jeden Ofen dranschrauben, es muss nur die Möglichkeit
für einen PT1000-Fühler gegeben sein (im Moment steckt der, da halbmeterlang, durch den Kamin im Brennraum
und misst dort..)
IPv6
Beiträge: 2210
Registriert: Fr 17. Mär 2017, 22:05

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von IPv6 »

Später Gast hat geschrieben: Also wenn es um Keramik geht, kann man nicht 100% bis x heizen und dann halten, Weiterheizen. Oder ginge schon, aber dann muss man viele einzelne Stufen so auslegen, dass eine PWM draus wird.
Ich bin davon ausgegangen, dass die Stufen, die RMK haben möchte, möglichst schnell erreicht werden sollen. Die verminderte Leistung kurz vor Erreichen der nächsten Temperaturstufe vom Programm soll nur zu große Überschwinger vermeiden.
Wenn zwischen verschiedenen Stufen unterschiedlich schnell geheizt werden soll wird das noch richtig spannend. Davon stand aber bisher nirgendwo was.
Benutzeravatar
RMK
Beiträge: 5409
Registriert: Di 20. Jan 2015, 14:59
Wohnort: östlich von Stuttgart

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von RMK »

nein, ist nicht nötig.

im Prinzip die Stufen erreichen, halten, dann weiterheizen.

wenn der zu schnell hochgeht (vor allem am Anfang) kann ich die Heizung ja takten - die Wärmeverluste sind relativ gering, zumindest
bei meinem Miniaturofen (1000° brauchen zum Abkühlen auf 50° fast 10 Stunden....)

erstmal nur die stufenweise Heizung wäre schon eine große Erleichterung. verbessern kann mans dann immer noch.
Anse
Beiträge: 2304
Registriert: Mo 12. Aug 2013, 21:30
Wohnort: Bühl (Baden)

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von Anse »

Ich werfe mal Wellenpaketsteuerung in den Raum. Ist gut für Temperaturregelung geeignet.

So könnte man den µC auch anweisen eine bestimmte Temperatursteigerung zu halten. Dafür braucht es halt einen PI(D)-Regler. Dem ist egal ob er eine Temperatur halten soll oder eine bestimmte Steigung halten soll z.B. 1°C/Min.
Regler klingen erst mal kompliziert, sind aber bei trägen Systemen gar nicht mal so wild.
Matt
Beiträge: 6091
Registriert: So 24. Aug 2014, 21:22

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von Matt »

so ähnlich hab ich mit Lötstation Projekt ( mit JBC T245 Heizer) realisieren.

Zuerst messen, dann sofort vergleichen. Je nach Ergebnisse kommt eine Puls raus und dann wartet es. Goto Anfang. (Zyklusszeit ca 40ms)

Ergebnisse : Nach Aufheizen schiesst es um 15 Grad über Sollwert und dann pendelt es um Sollwert mit mehre Grad Schwankung. Ist für diese Zweck sehr ausreichend und ist auch noch schnell genung.
IPv6
Beiträge: 2210
Registriert: Fr 17. Mär 2017, 22:05

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von IPv6 »

Stimmt, mit einem richtigen Regler wäre das wohl eher ein kleines Problem.
Dafür gibt es garantiert auch massenweise fertigen Code.

Das wäre dann vermutlich der Ferrari und den Ofensteuerungen: Viele einzelne Punkten können angegeben werden, dazwischen werden vorgegebene Temperaturanstiege eingehalten. Mit grafischem Display, das den Temperaturverlauf anzeigt und mit einem Punkt markiert, wo sich das System gerade befindet.

Aber Moment, sollte das nicht ein Einsteigerprojekt werden? :D
Anse
Beiträge: 2304
Registriert: Mo 12. Aug 2013, 21:30
Wohnort: Bühl (Baden)

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von Anse »

IPv6 hat geschrieben:Das wäre dann vermutlich der Ferrari und den Ofensteuerungen:
Ferrari steht vielleicht für Geschwindigkeit, aber keinesfalls für fortschrittliche Technik :mrgreen:

IPv6 hat geschrieben:Aber Moment, sollte das nicht ein Einsteigerprojekt werden?
Wollte eigentlich noch dazu sagen, dass man schon die Hardware vorsehen sollte für schnelles Schalten. Z.B. SSR-Relais.
Benutzeravatar
Bastelbruder
Beiträge: 11550
Registriert: Mi 14. Aug 2013, 18:28

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von Bastelbruder »

Nicht schneller schalten als unbedingt notwendig!
Die Flackerei ärgert nicht bloß Lampen und Ringkerntrafos.

Irgendwo war doch schon ein guter Ansatz: 1000 auf 50 Grad in 10 Stunden. Fehlt bloß die Raumtemperatur. Dann noch die Heizleistung auf die gleiche Tour bestimmen, auch die Überschwinger nach Abschalten der Heizung, und das Teil kann ohne Regelung laufen.
IPv6
Beiträge: 2210
Registriert: Fr 17. Mär 2017, 22:05

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von IPv6 »

In diesem Forum muss man auch wirklich ganz genau aufpassen, welche Redewendung aus dem Alltag nicht auf technischer Ebene falsch sein könnte :D

Wenn das SSR gleich eine Nulldurchgangserkennung mitbringt könnte man stumpf per halbwegs träger PWM von ein paar Sekunden regeln, das SSR kümmert sich dann schon darum, dass nicht allzu viel Stromsauerei entsteht.
Profipruckel
Beiträge: 1506
Registriert: Di 13. Aug 2013, 19:10
Wohnort: Niedersachsen Süd-Ost

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von Profipruckel »

Matt hat geschrieben:so ähnlich hab ich mit Lötstation Projekt ( mit JBC T245 Heizer) realisieren.
Zuerst messen, dann sofort vergleichen. Je nach Ergebnisse kommt eine Puls raus und dann wartet es. Goto Anfang. (Zyklusszeit ca 40ms)
Ergebnisse : Nach Aufheizen schiesst es um 15 Grad über Sollwert und dann pendelt es um Sollwert mit mehre Grad Schwankung. Ist für diese Zweck sehr ausreichend und ist auch noch schnell genung.
Bei meiner Weller habe ich einen Faktor ermittelt, 10ms/K.

Ich messe, rechne die Differenz zum Sollwert und heize für die Zeit (delta * Faktor) nach. Da sich hier ein ungewolltes Überschwingen ergeben hat, begrenze ich die Heizzeit auf maximal 350ms entsprechend ca. 35K - auch ein Kompromiss, aber passt in der Praxis gut hin.

RMK wird sich hier auch an die Trägheit seines Systems herantasten müssen, immer etwas weniger als errechnet heizen und erneut messen.
Benutzeravatar
Später Gast
Beiträge: 1699
Registriert: Di 5. Apr 2016, 22:03
Wohnort: Karlsruhe
Kontaktdaten:

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von Später Gast »

Also ich habe bisher an drei verschiedenen "richtigen" Keramik-Elektroöfen gearbeitet. Die alten ohne digitale Steuerung haben eine mechanische Zeitschaltuhr, einen Steller für %Heizleistung in 10er Schritten und eine Endtemperatur. Die mechanische Zeitschaltuhr gibt die Zeit vor, mit der mit reduzierter Leistung geheizt wird, ab da gibts Vollgas. Das ist dumm, weil abhängig vom Besatz ist man dann schon längst bei der Endtemperatur (wenig drin) oder halt erst bei 340°C und in dem Fall krachts halt beim Überschreiten des Quarzsprungs.

Der eine mit digitaler Steuerung hatte einstellbare Rampen mit Dauer des Heizabschnitts und Solltemperatur+Haltephasen. Das war sehr komfortabel einzustellen, aber ich hätte öfters gerne 2-3 Eckpunkte mehr gehabt und habe mich geärgert, dass die dank Digitaltechnik eigentlich unbegrenzte Erweiterbarkeit des Brennprogramms beschnitten wurde, um Verkaufsargumente für die noch eins tollere Steuerung zu haben. :evil:

Alle Öfen haben mit sehr langsamer PWM gepulst, die Relais haben gut hörbar geklackt. so 20s heizen, 20s warten. Und sie haben drei Phasen.

Das waren alles so riesige Frontloader von Nabertherm mit fettem Stahlgestell, für Privat sind so kleine runde Toploader glaubich cooler, die Laufen auch an Schuko und sind leichter transportabel.
Matt
Beiträge: 6091
Registriert: So 24. Aug 2014, 21:22

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von Matt »

Profipruckel hat geschrieben:
Matt hat geschrieben:so ähnlich hab ich mit Lötstation Projekt ( mit JBC T245 Heizer) realisieren.
Zuerst messen, dann sofort vergleichen. Je nach Ergebnisse kommt eine Puls raus und dann wartet es. Goto Anfang. (Zyklusszeit ca 40ms)
Ergebnisse : Nach Aufheizen schiesst es um 15 Grad über Sollwert und dann pendelt es um Sollwert mit mehre Grad Schwankung. Ist für diese Zweck sehr ausreichend und ist auch noch schnell genung.
Bei meiner Weller habe ich einen Faktor ermittelt, 10ms/K.

Ich messe, rechne die Differenz zum Sollwert und heize für die Zeit (delta * Faktor) nach. Da sich hier ein ungewolltes Überschwingen ergeben hat, begrenze ich die Heizzeit auf maximal 350ms entsprechend ca. 35K - auch ein Kompromiss, aber passt in der Praxis gut hin.

RMK wird sich hier auch an die Trägheit seines Systems herantasten müssen, immer etwas weniger als errechnet heizen und erneut messen.

Ich komme bei JBC T245 Heizer auf ca 0,3 Sekunden Verzögerung, dazu ist Überschwingen nicht so extrem. Daher habe ich erstmal nix gemacht.
Ich würde da etwas anders lösen: Je näher IST und SOLL ist desto wird Heizpuls kürzer = Überschwinger kleinerer und bessere Regelung.

Gänzlich vermeiden läasst nur mit gleitende Sollwert, der mit Zeit verstellt wird. (Intergrator) Dafür heisst gewünschte Temperator "Zieltemperatur" (korrekt? ;-) ) Wobei man bei digitale Regler auch damit löst. Nur eben ist Zeitverhältnisse anders (länger)
Profipruckel
Beiträge: 1506
Registriert: Di 13. Aug 2013, 19:10
Wohnort: Niedersachsen Süd-Ost

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von Profipruckel »

Matt hat geschrieben:
Profipruckel hat geschrieben:
Matt hat geschrieben:so ähnlich hab ich mit Lötstation Projekt ( mit JBC T245 Heizer) realisieren.
Zuerst messen, dann sofort vergleichen. Je nach Ergebnisse kommt eine Puls raus und dann wartet es. Goto Anfang. (Zyklusszeit ca 40ms)
Ergebnisse : Nach Aufheizen schiesst es um 15 Grad über Sollwert und dann pendelt es um Sollwert mit mehre Grad Schwankung. Ist für diese Zweck sehr ausreichend und ist auch noch schnell genung.
Bei meiner Weller habe ich einen Faktor ermittelt, 10ms/K.

Ich messe, rechne die Differenz zum Sollwert und heize für die Zeit (delta * Faktor) nach. Da sich hier ein ungewolltes Überschwingen ergeben hat, begrenze ich die Heizzeit auf maximal 350ms entsprechend ca. 35K - auch ein Kompromiss, aber passt in der Praxis gut hin.

RMK wird sich hier auch an die Trägheit seines Systems herantasten müssen, immer etwas weniger als errechnet heizen und erneut messen.
Ich komme bei JBC T245 Heizer auf ca 0,3 Sekunden Verzögerung, dazu ist Überschwingen nicht so extrem. Daher habe ich erstmal nix gemacht.

Ich würde da etwas anders lösen: Je näher IST und SOLL ist desto wird Heizpuls kürzer = Überschwinger kleinerer und bessere Regelung.
Matt - genau das habe ich doch so beschrieben!
Gänzlich vermeiden läasst nur mit gleitende Sollwert, der mit Zeit verstellt wird. (Intergrator) Dafür heisst gewünschte Temperator "Zieltemperatur" (korrekt? ;-) ) Wobei man bei digitale Regler auch damit löst. Nur eben ist Zeitverhältnisse anders (länger)
Das könnte man noch komplexer gestalten, kalkulieren, wie schnell ein Wärmeabfluß eintritt. Das liegt dann aber komplett außerhalb meiner mathematischen Fähigkeiten, deshalb bleibe ich bei der variablen Heizzeit.
duese
Beiträge: 6094
Registriert: So 11. Aug 2013, 17:56

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von duese »

Einen Regler diskret zu programmieren ist gar nicht so schwer. Viele Ansätze sind hier schon beschrieben worden.
Davon trennen kann man noch die Geschichte mit den Rampen und die eigentliche Leistungssteuerung. Damit hat man dann drei Blöcke und es wird übersichtlicher.

Erstmal der Regler. Der einfachste Fall ist ein Proportionalregler (P-Regler):
Das ist Pseudocode. In Realität würde ich das in eine von einem Timer getriggerte Schleife packen und nicht per wait machen.

Code: Alles auswählen

:Start
  Regelabweichung = Sollwert - Istwert
  P_Anteil = Regelabweichung * kP
  Reglerausgang = P_Anteil
  wait Zykluszeit
  goto Start
Hierbei ist kP der Verstärkungsfaktor. Wenn man Beispielsweise möchte, dass der Regler bei 5K Abweichung vom Sollwert die Heizung voll aufgerissen hat, würde man den hier zu 0,2 wählen (5K*0,2=1= 100%).
Je größer kP ist, desto schneller wird auf die Temperatur hin gesteuert, desto größer wird aber auch der Überschwinger und wenn er zu groß ist, dann schwingt die Kiste dauerhaft.

Mit einem P-Regler wird man aber nie genau die Solltemperatur erreichen. Vielleicht reicht das hier aber auch schon.

Wenn nicht, dann kann man auch noch einen I-Anteil dazu bauen und kriegt einen PI-Regler:

Code: Alles auswählen

:Start
  Regelabweichung = Sollwert - Istwert
  P_Anteil = Regelabweichung * kP
  I_Anteil = I_Anteil + (Regelabweichung * kI)
  Reglerausgang = P_Anteil + I_Anteil
  wait Zykluszeit
  goto Start
kI ist wie kP für den I-Anteil.

Wenn man schnell auf Störgrößen von außen reagieren muss, könnte man noch einen Differentialanteil dazubauen und hätte einen PID-Regler. Das wird bei einem Brennofen aber ziemlich sicher nicht der Fall sein. Das sähe dann so aus:

Code: Alles auswählen

:Start
  Regelabweichung = Sollwert - Istwert
  Istwert_alt = Istwert
  P_Anteil = Regelabweichung * kP
  I_Anteil = I_Anteil + (Regelabweichung * kI)
  D_Anteil = (Istwert_alt - Istwert) * kD
  Reglerausgang = P_Anteil + I_Anteil + D_Anteil
  wait Zykluszeit
  goto Start
Zum Ermitteln der Parameter würde ich mit einem reinen P-Regler anfangen (sprich kI und kD sind 0). Dann den kP so lange erhöhen bis man ein brauchbares Regelverhalten hat (Überschwinger und so). Wenn dann noch benötigt kI vorsichtig erhöhen.

I-Anteile haben den Nachteil, dass wenn der Sollwert lange nicht erreicht wird, sich der I_Anteil auf sehr große Werte aufsummiert, die dann stören, wenn der Sollwert erreicht wird. Da kann man dann noch einen Anti-Windup einbauen, sprich den Wert von I_Anteil auf z.B. 0,1 begrenzen. Das gibt allerdings eine Nichtlinearität, die einem andere Probleme machen kann. (War bei mir noch nicht der Fall.) Und es ist die Frage, ob es den I-Anteil hier überhaupt braucht.

Zum Regler optimieren wäre es ganz gut, wenn man auf jeden Fall die Temperatur und wenn möglich auch die einzelnen Anteile und den Reglerausgang in ein Diagramm plotten könnte. Das hilft (zumindest mir) sehr beim Verständnis und dabei ein Gefühl für die Geschichte zu bekommen.

Dem Regler ist es erstmal egal, ob der einen konstanten oder einen veränderlichen Sollwert bekommt.
Sprich, man kann die Temperaturprofilgeschichte getrennt vom Regler betrachten.

Auch die Leistungsstellung ist unabhängig vom Regler, wie man die ausführt.
Wenn man einen Reglerausgang von 0,2 hat, könnte man:
- 2 Sekunden an, 8 Sekunden aus
- 1 Netzperiode an, 4 aus
- Phasenanschnitt mit Stellgrad, dass 20% Leistung rauskommen
- eines von fünf Heizregistern an
- oder verschiedene andere Leistungsstellvarianten machen
Das ist wiederum dem Regler egal.

Damit hat man drei übersichtlichere Funktionsblöcke und die Aufgabe wird vielleicht etwas weniger abschreckend...
Zuletzt geändert von duese am Mi 18. Jul 2018, 07:11, insgesamt 2-mal geändert.
Benutzeravatar
RMK
Beiträge: 5409
Registriert: Di 20. Jan 2015, 14:59
Wohnort: östlich von Stuttgart

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von RMK »

puh. danke, ich wollte schon "Aufhören" brüllen .... (hey, ich hab noch nichtmal einen AN/AUS realisiert bis jetzt... :-) )

aber es hilft sehr beim Gedanken machen. grossartige Störgrößen muss ich glaube ich nicht beachten, wenn jemand
die Brennofentür aufreisst gibts was von Frauchen aufs Auge...

Im Moment verhält sich der Ofen (mit der eingebauten Steuerung) so, dass er heizt und regelmässig Pause macht.
die genaue Frezquenz bzw. "Pulsweite" habe ich noch nicht rausgemessen, das kommt noch, ich weiss nur dass er
ziemlich genau 15min braucht um eine neu eingestellte Temperatur zu erreichen (bei kleinen Schritte, hier
beispielsweise 65° Erhöhung, ergibt sich eine zuerst schnell, dann langsamere Anpassung "von unten", wenn man die
Temperatureinstellung stark ändert schwingt er auch mal (leicht) drüber... )

ich würde halt mal die Einschaltzeiten bei gegebener Solltemperatur aufzeichnen, und zwar für verschiedene
Temperaturen, und auch die Abkühlung mal Temperatur/Zeit mitplotten - wobei das ziemlich sicher eine
Badewannenkurve gibt...

ich gehe davon aus dass sich das Ganze dann auch einigermassen einfach (womöglich ohne Änderung der Parameter) auch
auf einen (noch zu beschaffenden...) großen Ofen übertragen lässt. Aber das finde ich dann raus. :)
Benutzeravatar
RMK
Beiträge: 5409
Registriert: Di 20. Jan 2015, 14:59
Wohnort: östlich von Stuttgart

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von RMK »

ach, und weil ich den grade gefunden habe, hier ist im Moment ziemlich genau *so* ein Teil im Betrieb
(okay, meiner ist aussenrum orange, aber sonst identisch):

https://www.al-dental.de/geraete/vorwae ... cl-v-11001
IPv6
Beiträge: 2210
Registriert: Fr 17. Mär 2017, 22:05

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von IPv6 »

@duese:
Haben sich da vielleicht ein paar kleine Fehler eingeschlichen?

Code: Alles auswählen

I_Anteil = I_Anteil * Regelabweichung * kI
Das sollte doch "I_Anteil = I_Anteil + Regelabweichung * kI" heißen, oder?

Und:
...sprich den Wert von kI auf z.B. 0,1 begrenzen
Da ist wohl der Wert von "I_Anteil" gemeint und nicht von kI?

Nur, falls jetzt jemand auf die Idee kommt das so direkt zu programmieren :D
duese
Beiträge: 6094
Registriert: So 11. Aug 2013, 17:56

Re: Temperaturregelung mehrstufig (Arduino?)

Beitrag von duese »

@IPv6: Danke fürs mitdenken, Du hast natürlich völlig, habs korrigiert. Die Erkältung schlägt offensichtlich auf die Denkfähigkeit.

@RMK: Nur die Pulsmuster zu replizieren wäre eine Steuerung, keine Regelung. Für gleiche Beladung könnte das hinkommen. Wenn aber mehr oder weniger drin ist, nicht mehr. Das ist ja genau die Aufgabe des Reglers das auszugleichen. Da man aber aus so einer Aufzeichnung Rückschlüsse auf den Bestehenden Regler, seine Strategie und Reglerkonstanten schließen kann, ist es eine gute Idee das aufzuzeichnen...
Antworten