Frequenzumrichter für Wechselstrommotor.

OP #6165593
Lesenswert?

Als Basis für mein Projekt dient:
 https://www.mikrocontroller.net/articles/3-Phasen_Frequenzumrichter_mit_AVR
Die  Analyse vom Basisprojekt  war für mich der erster Kontakt
mit Atmel Mikroprozessor. Um die Sache besser zu verstehen
habe ich parallel eine kleine Doku für  PWM erstellt. Bei der
Analyse vom Basisprojekt habe ich teilweise
im Projekt Kommentare eingeführt. Ich bin verblüffend wie
einfach(einfach bedeutet gut...) wurde durch Atmel PWM
Problematik bewältigt.Im Basisprojekt alle drei Timer laufen
im „Phase Correct PWM Mode“. Alle Zähler laufen ständig vom
0 bis TOP (255) und dann vom TOP (255) zum 0.
Es entsteht für jeden  Timer einen Sägezahnverlauf mit
steigenden und fallenden Flanken. Für Jeden Timer sind zwei
„Output Compare Register“ A und B zugeordnet. Wenn ein
Timerinhalt den Zustand von Compare Register erreicht,
wird einen PWM Ausgang gesetzt oder gelöscht. Welche OUT
Operation setzen oder löschen bei Fallende Flanke
(Timer läuft von Top  zum 0)  passiert ist,wird vom
eingestelltem Modus Abhängig. Out Operation bei der
steigender Flanke ist immer das Gegenstück von der Operation
bei der fallender Flanke.Im Basisprojekt  bei der fallenden
Flanke beim Timer Gleichheit mit  „Output Compare Register“
A wird der entsprechenden Ausgang (High für Brücke...)
gesetzt und vorher Ausgang B (Low für Brücke...) beim
Gleichheit mit Register B gelöscht. Wenn Timer 1 den TOP
(255) erreicht wird einen Interrupt ausgelöst. Im Interrupt
werden die Soll Werte für Sinusverlauf  für alle Phasen aus
der  Tabelle sineTable geholt und nach der Bearbeitung in
Output Compare Register A geschrieben. Wert für Register B
wird so berechnet: Register A + Totzeit.
Meine Änderungen:
In  File vfdtables.h wird die Definition angeführt:
#define MOTOR_2PHASEN
Im File wird eine neue sineTable Tabelle mit Sinuswerten
für zwei Wicklung vom Motor mit  Phasenverschiebung 90°
erstellt. Dritte Kolumne in der Tabelle definiert
Vorzeichen für Sinuswerten.
Die Definition #define MOTOR_2PHASEN gilt mit
#include "vfdtables.h"
auch im File FrequenzUmrichter.c. Alle Änderungen im File
kann man finden nach der Anfrage #ifdef MOTOR_2PHASEN.
Beide „Output Compare Register“ A und B haben jetzt den
gleichen Modus: setzen bei der  fallende Flanke (zählen
vom TOP zu 0) von Timer.Aber nur einen Compare Register,
abhängig vom Vorzeichen,  wird mit dem Sinuswert beschrieben.
Beim Plus Vorzeichen wird mit dem Sinuswert Register A
beschrieben und Register B mit 0. Umgekehrt beim Minus
Vorzeichen wird Register B mit dem Sinuswert  beschrieben
und Register A mit 0. Oszisignale  am PWM Ausgängen
(über RC-Tiefpassfilter)zeige ich auf dem Bild. Das
angehängte FreqUmrichter2Ph.zip enthält Projekt unten Atmel
Studio 6.2. Ein Problem ist noch geblieben. Endstufen …
Vielleicht dort findet man eine Idee:
 Beitrag "Arduino Kondensatormotor Drehzahlsteuerung"
Angehängte Dateien:
(Firma: matzetronics) #6165621
Lesenswert?

"Wechselstrommotor" ist etwas missverständlich. Wenn du einen 
Asynchronmotor mit Schlupf (z.B. einen Ventilator) steuern möchtest, 
reicht es aus, nur 2 Endstufen aufzubauen und den Motor zwischen die 
beiden Ausgänge zu legen.

Die resultierende Spannung ist ein korrekter Sinus, mit dem man solche 
Motoren (oder auch Glühbirnen etc.) steuern kann. Geregelt wird dann 
weniger die Frequenz, sondern die Spannung, die man über das V/f 
Verhältnis einstellen kann.
Für einen Kondensatormotor fehlt eine weitere Endstufe, da die 
Hilfswicklung andere Charakteristik als die Hauptwicklung hat. 
Normalerweise erhält sie über den Kondensator weniger Spannung als die 
Hauptwicklung und erfordert die 90° Phasenverschiebung.
Dem AVR fehlt dafür der 4. Timer.
Sowas würde ich deswegen heute mit einem STM32 aufbauen, da deren 
Advanced Timer vier CC Register haben und es einfach erlaubt, das 
Prinzip des 3-Phasen Generators auf 4 zu erweitern.
Gast #6165652
Lesenswert?

Danke für das Oszillogramm.
So mit Totzeiten hätte ich das gerne. Siehe Bild.
Für die phasenverschobene genau so.

B. P. schrieb:
> Kondensator hat
> Kapazität (es sind zwei Kondensatoren parallel) 170 mikrofarad.

Das ist viel.
Drehstrommotor in Steinmetz-Schaltung?
https://info.elektro-kahlhorn.de/drehstrommotor-steinmetzschaltung/

LG
old.
Angehängte Dateien:
Gast #6165795
Lesenswert?

Habe mal meinen Kaeser Kompressor aufgeschraubt.
Das ist tatsächlich ein  Kondensatormotor,
beschriftet wie im Link erklärt und er hat auch die
zwei dicken Kondis Parallel. Werte konnte ich auf die
Schnelle nicht lesen.

Ich hoffe, dass skorpionx einen ähnlichen Motor hat.

LG
old.
Angehängte Dateien:
#6165856
Lesenswert?

Kompressoren kommen gerne mal auf 170μF!
Allerdings nicht im Dauerbetrieb sondern zum Beispiel mit 70μF als 
Betriebskondensator der ständig angeschlossen ist und einem zusätzlichen 
Anlaufkondensator mit 100μF. Dieser wird dann, wenn der Motor läuft, 
meist per Fliehkraftschalter weggeschaltet.
Gast #6165897
Lesenswert?

Armin X. schrieb:
> Dieser wird dann,

Der Kaeser läuft drucklos, also ohne Last an.


Timo N. schrieb:
> Wieso "tatsächlich"?

Ich habe an "das Märchen von der Steinmetzschaltung" geglaubt.

Harald W. schrieb:
> Mein Vertikutierer

Ich schätze mal beim Rasenmäher ist das nicht anders.
Aber das sind bisher alles Anwendungen die keine
Drehzahleinstellung erfordern.
Bin mal gespannt wofür skorpionx das braucht.

LG
old.
Gast #6166450
Lesenswert?

Matthias S. schrieb:
> Mach doch bitte mal ein Foto des Typenschildes.

Hat skorpionx doch schon, eben zufällig gefunden:

Beitrag "Re: Diskussion zum Artikel "Single Chip Frequenzumrichter" für den 2. MC Wettbewerb"

und folgende Beiträge. Wollte ich Euch nicht vorenthalten.

@ skorpionx:
Bei der Drehbank brauchst Du sicher einen Bremschopper oder
eine Rückspeisung. Bei mir war das nicht notwendig, weil
praktisch kaum Schwungmasse vorhanden ist. Ich kann
das noch mit viel Zwischenkreiskapazität abfangen.

Die Treiberschaltung muss auch die Kurvenform steuern
können. Mit der von mschoeldgen geht das nicht.
Bei seiner Impulsform tackern highside und lowside
beide während jeder Halbwelle. Bei mir tackert highside
während der positiven und lowside während der negativen
halbwelle. Deshalb ist die, ich nenne es mal PWM-Belastung
des Motors, bei mir deutlich geringer. Das bekommst Du ohne
separate highside-Versorgungen nicht hin.
Bei DC-Motoren macht man das auch so wie ich das tue um
einen guten Wirkungsgrad zu erhalten und den Motor weniger
PWM-Belastung auszusetzen. Was mschoeldgen da macht ist praktisch
ein d-amp ohne Filter.

LG
old.
Beitrag #6166486 wurde von einem Moderator gelöscht.
(Firma: matzetronics) #6166491
Lesenswert?

Aus der W. schrieb:
> Die Treiberschaltung muss auch die Kurvenform steuern
> können. Mit der von mschoeldgen geht das nicht.

Du hast überhaupt nichts verstanden. Natürlich kann die Treiberschaltung 
die Kurvenform steuern, ich liefere ja z.B. je nach #define echten 
Sinusausgang oder 'popo' Kurven.
Es hat wirklich keinen Sinn, dir irgendwas erklären zu wollen, wenn du 
nicht mal die Grundlagen von PWM verstehst.
Lies dir in Ruhe den Artikel durch, brenne die Software in einen 
Arduino, schliesse das LCD und die Taster an.
Dann kannst du schon mal mit einem Oszi die PWM Ausgänge anschauen und 
vllt. begreifen, wie die ganze Sache funktioniert - obwohl ich weiterhin 
Zweifel daran habe.
Meine Testmotoren 'tackern' kein bisschen, sondern laufen lautlos an und 
freuen sich über die sauberen Sinussignale.
Die Ansteuerung ist so sauber, das sie sogar in einem Gerät zum 
Schallplatten schneiden verwendet wird.
Beitrag #6166610 wurde von einem Moderator gelöscht.
Beitrag #6166673 wurde von einem Moderator gelöscht.
Beitrag #6166767 wurde von einem Moderator gelöscht.
Beitrag #6166772 wurde von einem Moderator gelöscht.
Beitrag #6167043 wurde von einem Moderator gelöscht.
(Firma: matzetronics) #6167434
Lesenswert?

@skorpionx:
Ich bin jetzt mal den Sourcecode durchgegangen, wundere mich aber, warum 
du dir so viel Mühe gemacht hast. Es wäre ganz einfach, wenn du nur die 
Tabelle geändert hättest und den dritten Ausgang, den du ja nicht 
benutzt, einfach nicht aufgebaut hättest.
Nicht, das ich es nicht schätze, aber du ersparst dir eine Menge Arbeit.
OP #6168061
Lesenswert?

Matthias S. schrieb:
> Es wäre ganz einfach, wenn du nur die
> Tabelle geändert hättest und den dritten Ausgang...

Nein. Nicht nur das...

B. P. schrieb:
> Beide „Output Compare Register“ A und B haben jetzt den
> gleichen Modus: setzen bei der  fallende Flanke (zählen
> vom TOP zu 0) von Timer.Aber nur einen Compare Register,
> abhängig vom Vorzeichen,  wird mit dem Sinuswert beschrieben.
> Beim Plus Vorzeichen wird mit dem Sinuswert Register A
> beschrieben und Register B mit 0. Umgekehrt beim Minus
> Vorzeichen wird Register B mit dem Sinuswert  beschrieben
> und Register A mit 0.
Gast #6168140
Lesenswert?

B. P. schrieb:
> Matthias S. schrieb:
>> Es wäre ganz einfach, wenn du nur die
>> Tabelle geändert hättest und den dritten Ausgang...
>
> Nein. Nicht nur das...
>
> B. P. schrieb:
>> Beide „Output Compare Register“ A und B haben jetzt den
>> gleichen Modus: setzen bei der  fallende Flanke (zählen
>> vom TOP zu 0) von Timer.Aber nur einen Compare Register,
>> abhängig vom Vorzeichen,  wird mit dem Sinuswert beschrieben.
>> Beim Plus Vorzeichen wird mit dem Sinuswert Register A
>> beschrieben und Register B mit 0. Umgekehrt beim Minus
>> Vorzeichen wird Register B mit dem Sinuswert  beschrieben
>> und Register A mit 0.

Und was willst du damit sagen?
Gast #6168851
Lesenswert?

Interessant ist, wie die PWM für die Sinusform aussieht.

Es macht ja einen Unterschied ob Du für einen Sinusmomentanwert
zwischen den Rails hin- und her polst oder mit Sollpolarität
schaltest.

So wie Deine Oszillogramme aussehen, hast Du das ja im Griff. :)

LG
old.
(Firma: matzetronics) #6168927
Lesenswert?

hinz schrieb:
> Und was willst du damit sagen?

Ich glaube, das der TE damit plant, die Enstufen 'diagonal' also über 
Kreuz anzusteuern. Das ist aber hier gar nicht nötig, denn es reicht ja, 
zwei gegenphasige Sinussignale in die Tabelle zu programmieren und man 
wäre fertig. Es ist auch ganz ohne Änderung möglich, wenn man die 
'PURE_SINE_DRIVE' Option wählt und zwischen 2 Endstufen den Sinus 
abzapft.
Gast #6168949
Lesenswert?

Matthias S. schrieb:
> hinz schrieb:
>> Und was willst du damit sagen?
>
> Ich glaube, das der TE damit plant, die Enstufen 'diagonal' also über
> Kreuz anzusteuern. Das ist aber hier gar nicht nötig, denn es reicht ja,
> zwei gegenphasige Sinussignale in die Tabelle zu programmieren und man
> wäre fertig. Es ist auch ganz ohne Änderung möglich, wenn man die
> 'PURE_SINE_DRIVE' Option wählt und zwischen 2 Endstufen den Sinus
> abzapft.

Er, und auch Darius, haben nicht verstanden wie so eine Endstufe an 
induktiver Last kommutiert.
#6169012
Lesenswert?

Matthias S. schrieb:
> Es ist auch ganz ohne Änderung möglich, wenn man die
> 'PURE_SINE_DRIVE' Option wählt und zwischen 2 Endstufen den Sinus
> abzapft.

Dann bekommt er doch wegen dem Spannungsverdoppler am Eingang dan 650V 
auf die Haupt- (oder Hilfswicklung, je nachdem welche er zwischen die 2 
Endstufen schaltet).
Wie schließt er dann seine andere Wicklung an? An der dritten Endstufe?

Seinen Schaltplan würde ich gerne mal sehen. Leider verstehe ich von dem 
was er geschrieben hat überhaupt nichts (vermutlich ist Deutsch nicht 
seine Muttersprache, hier wäre Englisch besser gewesen).
(Firma: matzetronics) #6169083
Lesenswert?

Timo N. schrieb:
> Wie schließt er dann seine andere Wicklung an? An der dritten Endstufe?

Das weiss ich auch nicht, ich habe mir ja nur mal das Programm 
angesehen. Wie ich oben schon schrieb:
Beitrag "Re: Frequenzumrichter für Wechselstrommotor."

wäre es sinnvoll, vier Endstufen zu haben und die Wicklungen des Motors 
aufzutrennen, dann jede Wicklung zwischen zwei Endstufen zu hängen.
Damit sollte es ohne Probleme gehen, auch einen Kondensatormotor 
brauchbar zu steuern.
#6169152
Lesenswert?

Matthias S. schrieb:
> Damit sollte es ohne Probleme gehen, auch einen Kondensatormotor
> brauchbar zu steuern.

Vorausgesetzt alle 4 Wicklungsanschlüsse sind abgreifbar. Kommt 
vermutlich nicht so oft vor, weil nach meiner Recherche die meisten 
kommerziellen VFD für Kondensatormotoren nur 2 Anschlüsse haben (den 
Kondensator also drin lassen).

Aber basteln kann man ja.
(Firma: matzetronics) #6169158
Lesenswert?

Ich sehe nach wie vor nicht viel Sinn darin, einen Kondensatormotor 
überhaupt steuern zu können. Wo soll man das anwenden?

Wenn ich eine ernstzunehmende Maschine habe, ist da schon ein 
Drehstrommotor drin, oder es hat nicht viel Sinn, überhaupt was zu 
steuern. Warum sollte ich Rasenmäher, Holzspalter oder Kompressor 
steuern wollen?

Hätte ich da was dran gefunden, gäbe es sicher schon einen Update meines 
FU mit STM32, aber 'habe Gerät, suche Anwendung' brauche ich nicht.
Beitrag #6169187 wurde von einem Moderator gelöscht.
(Firma: matzetronics) #6169191
Lesenswert?

Aus der W. schrieb im Beitrag #6169187:
> Ständerbohrmaschine, Dekupiersäge, Drehbank … und das
> Schallplattenschneidgerät oder hast du da einen
> Drehstrommotor dran gedengelt?

Seufz - wie o.a. sind das Anwendungen, die ich nicht steuern muss. Wer 
eine Drehbank mit Kondensatormotor hat, tut mir leid und natürlich hat 
die Plattenschneidemaschine einen 3-Phasenmotor und nix mit Kondensator.
Ich finde es übrigens äusserst unfair von dir, wie du jeden Thread 
kaperst, der was mit Motoren zu tun hat, nur weil du glaubst, davon was 
zu verstehen.

Es geht hier um eine Mod meines FU, und nicht um das Blödsinnsteil, was 
du da baust.
Beitrag #6169208 wurde von einem Moderator gelöscht.
#6169209
Lesenswert?

Matthias S. schrieb:
> Ich sehe nach wie vor nicht viel Sinn darin, einen Kondensatormotor
> überhaupt steuern zu können. Wo soll man das anwenden?

Darum geht's halt beim TO (skorpionx) (sofern ich das richtig verstanden 
habe).

Zumindest bei der Tisch/Ständerbohrmaschine, Tellerschleifer, 
Dekupiersäge und Drehbank kommt es halt nicht selten vor, dass man einen 
Kondensatormotor drin hat.

Grund dafür liegt auf der Hand: Man hat keinen dreiphasigen Anschluss in 
seiner Werkstatt und neue Leitung legen ist a) nicht möglich (da Mieter) 
oder b) zu teuer. Da greift man dann zum 1-phasigen Gerät.

Von daher sehe ich zumindest z.B. aus Laiensicht den Wunsch nach einer 
Drehzahlregelung.

Bevor ich hier aber in euren Streit reingezogen werde. Ich werde mich 
nicht positionieren.
#6169450
Lesenswert?

Timo N. schrieb:

> Zumindest bei der Tisch/Ständerbohrmaschine, Tellerschleifer,
> Dekupiersäge und Drehbank kommt es halt nicht selten vor, dass man einen
> Kondensatormotor drin hat.
>
> Grund dafür liegt auf der Hand: Man hat keinen dreiphasigen Anschluss in
> seiner Werkstatt und neue Leitung legen ist a) nicht möglich (da Mieter)
> oder b) zu teuer. Da greift man dann zum 1-phasigen Gerät.

Das ist zwar hier nicht Thema, aber in Amerika bleibt einem
garnichts anderes übrig, als die Verwendung von Kondensator-
motoren auch mit mehreren kW Leistung z.B. für eine statio-
näre Kreissäge, da dort Drehstromanschlüsse nur eher selten
zur Verfügung stehen.
Gast #6174760
Lesenswert?

Aus der W. schrieb:
> So mit Totzeiten hätte ich das gerne. Siehe Bild.
> Für die phasenverschobene genau so.

Und so schaut die PWM dazu aus:

https://www.sciencedirect.com/topics/engineering/pulse-width-modulation

Figure 41.21. Pulse-width-modulated (PWM) converter voltage waveforms

Matthias S. schrieb:
> Seufz -

das kann deine Hardware nicht, weil sie nicht Tri-State fähig ist.

Meine Tri-State Ansteuerung sieht so aus:
Beitrag "Re: Arduino Kondensatormotor Drehzahlsteuerung"
Weil ich das noch nicht anders programmieren kann.

LG
old.
Beitrag #6174846 wurde von einem Moderator gelöscht.
(Firma: matzetronics) #6174847
Lesenswert?

Ich persönlich kenne kein Drehstromnetz mit Tristate Zuständen. Scheint 
also für den angegebenen Zweck nicht nötig zu sein.
Wenn man aber Tristate haben möchte - selbstverständlich können die 
Endstufen sowas - machen sie ja auch, wenn die Totzeit gerade läuft. 
Sonst würde es ja rummsen.
Ich jedenfalls stelle mal wieder fest, das da noch eine Menge Grundlagen 
fehlen und das der Typ den Thread hier weiterhin kapert. Verzieh doch 
doch bitte in deinen eigenen, Darius.

Mist, ich habe mich wieder von dem Typ zu einer Antwort hinreissen 
lassen. Aber so einen Unsinn unbeantwortet zu lassen, wäre auch nicht 
richtig.
Beitrag #6174857 wurde von einem Moderator gelöscht.
Beitrag #6174859 wurde von einem Moderator gelöscht.
Beitrag #6174869 wurde von einem Moderator gelöscht.
Beitrag #6174931 wurde von einem Moderator gelöscht.
Beitrag #6174942 wurde von einem Moderator gelöscht.
Beitrag #6174944 wurde von einem Moderator gelöscht.
(Firma: matzetronics) #6174950
Lesenswert?

Harald W. schrieb:
> Das ist zwar hier nicht Thema, aber in Amerika bleibt einem
> garnichts anderes übrig, als die Verwendung von Kondensator-
> motoren auch mit mehreren kW Leistung z.B. für eine statio-
> näre Kreissäge, da dort Drehstromanschlüsse nur eher selten
> zur Verfügung stehen.

Dafür sind doch die FU erfunden worden. Und auch in den USA sind 
Steuerungen für Kondensatormotoren eher exotisch, sonst wären davon viel 
mehr auf dem Markt. Entweder reicht also die feste Drehzahl eines 
Kondensatormotors oder die Amis benutzen genauso FU wie wir.
Beitrag #6174957 wurde von einem Moderator gelöscht.
Beitrag #6174964 wurde von einem Moderator gelöscht.
Beitrag #6174966 wurde von einem Moderator gelöscht.
Beitrag #6174972 wurde von einem Moderator gelöscht.
Beitrag #6174979 wurde von einem Moderator gelöscht.
Beitrag #6174986 wurde von einem Moderator gelöscht.
Beitrag #6174988 wurde von einem Moderator gelöscht.
Beitrag #6175000 wurde von einem Moderator gelöscht.
Beitrag #6175048 wurde von einem Moderator gelöscht.
Beitrag #6176942 wurde von einem Moderator gelöscht.
(Firma: matzetronics) #6192939
Lesenswert?

B. P. schrieb:
> Die Tabelle passt nur für 120 Grad Verschiebung. Beim Versuch
> auf 90 das zu ändern passiert das was man im File sehen kann.
> Werte grösser als 255...

Nö. Der Wertebereich bleibt immer bei 0-255, weil das die Werte für die 
Timer sind. Man muss aber die Sequenz ändern. Geht man die Tabelle von 
oben bis unten durch, ist z.B. in der ersten Spalte (Phase U) ein Sinus, 
der bei 128 anfängt (sozusagen Zerocross), um dann eine komplette 
Sinusperiode bis zum letzten Wert zu bilden.
Phase V ist um 120° gegenüber Phase U verschoben, erreicht also die 128 
bei Wert[64], Phase W ist bei 240° [128] im Zerocross.
Bei 180°[96] z.B. fällt der Wert der ersten Spalte gerade wieder durch 
die 128.

Damit das nochmal klarer wird, habe ich die Gradzahlen mal in die 
anhängende Tabelle geschrieben, die im Projekt für 'Pure Sine Drive' 
benutzt wird.
Jeder Schritt in der Tabelle entspricht einem Drehwinkel von 1,875°, da 
SINE_TABLE_LENGTH = 192.
Also 360/192 = 1,875
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren