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


von Martink11 M. (Firma: google) (martink11) Flattr this


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.
1
vergleich = (spannung+3) - upwm; 
2
3
//***************PWM-Regelung**************
4
{
5
vergleich = vergleich / 0,156;
6
vergleich = vergleich / 2;
7
8
if( vergleich > 0.0 )  //Runden wenn vergleich = positiv
9
differenz = vergleich + 0.5;
10
11
if( vergleich < 0.0 )  //Runden wenn vergleich = negativ
12
differenz = vergleich - 0.5;
13
14
pwm_wert = pwm_wert - differenz;    //PWM-Spannung vergrößern
15
16
if(pwm_wert<0)
17
{pwm_wert=0;}
18
19
if(pwm_wert>254)
20
{pwm_wert=254;}
21
22
  //# ACHTUNG: PWM-Signal wird auf Platine INVERTIERT! #
23
    
24
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!!!

von Εrnst B. (ernst)


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
1
vergleich = vergleich / 0,156;
eine Division durch Null, vermutlich ein Tippfehler.

von Martink11 M. (Firma: google) (martink11) Flattr this


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.

von Martink11 M. (Firma: google) (martink11) Flattr this


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.

von spess53 (Gast)


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

von Jörg R. (Firma: Rehrmann Elektronik) (j_r)


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

von Martink11 M. (Firma: google) (martink11) Flattr this


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!!??

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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?

von Martink11 M. (Firma: google) (martink11) Flattr this


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!!!

von Martink11 M. (Firma: google) (martink11) Flattr this


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.

von Εrnst B. (ernst)


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

von Jörg R. (Firma: Rehrmann Elektronik) (j_r)


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

von Martink11 M. (Firma: google) (martink11) Flattr this


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

von Karl H. (kbuchegg)


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.

von Martink11 M. (Firma: google) (martink11) Flattr this


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.

von Stephan (Gast)


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.

von Anja (Gast)


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

von Anja (Gast)


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

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
Noch kein Account? Hier anmelden.