Samstag, 27. April 2013

Update

Die Hardware ist erstmal auf Hold. Da ich ohne weiteres Testen nicht mehr weitermachen kann.

Features:
Folgende Feature sind jetzt drauf:
-3x PT100 oder PT1000 mit einer 0.01 Auflösung unter einer 0.1°C Genauigkeit.
-1x Typ K fest
-1x Sockel für zusätzliches Typ K über Breakout Board
-4 Analoge Eingänge wahlweise mit 5V oder 10V. Pullup oder Pulldown möglich.
-4x 10bit DAC Ausgänge einstellbare Verstärkung auf bis max. 10,5 V 
-4x optische getrennte Eingänge. Genaue Schaltspannung steht noch nicht fest. Momentan 12 .. 24 Volt.
-4x potential freier Wechselkontakt max. 5A
-4x Open collector (12V) d.h. gegen Masse
- Arduino MEGA2560 Footprint 
- zusätzlich durchverdrahteter Arduino Footprint zum Aufstecken weiterer Shield (Ethernet LCD usw.)
- DS1307 RTC Batterie gepuffert.
- 1-Wire Interface
- Diverse weitere Digitale I/O auf Pinheader (UART...)
- DC/DC Wandler für analog Teil.

Einkaufspreis bewegt sich derzeit für die Teile bei 50€


Montag, 22. April 2013

PT100 / 1000 die Zweite

Nach einem wirklich guten Tip von Timm aus dem http://www.holvergaser-forum.de, habe mich dazu entschlossen, die Verstärkerschaltung zu verwerfen und stattdessen den PT nach der AN1154 von microchip aus zu werten. Das löst im Prinzip alle bekannten Probleme einer Verstärkerschaltung.
Der verwendete 22bit AD MCP3551 ist gerade mal 3,55€ teuer und erfordert lediglich einen hoch genauen Widerstand als Referenz. Die Messung ist ratiometrisch so braucht man sich auch keine Gedanken über einen vernünftige Referenzquelle zu machen.
Es muss nur ein digitaler Abgleich gemacht werden um eine Genauigkeit von 0.1 °C über einen Messbereich von -200 bis 800°C (!) und eine Auflösung von unter 0.01 °C (!).
Der AD kann über SPI gelesen werden.

Was will man da noch sagen :)

Der vorgeschlagene Widerstand Ra = Rb = 6.8k sollte für PT100 und PT1000 gleichermaßen funktionieren, denn es fließt bei PT100 ca. 290 µA und bei PT1000 ca. 270 µA  bei 0°C und Vldo = 4V. Man kann zusätzlich noch die Leitungswiderstände kompensieren die aber wegen des hohen Referenzwiderstands eher keine wesentliche Rolle spielen (1. Link unten).

Hier noch ein paar Details und Merker:
http://www.christiankoch.de/sublab/FA_2011_7_Pt100.pdf
http://www.mikrocontroller.net/topic/257303
http://arduino.cc/forum/index.php?topic=91245.0

Hier noch ein weiterer Link zu einem anderem IC was ich gefunden habe:
http://pdfserv.maximintegrated.com/en/an/AN4875.pdf

Sonntag, 21. April 2013

PT1000

Was für ein mühseliges Thema. Es gibt tausend Idee, Vorschläge etc. aber nirgendwo kann man nach lesen obs dann tatsächlich funktioniert hat...
Ich weiß eh noch nicht ob ich überhaupt einen Messverstärker aufbaue, denn ich hab noch ein paar Industriemesswandler rumliegen.

Im Simulator läuft sie schon mal ganz zufriedenstellenden.
Gedacht für ein PT1000 Element 0..300°C verstärkt auf 0...5.0V je nach verwendetem OP.
Wichtig ist, es muss ein Rail to Rail Opv sein.


Für den einen Thermoelementeingang hab ich mir auch noch nichts erdacht...

Und mir fehlt noch ein PWM -TTL auf 10V Wandler. Der dürfte aber nicht mehr ganz so schwierig werden wie das da oben.


Edit: Aufgrund ein deutlich eleganteren Lösung wird dieses Schaltung nicht gebaut.

Freitag, 19. April 2013

Code

Der Sourcecode ist ab sofort hier zu finden:

https://code.google.com/p/ctrlhv/source/browse/

Ein paar Erläuterungen:
Diese Version ist nicht an einem realem HV getestet. Sie ist weder vollständig noch wird sie so funktionieren in diesem Zustand, an einem reallen Vergaser.
Was geschieht als nächstes:

  1. Als erstes möchte ich meine Variablen aufräumen und das Mapping der Modbusregister noch mal ändern. 
  2. Danach werde ich mir die passende Hardware zusammensuchen und den Code darauf abstimmen. 
  3. Danach wird es mehrere Trockenläufe geben um die Hardware zu testen.
  4. Dann müssen noch diverse Überwachungsfeatures rein. Führungsgrößenerkennung, Not-Aus etc. 
  5. Dann kanns an den HV gehen.
  6. Da ich zwischenzeitlich aber auch noch meine Heizungsanlage bauen muss, wird sich das Projekt bis vermutlich Ende diesen Jahres hinziehen. Ich nehme aber an das mit den ersten Ergebnissen so in 8 Wochen gerechnet werden kann, denn dann dürfte der HV am Netz hängen. Zumindest ist das mein derzeitiges Ziel.



Donnerstag, 18. April 2013

Fehlersuche

Die meiste Zeit hat wie so oft die Fehlersuche verbraucht. Wie so oft sind Strichpunkte zuviel meistens tödlich und unglaublich schwer zu finden :)
Ergebnis:
Wie an den Bildern unten zu sehen ist läuft die Regelung . Um die ganze Plattform zu testen habe ich mir in www.proview.se einen Simulation gebaut. Der Aufwand hielt sich eigentlich in Grenzen. Das Einzige was etwas nervig ist, ist die graphische Art, Anwendungen zu erstellen.

Diesen Simulator werde ich später zur Visualisierung des Vergasers umbauen. Auch sämtliche Einstellwerte werden später aus diesem Tool übertragen werden, denn ich möchte mir eine aufwendige Menü-Programmierung auf dem µcontroller sparen.

Grün: Sekundärgebläse in % Rot: Sauerstoff simuliert.
Die Werte sind etwas holprig weil ich derzeit nur einen groben, byte-großen Integer für die Stellgröße aus der Steuerung bekomme. Die Regelung selber arbeitet intern mit Gleitkommazahlen.

Der Simulator

Anschließend werde ich den Source Code noch etwas optimieren und bereinigen und dann gibts ihn hier zu bewundern.

Nächster Halt wäre dann die Hardware zu entwerfen.

Edit: Mein Satzbau gleicht sich doch langsam dem englischem SPO an...

Mittwoch, 10. April 2013

Weiter gehts..

Leider hänge ich hier immer noch fest. So bleibt genügend Zeit den zweiten Teil der Automatisierung in Angriff zu nehmen.
Die Holzvergaserregelung soll folgende Dinge können:

  1. Lambdaregelung -> Sollwerte im Bereich von 2 - 10 % Rest Sauerstoff -> Stellgröße Sekunddärluft
  2. Leistungsregelung respektive Abgastemperaturregelung -> Primärluft und als Begrenzung Saugzugebläse
  3. Selbständige Rücknahme der Primärluft (d.h. zuviel Holzgas) um den Rest Sauerstoff konstant zu halten.
  4. Anzünd und Anheizmodus notwendig für einen stabilen Heizbetrieb.
  5. Ausbranderkennung um den Pufferspeicher möglichst Energie effizient zu beladen. Was das konkret heißt hängt vom Ladezustand des Speichers ab.
  6. Übergeordneter Temperaturwächter 
  7. Übergeordneter Pumpenwächter
Das steht schon fest:
  1. Arduino Lösung
  2. Ankopplung an die Außenwelt über Modbus
  3. Ich möchte meinen Source-Code hier veröffentlichen, da ich einen großen Teil des Codes ebenfalls aus open source quellen bezogen habe.
  4. Breibandlambda Interface von Sebastian
  5. Da ich im Gegensatz zum Puffercontroller hier wirklich auf stabile und verlässliche Messwerte angewiesen bin, werden die Temperaturen über PT100 Fühler gemessen bzw. ein Thermoelement.

Donnerstag, 4. April 2013

Umwege

Nachdem ich den Arduino bereits vor vier Wochen in HK bestellt hatte ist er nun endlich in Singapur angekommen :-).

Folglich gleich eingerichtet und gleich eine Modbus Lib aufgespielt. Und siehe da nach nur einer halben Stunde kommuniziert er mit meiner Proview Station.
Damit ist eigentlich auch eins der wesentliche Probleme in Sachen Automatisierung der Anlage erledigt und ich brauche vorerst keine Ethernetanbindung an den Arduino den es wir jetzt seriell übertragen, was den Programm deutlich schlanker und stabiler hält.

Hier noch ein kleines Foto von heute:


Dienstag, 2. April 2013

Visualisierung

So weiter gehts:

Nach längerem suchen und probieren bin ich nun bei www.proview.se gelandet. Mit diesem Open Source Projekt werde ich irgendwann mal meine Heizung Visualisieren und evtl ins Netz stellen.

Hier ein Bild wie es mal aussehen könnte: