Forum: Mikrocontroller und Digitale Elektronik selbstgebauter Drehstrom-Frequenzumrichter


von Stefan Wenning (Gast)


Angehängte Dateien:

Lesenswert?

Hallo erst einmal!

Grundlagen:

also ich baue zur Zeit ein Drehstrom-Frequenzumrichter. Ich realisiere 
das, in dem ich 3 H-Brücken gebaut habe wobei die eingesetzten Mosfets 
mit ICs angesteuert werden. Die ICs steuer ich mit dem Atmega8 an und 
dazwischen hängt eine Logik die verhindert das beide ICs angesteuert 
werden und es somit einen kurzschlussgeben würde. Desweiteren sorgt die 
Logik für die positive oder negative Halbwelle der später entstandenen 
SInuskurve somit wäre IC1 zb. für die positive Halbwelle und IC2 in der 
H-Brücke wäre wür die negative Halbwelle.

Das Programm:

Das Programm erzeugt über PWM 3 verschiedene SInussignale. Die initpwm 
Phase dient praktisch nur als Verzögerung und comp dient dazu die 
Halbwellenumkehr zu realisieren. Hoffe die Kommentare an dem Programm 
helfen euch es zu verstehen.

Das Problem:

Mein Problem ist jetzt, dass es theoretisch ganz gut aussieht das 
Programm und auch die PWM soweit ganz gute Signale liefert. Einzige 
Problem ist die Halbwellenumkehr scheint nicht richtig zu funktionieren! 
Sie sollte eigentlich im Nullpunkt der Sinuswelle immer von negativer 
zur positiven Halbwelle umschalten und umgedreht! Allerdings wenn ich 
das Programm an meine H-Brücken anschließe dann realisiert sich die 
Halbwellenumkehrung im falschen Augenblick. D.h. wenn die Amplitude z.b. 
24V ist dann springt die SInuskurve einfach mittendrin z.B. bei 14V 
schon zu der negativen Halbwelle (oder umgekehrt) allerdings weiß ich 
nicht wieso das so ist? VIelleicht kann sich ein begahbter Programmierer 
das ma angucken da ich selbst Assembler mir erst vor 6 Wochen selber 
beigebracht habe und somit nicht so erfahren bin und vielleicht einen 
Fehler übersehen habe!!!


Freue mich auf zahlreiche Antworten!!! :):)

mfg.
Stefan

von Ernestus P. (malzeit) Benutzerseite


Lesenswert?

Dein Programm habe ich noch nicht ganz verstanden. Aufgefallen sind mir 
diei unsymmetrische Entscheidungsschwellen in der Funktion "pwm". Warum 
machst du das am Ende der zweiten Halbwelle um einen Zählerstand 
verschoben?

cpi t3, 127 => b0111 1111


cp1 t3, 254 => b1111 1110

Nach Möglichkeit gib auch einen Schaltplan und ein Oszillogramm an. Vor 
allem die Richtungsbits versteh ich nicht ganz.

von Stefan Wenning (Gast)


Angehängte Dateien:

Lesenswert?

Weiß nicht ob du das meinst, aber die 3 unterschiedlichen t's sind 3 
Zeiger die anhand des Prinzips des Phasenakkumulators funktionieren und 
diese Zeiger werden immer am Ende um einen Wert erhöhrt um den nächsten 
Wert der Sinustabelle einzulesen (es sind deshalb 3 Zeiger, weil ja 3 
Sinuskurven entstehen sollen, sie haben deshalb unterschiedliche Werte, 
weil sie ja 120° Phasenverschoben sein sollen. Und nur wenn die Zeiger 
den Wert 127 oder 254 erreichen (Nulldurchlauf) soll eine 
Halbwellenumkehr vonstatten gehen, ansonsten soll das Programm nur den 
Zeiger erhöhen und den PWM Wert ausgeben und weiter machen.

Die Richtungsbits sind (wenn ichs richtig versteh welche du meinst) die 
Bits die den Startwert der Halbwellen angeben (ob nun am Anfang eine 
positive oder negative Halbwelle der jeweiligen Sinuskurve sein soll), 
die ersten beiden Sinuskurven beginnen bei einer positiven Halbwelle und 
die 3. Sinuskurve beginnt bei einer negativen Halbwelle (siehe 
Dreiphasen-Wechselstrom).

Hoffe damit konnte ich dir weiterhelfen!

Schaltplan meiner H-Brücke füge ich hinzu!

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


Lesenswert?

Ernestus Pastell schrieb:
> Dein Programm habe ich noch nicht ganz verstanden.
Das ist auch sehr unübersichtlich. So über zig Bilder verteilt...
Poste die Software doch nochmal als Dateianhang mit Endung .asm, dann 
hat die Foren-SW die Möglichkeit zum Syntax-Higligthen...

von Ernestus P. (malzeit) Benutzerseite


Lesenswert?

So jetzt hab ich glaub ich verstanden. Dann sollte folgendes dein 
Problem lösen

Deine Sinustabelle müsste mit 0x00 [beginnen] eine positive Halbwelle 
(Amplitude 0xff) bis zum Element 127 durchführen. Ab Elemente 128 kommt 
wieder eine positive Halbwelle, da deine "Richtung1/2/3"-Bits ja das 
Vorzeichen machen. Die Sinustabelle enthält quasi den Betrag vom Sinus 
und das Vorzeichen machst du aus per Assembler und gibst es mit den 
Richtungs-Bits aus.

EDIT: Ein Wort versemmelt

von Ernestus P. (malzeit) Benutzerseite


Lesenswert?

Für heut leg ich mich aufs Ohr. Weiter Antworten von mir gibts morgen.

von Info (Gast)


Lesenswert?

Wie bist du auf die Idee gekommen, deinen Quelltext in neun 
Grafikdateien zerstückelt anzuhängen?

von Stefan Wenning (Gast)


Angehängte Dateien:

Lesenswert?

und wo wäre da der Fehler in meinem Programm ??

ja die Richtungsbits für die aktuelle Richtung wird an drei 
unterschiedliche Pins ausgegeben und jeder Pin ist für jeweils eine 
H-Brücke zuständig. Die Pins gehen über eine Logik direkt an die ICs und 
steuern diese somit (siehe Schaltplan dort ist die Logik mit zuständiger 
H-Brücke drauf und dies kann man mal 3 nehmen da es 3 H-Brücken sind). 
Heißt wenn der 1. IC angesteuert wird, dann ist das die positive 
Halbwelle der Sinuskurve und wenn der 2. IC angesteuert wird dann ist 
das die negative Halbwelle der Sinuskurve.

Füge euch die .asm datei hinzu!!

von Stefan Wenning (Gast)


Lesenswert?

ähm hatte das schon ma in eine Hausarbeit von mir eingefügt und wusste 
nicht wie ich das als komplettes einfügen kann und somit habe ich 
screenshots gemacht :P xD
und dachte halt kann ich so ganz gut euch zeigen wie mein Programm 
aussieht^^


Wäre gut wenn ihr mir alles gut und genau erklären könnt falls ihr 
meinen Fehler findet, da ich wie gesagt mir das Programmieren selber bei 
grebracht habe und das vor 6 wochen und habe vorher auch noch nie 
irgendeine andere Programmiersprache gekonnt also bin relativ unerfahren 
:(

von Stas (Gast)


Lesenswert?

Hallo Stefan!

Soweit ich weiss braucht man für einen 3-Phasenumrichter eine B6-Brücke 
bzw. in deinem Fall 1,5 H-Brücken. Jede Phase wird dann zwischen zwei 
Schaltern abgegriffen. Die Mosfets brauchen dann noch jeweils eine 
Freilaufdiode.

Wäre es nicht besser komplette Sinustabelle abzulegen. Dann muss du dich 
nicht mit der Bestimmung der positiven bzw. negativen Halbwelle 
beschäftigen.

von Stefan Wenning (Gast)


Lesenswert?

ja also ich habe auch schon H-Brücken gesehen mit 6 Mosfets! Allerdings 
habe ich das so realisiert, dass ich 3 H-Brücken à 4 Mosfets habe und 
somit je eine H-Brücke für eine Sinuskurve. Das Prinzip beruht auf einer 
Gleichstrommotoransteuerung mittels H-Brücke die ich im Internet fand 
und ich habe dies jetzt abgewandelt und mit einem Programm usw. 
versehen.

Wenn ich eine komplette Sinuskurve so wie du das meinst ablegen würde, 
dann würde das in dem Fall nix bringen, da ich ja mit den Sinuswerten 
nur beeinflusse wie lange der Mosfet öffnet bzw. schließt und die 
Spannung für den Motor kommt ja von einer anderen Spannungsversorgung, 
also könnte ich nicht einfach negative Werte in die Sinustabelle 
einfügen (weiß auch gar nicht ob der µc negative Werte überhaupt kann ( 
ich denke nämlich nicht)). Die negative/positive Halbwelle kommt durch 
die Umpolung des Motors (bzw. seiner Spule an der H-Brücke) zustande, 
d.h. wenn ich z.b. die negative Halbwelle haben will, dann steuer ich 
den 2. IC an, so dass dieser den Mosfet am HO Ausgang öffnen während der 
1. IC den MOsfet am LO Ausgang öffnet (siehe Schaltplan (H-Brücke1)und 
somit nun ein umgekehrter Stromfluss über den Motor zustande kommt und 
somit sich die Spannung am Motor genauso umpolt und eine negative 
Halbwelle zur Folge hat.

von Thomas S. (tsalzer)


Lesenswert?

Für Drehstrom brauchst Du 3 Stück Halb-Brücken!

Nich zu verwechseln mit H-Brücken. Die heißen so, weil sie die Form 
eines H wie Heinrich haben (Wie die H-Schaltung in Deinem Auto). Die 
drei Spulen dann jeweils an den Mittelabgriff der halbbrücken.

guude
ts

von Ernestus P. (malzeit) Benutzerseite


Lesenswert?

Stefan Wenning schrieb:
> ja also ich habe auch schon H-Brücken gesehen mit 6 Mosfets! Allerdings
> habe ich das so realisiert, dass ich 3 H-Brücken à 4 Mosfets habe und
> somit je eine H-Brücke für eine Sinuskurve. Das Prinzip beruht auf einer
> Gleichstrommotoransteuerung mittels H-Brücke die ich im Internet fand
> und ich habe dies jetzt abgewandelt und mit einem Programm usw.
> versehen.

Die Sache mit den 6 Mosfets heißt Raumzeigermodulation und bräuchte 
einen deutlich aufwändigeren Algorithmus. Wenn es nur um eine schnelle 
Bastlerei geht, dann sind drei H-Brücken erstmal der einfachere 
Einstieg.

Hast du meinen Beitrag mit den zwei positiven Halbwellen überlesen. Dazu 
bist du jetzt nicht eingegangen.

von Thomas S. (tsalzer)


Lesenswert?

@ Ernestus Pastell (malzeit) Benutzerseite

>Die Sache mit den 6 Mosfets heißt Raumzeigermodulation und bräuchte
>einen deutlich aufwändigeren Algorithmus.

Diese Sache heißt nicht Raumzeigermodulation. Das könnte nur der von 
Dir erwähnte, deutlich aufwändigere Algorithmus daraus machen.

Mit Glück sind alle sechs Spulenanschlüsse separat herausgeführt, erst 
dann kann er sie einzeln in die H-Brücken einbringen. Der Normalfall ist 
aber, dass entweder Stern- oder Dreieckschaltung vorliegt (evtl. bei 
Stern mit Mittelpunkt herausgeführt), und damit nur drei Anschlüsse nach 
außen gehen.

Deshalb sind 3 Halbbrücken, also die Sache mit den 6 Stück 
Mosfet/Bipolar
das Mittel der Wahl.

guude
ts

von Stefan Wenning (Gast)


Lesenswert?

@ Ernestus Pastell (malzeit)

In wie fern 2 positive Halbwellen? Ohne meine Halbwellenumkehr würden 2 
positive Halbwellen entstehen und es würde wie eine "gepulste" 
Gleichspannung aussehen. Da ich allerdings eine Halbwellenumkehrung 
realisiert habe die im Nulldurchlauf (bei 127 und bei 254) umschalten 
sollte, d.h. das dann die ICs der H-Brücke so angesteuert werden, dass 
der Stromfluss über den Motor nun anders herum läuft und somit dadurch 
eine negative Halbwelle entstehen sollte ?! ALlerdings ist ja das 
Problem, dass die Halbwellenumkehr im meiner Meinung nach falschen 
Moment vonstatten geht, d.h. wenn ich ein Multimeter an die 
Spulenklemmen meiner Schaltung schließe dann kann ich die Spannung 
messen, aber mein Problem ist das die Spannung stetig steigt dann im 
Hochpunkt wieder abfällt und dann mittendrin schaltet es um und es ist 
eine Minus Spannung zu messen. Das wäre richtig wenn es nach dem 
Nulldurchlauf geschehen würde, allerdings geschieht es mitten in der 
Kurve.Und ich habe keine Ahnung wieso das so ist? da ich meiner Meinung 
nach den Nulldurchlauf richtig programmiert habe und dieser an den 
Werten 127 und 254 geschehen soll!!


@ Thomas S. (tsalzer)

Es sind alle 6 Anschlüsse vorhanden und somit kann ich je ein Spule an 
meine Spulenklemmen der H-Brücke anschließen!!


mfg.

Stefan

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


Lesenswert?

Stefan Wenning schrieb:
> Es sind alle 6 Anschlüsse vorhanden und somit kann ich je ein Spule an
> meine Spulenklemmen der H-Brücke anschließen!!
3 komplette H-Brücken (=Vollbrücken) und alle Anschlüsse des Motors da 
angeschlossen? Das ist eine sehr kreative, aufwendige und überaus 
unübliche Anschlussart eines Wechselstrommotors...
Was soll das bringen?

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.