Hey, Ich habe ein Problem. Undzwar muss ich ein Netzteil bauen von 0-24V und 2A und muss das ganze über einen Mikrocontroller machen. Mein genaues Problem ist, das ich davon keine Ahnung habe. Habe schon das AVR-Tutorial gemacht und eigentlich auch verstanden aber ich weiß nicht wie ich kein PID-Regler programmieren soll zur Spannungsstabilisierung. (Kenntnisse über Regelungen vorhanden) Gruß FunnyJoke
Michael Meiritz schrieb: > aber ich weiß > nicht wie ich kein PID-Regler programmieren soll zur > Spannungsstabilisierung. keine zu programmieren ist ganz leicht - das schaff sogar ich ganz schnell
Hi, im Prinzip doch genau wie sonst auch, du brauchst den Sollwert und den Istwert (also über AD einlesen), dann vergleichen und regeln. Je nach Geschwindigkeit musst du dann auf deine Abtastzeit usw achten. Schau vielleicht mal nach Z-Trafo. Sonst geht es auch mit OPs, muss das unbedingt mit AVR?
Hi, @Gast: Ich will einen programmieren, habe mich nur verschrieben ;) @Alle: Ich kann kein C das ist mein Problem und C lernen soll schwierig sein, hab ich gehört^^ Und wie soll ich Regeln, ihrgend eine idee? Wohin mit der Differenz? Und wie soll das mit nem OP funktionieren?
Hallo Soweit ich das sehe, ist das mindestens eine Nummer zu groß für dich. Kauf dir das teil bei Reichelt oder Conrad oder dem Verkäufer deines Vertrauens. Gruß Joachim
Den D-Teil kannste vergessen, denn das System ist sicher schnell genug.
Michael Meiritz schrieb: > @Alle: Ich kann kein C das ist mein Problem und C lernen soll schwierig > sein, hab ich gehört^^ Kannst du Assembler? Die Regelung allein ist ja nicht so kompliziert, dass man sie nicht in Assembler schreiben könnte. > Und wie soll ich Regeln, ihrgend eine idee? ??? Sagst du doch selber schon: PID. Wobei du D vermutlich nicht brauchen wirst. > Wohin mit der Differenz? ??? Das ist wie in fast jedem Regelkreis der Eingang. Irgendwie beißt sich das mit: Michael Meiritz schrieb: > (Kenntnisse über Regelungen vorhanden) - Was ist denn deine Stellgröße? - Und hast du eine Beschreibung der Regelstrecke? - Gibt es überhaupt schon Hardware? Michael Meiritz schrieb: > Undzwar muss ich ein Netzteil bauen Warum musst du denn?
PID-Regler würde ich prinzipiell so programmieren - (P) proportional-Anteil: die momentane Differenz zwischen Soll- und Istwert - (I) integral-Anteil: man bildet fortlaufend die Summe aus der aktuellen Differenz zwischen Soll- und Istwert und der Hälfte dieses Wertes aus der vorherigen Messung (Summierung der Abweichung über die Zeit) - (D) differential-Anteil: man berechnet die Differenz aus dem Abstand von Soll- und Istwert zur vorherigen Messung (Geschwindigkeit der Änderung der Abweichung) Und nun muss man "nur" noch geeignete Koeffizienten finden, in welchem Anteil man die drei Werte dazu benutzt, auf den Istwert einzuwirken, so dass er sich dem Sollwert wieder annähert ... :-)
Kläre uns bitte mal auf: Wieviel Ahnung in Regelungstechnikvorhanden? Wieviel Ahnung in AVR Assembler vorhanden Existiert schon Hardware? Schaltplan? Warum 'musst' du ein Netzteil digital regeln?
Wenn regelungstechnisches Verständnis vorhanden ist, solltes du den Ausführungen im folgenden Link folgen können. Da sind sogar kleine Codeschnipsel dabei. http://www.rn-wissen.de/index.php/Regelungstechnik
Zur Info: Für die digitale Implementierung brauchst du die Differenzengleichung Differentialgleichung für den kontinuierlichen PID-Regler:
Differenzengleichung für den zeitdiskreten PID-Regler:
aus Roboternetz http://www.rn-wissen.de/index.php/Regelungstechnik
Der Code für den Regler ist eigentlich sehr einfach. Er beschränkt sich wirklich fast auf den Codeausschnitt. Wenn man äqidistante Abtastpunkte wählt (Stichwort Timer), dann brauchst du auch diese Integrale nicht mehr. Evtl. noch eine Begrenzung der Summe des I-Anteils vorsehen und die Reglerparameter als define oder Variable, damit man sie bequem parametrieren kann. Die Frage ist eher, ob du nicht schon an anderer Stelle überfordert bist.
Ich möchte mich Entschuldigen das ich mich so undeutlich Ausgedrückt habe. Ich muss das Netzteil bauen/programmieren, weil ich ein Azubi bin und mein Meister das will. - Was ist denn deine Stellgröße? Meine Stellgröße ist Volt, weil mein Netzteil von 0-24V regelbar sein muss. - Und hast du eine Beschreibung der Regelstrecke? Als Stellort und Stellglied wollte ich nen DA wandler nehmen und dahinter ein Transistor, die Regelstrecke sind ja die Laborbuchsen und z ist der Wiederstand den ich dann da anschließe. Als Messort wollte ich an die Laborbuchsen, mit nem Voltmeter, gehen. -Gibt es überhaupt schon Hardware? Ne gibts noch nicht, ist alles noch in der Planungsphase. Wenn alles fertig geplant ist dann darf ich erst Teile bestellen und dann zusammenbauen. Bis auf das STK500 wegen dem AVR-Tutorial. -Wieviel Ahnung in Regelungstechnikvorhanden? Habe gerade einen Einwöchigen Kurs hinter mir, hat eigentlich auch gut geklappt. War aber alles mit verdrahten und nicht mit programmieren... -Wieviel Ahnung in AVR Assembler vorhanden? Nur das was im AVR-Tutorial gesagt wurde. -Existiert schon ein Schaltplan? Nein tut er nicht, ich dachte es wäre sinnvoller erst das Programm zu schreiben und dann die Hardware danach auszurichten.
Michael M. schrieb: > Ich muss das Netzteil bauen/programmieren, weil ich ein Azubi bin und > mein Meister das will. Sehr sehr sportliches Projekt für den Einstieg. Musst du denn wirklich die Regelung per Mikrocontroller aufbaun oder reicht es, wenn der Mikronctroller die Kontrolle der Regelung übernimmt. Einfacher wäre, wenn du also ein gaanz gewöhnliches Labornetzteil baust, das seine Spannungsvorgaben vom Mikrocontroller bekommt. Sowas gibts hier haufenweise zu finden. >> - Was ist denn deine Stellgröße? > Meine Stellgröße ist Volt, weil mein Netzteil von 0-24V regelbar sein > muss. Fast - das ist deine Regelgröße. Beispiel Wassertemperatur: Es soll 5° wärmer werden. Reglereingang: SollWert - IstWert = 5° Stellgröße: Drehknopfstellung am Ofen. Regelgröße: Wassertemperatur Regelstrecke: Wie deine Hand drehen muss, um eine bestimmte Erwärmung zu erreichen. Regler: Dein Verstand: Wie stark muss/darf ich aufrehen, damit die Wassertemperatur um 5 Grad ansteigt. Wann muss ich wie zurückdrehen, damit die Temperatur nicht überschritten wird. Welchen Wert muss ich einstellen, damit die Temperatur auf Soll-Wert bleibt. Aber nachdem es noch keine Hardware gibt, gibt es auch noch keine Stellgröße. >> - Und hast du eine Beschreibung der Regelstrecke? > Als Stellort und Stellglied wollte ich nen DA wandler nehmen und > dahinter ein Transistor, die Regelstrecke sind ja die Laborbuchsen und z > ist der Wiederstand den ich dann da anschließe. Als Messort wollte ich > an die Laborbuchsen, mit nem Voltmeter, gehen. Klingt soweit erstmal in Ordnung - für einen ersten Testaufbau, um die Regelung in den Griff zu bekommen. Für einen ordentlichen Aufbau braucht es noch wesentlich mehr. Such einfach mal nach Schaltplänen zu bisherigen Labornetzteilen. >> -Existiert schon ein Schaltplan? > Nein tut er nicht, ich dachte es wäre sinnvoller erst das Programm zu > schreiben und dann die Hardware danach auszurichten. Kann man machen. Insgesamt zeitsparender ist es, sich erst die Hardware zu überlegen und dabei Spielraum für Veränderungen bei der Parametrierung zu lassen. Zum Beispiel Widerstände, die genau sein müssen durch Trimm-Potis ersetzen oder Bestückoptionen zur Trimmung per Parallelschaltung lassen. Zwei Sachen würden mich noch interessieren: Wie weit bist du denn in deiner Ausbildung? Und wann soll das Netzteil denn fertig werden?
Michael M. schrieb: > Ich muss das Netzteil bauen/programmieren, weil ich ein Azubi bin und > mein Meister das will. > Frag mal deinen Meister wozu der D-Anteil gut sein soll.. und dann ist wahrscheinlich schon Schluss... Viele Grüße
>Einfacher wäre, wenn du also ein gaanz gewöhnliches Labornetzteil baust, >das seine Spannungsvorgaben vom Mikrocontroller bekommt. >Sowas gibts hier haufenweise zu finden. Gut ich such mal nach sollchen Netzteilen, Danke :) >>> - Was ist denn deine Stellgröße? >> Meine Stellgröße ist Volt, weil mein Netzteil von 0-24V regelbar sein >> muss. >Fast - das ist deine Regelgröße. Also wenn ich dich richtig verstanden habe, dann wollte ich 4 Schalter machen für +1V,-1V, +0,1V und -0,1V, oder ich steh einfach gerade neben mir^^ >Insgesamt zeitsparender ist es, sich erst die Hardware zu überlegen und >dabei Spielraum für Veränderungen bei der Parametrierung zu lassen. >Zum Beispiel Widerstände, die genau sein müssen durch Trimm-Potis >ersetzen oder Bestückoptionen zur Trimmung per Parallelschaltung lassen. Also erst ein Schaltplan machen und Bauteile raus suchen und dann programmieren, gut geht klar^^ >Wie weit bist du denn in deiner Ausbildung? Ich bin jetzt anfang 2.Lehrjahr, es wird auf Selbstlernkompetenz gesetzt, das heißt kein Frontaluntericht und das gehört auch eigentlich nicht dazu ein Netzteil über einen Mikrocontroller zu steuern, ich hab nur gefragt ob ichs mal versuchen kann und jetzt darf ich nicht mehr normalbauen... >Und wann soll das Netzteil denn fertig werden? So bald als möglich, aber spätestens in 2 Jahren xD Bin aber auch nicht so oft mehr am rumwerkeln daran weil ich jetzt in den Betrieb gehe. Dort wollt ich dann, wenn ich lw habe, weiter dran arbeiten also an der Planung.
Michael M. schrieb: >>>> - Was ist denn deine Stellgröße? >>> Meine Stellgröße ist Volt, weil mein Netzteil von 0-24V regelbar sein >>> muss. >>Fast - das ist deine Regelgröße. > Also wenn ich dich richtig verstanden habe, dann wollte ich 4 Schalter > machen für +1V,-1V, +0,1V und -0,1V, oder ich steh einfach gerade neben > mir^^ Äh, nein. Du willst natürlich ein Poti haben, an dem du die Ausgangsspannung einstellst. Und zwar von 0 bis 24V. >>Insgesamt zeitsparender ist es, sich erst die Hardware zu überlegen und >>dabei Spielraum für Veränderungen bei der Parametrierung zu lassen. >>Zum Beispiel Widerstände, die genau sein müssen durch Trimm-Potis >>ersetzen oder Bestückoptionen zur Trimmung per Parallelschaltung lassen. > Also erst ein Schaltplan machen und Bauteile raus suchen und dann > programmieren, gut geht klar^^ Jain. Das Problem: Wie dimensionierst bzw. stellst du denn deine Hardware zusammen, wenn du nicht weißt, wie du sie programmieren willst. > gesetzt, das heißt kein Frontaluntericht und das gehört auch eigentlich > nicht dazu ein Netzteil über einen Mikrocontroller zu steuern, ich hab > nur gefragt ob ichs mal versuchen kann und jetzt darf ich nicht mehr > normalbauen... Ok. Du hast dich also selber in die Nesseln gesetzt. Die Sache ist die: Ein Netzteil zu bauen, bei dem ein µC die Ausgangsspannung nachregelt, das ist schon sehr sportlich. Da sollte man gut programmieren können. Denn das Problem ist: Damit das Netzteil auch das tut was es soll, nämlich die Ausgangsspannung konstant zu halten, muss de Regelkreis gut funktionieren und schnell sein! Mit einem µC ist das gar nicht so einfach. Wenn das aber konventionell ein analoger Regelkreis macht, dann ist das zwar für ihn kein Kinderspiel aber er macht das deutlich besser als dein µC. Dein Problem * du bist in Elektronik noch sehr schwach * du bist mit µC noch sehr schwach * du kannst nicht programmieren -> du übernimmst dich gerade Deine beste Option ist es tatsächlich, ein Netzteil zu bauen, bei dem eine Analogschaltung die Regelung macht und der µC die Oberaufsicht hat. D.h. der sagt der Analogschaltung wo es lang geht, kümmert sich um Anzeigen, etc.
Das ist mir bewust das ich mich damit übernehme... Wieso soll ich ein Poti nehmen und nicht die Schalter?
Mit dem Poti kannst Du "stufenlos" (wenn man die Auflösung des ADCs vernachlässigt) Deinen Sollwert einstellen. Diese eingestellte Spannung wird dann über den ADC des uC eingelesen. Gleichzeitig liest er auch die Ausgangsspannung Deines kleinen Netzteiles ein. Die Regelung vergleicht nun Soll- und ist Wert und berechnet das nötige Tastverhältnis der PWM-Stufe. (Wenn Du es über PWM machst, kannst Du entweder die Spannung glätten und so relativ leicht eine Gleichspannung einstellen, oder Du verwendest das prinzip des Schaltreglers und kannst damit direkt Deinen MOSFET ansteuern). Der neue PWM-Wert wird eingestellt und das ganze beginnt von vorne. (nur mal grob) Halte das ganze aber auch total übertrieben für einen Neuling. Wie lange hast Du dafür Zeit? Grüße N.Müller
Also ich würde dir empfehlen erst mal sowas wie ein Blockschaltbild zu machen. Das Kannst du hier posten, damit hat man erst mal eine Diskussionsgrundlage. Dein Problem scheint zu sein, dass du zu sehr auf das fertige Teil fixiert bist. Denk dran, der weg ist das Ziel.
>Wie lange hast Du dafür Zeit? wie ich oben schon sagte, so bald als möglich aber max 2 jahre also bis zum Ende der Ausbildung... >Mit dem Poti kannst Du "stufenlos" deinen Sollwert einstellen. Das brauch ich ja nicht, ich kann das schon in Stufen machen und das müsste doch eigentlich auch möglich sein oder? Und außerdem in 100mV Stufen ist eigentlich schon gut, finde ich zumindest^^
Hier ein etwas älterer Thread Beitrag "Digital-Netzteil" Ziel war es wohl damals, Karl Heinz Buchegger schrieb: > ein Netzteil zu bauen, bei dem > eine Analogschaltung die Regelung macht und der µC die Oberaufsicht hat. Um die Mikrocontroller-Steuereinheit musst du dich natürlich noch selbst kümmern. Es reicht aber im Großen und Ganzen in etwa das, was du vorgeschlagen hast: Michael M. schrieb: > dann wollte ich 4 Schalter > machen für +1V,-1V, +0,1V und -0,1V Mach dasselbe nochmal für die Strombegrenzung(können nachher auch zwei kleine Prozessoren im Netzteil drin sein, die jeweils einmal ihre vier Tasten haben und je ein (Siebensegment- oder LCD-)Display ansteuern). Vielleicht noch je eine Taste zum Soll- und Istwert umschalten(Falls nötig) und ein dicker Schalter zum Ausgang abschalten. Das wärs. mfg mf PS: Googel mal nach "R2R DAC", dann weißt du auch, wie man einen Mikrocontroller auf einfache Weise Analoge Werte ausgeben lässt. Den Rest Findest du im AVR-Tutorial oder im AVR-GCC-Tutorial .
Hallo! PID auf AVR ist ein Standard-Problem und es gibt ein Application Note dazu (und fertigen Code!) AVR221
Michael M. schrieb: >>Mit dem Poti kannst Du "stufenlos" deinen Sollwert einstellen. > Das brauch ich ja nicht, ich kann das schon in Stufen machen und das > müsste doch eigentlich auch möglich sein oder? Und außerdem in 100mV > Stufen ist eigentlich schon gut, finde ich zumindest^^ Ich glaub ich hab dich missverstanden. Ich dachte, du willst 4 fixe Spannungen haben. Dabei willst du 4 Taster haben, mit denen du die Spannung erhöhen bzw. erniedrigen kannst. Ja, klar geht das. Wie der µC die Sollspannung bekommt, ob mit Poti oder mittels +/- Tasten, ist ja nur eine Sache des µC. Mit dem eigentlichen Knackpunkt, nämlich der Spannungs bzw. Stromregelung hat das ja nichts zu tun. Auch Drehencoder werden für sowas gerne genommen. Für jemanden, der gerade erst anfängt zu programmieren würde ich allerdings tatsächlich Tasten nehmen. Das ist schon schwer genug.
Michael M. schrieb: > wie ich oben schon sagte, so bald als möglich aber max 2 jahre also bis > zum Ende der Ausbildung... Das ist doch noch ne ganze Menge. Ich würde dir folgendes vorschlagen. 1. Du baust ein normales analog geregeltes Labornetzteil mit Poti (Allerdings nur die Schaltung noch nicht das Gehäuse und Frontplatte). 2. Sobald die Schaltung soweit funktioniert, gehst du daran die Potis für Spannungs und Stromregelung durch 2 D/A Kanäle zu ersetzen. Das heisst die gewünschte Spannung kommt nicht von der Potistellung sondern wird über den µC vorgegeben. Was du jetzt als Eingabe zum Einstellen dieser (Wunsch) Sollspannung/Strom nimmst ist egal, du könntest Taster nehmen, Potis, die du über den A/D Wandler auswertest oder am elegantesten Incrementaldrehgaber. 3. Die Anzeige von Strom und Spannung übernimmt ebenfalls der µC, dazu nimmst du ein schönes 2 oder 4 zeiliges LC Display. Wichtig ist das du dein Projekt in Unterprojekte aufteilst die dich nicht überfordern, also in deinem Fall erst mal ein Netzteil das funktioniert und erst dann die digitale Steuerung. bei Detailfragen postest du hier, wenn du dein Problem ordentlich beschreibst kriegst du hier auf jeden Fall kompetente Antworten. Viel Erfolg
Ach ja, mir fällt gerade ein Projekt aus meiner Ausbildungszeit ein. Wir haben damals ein Bleiakkuladegerät gebaut (allerdings nicht mit uC). Einstellbar waren 3 Werte für Erhaltungsladung bzw. für Blei-Gel und normale Blei-Säure Akkus. Ausgewählt wurde über einen Schalter der intern einen Spannungsteiler auf den Feedbackpin des SG3524 schaltete. Wäre theoretisch auf jede belibige Spannung umsetzbar. Im wesentlichen war das ein Ringkerntrafo, Brückengleichrichter, großer Glättungselko, MOSFET (glaube IRFZ44N), SG3524 (für die Regelung und PWM), analoge Anzeigen und etwas Hühnerfutter. Bei 14,2V bringt das Ding immernoch gute 10-12A. EMV technisch allerdings die reine Seuche (schon gemessen). Heutzutage gibt es da auch sehr gute fertige Schaltregler wie z.B. von Linear, Analog oder Infineon. Vorteil eines fertigen Schaltreglerbausteins wäre die einfachere Umsetzung (gerade bei minimalen Programmierkenntnissen) und der bei weitem bessere Wirkungsgrad im Vergleich eines selbst gebauten Linearreglers. Ein gutes Netzteil zu bauen ist durchaus der Inhalt einer ganzen Diplomarbeit bzw. die arbeit eines ganzen Entwicklungsteams. Grüße N.Müller
Ich danke euch schonmal für die Hilfreichen tipps :) aber jetzt ist ersteinmal Wochenende :D Werde mir aber trotzdem schonmal gedanken machen in eine sinnvolle einteilung der Aufgaben. Wünsch euch allen ein schönes Wochenende :) (ich muss das Netzteil wärend der arbeitszeit bauen darum...)
Die Frage ist halt: Was möchtest du? A: Programmieren lernen (Einlesen von Poti über AD-Wandler bzw Soll-Vorgabe über Tasten und Ausgabe über LCD Anzeige ,zB Standard LCD mit HD44780 oder B: Einen echten PID-Algorithmus programmieren und im Detail verstehen. Hui! Ich würde das folgendermaßen machen: 1. Besorg dir nen einfachen Schaltplan für ein Netzteil aus dem Internet (sollte tonnenweise zu finden sein) oder zB. aus ner Zeitschrift wie Elektor. Ganz einfach ginge es zB mit einem dicken LM317, der Regler sollte wohl im TO-3 Gehäuse 3 Ampere können. 2. Baue auf einem Steckbrett nen AVR auf (alternativ: Arduino), nimm LED ("Hallo, Welt!"), Taster, Poti, ein LCD-Display mit HD44780-kompatiblen Controller und einen DA-Wandler (die Schwierigkeitsstufe steigt in der Reihenfolge der anzusteuernden, hier aufgezählten Bauteile). Die DA-Wandlung zur Steuerung (keine Regelung!) der Spannung könnte man über PWM generieren (schlechte Wahl hier), einem R2R Netzwerk an den Portausgängen oder einem DA-Wandler, zB MCP4922. Jener hat 12-Bit Auflösung, damit kannst du 30V in 4096 Teilschritten auflösen. Sollte alles in allem für kleines Geld zu bezahlen sein. 3. Wenn bei 2. alles funktioniert so wie du es haben willst, mußt du die Ausgangsspannung des DA-Wandlers mit dem Regeleingang des LM317 verheiraten. Das ist, ähnlich wie in der nicht-technischen Welt, nicht ganz einfach, der LM317 erwartet am Eingang nämlich einen Konstantstrom über einem einstellbaren Spannungsabfall an einem Stellwiderstand, du aber liefert ihm "nur" eine Spannung, d.h. man muß das Signal noch ein wenig mit einem OP aufbereiten (Spg.-Strom-Umsetzung). Ist aber nicht arg wild, wenn du das Vorherige hinbekommen hast, dann klappt das auch. Irgendwo hab' ich dafür sogar noch n Schaltplan rumliegen. 4. Wenn dein komfortabler Gesamtaufbau nun über Tipptasten funktioniert, du ordentlich Programmiererfahrung gewonnen und noch nicht alles in die Ecke geschmissen hast, kannst du dich an das Filetstück heranwagen: Eine echte PID-Regelung mit einstellbarer Proportional-, Integral- und Derivativkonstante über Potis, Errechnung des Korrekturwertes und anschließender Ausgabe, entweder über PWM oder DA-Wandler an einen Leistungstransistor.
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.