RoboterNetz.de Foren-‹bersicht               
 RN-Wissen Home  -  Community Home  -  Alle Artikel -  Mitglieder -  Moderatoren  -  Bilderliste  -  Letzte √Ąnderungen
 Kategorien  -  Beliebte Seiten  -  Sackgassenartikel  -  Artikel ohne Kategorie  -  Neue Artikel  -  Anmelden

Pulsweitenmodulation

aus RN-Wissen, der freien Wissensdatenbank

(Weitergeleitet von Pwm)

Die Pulsweitenmodulation (oft mit PWM abgek√ľrzt) wird vornehmlich zum Ansteuern gr√∂√üerer Lasten wie z.B. Motoren verwendet. Microcontroller haben daher oft bereits spezielle PWM-Ausg√§nge integriert. Bei der Pulsweitenmodulation werden Impulse mit voller Spannung aber variabler Breite an die Last gesendet. Ein Rechtecksignal mit konstanter Frequenz wird also mit einem bestimmten Tastverh√§ltnis moduliert. Eine PWM ist also charakterisiert durch ihre Frequenz und ihr Tastverh√§ltnis (duty cycle).

Vorteil dieser Ansteuerung ist, dass weniger Leistung verbraucht wird, da nicht permanent eine Eingangsspannung anliegt, die von einer Elektronik auf die gew√ľnschte Motorspannung heruntergeregelt wird, sondern der Motor durch die Breite der Schaltimpulse gesteuert wird.

pwm.gif

Diese drei Skizzen demonstrieren, wie ein Motor mit unterschiedlicher Pulsweite in drei verschiedenen Geschwindigkeit geregelt wird. In der Praxis ist die Pulsweite oft in 255 Schritten (8 Bit) und mehr regelbar. Gut zu erkennen ist in der Skizze, dass die eigentliche Grundfrequenz bei der Pulsweitenmodulation nicht verändert wird, sondern lediglich das Verhältnis der Ein- und Ausschaltzeit pro Welle (Ton und Toff). Die Modulationsfrequenz kann dabei variieren. Oft findet man Anwendungen im Frequenzbereich zwischen mehreren hundert Hertz (z.B. Bremslichter bei Autos) bis in den Bereich von 100 kHz (Schaltregler).

Durch die Pulsweitenmodulation ist es möglich, dass auch Verbraucher mit niedrigeren Nennspannungen an weit höheren Spannungen betrieben werden können. Dadurch, dass man die Pulsweite reduziert, reduziert man die im Mittel am Verbraucher anliegende Spannung bzw. den durch den Verbraucher fliessenden Strom bzw. die vom Verbraucher aufgenommene Leistung. Jedoch kann nicht bei allen Verbrauchern PWM angewandt werden. Dazu muss der Verbraucher eine gewisse Trägheit besitzen und die PWM eine hinreichend hohe Frequenz haben. Eine Leuchtdiode kann durchaus durch Spannungsspitzen oberhalb ihrer Nennspannung zerstört werden.

F√ľr die Durchschnittsspannung gilt

\overline{U_\mathrm{pwm}}     = U_\mathrm{in} \cdot \frac{t_\mathrm{on}}{t_\mathrm{on}+t_\mathrm{off}}     = U_\mathrm{in}\cdot t_\mathrm{on} \cdot f_\mathrm{pwm}

Zu beachten ist, dass es sich hierbei um die mittlere Spannung am Verbraucher handelt. Diese ist nicht unbedingt ausschlaggebend f√ľr dessen Leistungsaufnahmen!

Der große Vorteil einer PWM ist, dass die "herabgesetzte" Spannung nicht wie bei herkömmlichen Regelungen am Transistor oder einem Widerstand in Wärme umgesetzt wird. Aber auch in einer PWM-geregelten Schaltung entstehen Verlustleistungen durch die endlichen Widerstände der Schaltelemente wie (Feldeffekt-)Transistoren. Diese Verlustleistung setzt sich aus den Verlusten am on-Widerstand des Schalters und den Umschaltverlusten zusammen. Die Umschaltverluste sind in erster Näherung proportional zur Schaltfrequenz und der Zeit tswitch, die benötigt wird, um zwischen An- und Auszustand umzuschalten. Als Näherung:

P_\mathrm{Verl} \approx t_\mathrm{switch} \cdot f_\mathrm{pwm} \cdot U \cdot I + \overline{I^2} \cdot R_\mathrm{on}

Dar√ľber hinaus tr√§gt eine evtl. ben√∂tigte Freilaufdiode ebenfalls zu den Verlusten bei.

Inhaltsverzeichnis

PWM und induktive Last

Beispielschaltungen, die PWM nutzen, findet man unter Getriebemotoren Ansteuerung. Auch bei Schrittmotoren macht man sich diese Technik bei modernen Schaltkreisen und Steuerungen zunutze. Hier bezeichnet man sie oft auch als Chopper-Regelung, was letztlich aber sehr √§hnlich ist. Induktive Lasten sind vor allem Motoren und Elektromagneten. Teilweise werden auch zus√§tzliche Induktivit√§ten vor eine Last (z.B. LED, L√ľfter) geschaltet. Die Schaltung ist dann √§hnlich einem vereinfachten Schaltnetzteil.

Bei induktiven Lasten wie einem Motor ist zus√§tzlich darauf zu achten, dass w√§hrend der off-Zeit der Strom durch die Last weiterflie√üen kann. Dazu wird der Last eine so genannte Freilaufdiode parallel geschaltet. Ohne eine Freilaufdiode w√ľrden beim Abschalten Spannungsspitzen durch die Induktionsspannung entstehen, die zus√§tzlich Probleme bereiten und die Schaltung sogar sch√§digen k√∂nnen.

Durch die Induktivit√§t kann sich der Strom nicht sofort √§ndern, sondern steigt in der Anphase an und f√§llt in der Ausphase wieder ab. Der Strom in der Ausphase flie√üt √ľber die Freilaufdiode. Dadurch wird der mittlere Strom durch die Last gr√∂√üer als der mittlere Strom der aus der Spannungsquelle entnommen wird. Wenn die PWM-Frequenz gen√ľgend hoch ist, f√§llt der Strom dabei nicht wieder auf Null. In diesem Fall mu√ü man auf die Geschwindigkeit der Freilaufdiode achten. Oft benutzt man daher Schottkydioden, die auch eine niedrige Flussspannung haben.

Wenn die Frequenz hinreichend hoch ist, schwankt der Strom nur gering um den mittleren Strom. Der mittlere Strom wird dabei näherungsweise von der mittleren Spannung bestimmt.

Beispiel
Wenn die Spannung Uin = 12V und die Pulsweite genau 50% betr√§gt, so bedeutet das, dass der Motor nur f√ľr die halbe Zeit mit der Spannung versorgt wird. Dies w√§re vergleichbar mit dem Fall, dass der Motor f√ľr die volle Zeit mit einer kontinuierlichen Gleichspannung von 6V betrieben w√ľrde.

PWM und ohmsche Last

M√∂chte man einen ohmschen Verbraucher an einer h√∂heren Spannung als seiner Nennspannung betreiben, dann ist das √ľber eine PWM m√∂glich, wenn der Verbraucher hinreichend tr√§ge ist im Vergleich zur PWM-Periode. Die ist etwa f√ľr Gl√ľh- oder Heizf√§den der Fall.

Bei ohmscher Last wird man also wie bei induktiver Last (Motor) die Leistung so einstellen wollen, wie sie bei Nennspannung auftritt. F√ľr die PWM-Spannung bedeutet dies, dass ihr Effektivwert gerade der Nennspannung des Verbrauchers entsprechen soll. Daher muss gelten:

t_\mathrm{on} \cdot (U_\mathrm{in}-U_\mathrm{Tr})^2   \,=\, (t_\mathrm{on}+t_\mathrm{off}) \cdot U_\mathrm{eff}^2

Dabei bezeichnet UTr die Spannung, die am Transistor abf√§llt. Damit gilt f√ľr das Tastverh√§ltnis (duty cycle) der PWM:

\mathrm{duty}    \,=\, \frac{t_\mathrm{on}}{t_\mathrm{on}+t_\mathrm{off}}    \,=\, \left(\frac{U_\mathrm{eff}}{U_\mathrm{in}-U_\mathrm{Tr}}\right)^2

Die mittlere Spannung an der Last, wie man sie zum Beispiel mit einem Voltmeter angezeigt bekommt, ist

\overline{U} = \frac{U_\mathrm{eff}^2}{U_\mathrm{in}-U_\mathrm{Tr}}

Je höher die Eingangsspannung, desto kleiner ist also die Spannung, die das Voltmeter (auf "Gleichspannung "bzw. "DC" eingestellt) anzeigt!

Beispiel
Ein Gl√ľhbirnchen mit einer Nennspannung von 6.3V soll an einer Spannung von 10V betrieben werden. Als Schalter dient ein npn-Transistor wie BC517. Es ergibt sich duty = 0.46 = 46% und ein DC-Voltmeter zeigt eine Spannung von ca. 4.25 Volt an. Bei der Rechnung wurde ein Spannungsabfall von 0.7 Volt √ľber der Collector-Emitter-Strecke des Transistors angenommen.

PWM bei LEDs

LEDs haben eine stark nichtlineare Kennline. Sie vertragen zwar kurzzeitig Ströme bis zum etwa 10 fachen des Nennstromes, aber dennoch darf die Spannung auch kurzzeitig nicht wesentlich höher sein als im Normalbetrieb. Man darf daher auch bei der PWM Steuerung nicht auf einen Vorwiderstand (oder Ersatzweise eine Induktivität und Freilaufdiode) verzichten. Die Helligkeit der LEDs hängt im wesenlichen vom mittleren Strom ab. Man hat also nur dann weniger Verlustleistung als bei einer linearen Ansteuerung, wenn man eine Induktivität und Freilaufdiode nutzt. Wegen des einfachen Aufbaus ist die PWM Regelung von LEDs mit Vorwiderstand dennoch sinnvoll.

PWM als D/A Wandler

Mit einem Tiefpassfilter (z.B. RC Glied) kann ein PWM-Ausgang auch als einfacher, langsamer Digital-Analog-Wandler benutzt werden. Meistens sollte die PWM-Frequenz hier m√∂glichst hoch sein. Die Auslegung des Tiefpa√üfilters ist meistens so, dass die restliche Wechselspannung kleiner ist als ein LSB-Schritt wird. F√ľr die Anwendung als 8 Bit D/A sollte also die Amplitude weniger als 1/256 sein. F√ľr ein einfaches RC Glied muss die Grenzfrequenz dazu unter 1/128 der PWM Frequenz liegen. Besonders f√ľr h√∂here Aufl√∂sung werden oft Filter h√∂herer Ordnung gebraucht, z.B. als aktiven Tiefpass 2.Ordnung mit einem Operationsverst√§rker. Damit hat man auch gleich einen belastbaren Ausgang. Die Genauigkeit als D/A Wandler ist begrenzt durch die Stabilit√§t der Spannung mit der das PWM Signal erzeugt wird und Nichtlinearit√§ten der Ausg√§nge. Vom Prinzip her ist die Wandlung monoton - d.h. ein h√∂herer PWM Wert erzeugt auch immer ein h√∂here Spannung am Ausgang.

Dieser Artikel ist noch lange nicht vollständig. Der Auto/Initiator hofft das sich weitere User am Ausbau des Artikels beteiligen.

Das Erg√§nzen ist also ausdr√ľcklich gew√ľnscht! Besonders folgende Dinge w√ľrden noch fehlen:

{{{1}}}


PWM per Software

Um eine PWM in Software nachzubilden, braucht man ein paar ganzzahlige Variablen sowie eine Zeitbasis, die es erlaubt, die PWM-Routine in regelmäßigen Zeitabständen (Ticks) aufzurufen:

max
Gibt die Aufl√∂sung der PWM an. F√ľr max=100 hat die PWM eine Aufl√∂sung von 1% und es k√∂nnen 101 verschiedene duty cycle eingestellt werden (von 0 bis 100)
duty
Codiert den duty cycle; kann Werte von 0..max annehmen. Ein Wert von 0 entspricht 0%, ein Wert von max entspricht 100%.
tick
Eine Variable, die zu jedem Tick enhöht wird. Sie entspricht dem Timer-Wert bei einer Hardware-PWM.
pwm
Der Ausgabewert. Ist entweder 0 oder 1.

Der Code ist als Pseudocode angegeben und sollte problemlos zu verstehen sein

# tick um 1 erhöhen und Überlauf beim Erreichen von max (modulo max)

tick := tick + 1

IF tick >= max
THEN
   tick := 0
END IF

# tick gegen duty vergleichen und pwm entsprechend setzen

IF tick < duty
THEN
   pwm := 1
ELSE
   pwm := 0
END IF

und als C-Code

unsigned int tick,duty=0;
tick++;
if (tick > max)
{
tick=0;
}
//PWM mit duty vergleichen und ggf. PWM an/aus schalten
if(tick < duty)
{
PORTB |= _BV(PB1); 
}
else
{
PORTB &= ~ _BV(PB1); 
}

Siehe auch

'Persönliche Werkzeuge

RN-MicroFunk
Mini Funkmodul und
Controllerboard
in Einem!
f√ľr nur 29,80 Euro
robotikhardware.de


Lichtprofi.de
LED Shop
www.lichtprofi.de