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
Hi bei 100ms Zykluszeit für einen Regeleingriff? Da langweilt sich ja selbst ein Mega8 bei 1MHz Takt noch. Matthias
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.
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
Sorry aber warum soll ein 8Biter zu klein sein? Gruss Midasx
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
Notfall kann man auch einen P4-3000 mit Labview nehmen. Dieser "Mikrocontroller" wäre dann noch universeller einsetzbar...
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
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
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
"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.
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.
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
"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
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.