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
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.
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!
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...
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
Für heut leg ich mich aufs Ohr. Weiter Antworten von mir gibts morgen.
Wie bist du auf die Idee gekommen, deinen Quelltext in neun Grafikdateien zerstückelt anzuhängen?
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!!
ä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 :(
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.
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.
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
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.
@ 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
@ 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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.