Sinuswechselrichter 600W: Unterschied zwischen den Versionen

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche
 
(38 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
''von andreasr''<br /><br />
Die Motivation für den Bau des Wechselrichters war der Wunsch in meiner Garage ohne Netzanschluss mal eine Schlagbohrmaschine oder andere Geräte mit Netzanschluss benutzen zu können. Auch kommt es ab und zu vor, dass man im PKW mal ein Gerät mit Netzspannung benutzen will. Gerade für Geräte mit induktiver Last (z.B. Bohrmaschine) ist es wichtig, dass die erzeugte Spannung einen möglichst sinusförmigen Verlauf hat. Die bei meinem Gerät zugrunde gelegte Leistung ist einfach die Nennleistung meiner Bohrmaschine.
Die Motivation für den Bau des Wechselrichters war der Wunsch in meiner Garage ohne Netzanschluss mal eine Schlagbohrmaschine oder andere Geräte mit Netzanschluss benutzen zu können. Auch kommt es ab und zu vor, dass man im PKW mal ein Gerät mit Netzspannung benutzen will. Gerade für Geräte mit induktiver Last (z.B. Bohrmaschine) ist es wichtig, dass die erzeugte Spannung einen möglichst sinusförmigen Verlauf hat. Die bei meinem Gerät zugrunde gelegte Leistung ist einfach die Nennleistung meiner Bohrmaschine.


=Sicherheitshinweis=
=Sicherheitshinweis=
Obwohl die Schaltung mit Kleinspannung von 12V betrieben wird, entsteht eine lebensgefährlich hohe Netzspannung von 230V~ bzw. eine Gleichspannung von 325V. Es sind also die Regeln für das Arbeiten mit Netzspannung genauso einzuhalten wie für eine Schaltung die direkt mit dem Stromnetz verbunden ist. Weiterhin hat die Schaltung keine galvanische Trennung zwischen Primär-und Sekundärseite (s. Kritikpunkte).  Falls die Eingangsspannung also Verbindung zum Erd- bzw. Massepotential (z.B. im Auto) hat, hat auch die Ausgangsspannung Bezug zum Massepotential. Der Sinuswandler hat also '''nicht''' die Eigenschaften eines Trenntrafos!
{{Warnung|Obwohl die Schaltung mit Kleinspannung von 12 V betrieben wird, entsteht eine lebensgefährlich hohe Netzspannung von 230 V~ bzw. eine Gleichspannung von 325 V. Es sind also die Regeln für das Arbeiten mit Netzspannung genauso einzuhalten wie für eine Schaltung die direkt mit dem Stromnetz verbunden ist. Weiterhin hat die Schaltung keine galvanische Trennung zwischen Primär-und Sekundärseite (s. Kritikpunkte).  Falls die Eingangsspannung also Verbindung zum Erd- bzw. Massepotential (z.B. im Auto) hat, hat die Ausgangsspannung ebenfalls Bezug zum Massepotential. Der Sinuswandler hat also '''nicht''' die Eigenschaften eines Trenntrafos!<br />


Weiterhin ist insbesondere bei Verwendung einer Autobatterie auf entsprechende Absicherung zu achten! Brandgefahr!
Weiterhin ist insbesondere bei Verwendung einer Autobatterie auf entsprechende Absicherung zu achten! Brandgefahr!}}


=Features=
=Features=
* 12V Eingangsspannung
* 12 V Eingangsspannung
* möglichst kompakte Bauform
* möglichst kompakte Bauform
* möglichst sinusförmige Ausgangsspannung
* möglichst sinusförmige Ausgangsspannung 50 Hz
* geregelte Ausgangsspannung
* geregelte Ausgangsspannung
* möglichst preiswerte und einfach zu beschaffende Komponenten
* möglichst preiswerte und einfach zu beschaffende Komponenten


=Technische Details=
=Technische Details=
* es wird ein Zwischenkreis mit 325V verwendet
* es wird ein Zwischenkreis mit 325 V verwendet
* die Zwischenkreisspannung wird mittels Ferrit-Übertragers herauftransformiert
* die Zwischenkreisspannung wird mittels Ferrit-Übertragers aus den 12 V herauftransformiert
* der Ferrit-Übertrager wird mit einer Rechteckspannung gespeist, die über eine Vollbrücke aus der Eingangsspannung erzeugt wird
* der Ferrit-Übertrager wird mit einer Rechteckspannung gespeist, die über eine Vollbrücke aus der Eingangsspannung erzeugt wird
* die Zwischenkreisspannung wird mittels Mikrocontroller über das Tastverhältnis der Rechteckspannung geregelt
* die Zwischenkreisspannung wird mittels Mikrocontroller über das Tastverhältnis der Rechteckspannung geregelt
Zeile 22: Zeile 23:


=Eingangsseite Übertrager=
=Eingangsseite Übertrager=
Der Übertrager wird mit einer Rechteckspannung von 40 kHz über eine Vollbrücke gespeist. Es ist sehr wichtig, dass die Rechteckspannung 100%-ig symmetrisch ist, damit der Übertrager keine Gleichspannung „sieht“.
Der Übertrager wird mit einer Rechteckwechselspannung von 40 kHz über eine Vollbrücke gespeist. Es ist sehr wichtig, dass die Rechteckspannung exakt symmetrisch ist, damit der Übertrager keine Gleichspannung „sieht“.
Die Symmetrie wird sichergestellt, indem ein D-Flipflop mit einer Frequenz von 80kHz getoggelt wird.
Die Symmetrie wird sichergestellt, indem ein D-Flipflop mit einer Frequenz von 80 kHz getoggelt wird.
Für die Regelung des Zwischenkreises wird die Rechteckspannung mit einer variablen Pulsbreite versehen. In den Pulspausen wird der Eingang des Übertragers kurzgeschlossen, indem entweder beide Eingänge auf 0V oder auf +12V liegen. Das Steuersignal dazu ist der PWM-Ausgang des Mikrocontrollers.
Für die Regelung des Zwischenkreises wird die Rechteckspannung mit einer variablen Pulsbreite versehen. In den Pulspausen wird der Eingang des Übertragers kurzgeschlossen, indem entweder beide Eingänge auf Low oder auf High liegen. Das Steuersignal dazu ist der PWM-Ausgang des Mikrocontrollers.
Mit der steigenden Flanke des PWM-Signales wird FFA getoggelt. Mit der fallenden Flanke wird FFB mit dem negierten Signal von FFA geladen. An dessen negiertem Ausgang liegt also dann ebenfalls das Ausgangssignal von FFA. Die FF’s werden also beide mit der PWM-Frequenz getoggelt wobei die Phasenverschiebung der FF’s der t<small><sub>Ein</sub></small> – Zeit der PWM entspricht:
Mit der steigenden Flanke des PWM-Signales wird FFA getoggelt. Mit der fallenden Flanke wird FFB mit dem negierten Ausgang von FFA geladen. An dessen negiertem Ausgang liegt dann also ebenfalls das Ausgangssignal von FFA. Die FF’s werden also beide mit der PWM-Frequenz getoggelt wobei die Phasenverschiebung der FF’s der t<small><sub>Ein</sub></small> – Zeit der PWM entspricht:
* langes t<small><sub>Ein</sub></small>: große Phasenverschiebung; Brücke lange gegenphasig; viel Energie wird eingespeist
* langes t<small><sub>Ein</sub></small>: große Phasenverschiebung; Brücke lange gegenphasig; viel Energie wird eingespeist
* kurzes t<small><sub>Ein</sub></small>: kleine Phasenverschiebung; Brücke kurz gegenphasig; wenig Energie wird eingespeist
* kurzes t<small><sub>Ein</sub></small>: kleine Phasenverschiebung; Brücke kurz gegenphasig; wenig Energie wird eingespeist
Zeile 31: Zeile 32:
[[Bild:InputLogic.png|400px]]
[[Bild:InputLogic.png|400px]]


Die PWM wird mittels einer PID-Regelung in Software geregelt. Die Eingangsgröße dafür ist die Zwischenkeisspannung, die möglichst genau 325V (230V * √2) betragen soll.
Die PWM wird mittels einer PID-Regelung in Software geregelt. <br />
Die Eingangsgröße dafür ist die Zwischenkeisspannung, die möglichst genau 325 V (<math>230 V*\sqrt{2}</math>) betragen soll.


=Ausgang Sinus-Brücke=
=Ausgang Sinus-Brücke=
Die Zwischenkreisspannung wird über eine zweite Vollbrücke in eine Sinusspannung gewandelt. Dazu muss eine PWM erzeugt werden, deren Pulsbreite einem Sinussignal folgt. Da das PWM-Signal auch in der Ausgangsspannung enthalten ist, muss die Ausgangsspannung am Ende noch gefiltert werden. Das erfolgt über ein LC-Glied. Je größer die PWM-Frequenz ist, desto einfacher kann das PWM-Signal herausgefiltert werden (kleinere Induktivität, kleinerer Kondensator). Mit dem verwendeten ATmega ist eine PWM von 20kHz bei 20MHz Taktfrequenz ein guter Kompromiss. Es bleiben dann 1000 Schritte für das Sinussignal.
Die Zwischenkreisspannung wird über eine zweite Vollbrücke in eine Sinusspannung mit 50 Hz gewandelt. Dazu muss eine PWM erzeugt werden, deren Pulsbreite einem Sinussignal folgt. Da das PWM-Signal auch in der Ausgangsspannung enthalten ist, muss die Ausgangsspannung am Ende noch gefiltert werden. Das erfolgt über ein LC-Glied. Je größer die PWM-Frequenz ist, desto einfacher kann das PWM-Signal herausgefiltert werden (kleinere Induktivität, kleinerer Kondensator). Mit dem verwendeten ATmega ist eine PWM von 20kHz bei 20 MHz Taktfrequenz ein guter Kompromiss. Es bleiben dann 1000 Schritte für das Sinussignal.
Nach jeder Halbwelle (10 ms; 200 Schritte bei 20kHz) muss die Brücke umgepolt werden.  
Nach jeder Halbwelle (10 ms; 200 Schritte bei 20 kHz) muss die Brücke umgepolt werden.


=Hardware=
=Hardware=
Ziel war es, möglichst günstige und einfach beschaffbare Bauteile zu verwenden. Die Vollbrücken werden über jeweils 2 Treiber [http://www.mikrocontroller.net/part/IR2184 IR2184] gesteuert. Dieser Treiber hat eine eingebaut Deadtime von 500ns zwischen den Umschaltvorgängen. Als Brückentransistoren werden N-Kanal MOSFETS verwendet.
Ziel war es, möglichst günstige und einfach zu beschaffende Bauteile zu verwenden. Die Vollbrücken werden über jeweils 2 Treiber [http://www.mikrocontroller.net/part/IR2184 IR2184] gesteuert. Dieser Treiber hat eine eingebaute Deadtime von 500 ns zwischen den Umschaltvorgängen. Als Brückentransistoren werden N-Kanal MOSFETS verwendet.
Die gesamte Steuerung wird über einen ATmega88 realisiert.
Die gesamte Steuerung wird über einen ATmega88 realisiert.


===Eingang===
===Eingang===
Eingangsseitig wir als Brückentransistor der [http://www.mikrocontroller.net/part/IRF1404 IRF1404] verwendet.  Er ist mit einem R<sub>DS(on)</sub> vom 4mΩ und Maximalstrom von 202 A spezifiziert. Wobei die Beinchen des TO220 Gehäuses diesen Strom nicht lange aushalten dürften.  Bei einer Nennleistung von 600W und 12V Eingangsspannung müssen die Transistoren dauerhaft 25A aushalten können  (600W / 12V / 2). Wichtig ist hier ein entsprechendes Design der Zuleitungen und Anschlüsse. Ich habe das mit kleinen Stromschienen aus 1mm Kupferblech realisiert.
Eingangsseitig wir als Brückentransistor der [http://www.mikrocontroller.net/part/IRF1404 IRF1404] verwendet.  Er ist mit einem R<sub>DS(on)</sub> vom 4mΩ und Maximalstrom von 202 A spezifiziert. Wobei die Beinchen des TO220 Gehäuses diesen Strom nicht lange aushalten dürften.  Bei einer Nennleistung von 600 W und 12 V Eingangsspannung müssen die Transistoren dauerhaft 25 A aushalten können  (600 W / 12 V / 2). Wichtig ist hier ein entsprechendes Design der Zuleitungen und Anschlüsse. Ich habe das mit kleinen Stromschienen aus 1 mm Kupferblech realisiert.


[[Bild:InputTransistor.png|200px]]
[[Bild:InputTransistor.png|200px]]


Die Eingangsspannung muss mit Stützkondensatoren gepuffert werden, da sonst die Spannung durch die Induktivität der Zuleitungen einbricht und dadurch Potentialverschiebungen entstehen können, die Brückentransistoren und Treiber zerstören.
Die Eingangsspannung muss mit Stützkondensatoren gepuffert werden, da sonst die Spannung während der Schaltvorgänge durch die Induktivität der Zuleitungen einbricht und dadurch Potentialverschiebungen entstehen können, die Brückentransistoren und Treiber zerstören.


[[Bild:InputElkos.png|200px]]    [[Bild:InputKerkos.png|100px]]  
[[Bild:InputElkos.png|200px]]    [[Bild:InputKerkos.png|100px]]  
<br /> Aktuell werden 3 Elkos á 1000µF und 8 Kerkos á 100nF verwendet.
<br /> Aktuell werden 3 Elkos á 1000 µF und 8 Kerkos á 100 nF verwendet.
Ich fürchte, diese sind zu niedrig dimensioniert, bzw. werden auf Dauer den Ripplestrom nicht aushalten können (Kritikpunkte).
Ich fürchte, diese sind zu niedrig dimensioniert, bzw. werden auf Dauer den Ripplestrom nicht aushalten können (Kritikpunkte).


Zeile 59: Zeile 61:
[[Bild:Berechnung1.png|800px]]
[[Bild:Berechnung1.png|800px]]


Als Zwischenkreisspannung wurde hier 350V zugrunde gelegt, damit noch etwas Reserve zum Regeln bleibt.
Als Zwischenkreisspannung wurde hier 350 V zugrunde gelegt, damit noch etwas Reserve zum Regeln bleibt.


[[Bild:Berechnung2.png|400px]]
[[Bild:Berechnung2.png|400px]]


Es wird ein Übertrager vom Typ ETD59 verwendet. Die Primärwicklung hat 2 Windungen, die Sekundärwicklung hat 74 Windungen.
Es wird ein Übertrager vom Typ ETD59 verwendet. Die Primärwicklung hat 2 Windungen, die Sekundärwicklung hat 74 Windungen.
Als Material für die Primärwindung dient 0,85 mm Cu-Lackdraht. Dieser hat einen Querschnitt von 0,56mm<sup>2</sup>. Bei einer empfohlenen Stromdichte für Trafowicklungen von 3A/mm<sup>2</sup> braucht man also ungefähr 30 Drähte parallel für 50A. Es hat sich als praktisch erwiesen, für die Einzeldrähte eher einen kleinen Drahtdurchmesser zu wählen (< 1mm). Dadurch hat man fast so etwas wie Litze. Das lässt sich einfacher wickeln (auch 2 Wicklungen können schwierig sein!).
Als Material für die Primärwindung dient 0,85 mm Cu-Lackdraht. Dieser hat einen Querschnitt von 0,56 mm<sup>2</sup>. Bei einer empfohlenen Stromdichte für Trafowicklungen von 3 A/mm<sup>2</sup> braucht man also ungefähr 30 Drähte parallel für 50 A. Es hat sich als praktisch erwiesen, für die Einzeldrähte eher einen kleinen Drahtdurchmesser zu wählen (< 1 mm). Dadurch hat man fast so etwas wie Litze. Das lässt sich einfacher wickeln (auch 2 Windungen können schwierig sein!).


[[Bild:Primaer.png|200px]]
[[Bild:Primaer.png|200px]]


Sekundärseitig wurde ein Cu-Lackdraht von 1 mm Durchmesser verwendet.  
Sekundärseitig wurde ein Cu-Lackdraht von 1 mm Durchmesser verwendet; das entspricht einem Querschnitt von 0,78 mm<sup>2</sup>. Damit kommt man bei einem Strom von 2 A auf eine Stromdichte von 2,54 A/mm<sup>2</sup>.


[[Bild:Sekundaer.png|200px]]
[[Bild:Sekundaer.png|200px]]


Zwischen die 2 Lagen der Sekundärwicklung wurde eine Isolierfolie aus Mylarfolie gewickelt da erhebliche Spannungsunterschiede zwischen den Lagen bestehen. Der Lack des Drahtes würde hier früher oder später durchschlagen. Zwischen Sekundär-und Primärwicklung befindet sich ebenfalls eine Isolierung aus mehreren Lagen Folie.
Zwischen die 2 Lagen der Sekundärwicklung wurde eine Isolierung aus Mylarfolie gewickelt da erhebliche Spannungsunterschiede zwischen den Lagen bestehen. Der Lack des Drahtes würde hier früher oder später durchschlagen. Zwischen Sekundär-und Primärwicklung befindet sich ebenfalls eine Isolierung aus mehreren Lagen Folie.


===Spannungsmessung===
===Spannungsmessung===
Der ATmega misst die Eingangsspannung und die Zwischenkreisspannung über entsprechende Spannungsteiler.
Der ATmega misst die Eingangsspannung und die Zwischenkreisspannung über entsprechende Spannungsteiler.


===Stommessung===
===Strommessung===
Der ATmega misst den Eingangsstrom und den Gleichstrom im Zwischenkreis über Shunts im Masse-Zweig. Die Messspannung wird über einen OPV, der als Differenzverstärker arbeitet, verstärkt. Die negative Versorgungsspannung für die OPV’s wird mit einer Ladungspumpe erzeugt.  
Der ATmega misst den Eingangsstrom und den Gleichstrom im Zwischenkreis über Shunts im Masse-Zweig. Die Messspannung wird über einen OPV, der als Differenzverstärker arbeitet, verstärkt. Die negative Versorgungsspannung für die OPV’s wird mit einer Ladungspumpe erzeugt.  
Als Shunt dient ein Konstantandraht von 0,5mm Durchmesser. Im Primärkreis werden 30 Abschnitte von 1 cm parallelgeschaltet:
Als Shunt dient ein Konstantandraht von 0,5 mm Durchmesser. Im Primärkreis werden 30 Abschnitte von 1 cm parallelgeschaltet:


[[Bild:Shunt1.png|200px]]
[[Bild:Shunt1.png|200px]]


===Zwischenkreis===
===Zwischenkreis===
Die Sekundärspannung wird mit schnellen Siliziumdioden (40kHz) gleichgerichtet, an einer Drossel geglättet und auf  Elkos mit einer Gesamtkapazität von 440 µF gespeist. Diese puffern die Zwischenkreisspannung.
Die Sekundärspannung wird mit schnellen Siliziumdioden (40 kHz) gleichgerichtet, an einer Drossel geglättet und auf  Elkos mit einer Gesamtkapazität von 440 µF gespeist. Diese puffern die Zwischenkreisspannung.
Parallel zu den Elkos befinden sich noch ein Folienkondensator und 4 Keramikkondensatoren dicht an den MOSFETS. Ohne diese kam es zu erheblichen EMV-Problemen wenn die Ausgangsstufe eingeschaltet wurde. Die Störungen schlugen bis in den Primärkreis durch und führten z.B. dazu dass der µC sporadisch abstürzte.
Parallel zu den Elkos befinden sich noch ein Folienkondensator und 4 Keramikkondensatoren dicht an den MOSFETS. Ohne diese kam es zu erheblichen EMV-Problemen wenn die Ausgangsstufe eingeschaltet wurde. Die Störungen schlugen bis in den Primärkreis durch und führten z.B. dazu dass der µC sporadisch abstürzte.


===Ausgangsschaltung===
===Ausgangsschaltung===
Es wird eine Vollbrücke bestehend aus 4 MOSFETS [http://www.mikrocontroller.net/part/IRFP450 IRFP 450] verwendet. V<sub>DDS</sub> ist mit 500V angegeben. Vom Controller werden 2 Signale geliefert: Sinus-PWM und Polarität. Diese Signale werden durch eine Logikschaltung verknüpft. <br />
Es wird eine Vollbrücke bestehend aus 4 MOSFETS [http://www.mikrocontroller.net/part/IRFP450 IRFP 450] verwendet. V<sub>DDS</sub> ist mit 500 V angegeben. Vom Controller werden 2 Signale geliefert: Sinus-PWM und Polarität. Diese Signale werden durch eine Logikschaltung verknüpft. <br />
[[Bild:OutputLogic.png|400px]]
[[Bild:OutputLogic.png|400px]]
<br />Eine Brücke ist fest auf Low und die andere gibt das PWM-Signal aus. Beim Wechsel des Polaritätssignales kehrt sich die Funktion der Brücken um. Die erzeugte Sinus-PWM wird über 2 Drosseln und einen Kondensator gefiltert.
<br />Eine Brücke ist fest auf Low und die andere gibt das PWM-Signal aus. Beim Wechsel des Polaritätssignales kehrt sich die Funktion der Brücken um. Die erzeugte Sinus-PWM wird über 2 Drosseln und einen Kondensator gefiltert.
Zeile 94: Zeile 96:


=Aufbau=
=Aufbau=
Ein erster Aufbau auf Lochraster zeigte ziemliche EMV-Probleme. Besonders das Einschalten des Ausgangskreises erzeugte massiv Störungen auf der Eingangsseite und auch auf der Spannungsversorgung des µC.  Deshalb entschloss ich mich, Platinen ätzen zu lassen. Die Schaltung ist in den Leistungs- und in den Controllerteil unterteilt. Beide sind mittels eines kurzen Flachbandkabels verbunden. Durch meine EAGLE-Lizenz ist die Platinengröße auf Euroformat begrenzt, was ziemlich knapp für die Leistungsseite ist. Den hohen Strom in der Eingangsseite leite ich über „Stromschienen“ aus 1mm Kupferblech, welche auf die Platine montiert sind. Dafür habe ich eigens Eagle-Bauteile definiert. So werden auch die Transistoren im Eingangskreis mit einem entsprechenden Kupferquerschnitt versorgt.
Ein erster Aufbau auf Lochraster zeigte ziemliche EMV-Probleme. Besonders das Einschalten des Ausgangskreises erzeugte massiv Störungen auf der Eingangsseite und auch auf der Spannungsversorgung des µC.  Deshalb entschloss ich mich, Platinen ätzen zu lassen. Die Schaltung ist in den Leistungs- und in den Controllerteil unterteilt. Beide sind mittels eines kurzen Flachbandkabels verbunden. Durch meine EAGLE-Lizenz ist die Platinengröße auf Euroformat begrenzt, was ziemlich knapp für die Leistungsseite ist. Den hohen Strom in der Eingangsseite leite ich über „Stromschienen“ aus 1 mm Kupferblech, welche auf die Platine montiert sind. Dafür habe ich eigens Eagle-Bauteile definiert. So werden auch die Transistoren im Eingangskreis mit einem entsprechenden Kupferquerschnitt versorgt.
Die Leistungstransistoren sind zur Kühlung mit dem Alu-Gehäuse verbunden. Es ist zu beachten, dass die Drain-Anschlüsse intern mit den Kühlfahnen verbunden sind. Entsprechende Isolierungen aus Glimmerfolie (ggf. doppelt für die 230V-Seite) sind unbedingt notwendig!
Die Leistungstransistoren sind zur Kühlung mit dem Alu-Gehäuse verbunden. Es ist zu beachten, dass die Drain-Anschlüsse intern mit den Kühlfahnen verbunden sind. Entsprechende Isolierungen aus Glimmerfolie (ggf. doppelt für die 230 V-Seite) sind unbedingt notwendig!


=Bedienung=
=Bedienung=
Der WR wird über ein 3-Tasten-Menü eingestellt. Ein LCD dient der Ausgabe wichtiger Parameter.
Der WR wird über ein 3-Tasten-Menü eingestellt. Ein LCD dient der Ausgabe wichtiger Parameter.
Man kann eine Begrenzung des Eingangsstromes einstellen, damit der WR z.B. an einer mit nur 20A abgesicherten Steckdose im Auto betrieben werden kann.
Man kann eine Begrenzung des Eingangsstromes einstellen, damit der WR z.B. an einer mit nur 20 A abgesicherten Steckdose im Auto betrieben werden kann.


=Software=
=Software=
Als Controller kommt wie gesagt ein ATmega88 mit 20MHz Clock zum Einsatz.
Als Controller kommt wie gesagt ein ATmega88 mit 20 MHz Clock zum Einsatz.
Die Software ist in C / C++ geschrieben. Bei der Implementierung der Menü-Funktionen erleichtert die Verwendung von Klassen, Vererbung und virtuellen Methoden die Arbeit sehr. Wenn man es mit der Verwendung von C++ - Features nicht übertreibt (keine STL-Klassen!), bleibt der erzeugte Code sehr kompakt - aktuell findet das Programm immer noch in einen ATmega88 Platz! Als Entwicklungsumgebung kommt Atmel Studio zum Einsatz.
Die Software ist in C / C++ geschrieben. Bei der Implementierung der Menü-Funktionen erleichtert die Verwendung von Klassen, Vererbung und virtuellen Methoden die Arbeit sehr. Wenn man es mit der Verwendung von C++ - Features nicht übertreibt (keine STL-Klassen!), bleibt der erzeugte Code sehr kompakt - aktuell findet das Programm immer noch in einen ATmega88 Platz! Als Entwicklungsumgebung kommt Atmel Studio zum Einsatz.
<br />Timer0 erzeugt eine 8-Bit PWM für die Eingangsbrücke. <br />
<br />Timer0 erzeugt eine 8-Bit PWM für die Eingangsbrücke. <br />
Timer1 ist für die 16-Bit Sinus-PWM der Ausgangs-Brücke zuständig. Die Zwischenkreisspannung wird über eine PID-Regelung konstant gehalten, die die PWM für die Eingangsbrücke beeinflusst. Die Regler-Parameter wurden aus der Sprungantwort ermittelt und empirisch optimiert. Eine gute Erklärung findet sich hier:
Timer1 ist für die 16-Bit Sinus-PWM der Ausgangs-Brücke zuständig. Die Zwischenkreisspannung wird über eine PID-Regelung konstant gehalten, die die PWM für die Eingangsbrücke beeinflusst. Die Regler-Parameter wurden aus der Sprungantwort ermittelt und empirisch optimiert. Eine gute Erklärung findet sich hier:
[http://rn-wissen.de/wiki/index.php/Regelungstechnik rn-wissen.de/wiki/index.php/Regelungstechnik]
[http://rn-wissen.de/wiki/index.php/Regelungstechnik rn-wissen.de/wiki/index.php/Regelungstechnik]
Es werden periodisch 4 Analogwerte mit verschiedenen Abtastraten gemessen: Zwischenkreisspannung, Eingangsspannung, Eingangsstrom, Zwischenkreisstrom. Die Zwischenkreisspannung wird mit der höchsten Abtastrate von 2ms gemessen. Entsprechend läuft die Regelschleife im 2ms- Zyklus.<br />
Es werden periodisch 4 Analogwerte mit verschiedenen Abtastraten gemessen: Zwischenkreisspannung, Eingangsspannung, Eingangsstrom, Zwischenkreisstrom. Die Zwischenkreisspannung wird mit der höchsten Abtastrate von 2 ms gemessen. Entsprechend läuft die Regelschleife im 2 ms- Zyklus.<br />
Die Sinus-Werte wurden mit Excel berechnet und werden als Tabelle in die Software includiert (eine Halbwelle). Der ATmega hat die "Besonderheit", dass auch beim PWM-Registerwert von 0 ein kurzer Spike ausgegeben wird. Um das zu verhindern, wird die PWM invertiert betrieben: der Max.-Wert stellt das Low-Signal dar. In Excel werden die Werte gleich entsprechend berechnet, so dass der Controller die Werte direkt verwenden kann.  In jedem Timer1-Overflow-Interrupt wird der nächste Wert aus der Sinustabelle ins PWM-Register geladen. Nachdem eine komplette Halbwelle ausgegeben wurde erfolgt die Polaritätsumschaltung über einen Controller-Pin der auf die Treiberlogik wirkt.
Die Sinus-Werte wurden mit Excel berechnet und werden als Tabelle in die Software includiert (eine Halbwelle). Der ATmega hat die "Besonderheit", dass auch beim PWM-Registerwert von 0 ein kurzer Spike ausgegeben wird. Um das zu verhindern, wird die PWM invertiert betrieben: der Max.-Wert stellt das Low-Signal dar. In Excel werden die Werte gleich entsprechend berechnet, so dass der Controller die Werte direkt verwenden kann.  In jedem Timer1-Overflow-Interrupt wird der nächste Wert aus der Sinustabelle ins PWM-Register geladen. Nachdem eine komplette Halbwelle ausgegeben wurde erfolgt die Polaritätsumschaltung über einen Controller-Pin der auf die Treiberlogik wirkt.


=Tests=
=Tests=
Zum Testen der Funktion ist ein Oszilloskop von großem Vorteil. Insbesondere der Signalverlauf an den Gates für die Brückentransistoren muss sauber sein; sonst ist ein früher Tod der Leistungshalbleiter sehr wahrscheinlich. Ich habe mir selbst einige IRF1404 zerstört weil ein Gate unbemerkt offen war. Zum Messen habe ich die Schaltung mit einer ohmschen Last von 150W betrieben (gut wenn man noch ein paar Glühbirnen in der Schublade hat :-)). Als Spannungsquelle diente ein PC-Netzteil  (12V). Als alles sauber lief (verzerrungsfreier Sinus auf Oszilloskop) habe ich meine Bohrmaschine über Autobatterie angeschlossen - Funktioniert!
Zum Testen der Funktion ist ein Oszilloskop von großem Vorteil. Insbesondere der Signalverlauf an den Gates für die Brückentransistoren muss sauber sein; sonst ist ein früher Tod der Leistungshalbleiter sehr wahrscheinlich. Ich habe mir selbst einige IRF1404 zerstört weil ein Gate unbemerkt offen war. Zum Messen habe ich die Schaltung mit einer ohmschen Last von 150 W betrieben (gut wenn man noch ein paar Glühbirnen in der Schublade hat :-)). Als Spannungsquelle diente ein PC-Netzteil  (12 V). Als alles sauber lief (verzerrungsfreier Sinus auf Oszilloskop) habe ich meine Bohrmaschine über Autobatterie angeschlossen - Funktioniert!


=Kritikpunkte / zu verbessern=
=Kritikpunkte / Verbesserungsvorschläge=


* Galvanische Verbindung Eingang Ausgang
* Galvanische Verbindung Eingang Ausgang
Zeile 121: Zeile 123:
* Messung Wechselspannung/-Strom, Berechnung Wirkungsgrad, cosinus phi
* Messung Wechselspannung/-Strom, Berechnung Wirkungsgrad, cosinus phi


externe Links:
=Links und Downloads=


[http://www.roboternetz.de/community/threads/30495-Projekt-Sinuswechselrichter-12V-230V roboternetz.de Sinuswechselrichter-12V-230V]
[http://www.roboternetz.de/community/threads/30495-Projekt-Sinuswechselrichter-12V-230V roboternetz.de Sinuswechselrichter-12V-230V]
Zeile 136: Zeile 138:


[[Bild:Sinuswechselrichter2.png|800px]]
[[Bild:Sinuswechselrichter2.png|800px]]
Link für Nachricht an den Autor: [http://www.mikrocontroller.net/user/show/AndreasR Andreas Richter]
<br />


[[Category:Projekte]]
[[Category:Projekte]]
[[Kategorie:Spannungsversorgung und Energiequellen]]
[[Kategorie:Spannungsversorgung und Energiequellen]]

Aktuelle Version vom 11. Juni 2021, 09:36 Uhr

von andreasr

Die Motivation für den Bau des Wechselrichters war der Wunsch in meiner Garage ohne Netzanschluss mal eine Schlagbohrmaschine oder andere Geräte mit Netzanschluss benutzen zu können. Auch kommt es ab und zu vor, dass man im PKW mal ein Gerät mit Netzspannung benutzen will. Gerade für Geräte mit induktiver Last (z.B. Bohrmaschine) ist es wichtig, dass die erzeugte Spannung einen möglichst sinusförmigen Verlauf hat. Die bei meinem Gerät zugrunde gelegte Leistung ist einfach die Nennleistung meiner Bohrmaschine.

Sicherheitshinweis

Obwohl die Schaltung mit Kleinspannung von 12 V betrieben wird, entsteht eine lebensgefährlich hohe Netzspannung von 230 V~ bzw. eine Gleichspannung von 325 V. Es sind also die Regeln für das Arbeiten mit Netzspannung genauso einzuhalten wie für eine Schaltung die direkt mit dem Stromnetz verbunden ist. Weiterhin hat die Schaltung keine galvanische Trennung zwischen Primär-und Sekundärseite (s. Kritikpunkte). Falls die Eingangsspannung also Verbindung zum Erd- bzw. Massepotential (z.B. im Auto) hat, hat die Ausgangsspannung ebenfalls Bezug zum Massepotential. Der Sinuswandler hat also nicht die Eigenschaften eines Trenntrafos!

Weiterhin ist insbesondere bei Verwendung einer Autobatterie auf entsprechende Absicherung zu achten! Brandgefahr!

Features

  • 12 V Eingangsspannung
  • möglichst kompakte Bauform
  • möglichst sinusförmige Ausgangsspannung 50 Hz
  • geregelte Ausgangsspannung
  • möglichst preiswerte und einfach zu beschaffende Komponenten

Technische Details

  • es wird ein Zwischenkreis mit 325 V verwendet
  • die Zwischenkreisspannung wird mittels Ferrit-Übertragers aus den 12 V herauftransformiert
  • der Ferrit-Übertrager wird mit einer Rechteckspannung gespeist, die über eine Vollbrücke aus der Eingangsspannung erzeugt wird
  • die Zwischenkreisspannung wird mittels Mikrocontroller über das Tastverhältnis der Rechteckspannung geregelt
  • die Zwischenkreisspannung wird mittels Elko gepuffert, damit auch bei Geräten mit induktiver Last die Blindleistung pendeln kann
  • aus der Zwischenkreisspannung wird über eine Vollbrücke eine PWM mit sinusförmigem Verlauf erzeugt. Nach der Filterung der PWM bleibt ein Sinus mit 50 Hz über.

Eingangsseite Übertrager

Der Übertrager wird mit einer Rechteckwechselspannung von 40 kHz über eine Vollbrücke gespeist. Es ist sehr wichtig, dass die Rechteckspannung exakt symmetrisch ist, damit der Übertrager keine Gleichspannung „sieht“. Die Symmetrie wird sichergestellt, indem ein D-Flipflop mit einer Frequenz von 80 kHz getoggelt wird. Für die Regelung des Zwischenkreises wird die Rechteckspannung mit einer variablen Pulsbreite versehen. In den Pulspausen wird der Eingang des Übertragers kurzgeschlossen, indem entweder beide Eingänge auf Low oder auf High liegen. Das Steuersignal dazu ist der PWM-Ausgang des Mikrocontrollers. Mit der steigenden Flanke des PWM-Signales wird FFA getoggelt. Mit der fallenden Flanke wird FFB mit dem negierten Ausgang von FFA geladen. An dessen negiertem Ausgang liegt dann also ebenfalls das Ausgangssignal von FFA. Die FF’s werden also beide mit der PWM-Frequenz getoggelt wobei die Phasenverschiebung der FF’s der tEin – Zeit der PWM entspricht:

  • langes tEin: große Phasenverschiebung; Brücke lange gegenphasig; viel Energie wird eingespeist
  • kurzes tEin: kleine Phasenverschiebung; Brücke kurz gegenphasig; wenig Energie wird eingespeist

InputLogic.png

Die PWM wird mittels einer PID-Regelung in Software geregelt.
Die Eingangsgröße dafür ist die Zwischenkeisspannung, die möglichst genau 325 V ([math]\displaystyle{ 230 V*\sqrt{2} }[/math]) betragen soll.

Ausgang Sinus-Brücke

Die Zwischenkreisspannung wird über eine zweite Vollbrücke in eine Sinusspannung mit 50 Hz gewandelt. Dazu muss eine PWM erzeugt werden, deren Pulsbreite einem Sinussignal folgt. Da das PWM-Signal auch in der Ausgangsspannung enthalten ist, muss die Ausgangsspannung am Ende noch gefiltert werden. Das erfolgt über ein LC-Glied. Je größer die PWM-Frequenz ist, desto einfacher kann das PWM-Signal herausgefiltert werden (kleinere Induktivität, kleinerer Kondensator). Mit dem verwendeten ATmega ist eine PWM von 20kHz bei 20 MHz Taktfrequenz ein guter Kompromiss. Es bleiben dann 1000 Schritte für das Sinussignal. Nach jeder Halbwelle (10 ms; 200 Schritte bei 20 kHz) muss die Brücke umgepolt werden.

Hardware

Ziel war es, möglichst günstige und einfach zu beschaffende Bauteile zu verwenden. Die Vollbrücken werden über jeweils 2 Treiber IR2184 gesteuert. Dieser Treiber hat eine eingebaute Deadtime von 500 ns zwischen den Umschaltvorgängen. Als Brückentransistoren werden N-Kanal MOSFETS verwendet. Die gesamte Steuerung wird über einen ATmega88 realisiert.

Eingang

Eingangsseitig wir als Brückentransistor der IRF1404 verwendet. Er ist mit einem RDS(on) vom 4mΩ und Maximalstrom von 202 A spezifiziert. Wobei die Beinchen des TO220 Gehäuses diesen Strom nicht lange aushalten dürften. Bei einer Nennleistung von 600 W und 12 V Eingangsspannung müssen die Transistoren dauerhaft 25 A aushalten können (600 W / 12 V / 2). Wichtig ist hier ein entsprechendes Design der Zuleitungen und Anschlüsse. Ich habe das mit kleinen Stromschienen aus 1 mm Kupferblech realisiert.

InputTransistor.png

Die Eingangsspannung muss mit Stützkondensatoren gepuffert werden, da sonst die Spannung während der Schaltvorgänge durch die Induktivität der Zuleitungen einbricht und dadurch Potentialverschiebungen entstehen können, die Brückentransistoren und Treiber zerstören.

InputElkos.png InputKerkos.png
Aktuell werden 3 Elkos á 1000 µF und 8 Kerkos á 100 nF verwendet. Ich fürchte, diese sind zu niedrig dimensioniert, bzw. werden auf Dauer den Ripplestrom nicht aushalten können (Kritikpunkte).

Übertrager

Mit dem Berechnungsprogramm auf schmidt-walter.eit.h-da.de/smps/vgw_smps.html wurde folgendes ermittelt:

Berechnung1.png

Als Zwischenkreisspannung wurde hier 350 V zugrunde gelegt, damit noch etwas Reserve zum Regeln bleibt.

Berechnung2.png

Es wird ein Übertrager vom Typ ETD59 verwendet. Die Primärwicklung hat 2 Windungen, die Sekundärwicklung hat 74 Windungen. Als Material für die Primärwindung dient 0,85 mm Cu-Lackdraht. Dieser hat einen Querschnitt von 0,56 mm2. Bei einer empfohlenen Stromdichte für Trafowicklungen von 3 A/mm2 braucht man also ungefähr 30 Drähte parallel für 50 A. Es hat sich als praktisch erwiesen, für die Einzeldrähte eher einen kleinen Drahtdurchmesser zu wählen (< 1 mm). Dadurch hat man fast so etwas wie Litze. Das lässt sich einfacher wickeln (auch 2 Windungen können schwierig sein!).

Primaer.png

Sekundärseitig wurde ein Cu-Lackdraht von 1 mm Durchmesser verwendet; das entspricht einem Querschnitt von 0,78 mm2. Damit kommt man bei einem Strom von 2 A auf eine Stromdichte von 2,54 A/mm2.

Sekundaer.png

Zwischen die 2 Lagen der Sekundärwicklung wurde eine Isolierung aus Mylarfolie gewickelt da erhebliche Spannungsunterschiede zwischen den Lagen bestehen. Der Lack des Drahtes würde hier früher oder später durchschlagen. Zwischen Sekundär-und Primärwicklung befindet sich ebenfalls eine Isolierung aus mehreren Lagen Folie.

Spannungsmessung

Der ATmega misst die Eingangsspannung und die Zwischenkreisspannung über entsprechende Spannungsteiler.

Strommessung

Der ATmega misst den Eingangsstrom und den Gleichstrom im Zwischenkreis über Shunts im Masse-Zweig. Die Messspannung wird über einen OPV, der als Differenzverstärker arbeitet, verstärkt. Die negative Versorgungsspannung für die OPV’s wird mit einer Ladungspumpe erzeugt. Als Shunt dient ein Konstantandraht von 0,5 mm Durchmesser. Im Primärkreis werden 30 Abschnitte von 1 cm parallelgeschaltet:

Shunt1.png

Zwischenkreis

Die Sekundärspannung wird mit schnellen Siliziumdioden (40 kHz) gleichgerichtet, an einer Drossel geglättet und auf Elkos mit einer Gesamtkapazität von 440 µF gespeist. Diese puffern die Zwischenkreisspannung. Parallel zu den Elkos befinden sich noch ein Folienkondensator und 4 Keramikkondensatoren dicht an den MOSFETS. Ohne diese kam es zu erheblichen EMV-Problemen wenn die Ausgangsstufe eingeschaltet wurde. Die Störungen schlugen bis in den Primärkreis durch und führten z.B. dazu dass der µC sporadisch abstürzte.

Ausgangsschaltung

Es wird eine Vollbrücke bestehend aus 4 MOSFETS IRFP 450 verwendet. VDDS ist mit 500 V angegeben. Vom Controller werden 2 Signale geliefert: Sinus-PWM und Polarität. Diese Signale werden durch eine Logikschaltung verknüpft.
OutputLogic.png
Eine Brücke ist fest auf Low und die andere gibt das PWM-Signal aus. Beim Wechsel des Polaritätssignales kehrt sich die Funktion der Brücken um. Die erzeugte Sinus-PWM wird über 2 Drosseln und einen Kondensator gefiltert. Die Drosseln machten hier einige Probleme (Erwärmung des Kerns). Durch ein Kernmaterial höherer Güte (Farbe Grau) und einen kleinen Lüfter :-( konnte ich die Erwärmung in den Griff bekommen.

Aufbau

Ein erster Aufbau auf Lochraster zeigte ziemliche EMV-Probleme. Besonders das Einschalten des Ausgangskreises erzeugte massiv Störungen auf der Eingangsseite und auch auf der Spannungsversorgung des µC. Deshalb entschloss ich mich, Platinen ätzen zu lassen. Die Schaltung ist in den Leistungs- und in den Controllerteil unterteilt. Beide sind mittels eines kurzen Flachbandkabels verbunden. Durch meine EAGLE-Lizenz ist die Platinengröße auf Euroformat begrenzt, was ziemlich knapp für die Leistungsseite ist. Den hohen Strom in der Eingangsseite leite ich über „Stromschienen“ aus 1 mm Kupferblech, welche auf die Platine montiert sind. Dafür habe ich eigens Eagle-Bauteile definiert. So werden auch die Transistoren im Eingangskreis mit einem entsprechenden Kupferquerschnitt versorgt. Die Leistungstransistoren sind zur Kühlung mit dem Alu-Gehäuse verbunden. Es ist zu beachten, dass die Drain-Anschlüsse intern mit den Kühlfahnen verbunden sind. Entsprechende Isolierungen aus Glimmerfolie (ggf. doppelt für die 230 V-Seite) sind unbedingt notwendig!

Bedienung

Der WR wird über ein 3-Tasten-Menü eingestellt. Ein LCD dient der Ausgabe wichtiger Parameter. Man kann eine Begrenzung des Eingangsstromes einstellen, damit der WR z.B. an einer mit nur 20 A abgesicherten Steckdose im Auto betrieben werden kann.

Software

Als Controller kommt wie gesagt ein ATmega88 mit 20 MHz Clock zum Einsatz. Die Software ist in C / C++ geschrieben. Bei der Implementierung der Menü-Funktionen erleichtert die Verwendung von Klassen, Vererbung und virtuellen Methoden die Arbeit sehr. Wenn man es mit der Verwendung von C++ - Features nicht übertreibt (keine STL-Klassen!), bleibt der erzeugte Code sehr kompakt - aktuell findet das Programm immer noch in einen ATmega88 Platz! Als Entwicklungsumgebung kommt Atmel Studio zum Einsatz.
Timer0 erzeugt eine 8-Bit PWM für die Eingangsbrücke.
Timer1 ist für die 16-Bit Sinus-PWM der Ausgangs-Brücke zuständig. Die Zwischenkreisspannung wird über eine PID-Regelung konstant gehalten, die die PWM für die Eingangsbrücke beeinflusst. Die Regler-Parameter wurden aus der Sprungantwort ermittelt und empirisch optimiert. Eine gute Erklärung findet sich hier: rn-wissen.de/wiki/index.php/Regelungstechnik Es werden periodisch 4 Analogwerte mit verschiedenen Abtastraten gemessen: Zwischenkreisspannung, Eingangsspannung, Eingangsstrom, Zwischenkreisstrom. Die Zwischenkreisspannung wird mit der höchsten Abtastrate von 2 ms gemessen. Entsprechend läuft die Regelschleife im 2 ms- Zyklus.
Die Sinus-Werte wurden mit Excel berechnet und werden als Tabelle in die Software includiert (eine Halbwelle). Der ATmega hat die "Besonderheit", dass auch beim PWM-Registerwert von 0 ein kurzer Spike ausgegeben wird. Um das zu verhindern, wird die PWM invertiert betrieben: der Max.-Wert stellt das Low-Signal dar. In Excel werden die Werte gleich entsprechend berechnet, so dass der Controller die Werte direkt verwenden kann. In jedem Timer1-Overflow-Interrupt wird der nächste Wert aus der Sinustabelle ins PWM-Register geladen. Nachdem eine komplette Halbwelle ausgegeben wurde erfolgt die Polaritätsumschaltung über einen Controller-Pin der auf die Treiberlogik wirkt.

Tests

Zum Testen der Funktion ist ein Oszilloskop von großem Vorteil. Insbesondere der Signalverlauf an den Gates für die Brückentransistoren muss sauber sein; sonst ist ein früher Tod der Leistungshalbleiter sehr wahrscheinlich. Ich habe mir selbst einige IRF1404 zerstört weil ein Gate unbemerkt offen war. Zum Messen habe ich die Schaltung mit einer ohmschen Last von 150 W betrieben (gut wenn man noch ein paar Glühbirnen in der Schublade hat :-)). Als Spannungsquelle diente ein PC-Netzteil (12 V). Als alles sauber lief (verzerrungsfreier Sinus auf Oszilloskop) habe ich meine Bohrmaschine über Autobatterie angeschlossen - Funktioniert!

Kritikpunkte / Verbesserungsvorschläge

  • Galvanische Verbindung Eingang Ausgang
  • Eingangselkos evtl. zu klein dimensioniert; Rippleströme?
  • Spannungsfestigkeit Treiber IR2184: Zwischen den Pins 5 und 6 liegt die volle Netzspannung an. Die Mindestkriechstrecke wird nicht eingehalten! Abhilfe: anderer Treiber mit anderem PIN-Layout?
  • EMV-Probleme beim Einschalten des Ausgangstreibers. Bessere Abblockung der Zwischenkreisspannung? Evtl. würde auch eine Verbesserung durch die galvan. Trennung (Punkt 1) erreicht.
  • Messung Wechselspannung/-Strom, Berechnung Wirkungsgrad, cosinus phi

Links und Downloads

roboternetz.de Sinuswechselrichter-12V-230V

Ein Sinusgenerator mit AVR-Timer

Sourcecode: Datei:Source Sinuswandler.zip

Schaltplan: Datei:Eagle Sinuswandler.zip

Sinuswechselrichter1.png

Sinuswechselrichter2.png


Link für Nachricht an den Autor: Andreas Richter