Frequenzumrichter mit Raumzeigermodulation

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

von Axel Jeromin


FU WR und Steuerung.jpg

Die FETs befinden sich auf der Unterseite der Platine, so ließ sich der Kühlkörper leicher montieren. Trotz der waagerechten Ausrichtung der Kühlrippen wird der Kühlkörper nach 30 min Betrieb nur ca. 40° C warm.


Achtung Fehlerteufel in: void initial(void) im Programm WR88rzm3.c

DDRB = 0x2b; // PortB2 ist ein Eingang der Rest sind Ausgänge

Achtung: Hier stand fälschlicherweise DDRB = 0x1b !!!! geändert am 14.03.2010

Danke an Uwe Scholz für den Hinweis. Der Fehler war mir nicht aufgefallen, weil ich in meiner Schaltung den Ausgang B5 am Mega88 mit einer Messspitze gekillt hatte und per Drahtbrücke den Ausgang B1 benutzt habe. War leider zu geizig den Controller zu wechseln.

Noch ein Hinweis von Uwe: Im Programm für den Mega32 muss die Reihenfolge der Intialisierung des LCD und des übrigen Controllers gedreht werden. Das heißt zuerst die Ports und dann das LCD initialisieren. Sonst hängen die Ausgänge während der langen Wartezeiten zur Initialisierung des LCD undefiniert in der Luft. Nochmal Danke an Uwe.

Einleitung

Ein Frequenzumrichter ist ein Gerät zur Veränderung der Drehzahl eines Drehstrom Asynchronmotors. Die Drehzahl eines Drehstrom Asynchronmotors ist nur von der Frequenz der angelegten Spannung abhängig. Eine Verringerung der Netzspannung bei konstanter Frequenz über einen Trafo oder Vorwiderstände verändert durch den zunehmen Schlupf irgendwann auch die Drehzahl, das Ganze ist dann aber stark lastabhängig und somit unbrauchbar. Diese Methode wurde mal vor sehr vielen Jahren für einen Sanftanlauf genutzt. Ebenfall vor vielen Jahren nutzte man zur Frequenzänderung einen Umformer bestehend aus einem Gleichstrommotor und einem Drehstromgenerator. (Hier und Dort auch Heute noch im Einsatz, z. B. Walzwerk).

Heute wird die Netzspannung gleichgerichtet, geglättet und eine Leistungselektronik erzeugt dann die dreiphasige Wechselspannung mit variabler Frequenz und Spannung.

Die nachfolgend beschriebene Schaltung war zuerst für den Einsatz in einem Eigenbau Elektroauto gedacht. Da Drehstrommotoren wesentlich häufiger in Gebrauchtmarkt anzutreffen sind, sind diese auch günstiger als Gleichstrommotoren. Der Gedanke war, einen vorhandenen Motor anders zu verschalten oder neu zu wickeln, sodass dieser an einer geringeren Spannung betrieben werden kann.

Die Schaltung eignet sich für DC-Spannungen von 30V bis 325V. Mit 30V kann z. B. ein Motor einer Festplatte betrieben werden (dies war mein Testmotor, bevor es an die höheren Spannungen ging) und 325V für einen 230/400V Motor in Dreieckschaltung. Natürlich kann man so ein Gerät mittlerweile für kleines Geld fertig kaufen, aber bei nicht gebräuchlichen Spannungen (Elektroauto) oder ungewöhnlichen Anwendungen ist man mit einem Selbstbau flexibler.


Achtung: die Schaltung ist potentialbehaftet. D.h das Massepotentional der Steuerspannung liegt bei Betrieb mit 230V auf ca. 127V gegen Erde! Daher ist bei Progammmodifikationen die Schaltung unbedingt von Netz zu trennen und aus einer Batterie zu speisen.

Allgemeines

Ein moderner Frequenzumrichter besitzt in der Regel einen Gleichrichter, einen Zwischenkreis und einen Wechselrichter. Davor kommt noch ein Filter zur Verminderung von Störungen zurück in das einspeisende Netz. Der Gleichrichter soll die angelegte Wechselspannung gleichrichten. Die erzeugte pulsierende Gleichspannung ist bei einer 2 phasigen Einspeisung mit 230V ==> UDC = 230V * Wurzel 2 = 325V.

Der Zwischenkreis glättet und puffert die Gleichspannung. Er besteht aus einem oder mehreren Glättungskondensatoren. Bei Spezialanwendungen wie z. B. einem Elektroauto wird auf die Einspeisung verzichtet und der Zwischenkreis direkt an die Akkus angeschlossen.

Der Wechselrichter besteht aus drei Halbbrücken. Jede Halbbrücke hat zwei Mos-Fet Transistoren. Je nachdem welcher FET der Halbbrücke leitet, liegt der Brückenabgriff an Plus oder Minus. Sind beide Transistoren leitend, gibt es einen prima Kurzschluss, den es zu vermeiden gilt.

Hardware

Einspeisung und Bremschopper

Die Einspeisung besteht aus: den Eingangsklemmen, dem Filter, dem Gleichrichter und dem ersten Zwischenkreiskondensator. Im Eingangskreis ist ein Ladewiderstand, welcher mittels eines Relais überbrückt werden kann. Das Relais wird ab einer eingestellten Zwischenkreisspannung vom Tiny45 geschaltet, um die Kondensatoren zuerst über den Widerstand langsam zu laden. Anmerkung zu den Kondensatoren: sie müssen ausreichend spannungsfest sein (>400V aushalten). 450V Typen dürften reichen. Kondensatoren, die geeignet sind finden sich z. B. in Schaltnetzteilen. eBay hat auch öfters welche. Die Kapazität ist abhängig von der Last. Hier wurden insgesamt 2000µF verwendet.

C11, C12 und die Drossel sind ein Filter um Störungen zurück ins Netz zu minimieren. Laut Wikipedia sind gute Werte: C11=100nF, C12=4,4nF und eine 1:1 Drossel mit 1 mH pro Spule.

Arbeitet der Motor generatorisch, d.h. die Motordrehzahl ist größer als der Umrichtersollwert, wird Energie in den Zwischenkreis gespeist. Da die Energie nicht durch den Einspeisegleichrichter zurück ins Netz gelangen kann, steigt in diesen Fall die Zwischenkreisspannung. Die Zwischenkreisspannung muss daher überwacht werden, ab einem bestimmten Wert wird ein sogenannter Bremswiderstand eingeschaltet, in welchen die überschüssige Energie in Wärme umgewandelt wird.

Der Bremschopper FET wird vom Low-Side Teil eines IR2101 getrieben. Als Bremswiderstand nutze ich eine Glühlampe.

Von einem Tiny45 wird die Zwischenkreisspannung gemessen. Ist die Spannung grösser 243V und kleiner 408V wird die Meldung “Zwischenkreis OK” herausgegeben. Ab einer Spannung von 243V wird das Relais zur Überbrückung des Ladewiderstands geschaltet. Ab 375V wird der Bremswiderstand gepulst. 375V entspricht 0% PWM, 400V entspricht 100% PWM. Die PWM Frequenz ist 150Hz. Zum Messen der Zwischenkreisspannung wurde ein Spannungsteiler mit 3 Widerständen je 270k (3 Stk. zur Erhöhung der Spannungsfestigkeit) und einem Poti zum justieren gearbeitet. Das Poti hat 10K, dadurch kann die Spannung am Analogeingang nicht so hoch werden.

Bremschopper 3.png

Die Schaltung ist für eine 2 phasige Einspeisung mit 230V gedacht. Bei anderen Eingangsspannungen muss die Erzeugung der Steuerspannung von der Gleichrichtung getrennt werden. Die 15V und 5V können dann über ein Steckernetzteil oder DC/DC Wandler gewonnen werden.

Leistungsteil

Der Leistungsteil besteht im Wesentlichen aus drei Halbbrücken. Jeweils zwei FET´s in einer Halbbrücke werden von einem IR2109 getrieben, welcher wieder direkt durch den Atmel Mega 88 auf der Steuerungsplatine angesteuert wird. Der IR 2109 steuert immer in Abhängigkeit vom Eingang “IN” entweder den High side- oder den Low side FET durch. Zwischen dem Wechsel liegt immer eine Totzeit von 540ns. Dadurch ist der Programmierer von der Kurzschlussproblematik befreit.

In den Halbbrücken sind auch auf der High-Side N-Kanal Fet´s eingesetzt. Diese haben den Vorteil, dass sie günstiger und leistungsfähiger gegenüber P-Kanal Fet´s sind. „Problematisch“ ist an ihnen jedoch, dass ihre Gatespannung oberhalb der Zwischenkreisspannung liegen muss. Zur Erzeugung dieser Spannung wird bei jedem Schalten des Low side FET über eine Diode ein Kondensator geladen, aus welchem die Spannungsversorgung zur Ansteuerung des High side FET gewonnen wird. Low und Highside werden über eine Periode der Ausgangsspannung gleich oft geschaltet, so kann der sogenannte Bootstrap Kondensator immer nachgeladen werden. ( Bootstrap ist lt. Wikipedia: englisch für Stiefelschlaufe, sinngemäß: sich an den eigenen Stiefeln [aus dem Sumpf] herausziehen )

Der Ausgangsstrom ist natürlich von den eingesetzten Leistungsschaltern abhängig. Die Schaltung ist mit IRPF 460 (500V Rds< 0.27Ω 18.4A) bestückt. Da jeder Transistor durch die Ansteuerung mit Raumzeigermodulation über eine Sinusschwingung zu 50% eingeschaltet ist, kommt man an einen theoretischen Ausgangsstrom von 36,8A. Mit einigen Sicherheitsfaktoren sollten 5-10A Dauerphasenstrom möglich sein, getestet habe ich aber nur mit einem 500W Drehstromgebläse. Die Platine ist zusätzlich mit Lack isoliert, in sauberer Umgebung reicht der Leiterbahnabstand auch so, aber bei etwas Luftfeuchte ist Lack besser als ein Loch in der Platine.

Leistungshalbleiter: In der Schaltung sind zwei Satz FET´s parallel geschaltet. Der zweite Satz braucht nur bei größerem Strombedarf bestückt werden. Die FET´s werden nach der Zwischenkreisspannung und dem Ausgangestrom ausgewählt. Bei 325V sind IRFP460 eine gute Wahl. Im Schaltplan sind unterschiedliche Mos-Fet´s angegeben, es sollten aber alle gleich sein. Die Leiterbahnen müssen evtl. durch Auflöten von Kupferdraht verstärkt werden. Reines Verzinnen bringt durch den relativ hohen spez. Widerstand von Zinn nicht so viel.


FU Wechselrichter.PNG

Steuerung

Die Ansteuerung des Leistungskreis wird mittels Software-PWM realisiert. Zu einer präzisen Bildung der notwendigen Steuersignale ist eine kurze Programmlaufzeit notwendig. Eine LCD Ausgabe oder das Einlesen von Analogwerten sprengt den möglichen Rahmen. Daher ist die Steuerung auf zwei Prozessoren aufgeteilt.

Ein Mega 88 @20Mhz steuert die Halbbrücken. Er erhält den Frequenz- und Motorspannungssollwert über parallele Eingänge von einem Mega32. Dadurch konnte das Programm und damit auch die Zykluszeit kurz gehalten werden (12,15µs im Hauptprogramm).

Der Mega 32 ist der gemütliche Verwalter. Er liest den analogen Sollwert, Ist-Zwischenkreisspannung, Ist-Zwischenkreisstrom , Ist-Drehzahl ein und stellt die Werte auf dem LCD dar.

Der analoge Sollwert ändert sich durch die Rampe des Hoch- und Rücklaufgebers entsprechend langsam, sodass Sollwertsprünge und damit Stromspitzen z. B. beim Motoranlauf vermieden werden. Zur Zeit ist eine Rampe von 2 Sekunden für eine Änderung von 0 auf 50 Hz eingestellt. Der Wert kann im Programm angepasst werden.

Die Ist-Drehzahlerfassung soll mit einem Hallgeber und einem Magneten an der Motorachse realisiert werden. Dieser Programmteil ist aber noch nicht getestet. Ein Drehzahl von 3000U/min ergibt 50U/sec, dies sollte sich über einen normalen Portpin erfassen lassen.

Der Ist-Strom wird nur im Zwischenkreis gemessen. Ein OP verstärkt den Spannungsabfall über einen Shunt. Durch die Zwischenkreiskondensatoren ist der Strom hier einigermaßen glatt und lässt sich mit dem Analogeingang messen. Eine Messung der Phasenstromes hab ich nicht mehr auf der Platine unterbekommen und müsste extern erfolgen.

Verbindung Steuerung Leistungsteil

Auf der Steuerungsplatinne liegen auf dem Wannenstecker PL2, der auch für die Programmierung genutzt werden kann die folgenden Portpins:

Pin 1 am Stecker --> PB3 --> in1 auf dem Leistungsteil

Pin 9 am Stecker --> PB4 --> in3 auf dem Leistungsteil

Pin 7 am Stecker --> PB5 --> in2 auf dem Leistungsteil


Pin 3 am Stecker --> PD7 --> SD 1 bis 3 auf dem Leistungsteil (mit Brücken weiter verbinden)


In dem Wannenstecker ist eine Buchse mit einem Flachbandkabel. Das Kabel ist aufgetrennt und die notwendigen vier Leitungen sind mit den Anschlüssen auf dem Leistungsteil verlötet. Die anderen Adern sind isoliert.

FU Steuerung Anschluss.PNG


Achtung: mittels Flachbandkabel keine weiteren Masserverbindungen zwischen Steuerung und Leistungsteil herstellen, da sonst eine Masseschleife entsteht und größere Ströme über die dünne Leitung fließen könnten.

Verbindung Steuerung LCD

In dem Wannenstecker LCD Port ist eine Buchse mit einem Flachbandkabel. Das Flachbandkabel ist wie folgt mit dem LCD verbunden:


PORT B 0 => LCD PORT 1 => Pin am Display 11 => DB4

PORT B 1 => LCD PORT 2 => Pin am Display 12 => DB5

PORT B 2 => LCD PORT 3 => Pin am Display 13 => DB6

PORT B 3 => LCD PORT 4 => Pin am Display 14 => DB7

PORT B 4 => LCD PORT 5 => Pin am Display 4 => RS

PORT B 5 => LCD PORT 6 => Pin am Display 6 => E

Siehe auch : AVR-Tutorial: LCD

Steuerprogramm

Da der IR 2109 immer den High oder Low Side FET ansteuert, sind immer drei der sechs FET´s des Leistungsteils leitend. Es ergeben sich die folgenden Ausgangsmuster, wobei z. B. 001 bedeutet, dass den Halbbrücken 1 und 2 der Low Side FET und in der Halbbrücke 3 der High Side FET leitet. Je nach Motorschaltung (Stern oder Dreieck) ergeben sich unterschiedliche Spannungen an den Motorwicklungen u , v und w.

Stern Dreieck
u v w u v w
Muster 1 001 -1/3 Udc -1/3 Udc +2/3 Udc 0 V - Udc + Udc
Muster 2 011 -2/3 Udc +1/3 Udc +1/3 Udc - Udc 0 V + Udc
Muster 3 010 -1/3 Udc +2/3 Udc -1/3 Udc - Udc + Udc 0 V
Muster 4 110 +1/3 Udc +1/3 Udc -2/3 Udc 0 V + Udc - Udc
Muster 5 100 +2/3 Udc -1/3 Udc -1/3 Udc + Udc 0 V - Udc
Muster 6 101 +1/3 Udc -2/3 Udc +1/3 Udc + Udc -Udc 0 V



FU Motorspannungen.PNG

Im obigen Bild sind die geschalteten Ventile zur Vereinfachung weggelassen. Durch die Parallelschaltung von jeweils zwei Motorwicklungen in der Sternschaltung teilt sich die Zwischenkreisspannung im Verhältnis 1/3 zu 2/3 auf. Bei der Dreiecksschaltung wird jeweils eine Wicklung kurzgeschlossen, die Spannung ist hier 0 Volt.


Werden die Ausgangsmuster der Reihe nach ausgegeben, so wird der Rotor des angeschlossenen Motors seine Lage um jeweils 60 Grad verändern. Man spricht von den sechs Spannungsvektoren oder Raumzeigern. Hinzu kommen noch die Muster 000 und 111 bei welchen die Motorspannung 0V ist, da alle Wicklungen an + Udc oder - Udc hängen (Nullspannungsvektor). Gibt man nun die Ausgangsmuster 1 bis 6 mit der entsprechenden Frequenz heraus, bekommt man eine Drehbewegung des Motors hin. Der Lauf des Motors ist aber ruckelig und der Motor erwärmt sich, da durch das Schalten der Rechtecke eine Menge Blindstrom im Motor unterwegs ist.

Raumzeigermodulation

Für einen runden Lauf des Motors und natürlich zur Minimierung der Verluste, muss der Motorstrom möglichst sinusförmig sein. Eine Ansteuerung durch eine analoge Verstärkerschaltung würde immense Verlustleistung hervorrufen. Daher kommt nur eine Realisierung mittels PWM in Frage.

Pulsfrequenz

Die Höhe der PWM Frequenz ist immer ein Spagat zwischen Schaltverlusten und einer sauberen Nachbildung des Sinus. Je höher die Pulsfrequenz umso besser wird der Sinus getroffen, aber die Schaltverluste in den Leistungshalbleitern steigen ebenfalls. Bei Profigeräten sind Pulsfrequenzen zwischen 4KHz und 16 KHz üblich.

Realisiert ist in meinem Projekt eine Software PWM. In der Interrupt-Routine von Timer1 werden die Ausgänge entsprechend gesetzt. Durch die Normierung der nachfolgend erläuterten Tabelle mit den Sinuswerten, der Normierung der Spannungssollwerte und dem Prescaler (TCCR1B=2; // use CLK/8 prescale value, entspricht 0,4 µsec bei 20 MHz) kann die Pulsfrequenz verändert bzw erhöht werden. Dies habe ich aber noch nicht getestet. Für Ausgangsfrequenzen bis 50 Hz sind die 2,5Khz ganz OK. (Siehe Stromverlauf weiter unten)


Die Ausgabe wird in meinem Programm in 400µs lange Stücke geteilt. => Pulsfrequenz = 2,5KHz. Die Auflösung durch den Timer 1 ist 1000 Schritte (1000*0,4µs = 400µs).

Modulation

Die Raumzeigermodulation beruht auf folgenden Voraussetzungen:

1) Durch den Halbbrückentreiber ist immer einer der beiden FET´s einer Halbbrücke leitend. (Totzeit vernachlässigt)

2) Gemäß der obigen Tabelle ergibt sich zum Beispiel bei einem im Stern geschaltetem Motor und einem Ausgangsmuster von 001 eine statische Spannung von -1/3 Udc in der Wicklung u des Motors (-1/3 Udc in v und +2/3 Udc in w). Bei dem Muster 011 eine Spannung von -2/3Udc in u, +1/3 Udc in v und +1/3 Udc in w .

3) Gibt man die beiden Muster abwechselnd aus, so ergibt sich in der Motorwicklung ein Mittelwert aus den beiden Spannungen. Vorausgesetzt man macht es schnell genug, so dass die Induktivität der Motorwicklung den Strom glättet.

4) Je nach zeitlichem Anteil der beiden Schaltzustände kann die Spannung im Verhältnis zu den beiden Zeitanteilen variiert werden. Wird z. B. das Muster 001 zu 25% der Zeit und das Muster 011 zu 75% der Zeit ausgegeben so ist die Spannung in der Wicklung u: (0,25*-1/3Udc + 0,75*-2/3Udc)/2 = -0,58Udc

5) Der zeitliche Verlauf der Ausgangsspannung wird in gleich lange Blöcke, entsprechend der Pulsfrequenz aufgeteilt. In hier beschriebenen Programm sind dies 400µs. (siehe Pulsfrequenz)

6) In jedem dieser Blöcke werden vier unterschiedliche Ausgangsmuster mit meist unterschiedlichen Zeitanteilen ausgegeben. Die Zeitanteile der Muster heißen: To, Ta, Te und To. Die Berechnung der Zeitanteile wird nachfolgend beschrieben.

Für einen sinusförmigen Verlauf der Ausgangsspannung werden die Zeitanteile der beiden jeweiligen Ausgangsmuster in Verhältnis zu Sinus des Umlaufwinkels bewertet.

Durch die 6 Raumzeiger ist die Periode einer kompletten Sinusschwingung (und damit auch eine gesamte Motorumdrehung) in 6 Sektoren von jeweils 60 Grad Länge geteilt. Jeder Sektor hat eine Anfangsvektor und einen Endvektor mit dem entsprechenden Ausgangsmuster. Je nach dem Wert des Umlaufwinkels Omega wird der Anfangsvektor oder der Endvektor länger, bzw. kürzer eingeschaltet. Durch die Induktivität des Motors bildet sich ein Mittelwert der Spannung in der jeweiligen Motorwicklung proportional zu den Einschaltzeiten. Im Programm läuft ein Zähler für Omega von 0 bis 59, dann wird der Sektorzähler erhöht und der Omega Zähler auf 0 gesetzt.

Ta = Zeit Anfangsvektor = proportional zu: sin (60-omega)

Te = Zeit Endvektor = proportional zu: sin (omega)

Da jedes Ausgangsmuster alle drei Wicklungen beeinflusst, braucht zur Erzeugung der benötigten Spannungen nur eine Berechnung der Schaltzeiten für alle drei Wicklungen stattfinden. Die Spannung in den anderen beiden Wicklungen ändern sich genauso.

Da der induktive Widerstand der Motorwicklungen frequenzabhängig ist, muss die Motorspannung umgekehrt proportional zur Frequenz verändert werden. Dies wird durch Verkleinerung der Einschaltdauer der spannungsführenden Vektoren und Ausgabe eines Nullspannungsvektors (Muster 000 oder 111) erreicht.

Ta = Zeit Anfangsvektor = proportional zu: sin (60-omega)* Motorspannung in %

Te = Zeit Endvektor = proportional zu: sin (omega)* Motorspannung in %

To = Zeit Nullspannungsvektor = Pulsperiode-(Zeit Anfangsvektor + Zeit Endvektor)

Für eine bessere Symmetrie wird To halbiert und jeweils vor und nach den Spannungsvektoren ausgegeben. Die Nullspannung kann mit dem Muster 000 oder 111 erreicht werden. Zur Minimierung der Schaltverluste in den FET´s wird das Nullspannungsmuster gewählt, bei welchem nur eine Halbbrücke umgeschaltet werden muss. Die Schaltvorgänge werden ebenfalls minimiert, wenn in zwei aufeinander folgenden Pulsperioden die Muster in umgekehrter Reihenfolge ausgegeben werden. Der Mittelwert der erzeugten Spannung wird hierdurch nicht verändert.

Nullspannungsvektor Anfangsvektor Endvektor Nullspannungsvektor Nullspannungsvektor Endvektor Anfangsvektor Nullspannungsvektor
000 010 110 111 111 110 010 000

Werden anstelle eines Motors drei im Dreieck geschaltete Widerstände angeschlossen erhält man folgenden Spannungsverlauf:

FU Spannung an ohmschen Widerstand.jpg

Es ist zu erkennen, wie der Anteil der positiven Spannungsanteile mit jeder Pulsperiode (0,4ms oder 2 Einheiten lang) zunimmt.

Programm für Atmel Mega 32

Der Prozessor bekommt über 8 Eingänge (analog oder digital) die Steuerbefehle und gibt über parallele Ausgänge die Steuerbefehle an den Mega88 für die Raumzeigermodulation. Angesteuert wird auch ein LCD zur Anzeige vom Ist-Spannung, Ist-Strom, Ist-Drehzahl und Sollwerten.

Da sich die Ausgangssignale nur relativ langsam ändern, wird der Prozessor mit 1Mhz internem Oszillator betrieben

Timerinterrupts Timer 0 = Hoch- und Rücklaufgeber. Sollwertintegraton, damit bei Sollwertsprüngen die Motordrehzahl langsam geändert wird. Der Eingangssollwert sollvh wird intergriert zum vorzeichenbehafteten Sollwert sollnh

Hauptprogrammablauf: Einlesen des Sollwerts sollvh, Bildung des absoluten Sollwerts sollabs, Bildung des Richtungssignals und Bildung des Freigabesignals.

Einlesen von Ist-Spannung, Ist-Strom, und analogen Sollwerten.

Ausgaben an des LCD

Messung der Ist-Drehzahl

Und wieder nach oben in der Endlosschleife

Programm für Atmel Mega 88

Der Prozessor bekommt den Frequenzsollwert, den Spannungssollwert, die Drehrichtung und das Freigabesignal über parallele Eingänge übermittelt. Angesteuert werden die drei Halbbrücken (IN), die Freigabeeingänge der Brückentreiber (SD) über einen gemeinsamen Ausgang und zwei LED`s. Hochgezählt wird im Programm der Zeiger für den aktuellen Stand der Sinusschwingung am Ausgang (Omega), aufgeteilt in 6 Sektoren. Daraus berechnet werden die Einschaltzeiten der Halbbrücken für jeweils zwei PWM-Perioden (Pulsperioden, zur Unterscheidung von der Periode der Ausgangsspannung).

Timerinterrupts

Timer 1 = Ausgabe der Ausgangsmuster.

Die Timerwerte werden im Hauptprogramm berechnet und in drei Arrays abgelegt (pzh[8]; pzl[8]; pm[8]).

Es wird der „pulszykluszaehler“ für die Ausgabe des gewünschten Ausgangsmusters über die dazugehörige Zeit von 0 bis 7 hochgezählt. 7 entspricht dem Ende der zweiten Pulsperiode.

Pulszykluszaehler 0 ==> Nullspannungsvektor

Pulszykluszaehler 1 ==> Anfangsvektor

Pulszykluszaehler 2 ==> Endvektor

Pulszykluszaehler 3 ==> Nullspannungsvektor

Pulszykluszaehler 4 ==> Nullspannungsvektor

Pulszykluszaehler 5 ==> Endvektor

Pulszykluszaehler 6 ==> Anfangsvektor

Pulszykluszaehler 7 ==> Nullspannungsvektor


Timer 0 = Zähler für dem Umlaufwinkel und für den aktuellen Sektor. Die Timerwerte sind in einer Tabelle gespeichert und werden im Abhängigkeit vom Sollwert sollabs an den Timer gegeben Es wird omega bis 59 und sektor bis 6 hochgezählt.

Hauptprogrammablauf: Einlesen des Sollwerts sollabs, der Ausgangsspannung spg, des Richtungssignals richtung und des Freigabesignals enable Laden der Timerwerte aus der Tabelle fbwfl[sollabs] für den Timer 0 zum Zählen von Omega und den Sektoren Zwischenspeicherung von Omega und Sektor, damit während der Berechnungen mit den gleichen Werten gerechnet wird. Berechnung der Timerwerte für Timer 1: Ta, Te, To gemäss Raumzeigermodulation mit den dazugehörigen Ausgangsmustern. Die Werte für Sinus Omega 0 bis 59 sind in der Tabelle sin[omega] gespeichert, die Werte für Sinus (60-omega) in der Tabelle sinkomp[omega].

Ta= (sinkomp[omega]*spannung[sollabs]);

Te= (sin[omega]*spannung[sollabs]);

To= ((1000-(Ta+Te))/2);

Speicherung der Ausgangsmuster und Timerwerte für zwei Pulsperioden

Und wieder nach oben in der Endlosschleife

Funktionstest

Spannung an ohmschen Widerstand

Es wurde eine Zwischenkreisspannung von ca. 24V angelegt. Am Ausgang des FU werden drei Widerstände 470Ω im Stern geschaltet. Die Spannung wird über einen Widerstand gegen den Sternpunkt der Widerstände gemessen.

Je nach dem aktuellen Sektor sehen die Spanungsverläufe so oder invers aus.

FU Spannug an ohmschen Widerstand P1020274a .jpg


FU Spannug an ohmschen Widerstand P1020265a .jpg



Motorstrom

Hier das Ergebnis aller Bemühungen:

FU Motorstrom 30Hz.jpg

Motorstrom in einem angeschossenen Drehstrommotor über einen Shunt gemessen bei 30Hz Ausgangsfrequenz.


FU Testkandidaten.jpg

Hier die Testkandidaten, die alle thermischen Misshandlungen ausgehalten haben.

Downloads

Verluste

3 Stück IR2109 , 1 Stück Mega 8 , 1 Stück Mega 88 , 4 Stück IRFP150 verstarben in treuer Pflichterfüllung durch Unachtsamkeiten des Benutzers


Umrichter von Uwe Scholz

Steuerung und Bremsschopper sind weitgehend gleich geblieben, nur im Dickstromteil gab es größere Änderungen. Der mußte auch zweiseitig werden, da Drahtbrücken unter dem Kühlkörper nicht gegangen wären.

Der Trafo ist auch eine Numer größer, 0,5W war mir gefühlsmäßig etwas zu wenig. Falls ich noch einen bauen sollte, dann würde ich aber schon wieder ein paar Sachen anders machen;-)

FU Uwe Scholz 1.jpg

FU Uwe Scholz 2.jpg

FU Uwe Scholz 3.jpg

FU Uwe Scholz 4.jpg


Umrichter von Patrick Leube

Die Steuerung wurde mit zwei Atmega 88 realisiert. Die Sechspuls-Brückenschaltung ist etwas abgespeckt worden. Da dieser Umrichter für Akkupacks von 36V-60V ausgelegt wurde musste noch ein "Netzteil" gebastelt werden das 15V und 5V generiert. Die Bedienung erfolgt über Taster für Sollwertvorgabe +/- RUN / STOP. Als LCD kam ein 4*20 zum Einsatz.

Verluste: 1* LT1074HV = 12€

Da dieses Projekt mein erstes wirkliches Projekt mit µC und Elektronik im tieferen Sinne war möchte mich an dieser stelle auch nochmal bei Axel für seine Unterstützung bedanken.

FU Patrick 1.jpg

FU Patrick 2.jpg