Wieder mal Zeit gehabt etwas zu spielen.
Bisher habe ich ja nur am Drumherum rumprogramiert. Dass die Tasten gehen, dass das Display alles anzeigt, was es soll, und dass ich alle benötigten Werte eingeben kann.
Aber das eigentliche Herzstück, den Regler, gabs bisher noch noch nicht.
Nun ist so ein PID-Regler kein Hexenwerk, zumal es da für den Arduino auch eine fertige Bibliothek gibt.
Aber wie testen?
Das bringt mich dann wieder zu dem Teil:
Das ist mein Grillsimulator.
Eine kleine elektrische Heizspirale, die bei 12V etwa 20W liefert, wegen der thermischen Masse in einen Becher mit Gips eingegossen, in der Mitte ein Loch für den Temperatursensor.
Der sollte hinreichend träge sein, um sich (vielleicht?) wie ein Grill zu verhalten. Zumindest zum testen des Reglers sollte es reichen.
zuerst mal die Sprungantwort aufnehmen:
- 0009_018_Sprung40.jpg (42.45 KiB) 3876 mal betrachtet
Aus der Sprungantwort kann man dann mittels Wendetangente und eine kleinen Formelwerkes
- 0009_019_Formeln_PID.jpg (39.92 KiB) 3876 mal betrachtet
die PID Parameter bestimmen!
(Das ich natürlich vorher einfach wild rumprobiert habe, in dem Versuch, das mit irgendwelchen Parametern vernünftig zum laufen zu bringen verschweige ich hier lieber!
)
nochmal mit den ermittelten PID Parametern laufen lassen:
- 0009_020_PID.jpg (65.69 KiB) 3876 mal betrachtet
Naja, schwingt noch etwas sehr stark über. Das geht besser:
- 0009_021_PID.jpg (64.8 KiB) 3876 mal betrachtet
Sieht schon besser aus, wenn ich den P-Anteil noch runter nehme, dann ist das auch ohne Überschwinger möglich.
Die Grillsimulation hat sich aber bewährt.
Ich konnte beim Spielen recht schön lernen, wie sich so ein PID verhält. Und das alles (es waren viele, viele Testläufe!) am lebenden Grill zu testen wäre ungleich aufwändiger gewesen!
Ausserdem kann man hier auch schön die Algoritmen für Tendenzerkennung und DeckelOffen Erkennung austesten.
Nun ist es mir aber nicht genug, den Grill zu regeln, ich will unbedingt auch alles aufzeichnen.
Dazu braucht es das:
- 0009_022_SD_slot.jpg (62.15 KiB) 3876 mal betrachtet
(Kostet 2€ beim freundlichen Chinesen
)
Auch für die SD-Karten gibt es glücklicherweise schon fertige Treiber zu laden.
Aber, oh weh!
Plötzlich waren die 32k Speicher vom Arduino UNO zu klein!
Ich muß mir jetzt wohl den Arduino Mega 2560 bestellen.
(15€ aus Hongkong, aber das dauert mit zu lange, also die Variante für 24€ aus DE.)
Das ist der gleiche Prozessor aber mit mehr Speicher und auch viel mehr I/O Pins. Von der Rechenleistung reicht der 8-bit mit 16Mhz völlig aus. Grill regeln ist ja eine eher gemächliche Angelegenheit.
Bleibt noch die Frage nach den Sensoren und der eigentlichen Lüftungssteuerung.
Von den billigen Fleischthermometer-Sensoren bin ich wieder weg. Zum einen hat Ikea keine Fantast mehr, zum anderen ist die Haltbarkeit dieser Kabel auch sehr schlecht. Ich mußte mir jedes Jahr wieder neue Sensoren kaufen. Auch die anderen billig-Dinger werden ähnlich schlecht sein.
Besser sind sicherlich die Sensoren vom ET732. Aber auch hier kostet ein Satz 27,80€.
Auf der anderen Seite bin ich mit Thermoelementen gut ausgestattet, und neue (Glasseide-Isolation!) kosten beim Chinamann nur 3€. Hier bleibt nur die höhere Grundinvestition. Einen Sensor vom ET732 einlesen geht quasi umsonst. Ein Thermocouple einlesen kostet pro Eingang etwa 15€-20€.
Mal sehen und weiter forschen.
Grüße
Gunther
Am Ende wird alles gut.
Ist es nicht gut, ist es nicht zu Ende.