www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Schaltregler


Autor: Artjomka (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe einen Buck-Regler mit AVR gebaut.

Ich starte den ADC, messe Strom und Spannung (interrupt gesteuert). Nach 
einer bestimmten Anzahl an Messungen passe ich dan den Duty-Cycle an 
(nicht nach jeder Messung).

Passe ich meinen Duty-Cycle nach jeder Strom und Spannungsmessung an, so 
schwingt der Regler. Passe ich den Duty-Cycle nach jedem Timer-Overflow 
des PWM Timers an, so schwingt der Regler auch.

Geht ansonsten soweit ganz gut (ich kann ohne große Erwärmung viel 
Leistung umsetzen).
Aber die Regelung ist irgendwie Glückssache. Regele ich in der Software 
zu schnell dann schwingt sich das ganze auf (mehrere 100 mV Schwingungen 
am Ausgang). Regele ich zu langsam ist das Regelverhalten schlecht.

Problem ist denke ich mal, dass nach Änderung des PWM Duty-Cycles nicht 
sofort eine Änderung der Ausgangsspannung erfolgt (aufgrund der 
Glättungskondensatoren).

Wie baut man eine solche Regelung am besten auf?

Autor: Mandrake (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probier doch mal deine AD-Werte etwas zu filtern bevor du die Werte 
benutzt. Also eine kleine Mittelwertbildung. Dann springen deine Werte 
nicht mehr so extrem. Du bekommst bei einem Schaltregler nämlich 
ordentlich Störungen auf deine Messleitungen. Wenn du durch einen 
ungünstigen Abtastzeitpunkt dann darauf regelst ist das meist nicht so 
toll.
Ansonsten wäre noch ein Schaltbild ganz hilfreich. Vielleicht stimmt ja 
auch was an deiner Beschaltung nicht ganz.

Gruß

Mandrake

Autor: Benjamin S. (recycler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Würde dir auch Filterung vorschlagen.
Oder du änderst nicht so schnell den Ausgangswert.
Beispiel: alter wert 10, neuer Wert 100. Dann addiere nur einen Teil. zb 
max 25. Dann springt er auch nicht so. ich denke deine Regelung dürfte 
trotzdem schnell genug sein.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man erst filtert, dann hat man eine zusätzliche Verzögerung, was 
sich meist negativ auf die Regelung auswirkt (zumindest meine 
Erfahrung).
Damit die Regelung wirklich sauber funktionier sollte der ADC synchron 
zur PWM Frequenz laufen, damit man immer zum gleichen Zeitpunkt der im 
PWM Takt etwas wackelnden Spannung misst. Was auch gut funktioniert, 
zumindest eher selten zum Schwingen neigt: Eine einfache Ein/Aus 
Regelung durch Auslassen von Takten. Nicht wirklich ideal was den Ripple 
angeht, aber dafür schwingt nichts.
Meine Erfahrungen:
P Regler: Zu viel Rauschen aufgrund des Quantisierungsfehlers des ADCs 
wenn es genau sein soll.
I Regler: Je nach Last sehr gut, aber wird schnell instabil sobald die 
Last nicht ohmisch ist.
PI Regler: Quasi ein Kompromiss aus obigen beiden.
PID Regler: Teilweise auch viel Rauschen durch den ADC drauf.

Autor: Artjomka (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich vergleiche die ADC Werte und inkrementiere/dekrementiere dann 
einfach den Duty-Cycle (also nur ein billiger P-Regler).

Bei I und D Anteil wüsste ich nicht wie stark ich I und D in die 
Regelung eingehen lassen darf - das müsste man dann wieder experimentell 
ermitteln.

Was heisst ADC synchron zur PWM Frequenz? Sollte ich die ADC-Messung 
dann zum Overflow des PWM Timers oder zum Compare-Match Zeitpunkt 
anwerfen?

Eine kleine Filterung (vielleicht zwei Messungen mit 40%+fließender 
Mittelwert mit 20% eingehen lassen) wäre vielleicht nicht ganz verkehrt.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Artjomka schrieb:
> Ich vergleiche die ADC Werte und inkrementiere/dekrementiere dann
> einfach den Duty-Cycle (also nur ein billiger P-Regler).

Klingt für mich eher nach einem vereinfachten I Regler, denn der neue 
Wert ist ja alter Wert +/- irgendwas.
Das erklärt auch, warum das ganze instabil ist:
Sagen wir mal du hast als Last einen Kondensator und einen Widerstand. 
Die Spannung ist zu niedrig, der PWM Wert wird daher mehrere Takte lang 
erhöht. Passt die Spannung, wird der PWM Wert nicht mehr erhöht, aber er 
ist zu hoch: Die Spannung steigt weiterhin an. Der PWM Wert wird nun 
wieder Stufenweise kleiner gemacht. Die Spannung fällt nun wieder. Der 
PWM Wert ist nun aber zu klein, denn er wird erst wieder vergrößert wenn 
die Spannung schon zu niedrig ist.
Das ganze sind dann wunderbar konstante Schwingungen die man nie weg 
bekommt, solange man einen Energiespeicher im System hat. Da hilft dann 
nur ein PI Regler der sofort reagiert wenn eine Abweichung da ist.

> Was heisst ADC synchron zur PWM Frequenz? Sollte ich die ADC-Messung
> dann zum Overflow des PWM Timers oder zum Compare-Match Zeitpunkt
> anwerfen?

Ja, so in etwa. Neuere AVRs bieten das auch hardwaremäßig (ADTS in 
ADCSRB).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.