Forum: Mikrocontroller und Digitale Elektronik geeigneter µC für einen digitalen Regler


von Andreas Kaiser (Gast)


Lesenswert?

Hallo,

ich will einen digitalen Kompaktregler bauen der wahlweise als
2-,3-Punkt und PID Regler funktioniert und ggf. auch eine adaptive
Anpassung der Parameter durchführen kann.
Da ich am Beginn des Projektes bin ist meine Frage, welcher Prozessor
für die Abarbeitung der Algorithmen geeignet ist, da eine Abtastzeit
von ca. 100ms erreicht werden soll.
Grundlegend ist die Frage, ob ein 16bit µC reicht oder eher ein DSP
benötigt wird.
zur Auswahl steht ein Fujitsu µC MB90347CA
oder ein MSP430F149

oder eben ein DSP.

Vielen Dank

Andreas

von gast (Gast)


Lesenswert?


von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

bei 100ms Zykluszeit für einen Regeleingriff? Da langweilt sich ja
selbst ein Mega8 bei 1MHz Takt noch.

Matthias

von Alex (Gast)


Lesenswert?

Analog Devices hat mehrere Mikrocontroller, die für sowas geeignet sind.
Die haben z.B. DA und AD on chip und oft noch andere Peripherie. Langen
tut für diese Anforderungen ein 8-Bitter allemal.

von Alex (Gast)


Lesenswert?


von Andreas Kaiser (Gast)


Lesenswert?

Danke soweit mal für die Hilfe,

denke aber ein 8 bit ist zu klein, da ein extener AD-Wandler verwendet
werden soll (sorry hab ich vergessen zu schreiben) mit 14 bit
Auflösung. Auserdem sollen eben solche Sachen wie
Führungsgrößenanstiegsbegrenzung und maximale Anstiegsgeschwindigkeit
des Ausgangs usw. noch implementiert werden, was zusätzlich Rechenzeit
benötigt. Deshalb dacht ich mal das der µC mindestens eine MAC-Einheit
besitzen sollte da man ja bei den Algorithmen hauptsächlich
multiplizieren und addieren muss.

Sorry wegen des "Crosspostings" dachte aber das im DSP-Forum andere
Leute sind :-)

Andreas

von MidasX (Gast)


Lesenswert?

Sorry aber warum soll ein 8Biter zu klein sein?


Gruss

Midasx

von Peter Dannegger (Gast)


Lesenswert?

Bei langweiligen 100ms ist 8Bit nicht zu klein.

Wenn Du welche mit MUL-Befehl nimmst (8051, ATMega), ist auch die
Multiplikation sauschnell.

Pi*Daumen können die in den 100ms über 1000
32Bit-Multiplikationen/Additionen machen.
Das sollte doch wohl reichen ?


Peter

von Rahul (Gast)


Lesenswert?

Notfall kann man auch einen P4-3000 mit Labview nehmen.
Dieser "Mikrocontroller" wäre dann noch universeller einsetzbar...

von Thomas (Gast)


Lesenswert?

Hallo Andreas,

für 100ms Abtastzeit bist du sicher mit nem 8-bit Prozessor gut
bedient. Mit integriertem ADC wäre z.B. ein Silab 8051 geeignet. Der
hat nen 16/24 Bit Wandler eingebaut. Die Frage ist halt , brauchst du
"echte" 14-Bit. Das bedeutet einen ordentlichen Aufwand, wenn man´s
richtig machen will.

Mit nem DSP gehts natürlich genauso gut, aber wirklich brauchen tut man
es eigentlich nicht. Wäre nur dann interessant, wenn die Werkzeuge dafür
eh vorhanden wären und für die anderen Controller nicht.


Gruß
Thomas

von Peter Dannegger (Gast)


Lesenswert?

Ich glaub, ich verstehe Deinen Irrtum:

8Bit-CPU bedeutet, daß 8 Bit in einem Befehl berechnet werden.

Es verbietet einem aber niemand, mehrere 8Bit-Befehle hintereinander zu
schreiben um 16Bit, 32Bit, 64Bit usw. Zahlen zu berechnen.


Peter

von Andreas Kaiser (Gast)


Lesenswert?

Hallo Thomas

gut das mit den 100ms Abtastzeit ist mal so eine grobe Obergrenze.
Generell ist die Regelung besser wenn man schneller abtasten kann und
man kann dann auch andere Strecken regeln. 14 bit sollten es schon sein
und das wird wahrscheinlich mit einem externen AD Wandler gemacht, da
die meisten µC's nur 10 oder 12 Bit haben.
Da ich die Hardware auf jeden Fall ferigstellen muss sollte halt nich
der Fall eintreten, dass man hinterher feststellt, dass der verwendete
µC zu langsam ist und man dann das ganze Boarddesign nochmals ändern
muss.
Der Regler soll als Universalregler für z.B Temperatur aber auch
Füllstand, Druck, Durchfluss usw. dienen und nach meinen Infos liegen
die käuflichen Regler zwischen 100ms und 250ms Abtastzeit.

Gruß Andreas

von Alex (Gast)


Lesenswert?

"Regelung besser wenn man schneller abtasten kann"

Ist nicht dein Ernst?!

Zum Thema ADC: Lieber habe ich ein ruhiges 12-Bit Signal als ein
verrauschtes mit 2 Bit mehr. Ich weiß ja nicht, wieviel Erfahrung du im
Leiterplattendesign hast.

"käuflichen Regler zwischen 100ms und 250ms"

Vielleicht für eine Heizung. Alles was Antriebstechnik o.ä. betrifft
liegt z.T. weit darunter.


Ich an deiner Stelle würde mir zuerst über die zu erwartenden
dominierenden Zeitkonstanten der Strecken einen Kopf machen. Dann setzt
du deine Tastzeit um den Faktor 5 bis 10 niedriger an und sagst dann
nochmal bescheid. Weniger macht keinen Sinn da dir dann die Stellgrößen
durch die Decke gehen und mehr ist auch schlecht, da du dann das
quasianaloge Reglerverhalten streichen kannst.

von Fritz G. (fritzg)


Lesenswert?

Um sicher zu sein kannst ja mal die Software so halbwegs schreiben und
dann auf einem ATmega benchmarken.

Ich mach mit einem 8-bit Mega eine Positionsbestimmung im Raum in ca.
14ms und da ist viel Flieskommarechnung drin.

Ein 32-bit ARM mit 60MHz war da um Faktor 10 schneller.

Natürlich kannst du mit einem 8-bitter auch 14-bit Messwerte
verarbeiten, der interne ADC ist ja auch 10bit, also muss schon hier
mit 16-bit gerechnet werden.

von Andreas Kaiser (Gast)


Lesenswert?

Hallo Alex,

Meiner Meinung nach ist eine schnellere Abtastzeit besser, da man dann
eher an einen Analogregler kommt, außer man will einen Regler auf
endliche Abtastzeit konstruieren.
Klar reicht eine Abtastzeit von 100ms nicht für alle Strecken. Aber in
der Prozessmesstechnik müsste man mit dieser Abtastzeit bei vielen
Anwendungen hinkommen.
Aus dieser Unsicherheit wollte ich den Prozesser auch ein bisschen
schneller wählen, damit man die Abtastzeit notfalls noch kürzer machen
kann.

zum Thema käufliche Universalregler:
http://www.gmc-instruments.com/resources/re/r0550/db_d.pdf

von Peter Dannegger (Gast)


Lesenswert?

"Meiner Meinung nach ist eine schnellere Abtastzeit besser"


Stimmt aber nicht !

Die Abtastzeit muß sich immmer nach der Reaktionszeit der Regelstrecke
richten.

Es ist natürlich sinnvoll, wenn die CPU nicht am Anschlag ist.

Z.B. kann ich bei meiner Filamentregelung (Ionenquelle) 5ms einstellen,
dann schwingt das Ding aber wie Sau. Bei 100ms ist die Regelung stabil.
Ich mache das über einen Timerinterrupt, der ein Bit setzt und dann
macht das Main den nächsten Regelzyklus.


Peter

von Barti (Gast)


Lesenswert?

Also erstmal wäre zu klären wie schnell die Tastung sein muß.
Abtasttheorem von Shannon hilft da grob weiter.

Bei Zwei- und Dreipunkt-Regelungen braucht man nicht viel rechnen,
allerdings sollte bedacht werden, dass die adaptive(!!!) Berechnung der
Koeffizienten für PID-Algorithmus schon etwas mehr Rechenleistung
braucht. Gegen einen 8-bitter spricht nix, aber auch 16-bitter sind
recht günstig zu haben. Allerdings MSP430 würde ich nicht unbedingt
empfehlen, sind eher auf stromsparen ausgerichtet, wenn der Regler also
nicht portabel werden soll, dann mal mind. einen AVR oder 8051 in
betracht ziehen nächsthöherer wäre z.B. ein 8051er von Silabs(schnell).
Aus dem 16bit-Regal könnte man einen M16C oder M32C von Renesas
empfehlen, allerdings schon teurer und schwerer zu bekommen.

Ach und günstig wäre noch den I-Anteil erst beim Erreichen des
Arbeitspunktes aufzuschakten! Ist die Regelabweichung zu groß, kann die
Stellgröße auch sehr groß werden und bis in die Begrenzung laufen(soweit
vielleicht nicht schlimm), aber DU hast dann Überschwinger im
Arbeitspunkt.

von Tom (Gast)


Lesenswert?

Hi Leute

Was spricht gegen den MSP430? Das sind 16Bit-uCs und der F149er hat
einen Hardware-Multiplizierer, 8x 10Bit-ADC Eingänge, reichlich Timer
und IOs, sogar zwei UART-Schnittstellen sind vorhanden. Was will man
mehr?

Ich bin ja fast noch ein blutiger Anfänger, aber wenn ich so im Forum
mitlese habe ich immer den Eindruck, als seien AVR, PIC und 8051er viel
komplizierter zu programmieren. Beim MSP430 sind hardwaremässig manchmal
 ein paar Handstände notwendig, weil er nur mit maximal 3.8V und 6mA pro
Port arbeitet.

Aber ich will jetzt keinen Glaubenskrieg auslösen ;-). Ich wollte nur
mal sagen, dass ich ähnliche Ziele habe, wenn auch etwas einfacher
gestrickte und auf längere Zeit gesehen (das ist nur mein Hobby und ich
muss sehr viel neues lernen dafür). Und für diesen Zweck habe ich mir
extra den MSP430 ausgesucht.

BTW: Was kostet der käufliche Universalregler, der hier verlinkt wurde?
Das Teil sieht interessant aus.

Gruss

Tom

von Barti (Gast)


Lesenswert?

Gut letztendlich bleibt die Entscheidung bei Dir. Klar sind MSP430
16bitter, aber von der Performance her mit AVR vergleichbar, da diese
sich höher takten lassen. Das nächste Problem mit der "geringen"
Betriebsspannung hast Du ja schon genannt. Deshalb bevorzuge ich
manchmal den M16C als 16bitter.

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.