mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM-Leistungsregelung NICHT LINEAR!


Autor: Martin 567 (martink11)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo C-Freunde und Elektroniker-Kollegen,

als erstes: ich möchte mir ein Schaltnetzteil bauen
das ganze besteht aus 2 seperaten Schaltstufen.

------------------------------------------------
1. Stufe:  PWM-Regelung:

Hier wird die Versorgungs-Spannung (ca. 40V aus Trafo) nur grob 
herabgeregelt, um in der folgenden Stufe keine zu großen 
Verlustleistungen zu bekommen.
Controller: AT90Can128 mit PWM, Sprache: C

------------------------------------------------

2. Stufe:  Netzteilstufe mit OPs

hier befindet sich eine Analoge OP-Regelschaltung, die von 2 DACs per 
Controller die SOLL-Werte für SOLL-Spannung und SOLL-Strombegrenzung 
vorgegeben bekommt.
------------------------------------------------

Die Spannung am Ausgang der PWM-Stufe soll immer um 3V höher sein als 
der vorgegebene Sollwert an der Ausgangsklemme.
also z.B. wenn ich 5V haben möchte soll die PWM auf 8V hinregeln.
Soweit funktioniert auch alles bereits, aber ich glaube dass mein PWM 
nicht linear läuft, d.h. in den kleinen Leistungsbereichen, spinnt die 
PWM Regelung, weil ich in meiner Software davon ausgehe, dass ein 
PWM-Step (40V:256=0,156V) entspricht. Das ist scheinbar nicht so.
vergleich = (spannung+3) - upwm; 

//***************PWM-Regelung**************
{
vergleich = vergleich / 0,156;
vergleich = vergleich / 2;

if( vergleich > 0.0 )  //Runden wenn vergleich = positiv
differenz = vergleich + 0.5;

if( vergleich < 0.0 )  //Runden wenn vergleich = negativ
differenz = vergleich - 0.5;

pwm_wert = pwm_wert - differenz;    //PWM-Spannung vergrößern

if(pwm_wert<0)
{pwm_wert=0;}

if(pwm_wert>254)
{pwm_wert=254;}

  //# ACHTUNG: PWM-Signal wird auf Platine INVERTIERT! #
    
OCR0A = pwm_wert;      //PWM-Wert von 0-255

Solche Probleme haben doch bestimmt mehrere, ich würde das Problem gerne 
softwaretechnisch lösen. Gibt es da Möglichkeiten?????

bin dankbar für jede Antwort und hilfestellung!!!!

Martin!!!

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dir ist klar, dass die PWM-Regelung von der Verlustleistung keinen 
Vorteil gegenüber einer linearen hat?
Statt dem Längs-Transistor wird halt der Elko und die Drähte heiss...
=> Induktivität mit einbauen, Diode dazu, und Step-Down Drosselwandler 
bauen.

ausserdem ist
vergleich = vergleich / 0,156;
eine Division durch Null, vermutlich ein Tippfehler.

Autor: Martin 567 (martink11)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich seh da schon einen Vorteil, da ja der längstransistor in der 
netzteilstufe nicht soviel verbraten muss.

ich habe ja eine Drossel mit diode drin.
hier ein schematischer plan der PWM-STUFE: :)
                                                               >>>>>>>>>>>
+40V              IRF 9530              Drossel 91µH/4A 
Analog-Stufe
O------------------S   D --------------------|==|----------------------O
          |        -----                 |                       |
          |          |G                  |                       |
          |          |                 -----                     |
         ===         |                  / \                     ===
         _        pwm-signal          --- Diode SB560         _
     120µF|         von BS170            |                       |240µF
          |                              |                       |
          |                              |                       |
O----------------------------------------------------------------------O
GND


so ist der Grundaufbau der PWM-STUFE, und wenn ich das linear regeln 
könnte wäre mein Problem gelöst, aber es sind nicht 0.156V pro Step.

Autor: Martin 567 (martink11)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich seh da schon einen Vorteil, da ja der längstransistor in der
netzteilstufe nicht soviel verbraten muss.

ich habe ja eine Drossel mit diode drin.
hier ein schematischer plan der PWM-STUFE: :)
                                                               >>>>>>>>>>>
+40V              IRF 9530              Drossel 91µH/4A
Analog-Stufe
O------------------S   D --------------------|==|----------------------O
          |        -----                 |                       |
          |          |G                  |                       |
          |          |                 -----                     |
         ===         |                  / \                     ===
         ---        pwm-signal          --- Diode SB560         ---
     120µF|         von BS170            |                       |240µF
          |                              |                       |
          |                              |                       |
O----------------------------------------------------------------------O
GND


so ist der Grundaufbau der PWM-STUFE, und wenn ich das linear regeln
könnte wäre mein Problem gelöst, aber es sind nicht 0.156V pro Step.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Du hast zwar keine PWM-Frequenz und keinen Strom genannt, aber ich würde 
erst mal behaupten das deine Filterung 91µH/240µF nicht ausreichend ist.

MfG Spess

Autor: Jörg Rehrmann (Firma: Rehrmann Elektronik) (j_r)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin 567 schrieb:

> Die Spannung am Ausgang der PWM-Stufe soll immer um 3V höher sein als
> der vorgegebene Sollwert an der Ausgangsklemme.
> also z.B. wenn ich 5V haben möchte soll die PWM auf 8V hinregeln.
> Soweit funktioniert auch alles bereits, aber ich glaube dass mein PWM
> nicht linear läuft, d.h. in den kleinen Leistungsbereichen, spinnt die
> PWM Regelung, weil ich in meiner Software davon ausgehe, dass ein
> PWM-Step (40V:256=0,156V) entspricht. Das ist scheinbar nicht so.

Linearität ist nur gegeben, solange der Drosselstrom nicht lückt. 
Lückenlosen Drosselstrom in allen Betriebslagen erreicht man nur mit 
einer Push-Pull-Schaltstufe. Du arbeitest aber nur mit einem 
High-Side-Schalter, d.h. bei Unterschreitung einer Mindestlast beginnt 
der Drosselstrom gegen Ende der Sperrphase abzureisen. In dieser 
Betriebsart ist die tatsächliche Ausgangsspannung immer mehr oder 
weniger deutlich höher als dies nach dem eingestellten PWM-Wert zu 
erwarten wäre. Im Leerlauf steigt die Ausgangsspannung sogar bis auf den 
Wert der Eingangsspannung an, unabhängig vom vorgegebenen PWM-Wert. Das 
ist aber nicht so schlimm, weil die Spannung wieder den vorgegebenen 
Wert annimmt, sobald sie ausreichend belastet wird und bei geringer 
Belastung ist die Verlustleistung im Linearregler ohnehin nicht so groß.
Evtl. mußt Du eine größere Drossel nehmen, damit sich die vorgegebene 
Ausgangsspannung bereits bei geringerer Last einstellt.

Jörg

Autor: Martin 567 (martink11)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die PwmFrequenz ist 20khz
und der maximal strom der fließen sollte wären max. 4A

das ganze problem hab ich ja nur wenn ich mit sehr kleinen Strömen 
arbeite wie z.B. von 50mA-700mA

es funktioniert ja mit kleinen Spannungen (1-10V) ab strömen ab ca. 1A 
oder
immer mit großen Spannungen (z.B. ab 18V)

nur bei geringer Leistung fängt mir die PWM-Stufe zu schwingen an, und 
ich vermute eben dass der Spannungsanstieg am ausgang der pwmstufe 
irgendwie logarithmisch oder sowas geht, sie steigt zuerst sehr steil an 
(pro step um ca. 3V) und nach 10Steps nimmt der anstieg sehr stark ab 
(ca. 0,5V pro step)

das muss man doch umgehen können!!??

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> das muss man doch umgehen können!!??
Du mußt erst mal erkennen, dass du keine "PWM-Stufe" gebaut hast, 
sondern einen ordinären Abwärts-Schaltregler. Bei diesem geht es in 
erster Linie um den Strom, der in die SPule eingespeichert und 
ausgelagert wird. Als Abfallprodukt stellt sich dann am Ausgangs-C 
irgendeine Spannung ein.
Wenn dir das mal klar ist, dann kannst du dir die Literatur und die 
Regelschleifen zu diesem Thema ansehen...

Übrigens:
20kHz und 91uH passen für einen Schaltregler irgendwie nicht zusammen. 
Wie bist du auf diese Werte gekommen?

Autor: Martin 567 (martink11)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo jörg

deine erklärung trifft fast ganz genau zu, da es in kleinen 
Leistungsbereichen auch zu schwingen beginnt.

ich werde mal das mit der drossel versuchen,
aber wie kann ich so einen Push-Pull-schaltstufe aufbauen.

danke dir!!!

Autor: Martin 567 (martink11)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo lothar

dazu muss sagen ich habe das nicht allein aufgebaut, mir hat dabei ein 
elektroniker-kollege geholfen, ich wäre eigentlich hauptsächlich für die 
Software zuständig, aber wie er auf diese werte kam weis ich auch nicht.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin 567 schrieb:

> dazu muss sagen ich habe das nicht allein aufgebaut, mir hat dabei ein
> elektroniker-kollege geholfen, ich wäre eigentlich hauptsächlich für die
> Software zuständig, aber wie er auf diese werte kam weis ich auch nicht.

Zumindest hat dein Kollege dann schon meinen Ratschlag aus der ersten 
Antwort vorrauseilend berücksichtigt ;)

Nächster Ratschlag:
Den AVR weglassen und durch einen OpAmp (oder Schaltregler-IC + OpAmp) 
ersetzen.

Ach ja: Hilfe zu Berechnung Spule/Frequenz etc gibts hier:
http://schmidt-walter.eit.h-da.de/smps/smps.html

Autor: Jörg Rehrmann (Firma: Rehrmann Elektronik) (j_r)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin 567 schrieb:

> ich werde mal das mit der drossel versuchen,
> aber wie kann ich so einen Push-Pull-schaltstufe aufbauen.

Schau mal hier:
http://www.joretronik.de/Web_NT_Buch/Kap6/Kapitel6.html
In Bild 6.1K findest Du ein Beispiel. Die Diode wird durch einen zweiten 
Leistungsschalter ersetzt, der bis auf eine kurze Totzeit genau im 
Gegentakt zum "Hauptschalter" eingeschaltet wird. Dadurch wird eine 
definierte PWM-Rechteckspannung erzeugt, deren arithmetischer Mittelwert 
( =Ausgangsspannung am Elko) lastunabhängig proportional zum 
Tastverhältnis ist.

Jörg

Autor: Martin 567 (martink11)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat jemand eine Idee wie ich von meiner Leistung auf PWM-STEPS umrechnen 
kann.
Da müsste man doch eine Formel aufstellen können mit:
U     = Spannung
I     = Strom
P     = Leistung
STEPS = PWM-Schritte

eben so dass ich mir die Schritte jedes mal neu berechnen kann, dann 
glaub i hauts hin.

hmm.. mir will nix einfalln

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könntest du etwas klar stellen:

Hast du eine echte Regelung oder ist das ein Steller?

Du benutzt zwar immer den Begriff 'Regelung', deie Beschreibung der 
Details hört sich aber eher nach einem Stellglied an.

Regelung: Du misst am Ausgang der ersten Stufe die Spannung und stellst 
den PWM Parameter so nach, dass sich die gewünschte Ausgangsspannung 
ergibt.
Soweit wäre das ok. Nur: Wozu brauchst du dann die Formel, die du so 
verzweifelt suchst. Die Regelung gleicht von sich aus, nur durch die 
Abweichung zur Vorgabe eine Regelabweichung aus.

Daher denke ich, dass du eigentlich ein Stellglied hast: Du gehst davon 
aus, dass du durch eine Formel mit Eingangswerten die PWM Parameter 
berechnen kannst und dann auch tatsächlich diese Spannung am Ausgang 
erzeugt wird.

Autor: Martin 567 (martink11)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also es ist schon eine Regelung:

zuerst habe ich immer die differenz zwischen PWM-Spannung und 
SOLL-Spannung berechnet (und in der Strombegrenzung gewechselt auf 
PWM-Spannung und IST-Spannung)

aus dieser differenz hab ich dann den PWM-wert errechnet, was aber 
anscheinend nicht geht, da ich davon ausgegangen bin, dass jeder Step 
die selbe spannungsänderung zur folge hat.

deswegen möchte ich es jetzt leistungsabhängig machen, ich benutze also 
den gemessenen Strom, den ich am ausgang erhalte und möchte dann so die 
PWM-schritte errechnen.

Autor: Stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist denn die "PWM-Spannung"? Die Ausgangsspannung deines 
Schaltreglers am Ausgangskondensator?
Mal doch mal ein Bild und bezeichne die Sachen.
Zur Erinnerung: Mit ner PWM (dem was man gewöhnlich drunter versteht) 
hat das alles nichts zu tun.

Der Strom interessiert dich zunächst gar nicht. Du musst auch keine 
PWM-Schritte errechnen.
Du musst die Regelabweichung Ausgangsspannung - SOLL ermitteln und dann 
das Tastverhältnis deiner PWM anpassen.

Das kann z.B. so aussehen:
- Prüfung alle 50ms
- Spannung 1V zu niedrig
- Einschaltdauer (vorsichtig) um 1% erhöhen

Kein wirklich guter Regler, aber funktioniert erst mal.
Bei zu niedriger Spannung darfst Du die Einschaltdauer nicht zu schnell 
erhöhen, sonst gibts heftige Überschwinger, bzw. einen viel zu großen 
Drosselstrom...

Dann kannst du anfangen die Regelung schneller zu machen, Überschwinger 
zu vermeiden, bei Änderungen des SOLL-Werts sinnvolle Start-Werte zu 
verwenden (z.B. Spannungx2=Einschaltdauerx2), ...

Den Strom kennst Du eigentlich aus dem Modell der Strecke (L-C), 
Einschaltdauer und Ausgangsspannungsverlauf.

Und ganz am Ende kannst Du dann den gemessenen Strom verwenden um den 
Beobachter in deinem Regler zu verbessern. Z.B. für eine geringere 
Regelabweichung oder schnellere Reaktion.

Autor: Anja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hatte ein ähnliches Problem bei einem Netzteil mit 
Phasenanschnittsteuerung im Brückengleichrichter zur "Vor-Regelung" bzw. 
Steuerung.

Ich habe das Problem mittels Kennfeld gelöst. D.H. für 11 Werte 
Ausgangsspannung und 9 Werte Ausgangsstrom habe ich jeweils den 
nominalen Phasenanschnittwinkel (per Simulation berechnet) in einer 
Tabelle hinterlegt. Zwischen den Tabellenwerten wird dann linear 
interpoliert.
Der additive "Regler" in der Software braucht dann nur noch die 
langsamen Abweichungen der Temperatur sowie die 
Eingangsspannungsschwankungen vom Netz her auszugleichen um die 
Verlustleistung zu regeln.

Gruß Anja

Autor: Anja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja einen Erfahrungswert hätte ich noch:

Der Worst Case für so ein Netzteil ist eine Last die bei maximaler 
Ausgangsspannung relativ häufig niederohmig (Ausgangsspannung nahe 0V) 
in die Strombegrenzung hinein fährt.
In diesem Betriebszustand brauchst Du dann doch nahezu die maximale 
Verlustleistung am Linear-Transistor weil du den Elko am Ausgang des 
Schaltreglers nicht schnell genug entladen und auch wieder aufladen 
kannst.

Ist natürlich bei einem Phasenanschnittregler mit >10ms Reaktionszeit 
noch schlimmer als bei einem Schaltregler. Aber Du solltest Dir Gedanken 
über Eine mittlere Verlustleistungsregelung in diesem Betriebszustand 
machen.

Gruß Anja

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.