Forum: Mikrocontroller und Digitale Elektronik Temperaturregelung auf Mikrocontroller


von Johann G. (miceinsteiger)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

zuerst einmal: Bin absoluter Microcontroller-Einsteiger.
Habe folgendes Problem:

Habe in Simulink einen Regelkreis aufgebaut (siehe Anhang).
Wie setzte ich diesen in einem Mikrocontroller um?
(bzw. kann man das überhaupt...?)

Welchen Mikrocontroller würdet ihr vorschlagen?

Kurz zur Funktion der Temperaturregelung:
Es wird eine Solltemperatur vorgegeben. Diese geht auf einen PI-Regler. 
Das Stellsignal am Reglerausgang wird auf 0...20mA begrenzt. Mit diesem 
Signal wird ein Leistungssteller angesteuert, der abhängig vom Eingang 
(0...20mA) eine gewisse Leistung(in W) auf die Regelstrecke ausgibt. Als 
Störgröße ist die Umgebungstemperatur.
Der Ausgang der Regelstrecke (Temperatur) soll dann mit der 
Umgebungstemperatur im Mikrocontroller addiert werden und die "Summe" 
wieder an den Eingang geführt werden.

Ich hoffe, dass ich mich einigermaßen verständlich ausgedrückt habe! :-)

Über Antorten würde ich mich sehr freuen!

Viele Grüße

von S. T. (cmdrkeen)


Lesenswert?

solange du die regelstrecke in software realisieren kannst (z.b. C) ist 
eigentlich nur entscheidend für den µC, dass er deine Perepherie 
auslesen bzw. ansteuern kann, dass er schnell genug rechnet und dass er 
genug Speicher für das Programm hat.

im Hobby-bereich sind PIC und AVR als 8bit µC gut vertreten. beide 
Familien bieten auch modelle mit viel speicher, A/D- wandlern und 
genügend I/O's.


ich würde ja die µC-familie wählen, mit der ich am besten klarkomme.

von Olaf (Gast)


Lesenswert?

> Wie setzte ich diesen in einem Mikrocontroller um?

Man startet die Programmierumgebung und legt los. :-)

Gedanken ueber die Grundlagen hast du dir ja schon ausreichend gemacht.

> (bzw. kann man das überhaupt...?)

Selbstverstaendlich.


> Welchen Mikrocontroller würdet ihr vorschlagen?

Ehrlich gesagt, es geht mit jedem Controller. Ich selbst wuerde fuer 
Regler immer mindestens einen 16bit Controller nehmen weil wir ja nicht 
mehr im Mittelalter leben, aber vermutlich laesst sich soetwas sogar in 
einem Tiny15 realisieren wenn man wirklich will.

Ich wuerde nur empfehlen einen eher groesseren Controller zu nehmen, 
also mindesten 1kB Ram, 8k-16kFlash damit du nicht als Anfaenger an 
Grenzen stoesst die auf deiner Ahnungslosigkeit beruhen, und du genug 
Reserven fuer Debugging hast. Ich wuerde dir auch empfehlen einen RS232 
vorzusehen an der dein Controller staendig Daten ausgibt. Das macht die 
Fehlersucher und die Parametrierung deutlich einfacher. Im Gegensatz zu 
vielen anderen Projekten kannst du einen Regler nicht mal eben im 
laufenden Betrieb im Debugger anhalten. Jedenfalls nicht wenn du die 
Regelung pruefst.

Problem ist nur das dies nicht gerade ein Projekt ist fuer jemanden der 
noch nie mit so einem Controller gearbeitet hat! Du solltest erstmal 
etwas kleineres durchziehen um mit dem Microcontroller vertraut zu 
werden. Und du solltest nicht erwarten das es schon klappen wird wenn du 
es einfach machst. Du musst zu Beginn deines Programms schon ein paar 
wichtige Designentscheidungen treffen die Vorraussetzen das du mit dem 
Controller vertraut bist.

> Das Stellsignal am Reglerausgang wird auf 0...20mA begrenzt.

Dein Controller liefert keinen Strom. Da wird also mindestens noch ein 
Operationsverstaerker haengen. Ich hoffe du hast also wenigstens noch 
etwas Ahnung von Analogelektronik.

Das Problem ist gewiss nicht die Machbarkeit, sondern die steile 
Lernkurve die vor dir liegt.

Olaf

von Temp_Pro (Gast)


Lesenswert?

@Johann

Hallo Johann,

1. Temperatur zu regeln ist kein Problem. Temperatur zu messen schon 
eher ;-)

2. Du scheinst dich ja mit Simulink auszukennen. Die m-Files (bzw. 
sim-Files) kann man doch in C-Code umwandeln, oder nicht?
Dann brauchst du selber nur noch den uC zu initialisieren und die Ports 
anzusteuern (gibt hier im Forum ein super Turorial) und deinen 
Regelalgorithmus laufen zu lassen.

von Olaf (Gast)


Lesenswert?

> 1. Temperatur zu regeln ist kein Problem. Temperatur zu messen schon
> eher ;-)

Das ist wahr, aber es hat das Problem ja umgangen indem er irgendwas 
fertiges nimmt das ihm mA liefert. Vermute ich jedenfalls mal.

> Dann brauchst du selber nur noch den uC zu initialisieren und die Ports
> anzusteuern (gibt hier im Forum ein super Turorial) und deinen
> Regelalgorithmus laufen zu lassen.

Er muss sich aber mit den Timern auskennen um sich eine Zeitbasis zu 
verschaffen, und mit Interrupts muss er klar kommen. Er muss wissen wie 
er Daten zwischen Interruptfunktion und extern austauscht usw....

Also ich finde das fuer jemanden der noch nie mit so einem Controller 
gearbeitet hat schon heftig.

Olaf

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.