Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12
  1. #1
    emc2 ist offline Erfahrener Benutzer
    Registriert seit
    28.12.2006
    Beiträge
    461

    Standard PID mit Microcontroller

    Hallo,

    ich versuche zu Zeit, eine PID-Controllerplatine auf Basis des Microcontrollers ATMega8/16/32 zu entwickeln. Hier ein Ausschnitt aus der Platine im CAD-Programm:




    Ich könnte Ratschläge bezüglich der Temperatursensoren gebrauchen, speziell von Leuten, die schon mal Sensoren verglichen haben.

    Die Platine im Anhang hat Eingänge für maximal 3 Sensoren (1 x Boiler, 1 x Tasse, 1 x Reserve). Vorgesehen sind für diese Platinenversion KTY-Sensoren im TO92-Mini-Gehäuse, ca 1 x 2 mm gross. Die Sensoren sind mit ~1.50 EUR/Stück sehr preiswert und in der Schaltung braucht man zur Auswertung nur 3 Widerstände und den im Microcontroller vorhandenen ADC. Die Genauigkeit und Kalibrierbarkeit ist gut, 1 Grad Genauigkeit um 100 Grad kein Problem. Es handelt sich um PTC-Sensoren auf Siliziumbasis. Diese Sensoren verwendet Gaggia in einigen Espresso-Maschinen.

    Eigentlich ideale Sensoren. Problematisch ist nur die Zeitkonstante (gibt an, wann nach einem Temperatursprung der Wert zu 63% erfasst ist): Die T63-Zeitkonstante des KTY-Sensors ist 1.5 Sekunden in einem fliessenden Medium. Das Sprungverhalten ist keine lineare Kurve, es braucht ca 5 Zeitkonstanten, bis eine neue Temperatur zu 99% erfasst ist. Für den Boiler könnte das ausreichen, sicher bin ich mir nicht. Die Zykluszeit der PID-Software wird wahrscheinlich grössenordnungsmässig bei 1 Sekunde oder darunter liegen. Ich habe aber auf jeden Fall Zweifel, dass man damit das Temperaturprofil beim Befüllen der Tasse, also über 25 Sekunden, sinnvoll aufzeichnen kann - und darauf möchte ich nicht verzichten.

    Die besten Alternative wären PT100/1000 oder Thermocouple (Thermoelement):

    Thermocouples reagieren am schnellsten, Zeitkonstante ist bei flinken Elementen ein Sekundenbruchteil. Sie können direkt in Wasser getaucht werden. Leider sind sie zickig: es müssen minimale Spannungen gemessen und >100-fach verstärkt werden (empfindlicher als das Messen mit Strömen, Gefahr des Einfangens von Störungen aus elektrischen Feldern) und es ist eine Kaltstellen-Kompensation notwendig, d.h. es muss die Temperatur am Platinen-Anschlusspunkt des Thermodrahtes gemessen werden. Dafür gibt es zwar integrierte ICs, aber die absolute Genauigkeit ist nicht hoch. Die Grundgenauigkeit dürfte im Bereich bis 150 Grad mindestens 2 Grad schlechter sein, als Platin-Sensoren. Ich weiss nicht, ob man die absolute Genauigkeit durch Kalibrieren retten kann, oder ob sich der Fehler durch Fluktuation der Kalbibrierung entzieht. Speziell ist mir unklar, wie sehr die unvermeidbare, starke Temperaturdrift der Platine nach dem Einschalten, durch Anbringen in/an einer Espressomaschine oder durch Bauteile darauf, via Kaltstellen-Kompensation auf das Messergebnis durchschlägt. Da Open-Junction-Sensoren eine eletrische Verbindung durch den Kontakt zum Boiler aufbauen (der auf Schutzerde liegt), gibt es u.U. elektrische Potential-Probleme. Ein Thermoelement kostet ca 10 EUR - 40 EUR, ja nach Genauigkeitsklasse und Bauform.

    PT100/1000 wären am genauesten, eine absolute Genauigkeit von 0.5 Grad ist damit kein Problem. Viele Platin-Fühler sind dick und deshalb langsam, aber es gibt schnelle Dünnfilm-Sensoren, die mit Thermocouples mithalten können (Zeitkonstante 1/10 Sekunde). Allerdings kann man diese nicht direkt in Wasser halten - und nach einer Isolierung sind sie vernutlich nicht schneller, als KTY-Sensoren - nur grösser. Die Sensoren sind bezahlbar (5 EUR/Stück). Platin-Sensoren erfordern ebenfalls eine Auswerteschaltung, da wieder Signale verstärkt werden müssen, sie sind aber unproblematischer, als Thermocouples, weil Strom statt Spannung gemessen wird und keine Temperaturmessung/Kaltstellenkompensation notwendig ist. Die Auswerteelektronik auf der Platine wäre dennoch teuer, weil wegen dem Platz und der gewünschen Präzision nur integrierte, temperaturkompensierte Lösungen wie XTR105 in Frage kommen - pro Kanal 11 EUR.

    Für das Kombinieren von Thermoelement für Tassen-Fühler und PT100/1000 für Boiler reicht der Platz auf der Platine nicht aus. KTY könnt man eventuell mit Thermoelement kombinieren (in der Kombination von KTY mit PT100/1000 sehe ich dagegen keinen Sinn).
    Geändert von emc2 (28.08.2007 um 13:23 Uhr)

  2. #2
    PeterHH ist offline Erfahrener Benutzer
    Registriert seit
    16.05.2007
    Ort
    Hamburg
    Beiträge
    236

    Daumen hoch AW: PID mit Microcontroller

    Temperatursprünge treten doch mit Ausnahme des Brühbeginns am Tassenfühler nicht auf, oder? Ich würde mit den unkomplizierteren KTY-Sensoren anfangen. Auf jeden Fall ein sehr interessantes Projekt. Ich würde gerne hören wie es weitergeht!

    Peter

  3. #3
    st
    st ist offline Benutzer
    Registriert seit
    31.05.2007
    Beiträge
    74

    Standard AW: PID mit Microcontroller

    Zuerst die gute Nachricht: Der Temperatursprung ist sowas von einerlei, da die Atmels sowas von sauschnell sind, daß du in der einen Sekunde Zykluszeit (willste ein Windows dafür programmieren?) noch dein gesamtes Haus bzw. Wohnung steuern kannst, ohne daß das Ding ins Schwitzen kommt. - Ich übertreib mal ein wenig, um die Dimensionen klarzumachen. -

    Ich habe schon etwas rumexperimentiert mit dem Ding, habe noch ein altes Entwicklungsboard mit dem ebenso alten 8515. Die Zykluszeiten sind selbst mit Ausgabe auf einem LCD, das ja extrem langsam ist (ca 50ms zum Wiederbereitsein nach Daten einlesen) so kurz, daß du hier in der einen Sekunde soviele Meßwerte bekommst, daß du nicht mehr weißt, wohin damit.

    Ich gehe davon aus, daß du mit Assember programmierst, wie das in Basic oder C aussieht, kann ich dir nicht sagen, da ich nicht in den besagten Sprachen programmiere. Daher kenne ich auch nicht den Code, den die entsprechenden Compiler generieren. Allerdings steht fest, daß dieser Code definitiv sehr viel ineffektiver sein wird als das Assembler sein kann, wenn ich richtig unsinnige Dinge damit fabriziere.

    Die schlechte Nachricht: Der ADC "rampt" den Meßwert mit nem C, da schlagen die handelsüblichen Toleranzen zu Buche, die zum einen Temperaturbedingt schwanken und zudem Systembedingt recht hoch sind. Daher würde ich hier nicht zuviel Augenmerk auf die Genauigleit legen: Die wird nur erreicht, wenn die Spannungs- und Temperaturverhältnisse extrem genau eingehalten werden. Das wäre hier ein glatter Selbstbetrug, da nicht einzuhalten. Und dann kauf mal Kondensatoren mit hoher Genauigkeit: Do hauts di nieder!
    Geändert von st (19.08.2007 um 12:45 Uhr)

  4. #4
    emc2 ist offline Erfahrener Benutzer
    Registriert seit
    28.12.2006
    Beiträge
    461

    Standard AW: PID mit Microcontroller

    Zitat Zitat von st Beitrag anzeigen
    Zuerst die gute Nachricht: Der Temperatursprung ist sowas von einerlei, da die Atmels sowas von sauschnell sind
    Wenn ein Sensor zu lange braucht, die Temperatur exakt festzustellen, dann kann der ATMega so schnell sein, wie er will, ohne die korrekten Temperaturmeldungen ist die Geschwindigkeit nutzlos. Leider haben ausgerechnet die einfach zu benutzenden Sensoren, z.B. DS1820, LM75 oder KTYx, schlechte thermische Zeitkonstanten. Das Schnellste, was ich jenseits von Pt100/1000 und TC gefunden habe, waren die KTY-Sensoren.

    Zitat Zitat von st Beitrag anzeigen
    daß du hier in der einen Sekunde soviele Meßwerte bekommst, daß du nicht mehr weißt, wohin damit
    Das sich anbietende Thermocouple-IC MAX6675 hat eine Zykluszeit von 170-220ms, d.h. es kann vier bis fünf Messwerte pro Sekunde liefern. Die Thermocouples hätten eine Zeitkonstante von 0.1 - 0.3 Sekunden. Nach vier bis fünf Zeitkonstanten ist der Wert auch nach Temperatursprüngen zu 99% exakt, das entspricht etwa einer Sekunde. Die optimale Zykluszeit für den diskreten PID-Algorithmus, der von Atmel als Beispiel veröffentlich wurde (http://www.atmel.com/dyn/resources/p...ts/doc2558.pdf), ist ebenfalls mit "nicht viel grösser oder kleiner als eine Sekunde" angegeben und ergibt sich durch die Genauigkeit der vorgeschlagenen Berechung des I- und D-Anteils. Insoweit würden Thermocouples gut passen. Auch zum Messen des Temperaturverlaufs am Siebträger-Ausgang passt eine Sekunde Auflösung - oder soger besser - gut.

    Zitat Zitat von st Beitrag anzeigen
    Die schlechte Nachricht: Der ADC "rampt" den Meßwert mit nem C, da schlagen die handelsüblichen Toleranzen zu Buche
    Für Thermoelemente würde der ADC im MAX6675 benutzt. Durch Erwärmung ergibt sich im Bereich von 20 bis 70 Grad Umgebungstemperatur (die Bauteile werden alle für mindestens 70 Grad Umgebungstemperatur ausgewählt) für das IC laut Datenblatt ein zusätzlicher Fehler von 2 LSB bei einer Auflösung von 12 bit für 1024 Grad. Das entspricht, wenn man dem Datenblatt vertrauen darf, ~0.5 Grad Fehler durch Erwärmung der Platine.

    Bei Verwendung der KTY-Sensoren würde der ADC des ATMega benutzt. Die externe Beschaltung besteht dann aber nur aus drei Präzisions-Metallschicht-Widerständen der Temperaturklasse TK25 (+-25ppm) und lässt sich von der Erwärmung kaum beeindrucken. Für den ADC im ATMega ist ein typischer Fehler von 4.5 LSB angegeben, bei einer Auflösung von 10 bit für -10 - 150 Grad. Damit kommt die KTY-Lösung auf voraussichtlich ~0.7 Grad Fehler durch Erwärmung der Platine.

  5. #5
    st
    st ist offline Benutzer
    Registriert seit
    31.05.2007
    Beiträge
    74

    Standard AW: PID mit Microcontroller

    Anscheinend willst du nicht einfach nur ne PID bauen, sondern gleich massig Zusatzinfos mitloggen. Der große Vorteil der Thermokoppler dürfte sein, daß der Meßwert hier bereits digital vorliegt, also keine Wandlung mehr notwendig ist.
    Anscheinend soll der Fühler ins Wasser rein und nicht am Gehäuse befestigt werden. Sicher die beste Lösung, nur ist hier die Frage, inwieweit die Erhöhung der Trägheit durch Isolierung des Thermokopplers oder die Verzögerung durch Messung an der Kesselwand ähnlich sind oder sich unterscheiden. Wäre bestimmt interessant zu testen.
    Für die Referenztemperatur könntest du mit einem Max6610 arbeiten, allerdings sind die Ungenauigkeiten im erwarteten Temperaturbereich laut Datenblatt mit 6610 bei 0.8°C und ohne Kompensation ca 1°C. Das Geld läßt sich hier vielleicht auch sparen. Der Unterschied ist hier einfach nicht hoch genug. Bleiben halt nur die Meßzyklen, die auf 4-5 max pro Sekunde begrenzt sind. Sehe ich eigentlich kein Problem drin.
    Allerdings ist mir gerade aufgegangen, daß die Zykluszeit eben diese eine Sekunde für die zuverlässige Messung sein sollte, oder? Hab ich dich vermutlich erst falsch verstanden.
    Beim Einsatz des KT kannst du natürlich nahezu konstant messen, allerdings kostet das Wandeln auch Zeit, wobei die Wandlung das ganze bestimmt in dieselbe Zeitregion rückt. Dürfte sich aber letztendlich alles im selben Rahmen bewegen. Ist nur mehr Programmierschweiß drin.
    Ein sehr interessantes Projekt. Ich würde in dem Aufwasch vielleicht auch gleich den Kesselfüllstand mit reinnehmen in die Steuerung.
    Die ist bei meiner Maschine auch so gelöst, daß der Wasserwiderstand bzw. die Änderung zur Abschaltung der Pumpe genommen wird. Es fließt hier auch ein Strom vom Steuergerät über den Kessel. Durch Potentialausgleich werden Meßfehler vermieden.
    Als größtes Problem sehe ich fast das Ein/Ausschalten der Heizung, die dürfte hier für einigen Ärger durch Spannungssprünge sorgen. Mit einer kontinuierlichen Regelung ist das viel harmloser, ansonsten sehe ich hier viel mehr Aufwand für die Netzteildimensionierung (Siebung).
    Geändert von st (21.08.2007 um 23:59 Uhr)

  6. #6
    emc2 ist offline Erfahrener Benutzer
    Registriert seit
    28.12.2006
    Beiträge
    461

    Standard AW: PID mit Microcontroller

    Zitat Zitat von st Beitrag anzeigen
    Als größtes Problem sehe ich fast das Ein/Ausschalten der Heizung, die dürfte hier für einigen Ärger durch Spannungssprünge sorgen
    Dafür ist ein Solid-State-Relais vorgesehen. Da die Boilerheizung keine (?) induktive Last ist, verzichte ich auf einen diskreten Snubber. Das vorgesehene Solid-State-Relais von SHARP, S202S12, hat aber einen kleinen, internen Snubber und schaltet im Nulldurchgang der Netzspannung. Für einen Netzfilter reicht leider der Platz auf der Platine nicht mehr - die spannungssicheren X2-Kondensatoren sind ziemlich gross. Falls ein Filter notwendig sein sollte, gibt es notfalls Kaltgerätestecker-Buchsen mit Netzfilter für die Gehäusewand. Ich hoffe, dass das so gut geht.

  7. #7
    Stefan ist offline Moderator
    Registriert seit
    05.11.2001
    Ort
    MK
    Beiträge
    7.268

    Standard AW: PID mit Microcontroller

    Mit den Netzbuchsenfiltern wirds dann aber auch schon knapp, je nach Heizleistung der Maschine. Es gibt zwar z. B. von Schurter Modelle mit 16A Nennstrom, aber da passen die normalen Kaltgerätestecker nicht mehr da es sich um die nächstgrössere (rechteckige) Bauform mit liegenden Kontakten handelt. Die 'normalen' gefilterten Kaltgeräteanschlüsse gehen nur bis 10A.

  8. #8
    emc2 ist offline Erfahrener Benutzer
    Registriert seit
    28.12.2006
    Beiträge
    461

    Standard AW: PID mit Microcontroller

    hab jetzt nicht alles gelesen, sehe ich das richtig, dass man noch ein display, taster und dieses ssr benötigt neben dem platinencontroller?
    Ja, wenn das Projekt klappt und Du es nachbauen wolltest, wären das die wichtigsten externen Teile. Dazu kommen noch hitzebeständige Kabel (PTFE/"Teflon" oder Silikon-Isolierung) und die Thermoelemente. Ich mache mir keine Hoffnung, dass es billig wird, schon die Herstellung der Platine kostet bei 1er-Stückzahl 45 EUR.

  9. #9
    emc2 ist offline Erfahrener Benutzer
    Registriert seit
    28.12.2006
    Beiträge
    461

    Standard AW: PID mit Microcontroller

    Zitat Zitat von Stefan Beitrag anzeigen
    Die 'normalen' gefilterten Kaltgeräteanschlüsse gehen nur bis 10A.
    Der Line-Filter kommt, wenn er benötigt werden sollte, vor die Controller-Schaltung, die sehr wenig Strom benötigt, nicht vor die Espressomaschine (die Espressomaschine ist über Solid State Relais galvanisch vom Controller getrennt). Der kleinste verfügbare Line-Filter, z.B. 1A, sollte demnach ausreichen. Für die Leistungsseite - d.h. Relais - plane ich übrigens für 8A. Meine Espressomaschine Gaggia Coffee benötigt 1400VA / ~6A.
    Geändert von emc2 (22.08.2007 um 11:08 Uhr)

  10. #10
    st
    st ist offline Benutzer
    Registriert seit
    31.05.2007
    Beiträge
    74

    Standard AW: PID mit Microcontroller

    Was hältst du von der Idee, den internen PWM des Mikrokontrollers zu verwenden, um so eine stufenlose Regelung der Heizung zu bekommen? Das hätte eben noch den Vorteil der nicht mehr benötigten Filterung der Netzspannung. Und würde mit Sicherheit Kosten sparen helfen.
    Und ist sicherlich eine sehr elegante Lösung...
    Bis jetzt scheint das ganze ja zumindest auf Hardwareseite schon fertig zu sein, wie sind denn deine Ideen zur Software? Wie programmierst du das? In Assembler oder mit Hochsprache?
    Wieviele Infos willst du auf dem Display ausgeben? Willst du evtl auch Steuerungsparameter im Betrieb ändern? Ich denke doch, daß dem so sein soll.
    Willst du das alles alleine durchziehen oder wäre das eine Sache, die du mit anderen zusammen entwickeln willst?
    So eine Entwicklung bringt jedenfalls ein extrem gutes Verständnis für die einzelnen Zusammenhänge der im einzelnen einfachen, aber im Zusammenspiel sehr komplexen Vorgänge, die zu gutem oder schlechtem Kaffee führen können. Mich interessiert die Thematik sehr und ich bin gerne bereit, Zeit, Kaffee und Laune dafür zu investieren.

Seite 1 von 2 12 LetzteLetzte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Google Suche
Reklame

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36