Ich habe mir heute/gestern ein kleines Modul mit den ATtiny15 zusammengelötet http://lupin.shizzle.it/images/modul.jpg http://lupin.shizzle.it/images/leuchtet2.jpg Dabei handelt es sich um einen Aufwärtswandler mit FET (sitzt unter den dicken blauen ausgangs-C), chip spule, diode und einen 4,7µF C am Ausgang. Die Spannung soll auf irgendwas um die 170 bis 180 volt geregelt werden. Nach ein bischen Rumprobieren konnte ich dem Modul ungefähr 1,6mA bei 150 Volt entlocken. Leider nur grob geschätzt (dank schlechten Messgeräten). Soweit so gut, eigentlich eine leichte Aufgabe dachte ich. Einfach, wenn die Spannung einbricht den duty cycle erhöhen um mehr Energie zu pumpen, wenn die Spannung zu hoch wird wieder Energie weg nehmen. Leider spielt da aber der Kondensator mit rein. Die Regelung pumpt beim Einschalten ohne Last ordentlich und lädt den Kondensator zu hoch auf (overshoot) dann nimmt sie wieder zuviel weg und schwingt dann eine ganze weile hin und her. Wenn man glück hat hört das irgendwann auf :) Also ganz schön scheisse das ganze. Wenn man eine Last ran hängt (und dazu reicht schon mein ultra billig Multimeter im Hochvolt-Modus) dann bricht die Spannung tief ein geht wieder hoch und es kommt erneut zum overhoot. Nimmt man das Multimeter weg geht die Spannung sehr schnell nach oben dann wieder zu weit nach unten. Jetzt sollte jeden klar sein wovon ich rede - die Regelung ist einfach nur mist! Also wie macht man sowas normalerweise? Was für techniken gibt es damit ich schnell regeln kann aber trotzdem nicht übers Ziel hinaus schieße oder gar drunter?
ach im Anhang ist der code den ich bisher benutze, ganz vergessen zu erwähnen :)
Nochmal allgemein zu Schaltreglern: Wenn die Eingangsspannung kleiner wird dann fließt in der gleichen zeit ja weniger Strom in die Spule also muss ich den duty cycle erhöhen, bis jetzt ist der maximale duty cycle fest im Programm - wie find ich am besten raus wie lang der für Eingangsspannung X sein darf? Oder messe ich über einen Shunt am Drain des FETs wieviel Strom in die Spule fließt? Mit dem tiny wär das ja dank integrierten Verstärker kein riesen Problem.
So wie ich das sehe hast Du einen I-Regler programmiert, der meist instabil ist. Versuch's mal mit einem PI- oder PID-Regler http://de.wikipedia.org/wiki/Regelungstechnik http://de.wikipedia.org/wiki/Regelung_%28Regelungstechnik%29 http://de.wikipedia.org/wiki/Regelkreis http://de.wikipedia.org/wiki/Regler
okay und wo bekommt man als Dummie sowas etwas verständlicher erklärt? Da steht irgendwas von aufsummieren - ich glaube da würde ich Überlaufprobleme bekommen (oder wird die Summe irgendwann wieder auf 0 gesetzt)?
Es geht im Grunde immer um die Auswertung der Differenz von Sollwert und Istwert P: Der Propertionalanteil Du nimmst die Differenz und multiplizierst sie mit einem Faktor. Das Ergebnis ist die neue Stellgröße I: Der Integralanteil Du summierst ständig die Differenzen auf. Die Summe wird mit einem konstanten Faktor multipliziert und bildet die neue Stellgröße D: Der Differentialanteil Du bildest die Differenz von der jetzigen Regelabweichung zur Regelabweichung im Schritt davor. Diese Differenz wird wieder mit einem konstanten Faktor multipliziert und bildet die neue Stellgröße Für einen PI Regler kombinierst die einen P und einen I Regler. Die Stellgröße ist also die Summe aus P Anteil und I Anteil Sei zb. d die Differenz aus Sollwert und Istwert, dann berechnet sich die Stellgröße zu:
1 | dSum = dSum + d; // Aufsummieren (Integrieren) des I Anteils |
2 | Stell = ( Kp * d ) + // der P Regler |
3 | ( Ki * dSum ); // der I Regler |
Die Kunst besteht in der Bestimmung der Kp und Ki. Das sind die konstanten Faktoren. http://www.roboternetz.de/wissen/index.php/Regelungstechnik#Digitaler_Regler > Da steht irgendwas von aufsummieren - ich glaube da würde ich > Überlaufprobleme bekommen (oder wird die Summe irgendwann wieder auf 0 > gesetzt)? Die Summe pendelt sich beim I Anteil auf 0 ein. Die Differenz zwischen Soll und Istwert wechselt ja beim Überschwingen das Vorzeichen.
hab ich jetzt noch nie selbst probiert, aber wär mal ein interessanter versuche einen motor mit einem rheinen I-Regler zu betreiben... kurz als anmerkung: wenn du die reglerkoefinzienten des P und des I anteils bestimmst, musst du dies unter last machen, es ist extrem schwirige einen motor ohne jegliche last GENAU zu regeln... ziel beim einstellen des reglers ist, das ist- und sollwert möglichst gleichaussehen...
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.