Forum: Analoge Elektronik und Schaltungstechnik Arduino Kondensatormotor Drehzahlsteuerung


von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Habe da ein paar Fragen zu.

Der Motor hat >100W.
Ich möchte das erstmal für eine Dekupiersäge basteln
und mich dann schrittweise hocharbeiten.

Kann man da mit der 400Hz PWM direkt drauf oder braucht
man bei der niedrigen Frequenz Drosseln?

Muss ich da mit drei IR2104 sechs N-Kanal MOSFETs
ansteuern oder gibt es da ein fertiges Modul für?
Wenn ja welches?

Am Motor selbst muss ich noch messen.
Ich habe keine Ahnung welche Spannung und Phasenlage
an der Hilfswicklung anliegt. Bzw. dort anzuliegen hat.

Bilder: Testaufbau Drehfeld 120Grad, am Scope kann ich nur je
zwei Phasen darstellen.

LG
old.

: Verschoben durch Moderator
von H.Joachim S. (crazyhorse)


Lesenswert?

Hm - was willste denn an einem Kondensatormotor mit 3 Phasen? Wenn 
überhaupt, brauchst du 2 mit 90° Phasenverschiebung. Allerdings dann 
auch mit verschiedenen Spannungen, Hilfs- und Hauptwicklung sind nicht 
gleich.

Ist ein recht undankbarer Kandidat für sowas. Such die einen mech. 
passenden echten Drehstrommotor, bzw. mach das passend.

Kleine Umrichter (die dann auch direkt funktionieren :-) kosten nicht 
viel. Ohne Lehrgeld in Form von magischem Rauch wirst du nicht 
auskommen...

von oldeurope O. (Gast)


Lesenswert?

H.Joachim S. schrieb:
> brauchst du 2 mit 90° Phasenverschiebung.

Das hatte ich auch gedacht. Die 90° hast Du wenn
man den Kondensator allein ans Netz klemmst.

Ich habe die Spannungen zwischen N und Hauptwicklung
sowie N und Hilfswicklung gemessen.
Beide haben etwa 230V.
Zwischen den beiden Wicklungen liegen 375V.

Eine LTspice-Simu ergibt eine Phasenverschiebung
von 110°. Also sagen wir mal die bekannten 120°.

Man könnte somit diesen Motor ohne Kondensator
an N, L1, und L2 klemmen.

Ich könnte also zwei Halbbrücken an symmetrischen 325VDC
verwenden. Also minus und plus 325V.

Wie und ob man das mit einem einfachen 325V Zwischenkreis
und drei Halbbrücken (=Drehstromrichter-Brücke) machen kann,
weiß ich im Moment nicht. Muss ich simulieren.

LG
old.

von oldeurope O. (Gast)


Lesenswert?

So wie das momentan aussieht, brauche ich zwei
Halbbrücken an 650VDC Zwischenkreisspannung

Keine Ahnung ob es dafür Treiber gibt.
Sonnst muss ich was basteln.

Zwei Phasen haben natürlich den Vorteil, dass ich
die beiden 1KHz PWM-Pins vom arduino dafür verwenden kann.

Ich glaube, so werde ich das machen.

Mit vier Optokopplern und 1,5VA Printtrafos.
Es sei denn, hier schüttelt noch jemand ein fertiges Modul
aus dem Ärmel …

TLP251 ist schonmal ein Optokoppler mit Gate-Treiber.
FET dazu:
https://de.rs-online.com/web/p/mosfet/6875336/
TO220, isoliert und billig.

LG
old.

von hinz (Gast)


Lesenswert?

Aus der W. schrieb:
> Man könnte somit diesen Motor ohne Kondensator
> an N, L1, und L2 klemmen.

Mach mal, aber nicht hinterher heulen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Aus der W. schrieb:
> So wie das momentan aussieht, brauche ich zwei
> Halbbrücken an 650VDC Zwischenkreisspannung

Nö. Sinnvollerweise benutzt du drei Halbbrücken wie in jedem FU, von 
denen zwei genau gegenphasig arbeiten und die dritte den verschobenen 
Anteil liefert. Dann reichen auch 325V Zwischenkreisspannung.
Wenn du die Tabellen anpasst und den Hilfswicklungsausgang anders 
skalierst, sollte das mit meinem FU funktionieren:
https://www.mikrocontroller.net/articles/3-Phasen_Frequenzumrichter_mit_AVR

von A-Freak (Gast)


Lesenswert?

Nur eine Frage: haben Haupt- und Hilfswicklung annähernd gleiche 
Widerstände?

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Matthias S. schrieb:
> Dann reichen auch 325V Zwischenkreisspannung.

Zeige es mir. Habe für V2 diverse Phasenlagen ausprobiert.
Ich bekomme dann nur sehr wenig Spannung für die Hilfswicklung.

A-Freak schrieb:
> haben Haupt- und Hilfswicklung annähernd gleiche
> Widerstände?

Muss ich nochmal aufschrauben und nachmessen.

Gibt es sowas wie den
 http://pdf.datasheetcatalog.com/datasheet/irf/ir2104.pdf
auf mit höherer Voffset? 900V wären gut.


LG
old.

von Klaus (Gast)


Angehängte Dateien:

Lesenswert?

A-Freak schrieb:
> Nur eine Frage: haben Haupt- und Hilfswicklung annähernd gleiche
> Widerstände?

Wenn es denn wirklich ein Kondensatormotor ist, sind beide Wicklungen 
gleich. Der hat zwei Hauptwicklungen. Wenn man sie tauscht, läuft der 
Motor andersherum.

MfG Klaus

von MaWin (Gast)


Lesenswert?

Klaus schrieb:
> Wenn es denn wirklich ein Kondensatormotor ist, sind beide Wicklungen
> gleich. Der hat zwei Hauptwicklungen. Wenn man sie tauscht, läuft der
> Motor andersherum.

Nein.

Nur wenn es ein Kondensatormotor für beide Drehrichtungen ist, ein 
'umpolbarer' Rollladenmotor o.ä.

Normale Kondensatormotore haben eine schwächere hochohmigere 
Hilfswicklung.

von hinz (Gast)


Lesenswert?

MaWin schrieb:
> Normale Kondensatormotore haben eine schwächere hochohmigere
> Hilfswicklung.

Und auch die können beide Laufrichtungen, nur reicht dann kein einfacher 
Umschalter mehr.

von oldeurope O. (Gast)



Lesenswert?

Anbei die Simu vom Motor im Betrieb.
Grün Hauptwicklung,
Blau Hilfswicklung,
Rot zwischen Haupt- und Hilfswicklung.

Wenn ich davon Ausgehe, dass die Hilfswicklung
beim Anfahren eine deutlich kleiner Impedanz
als der Kondensator hat, hat man in diesem Moment
die 90° Phasenverschiebung die crazyhorse angesprochen
hat.
Dann hat man auch deutlich weniger Spannung an der Hilfswicklung.

Vielleicht ist das was sich da im Betrieb an der Hilfswicklung
einstellt ja nicht zwingend erforderlich.
Möglicherweise genügen ja die 90° mit kleiner Hilfsspannung
und dürfen auch dauernd anstehen.
Vielleicht muss man die Halbbrücke für den Hilfswickel dann
auch ausschalten. Eine Strommessung wird das zeigen.
Kippt der Motor mit abgeklemmter Hilfswicklung eher?

LG
old.

von oldeurope O. (Gast)


Lesenswert?

A-Freak schrieb:
> Nur eine Frage: haben Haupt- und Hilfswicklung annähernd gleiche
> Widerstände?

Hauptwicklung 70R
Hilfswicklung 130R

Die Laufrichtung ist bei der Dekupiersäge egal.
Aber ich werde sie beibehalten.

LG
old.

von hinz (Gast)


Lesenswert?

Matthias S. schrieb:

> Nö. Sinnvollerweise benutzt du drei Halbbrücken wie in jedem FU, von
> denen zwei genau gegenphasig arbeiten und die dritte den verschobenen
> Anteil liefert. Dann reichen auch 325V Zwischenkreisspannung.

Nein, das klappt so nicht.

von oldeurope O. (Gast)


Lesenswert?

hinz schrieb:
> Nein, das klappt so nicht.

Vielleicht doch, wenn man die 3.Halbbrücke nach dem Start
abklemmt. (Tristate-Zustand)

Ich werde mal die Spannung an der Hilfswicklung bei
blockiertem Motor messen.

Aus der W. schrieb:
> Kippt der Motor mit abgeklemmter Hilfswicklung eher?

???
Ich schätze ja.

LG
old.

von hinz (Gast)


Lesenswert?

Aus der W. schrieb:
> Vielleicht doch, wenn man die 3.Halbbrücke nach dem Start
> abklemmt.

Viel Spaß mit dem deutlich kleineren Kippmoment.

von H.Joachim S. (crazyhorse)


Lesenswert?

MaWin schrieb:
> Nur wenn es ein Kondensatormotor für beide Drehrichtungen ist, ein
> 'umpolbarer' Rollladenmotor o.ä.

So isses, der ist dann extra so gebaut, damit er in beide Richtungen 
gleich laufen kann. Geht aber stark auf Wirkungsgrad, 
Leistungsgewicht/-volumen. Spielt beim Rollladen kaum ne Rolle, sonst 
schon.

: Bearbeitet durch User
von hinz (Gast)


Lesenswert?

H.Joachim S. schrieb:
> MaWin schrieb:
>> Nur wenn es ein Kondensatormotor für beide Drehrichtungen ist, ein
>> 'umpolbarer' Rollladenmotor o.ä.
>
> So isses, der ist dann extra so gebaut, damit er in beide Richtungen
> gleich laufen kann. Geht aber stark auf Wirkungsgrad,
> Leistungsgewicht/-volumen. Spielt beim Rollladen kaum ne Rolle, sonst
> schon.

Der ist nur extra auf billig gebaut, billig einschließlich 
Schalter/Relais für die Ansteuerung.

Umpolen kann man jeden Kondensatormotor bei dem alle vier 
Wicklungsanschlüsse separat herausgeführt sind.

von oldeurope O. (Gast)


Lesenswert?

Ich baue jetzt erstmal den Arduino Atmega 328 auf Lochraster.

Über den Rest können wir ja weiter diskutieren.
Für die Lösung mit drei Halbbrücken und 325VDC Zwischenkreisspannung
komme ich mit 3 IR2104 und einmal 12V aus.
Keine Optokoppler und mehrere Printtrafos.

LG
old.

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Also für die Drehstrombrücke komme ich mit 325V Zwischenkreisspannung
auf 60V bei 90° Phasenverschiebung.
Ich muss dann 180° und 30° bzw. 330° je nach Laufrichtung einstellen.

Jetzt muss ich prüfen wieviel Spannung im Blockierten Betrieb
an der Hilfswicklung steht.

LG
old.

von hinz (Gast)


Lesenswert?

Besser wäre es etwas Literatur über Induktionsmotoren zu lesen. Das 
hilft ganz enorm sie zu verstehen.

von oldeurope O. (Gast)


Lesenswert?

hinz schrieb:
> Besser wäre es etwas Literatur über Induktionsmotoren zu lesen.

Dann lies mal und berichte.

Aus der W. schrieb:
> Jetzt muss ich prüfen wieviel Spannung im Blockierten Betrieb
> an der Hilfswicklung steht.

Knapp drüber. Sollte also passen.

1x Atmega 328,
3x IR2104
6x Pwr-MOSFET >450V

Das bleibt ja überschaubar.

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Schaut mal wie einfach der "Drehstrom-Sketch" ist:
1
int upin = 9;
2
int vpin = 10;
3
int wpin = 11;
4
int u;
5
int v;
6
int w;
7
int per = 40; //Periodendauer in ms
8
void setup() {
9
}
10
void loop() {
11
u = 128 +126 * sin(micros() * 6.2832 / per / 1000);                                                           
12
analogWrite(upin,u);
13
v = 128 +126 * sin(micros() * 6.2832 / per / 1000 + 2.0944);   // +2PI/3                                             
14
analogWrite(vpin,v);
15
w = 128 +126 * sin(micros() * 6.2832 / per / 1000 + 4.1888);   // +4PI/3                                                       
16
analogWrite(wpin,w);
17
}
Als Vorlage diente der Pilottongenerator vom CQUAM-Modulator.
Beitrag "I2C "blockiert" Arduino [Endet 31.10.]"

LG
old.

von hinz (Gast)


Lesenswert?

Aus der W. schrieb:
> hinz schrieb:
>> Besser wäre es etwas Literatur über Induktionsmotoren zu lesen.
>
> Dann lies mal und berichte.

Ah, jetzt kommt also der Depp in dir wieder raus.

von oldeurope O. (Gast)


Lesenswert?

hinz schrieb:
> Ah,

der Thread ist dir zu gut. Ja dann trommle mal die
Trolle zusammen und macht ihn wie üblich hier, platt.
Wo bleiben die negativen Bewertungen?
Vielleicht schafft ihr es den in dev/null verfrachten
zu lassen oder gleich zu löschen.

LG
old.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

hinz schrieb:
> Nein, das klappt so nicht.

Ich sehe keinen Grund, warum das nicht gehen sollte. Nehmen wir mal 2 
Ausgänge (immer als Halbbrücke), die genau gegenphasig sind. Damit haben 
wir schon mal die Spannung für die Hauptwicklung. Lasse ich nun den 
dritten Ausgang genau gleichphasig mit meinem 'N' (willkürlich einer der 
ersten beiden Ausgängen) laufen, habe ich null Volt ohne Phasendreh auf 
der Hilfswicklung.

Nun fange ich an, die Phasenlage dieses Ausgangs zu verschieben gegen N 
und bekomme dann eine Hilfsspannung mit beliebigem Phasendreh. 
Unabhängig davon kann ich die Spannung über die ohnehin vorhandene 
Skalierung der Ausgänge einstellen.
Falls es deiner Meinung nach so nicht klappt, würde ich gerne den Grund 
erfahren.

von Harald W. (wilhelms)


Lesenswert?

Matthias S. schrieb:

> Nehmen wir mal 2 Ausgänge (immer als Halbbrücke),
> die genau gegenphasig sind.

Nennt man so etwas nicht Vollbrücke?

von hinz (Gast)


Lesenswert?

Matthias S. schrieb:
> hinz schrieb:
>> Nein, das klappt so nicht.
>
> Ich sehe keinen Grund, warum das nicht gehen sollte. Nehmen wir mal 2
> Ausgänge (immer als Halbbrücke), die genau gegenphasig sind. Damit haben
> wir schon mal die Spannung für die Hauptwicklung. Lasse ich nun den
> dritten Ausgang genau gleichphasig mit meinem 'N' (willkürlich einer der
> ersten beiden Ausgängen) laufen, habe ich null Volt ohne Phasendreh auf
> der Hilfswicklung.
>
> Nun fange ich an, die Phasenlage dieses Ausgangs zu verschieben gegen N
> und bekomme dann eine Hilfsspannung mit beliebigem Phasendreh.
> Unabhängig davon kann ich die Spannung über die ohnehin vorhandene
> Skalierung der Ausgänge einstellen.
> Falls es deiner Meinung nach so nicht klappt, würde ich gerne den Grund
> erfahren.

Brechne die Spannung an der "Hilfs"phase!

Wenn man den Motor für diesen Zweck speziell wickeln würde, dann würde 
es klappen.

Nicht ohne Grund bleibt bei Umrichtern für Kondensatormotoren der 
Kondensator dran.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

hinz schrieb:
> Brechne die Spannung an der "Hilfs"phase!

Ich kann bei meinem FU die Spannung an allen Ausgängen gleichzeitig oder 
auch individuell einstellen, wenn ich da ein wenig in der Software 
rummansche.

Ich möchte aber nur wissen, warum das nicht gehen soll, und keine 
Antworten, wie 'brechne das'. Ich weiss, das hinz sehr schreibfaul ist, 
aber manchmal ist es auch übertrieben.

Harald W. schrieb:
> Nennt man so etwas nicht Vollbrücke?

In diesem speziellen Fall - ja. Aber der FU ist ja eigentlich ein 3 
Phasen Lieferant, der 180° Fall somit ein Sonderfall.

von ZUIOPÜ (Gast)


Lesenswert?

Aus der W. schrieb:

> Die Laufrichtung ist bei der Dekupiersäge egal.

Das würde ich nicht sagen. Schließlich kann man einen mißlungenen 
Sägeschnitt auf diese Weise wieder rückgängig machen.

von oldeurope O. (Gast)


Lesenswert?

Ich habe eben den IR2153D entdeckt.
Den werde ich mir nächste Woche mal kommen lassen.
Da ich nicht 555 erfahren bin, muss ich da etwas
rumprobieren wie man spannungsgesteuerte PWM macht.
Dann ist das Problem mit der niedrigen Arduino PWM Frequenz
gelöst.

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Matthias S. schrieb:
> Ich kann bei meinem FU die Spannung an allen Ausgängen gleichzeitig oder
> auch individuell einstellen, wenn ich da ein wenig in der Software
> rummansche.

Also ich komme mit
Beitrag "Re: Arduino Kondensatormotor Drehzahlsteuerung"
0, 180 und 30 bzw. 330 Grad auf 60V an der Hilfswicklung.

Falls Du da eine andere Lösung (Phasenwinkel) hast,
bitte ich um Mitteilung.

Die Frage ist, ob man das für den Betriebszustand so lassen kann.
Oder ob die Spannung an der Hilfswicklung dann höher sein muss
und der Phasenwinkel auf 110 Grad wie beim Kondensatorbetrieb.
Das probiere ich aus. Gibt ja noch die Option Hilfswicklung
abwerfen nach Hochfahren.

LG
old.

von hinz (Gast)


Lesenswert?

Matthias S. schrieb:
> hinz schrieb:
>> Brechne die Spannung an der "Hilfs"phase!
>
> Ich kann bei meinem FU die Spannung an allen Ausgängen gleichzeitig oder
> auch individuell einstellen, wenn ich da ein wenig in der Software
> rummansche.
>
> Ich möchte aber nur wissen, warum das nicht gehen soll, und keine
> Antworten, wie 'brechne das'.

Weil du nur auf 162VAC an der "Hilfs"phase kommst, bei 230VAC an der 
"Haupt"phase. Da sich so ein Motor ganz ähnlich wie ein Trafo verhält...



> Ich weiss, das hinz sehr schreibfaul ist,
> aber manchmal ist es auch übertrieben.

Ich wünsche dir für nur einen Tag meine Gelenkschmerzen.

von hinz (Gast)


Lesenswert?

hinz schrieb:
> Weil du nur auf 162VAC an der "Hilfs"phase kommst, bei 230VAC an der
> "Haupt"phase.

Ganz vergessen: dieses Maximum erreicht man bei 45° Phasenverschiebung, 
nicht bei den erwünschten 90°.

von oldeurope O. (Gast)


Lesenswert?

hinz schrieb:
> dieses Maximum

Das ist kein Maximum.
Setze für V2 diverse Phasenlagen ein und probiere es aus.
Beitrag "Re: Arduino Kondensatormotor Drehzahlsteuerung"



LG
old.

von hinz (Gast)


Lesenswert?

Aus der W. schrieb:
> hinz schrieb:
>> dieses Maximum
>
> Das ist kein Maximum.
> Setze für V2 diverse Phasenlagen ein und probiere es aus.
> Beitrag "Re: Arduino Kondensatormotor Drehzahlsteuerung"

Du hast nur mal wieder keine Ahnung. Das ist natürlich nicht das 
Spannungs- oder das Phasenwinkelmaximum, sondern das Drehmomentmaximum, 
bei entspechend gewickeltem Motor.

von oldeurope O. (Gast)


Lesenswert?

hinz schrieb:
> Du hast nur mal wieder keine Ahnung.

Troll dich du Blendgranate. Nicht einen hilfreichen Beitrag
hast Du hier bisher gebracht.

LG
old.

von hinz (Gast)


Lesenswert?

Aus der W. schrieb:
> hinz schrieb:
>> Du hast nur mal wieder keine Ahnung.
>
> Troll dich du Blendgranate. Nicht einen hilfreichen Beitrag
> hast Du hier bisher gebracht.


Nimm besser deine Froschpillen.

Beitrag #6145325 wurde von einem Moderator gelöscht.
von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Rechthaber vor dem Herrn schrieb im Beitrag #6145325:
> Hinz ist wieder in seinem Element:
> Beitrag "Re: Strompreise 2020"

Ja. Vermutlich war der in der Szene mal eine große Nummer
und die Moderatoren geben ihm hier sein Gnadenbrot.
Solche Leute gibt es in jedem Forum.

Zum Thema:

Ich habe ohne Kondensator nach Handanwurf gemessen
und dann simuliert.

Es stehen dann etwa 130V an der Hilfswicklung
und zwischen den Wicklungen 230V.
Laut Simu gibt das 75° Phasenverschiebung.

Diese Werte bekomme bekomme ich mit der Drehstrombrücke
bei 325V Zwischenkreisspannung nicht.
Falls mschoeldgen da doch noch eine Lösung kennt,
so möge er mir bitte die erforderlichen Phasenwinkel für
die drei Halbbrücken kundtun. Ich überprüfe das dann
mit LTspice.

Also werde ich die Version mit den zwei Halbbrücken an 650VDC
bauen und die beiden 1KHz PWM-Pins vom Arduino nutzen.

Ich hoffe diese PWM Frequenz lässt sich ohne Drosseln verwenden.
Eure Einschätzung?

Wenn das dann fertig ist, werde ich diese Werte einstellen
und in Reihe mit der Hilfswicklung eine Lampe schalten.
Danach Phasenlage und Spannng im Leerlauf so einstellen,
dass durch die Lampe kein Strom mehr fließt.

Dann sollte das nach meinem heutigen Wissensstand korrekt
eingestellt sein.

LG
old.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Aus der W. schrieb:
> Falls mschoeldgen da doch noch eine Lösung kennt

Ich habe keine Ahnung, ob das eine Lösung für dich ist, aber ich rede 
die ganze Zeit von meinem FU, den man sich hier im Forum runterladen und 
bauen kann. Zufällig läuft auch dieser mit einem Mega328, wie er auf 
Arduino Uno und Due Milanove montiert ist. Siehe den Link in dem 
Beitrag:
Beitrag "Re: Arduino Kondensatormotor Drehzahlsteuerung"

Da ist der Sourcecode bei, du kannst also damit rumexperimentieren. Wie 
die Software funktioniert, steht im Artikel.

von oldeurope O. (Gast)


Lesenswert?

Matthias S. schrieb:
> Ich habe keine Ahnung, ob das eine Lösung für dich ist, aber ich rede
> die ganze Zeit von meinem FU,

Dann gib mir doch mal bitte die Phasenwinkel der Halbbrücken mit
denen ich das damit machen kann. Ich meine das geht nicht weil:

>> Ausgangsspannung: regelbar von 0V - 325 Vpp, maximal die vorhandene
>> Zwischenkreisspannung

Die Zwischenkreisspannung ist zu klein. 230VAC hat 650Vpp.
Dein Treiber kann max. 600V. Hat sich damit erledigt.

Und damit:

 Source Code für AVR Studio 4 mit WinAVR

Kann ICH gar nix machen.

LG
old.

von hinz (Gast)


Lesenswert?

Aus der W. schrieb:
> Die Zwischenkreisspannung ist zu klein. 230VAC hat 650Vpp.
> Dein Treiber kann max. 600V. Hat sich damit erledigt.
>
> Und damit:
>
>  Source Code für AVR Studio 4 mit WinAVR
>
> Kann ICH gar nix machen.

Kauf dir einfach eine Puppenstube.

von MaWin (Gast)


Lesenswert?

Aus der W. schrieb:
> Die Zwischenkreisspannung ist zu klein. 230VAC hat 650Vpp

Schon, wenn man aber beide Wicklungsenden über je eine Halbbrücke mit 
Null oder Zwischenkreisspannung verbinden kann, bekommt die Spule 
entweder +325V oder -325V, macht zusammen, oh Überraschung, 650Vpp.

Kein Wunder, dass man aus 230VAC wieder 230VAC machen kann.

Also etwas mehr Nachdenken auf deiner Seite wäre schon gut, wenn du 
einen Kondensatormotor-FU bauen willst.

Jetzt gibt es natürlich das Problem, dass der dritte Anschluss, die 
Hilfswicklung, eher 400V in Bezug auf einen dieser Wicklungsanschlüsse 
sehen will.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Aus der W. schrieb:
> Die Zwischenkreisspannung ist zu klein. 230VAC hat 650Vpp.

Oh Mann, das habe ich gar nicht bedacht:-P Oder doch?
Evtl. fehlen dir da ein paar Grundlagen über Brücken und resultierende 
Spannungen. Und das Kondensatormotoren für 230V AC an 230V AC laufen ist 
nicht wirklich neu.
230V AC sind übrigens 325Vpp und nicht 650.

von hinz (Gast)


Lesenswert?

Matthias S. schrieb:
> 230V AC sind übrigens 325Vpp und nicht 650.

Aua. Da warst du jetzt aber neben der Spur.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

hinz schrieb:
> Aua. Da warst du jetzt aber neben der Spur.

Wiseo denn das?
https://www.elektronik-kompendium.de/sites/grd/0208071.htm

325Vpp * 0,707 = 230Veff
Aber mach mal ruhig. Ich bin hier weg.

: Bearbeitet durch User
von hinz (Gast)


Lesenswert?

Matthias S. schrieb:
> hinz schrieb:
>> Aua. Da warst du jetzt aber neben der Spur.
>
> Wiseo denn das?
> https://www.elektronik-kompendium.de/sites/grd/0208071.htm
>
> 325Vpp * 0,707 = 230Veff

Bei 325Vp wäre deine Rechnung richtig.

von oldeurope O. (Gast)


Lesenswert?

MaWin schrieb:
> Jetzt ...

Matthias S. schrieb:
> Wiseo ...

Ich habe Euch das doch am Anfang der Beitragsreihe simuliert.
Also was?
Ich baue die zwei Halbrücken an 650V gebaut.
Die Frage ist jetzt nur noch ob es da einen integrierten
Treiber mit mehr als 600V gibt.

LG
old.

von oldeurope O. (Gast)



Lesenswert?

Der Atmega 328 ist an Bord und kann über das UNO-Board
ohne Atmega programmiert werden.

Anbei Oszillogramme der PWM-Signale über 15K 100nF
Tiefpässe.

Der Sketch ist für 50Hz. Damit probiere ich erstmal.
1
int lpin = 5;   // atmega pin 11
2
int hpin = 6;   // atmega pin 12
3
int l;
4
int h;
5
int per = 20;  //Periodendauer in ms
6
void setup() {
7
}
8
void loop() {
9
l = 128 +126 * sin(micros() * 6.2832 / per / 1000);                                                           
10
analogWrite(lpin,l);
11
h = 128 + 71 * sin(micros() * 6.2832 / per / 1000 + 1.31);   // 75*2*PI/360  für 75Grad                                          
12
analogWrite(hpin,h);
13
}

Damit probiere ich erstmal.
Und ja, das ist der komplette Sketch dafür.

LG
old.

von (Gast)


Lesenswert?

Lässt sich der "N" im Motor nicht auftrennen? Dann könnte man den Motor 
mit 2 Vollbrücken aus 325V Zwischenkreis betreiben.

von oldeurope O. (Gast)


Lesenswert?

rµ schrieb:
> Lässt sich der "N" im Motor nicht auftrennen? Dann könnte man den Motor
> mit 2 Vollbrücken aus 325V Zwischenkreis betreiben.

Nein, lässt er sich nicht.
Ich habe auch kein Problem mit 650VDC vorallem deshalb,
weil N und 0V verbunden sein können und ich symmetrische
325V bekomme.

Die Induktivität der Hauptwicklung beträgt 485mH.
Mit 1KHz komme ich nicht wirklich hin, ca. 30var.

Ich habe etwas absolut geniales gefunden:
https://arduino.stackovernet.com/de/q/8407#25623
Der Mensch ist ein Zauberer! Hat mein größtes Problem gelöst. :-)
Da das für zwei Pins geht, passt das genau für meine
Anwendung mit zwei Halbbrücken. Glück gehabt.
1
int lpin = 9;   // atmega pin 15
2
int hpin = 10;   // atmega pin 16
3
int l;
4
int h;
5
int per = 20;  //Periodendauer in ms
6
void setup() {
7
     // Configure Timer 1 for PWM @ 25 kHz.
8
     TCCR1A = 0;      // undo the configuration done by...
9
     TCCR1B = 0;      // ...the Arduino core library
10
     TCNT1 = 0;      // reset timer
11
     TCCR1A = _BV(COM1A1) // non-inverted PWM on ch. A
12
         | _BV(COM1B1) // same on ch; B
13
         | _BV(WGM11); // mode 10: ph. correct PWM, TOP = ICR1
14
     TCCR1B = _BV(WGM13)  // ditto
15
         | _BV(CS10);  // prescaler = 1
16
     ICR1  = 320;     // TOP = 320
17
18
     // Set the PWM pins as output.
19
     pinMode( 9, OUTPUT);
20
     pinMode(10, OUTPUT);
21
}
22
// PWM output @ 25 kHz, only on pins 9 and 10.
23
// Output value should be between 0 and 320, inclusive.
24
void analogWrite25k(int pin, int value)
25
{
26
     switch (pin) {
27
       case 9:
28
         OCR1A = value;
29
         break;
30
       case 10:
31
         OCR1B = value;
32
         break;
33
       default:
34
         // no other pin will work
35
         break;
36
     }
37
}
38
void loop() {
39
l = 160 +158 * sin(micros() * 6.2832 / per / 1000);                                                           
40
analogWrite25k(lpin, l);
41
h = 160 + 89 * sin(micros() * 6.2832 / per / 1000 + 1.31);   // 75*2*PI/360  für 75Grad                                          
42
analogWrite25k(hpin, h);
43
}

Jetzt habe ich 25KHz PWM. OK, 5KHz oder 6KHz hätte ich mir
gewünscht. Aber mit MOSFET ist auch das zu schaffen.

LG
old.

von oldeurope O. (Gast)



Lesenswert?

Mir ist etwas neues eingefallen, wie ich die 1KHz doch nutzen
kann.

Und zwar, wenn ich während der positiven Halbwelle nur den
"oberen" Schalttransistor  der Halbbrücke ansteuere und während
der negativen nur den unteren.

Damit senke ich die Belastung durch die Schaltfrequenz ganz
erheblich und kann eine niedrige PWM-Frequenz nutzen.

Und um die Totzeit brauche ich mich dann nicht zu kümmern.

Anbei ein paar Oszillogramme. Der Ausgang vom NAND 74LS00
wird die LEDs in den Treiber-ICs ansteuern, aktiv LOW.

Wunderbar, wird ja besser als gedacht. :)

Hier noch der Sketch 20200216e dafür:
1
int enlppin = 2;  // atmega pin 4
2
int enlnpin = 3;  // atmega pin 5
3
int enhppin = 4;  // atmega pin 6
4
int lpin = 5;     // atmega pin 11
5
int hpin = 6;     // atmega pin 12
6
int enhnpin = 7;  // atmega pin 13
7
int l;
8
int h;
9
int per = 20;  //Periodendauer in ms
10
void setup() {
11
pinMode(enlppin,OUTPUT); 
12
pinMode(enlnpin,OUTPUT); 
13
pinMode(enhppin,OUTPUT);
14
pinMode(enhnpin,OUTPUT);
15
}
16
void loop() {
17
l = 128 +126 * sin(micros() * 6.2832 / per / 1000);
18
if(l > 158){digitalWrite(enlppin,HIGH);} 
19
  else{digitalWrite(enlppin,LOW);}
20
if(l <  98){digitalWrite(enlnpin,HIGH);} 
21
  else{digitalWrite(enlnpin,LOW);}                                                           
22
analogWrite(lpin,l);
23
h = 128 + 71 * sin(micros() * 6.2832 / per / 1000 + 1.31);   // 75*2*PI/360  für 75Grad 
24
if(h > 145){digitalWrite(enhppin,HIGH);} 
25
  else{digitalWrite(enhppin,LOW);}
26
if(h < 111){digitalWrite(enhnpin,HIGH);} 
27
  else{digitalWrite(enhnpin,LOW);}                                         
28
analogWrite(hpin,h);
29
}

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Habe bei RS nach Opto-Treibern und FETs geschaut:
https://de.rs-online.com/web/p/optokoppler-ics/8649136/
https://de.rs-online.com/web/p/mosfet/7919324/
https://de.rs-online.com/web/p/mosfet/1109088/

IPA90R340C3XKSA1 Super Transistor und preiswert.
Ich freue mich drauf.

LG
old.

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Aktualisierung 17.2.20

Neue Ansteuerung, das PWM Signal muss nicht mehr invertiert werden.
Deshalb ist das XOR jetzt weg. Mit dem 74S00 werde ich die
Optos ansteuern.

Ich bin jetzt mal ganz mutig und verlasse mich darauf, dass
der Arduino nie beide MOSFETs in einer Brücke gleichzeitig
durch schaltet. Falls es da begründete Einwände gibt, mache ich
noch eine Hardware-Verriegelung mit Gattern.

Hier die aktuelle Weichware 20200217g mit Poti zur Drehzahleinstellung:
1
int potipin = A5; // atmega pin 28 Poti Schleifer 
2
int enlppin = 2;  // atmega pin 4
3
int enlnpin = 3;  // atmega pin 5
4
int enhppin = 4;  // atmega pin 6
5
int lpin = 5;     // atmega pin 11
6
int hpin = 6;     // atmega pin 12
7
int enhnpin = 7;  // atmega pin 13
8
bool enlp;        // enable Phase positive Halbwelle
9
bool enln;        // enable Phase negative Halbwelle
10
bool enhp;        // enable Hilfsphase positive Halbwelle
11
bool enhn;        // enable Hilfsphase negative Halbwelle
12
int l;            // Sinus Phase 0...255
13
int h;            // Sinus Hilfsphase 0...255
14
int per = 25;     //Periodendauer in ms
15
int spg;
16
int spgvor;
17
int hspg;
18
bool dis;
19
void setup() {
20
pinMode(enlppin,OUTPUT); 
21
pinMode(enlnpin,OUTPUT); 
22
pinMode(enhppin,OUTPUT);
23
pinMode(enhnpin,OUTPUT);
24
}
25
void loop() {
26
spg = analogRead(potipin);
27
spg /= 4;                      // Berechnung der Spannung 0 ... 255
28
spg += 10;                     // 10 Punkte dazu, damit man am Rechtsanschlag sicher auf 255 kommt
29
if(spg < 25){spg = 25;}        // Mindestdrehzahl
30
if(spg >= 255){spg = 255;}     // Höchstdrehzahl
31
if(spg != spgvor){dis = HIGH;} // disable bei Wertänderung Anfang
32
  else{dis = LOW;} 
33
spgvor = spg;                  // disable bei Wertänderung Ende       
34
per = 5100 / spg;              // Berechnung der Periodendauer
35
hspg = (spg * 10 /17);         // Berechnung der Hilfsspannung 
36
l = 128 + 126 * sin(micros() * 6.2832 / per / 1000);  // Sinusberechnung Phase
37
if(l > 218 && !dis && !enln){enlp = HIGH; digitalWrite(enlppin,HIGH);} 
38
  else{enlp = LOW; digitalWrite(enlppin,LOW);}
39
if(l <  38 && !dis && !enlp){enln = HIGH; digitalWrite(enlnpin,HIGH);} 
40
  else{enln = LOW; digitalWrite(enlnpin,LOW);}                                                           
41
analogWrite(lpin,spg);
42
h = 128 + 126 * sin(micros() * 6.2832 / per / 1000 + 1.31);   // Sinusberechnung Hilfsphase 
43
if(h > 218 && !dis && !enhn){enhp = HIGH; digitalWrite(enhppin,HIGH);} 
44
  else{enhp = LOW; digitalWrite(enhppin,LOW);}
45
if(h < 38 && !dis && !enhp){enhn = HIGH; digitalWrite(enhnpin,HIGH);} 
46
  else{enhn = LOW; digitalWrite(enhnpin,LOW);}                                         
47
analogWrite(hpin,hspg);
48
}
Laut Oszilloskop sollte das so laufen.

Weiteres dann, wenn der Leistungsteil aufgebaut ist.
Die Komponenten habe ich heute bestellt.

Ich versuche im Leisungsteil mit einem Printtrafo auf der
negativen Schiene auszukommen. Für die positive Schiene
mache ich die Schaltung mit Diode und Kondensator um die
Betriebsspannung für die highside Opto-Treiber zu bekommen.
Mal sehen ob das klappt. Sonnst brauche ich noch zwei Printtrafos.

LG
old.

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe mich für die Printtrafos entschieden.
Die FOD3180 sind mächtige Treiber, die auch in STBY
einige mA benötigen. Aufgrund meiner Ansteuerung
gibt es Pausenzeiten, die ich nicht mit einem Kondensator
über den Drehzahlvariationsbereich überbrücken kann.
Die Versorgung über Widerstände ist verlustiger als die
Printtrafos. So habe ich eine saubere, definierte und
permanente Versorgung der Treiber.

Aus der W. schrieb:
> Falls es da begründete Einwände gibt

Die Arduino Ausgänge sind beim Einschalten in einem
Tristate-Modus. Der TTL-Eingang vom 74S00 ist dann
HIGH und Exitus.
Ich habe an den Pins 2; 3; 4; 7; 470R nach GND angebracht
um da einen LOW-Pegel zu bekommen.
Müsste so funktionieren.

Die Opto-Leds bekommen 4V aus einem Emitterfolger mit einem
BD238. Über 180R gehen sie dann zu den jeweiligen Ausgängen
des 74S00. So ist der Totem-Pole-Ausgang auch in der Lage
die LEDs stromlos zu schalten. Der Ein-Strom beträgt ca. 12mA
und ist damit im grünen Bereich.

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Ich habe einem Kondensatormotor experimentiert

Nach heutigem Stand hat der Kondensator zwei Aufgaben:

1. Beim Anlauf einen 90° Phasenverschobenen Strom bereit
zu stellen. (Sofern die Wicklungen tatsächlich im rechten
Winkel zueinander angeordnet sind.)
So findet man das überall erklärt.


2. Blindleistungskompensation im Betrieb.

Letzteres ist entscheidend für den Wert des Betriebskondensators.
Deshalb nimmt man da nicht irgendeinen Wert.
Man kann den Betriebskondensator ermitteln, indem man im Leerlauf
damit den niedrigsten Strom einstellt.

Die seltsamen Phasenwinkel, die ich ermittelt habe, kommen
deshalb zustande.

Ich denke, dass ich mit dem Inverter ein höheres Drehmoment
erhalte als mit Kondensator. Also die Nachteile, die ein
Kondensatormotor gegenüber einem Drehstrommotor hat,
ausgleiche.

LG
old.

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Läuft :)))

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Zum Anlaufen braucht man die 90°.
Im Betrieb lässt sich der Strom durch die Hilfswicklung
bei etwa 120° zu Null bringen.

Die Passende Spannung und Phasenlage nachzuführen, ist
nicht ganz trivial.

Aber aufgrund meiner Art der Ansteuerung kann sich eine höhere
selbst erregte Spannung ungehindert ausbilden.
Es genügt
1
 hspg = (spg * 10 / 38);          // Berechnung der Hilfsspannung
230V / 3,8 = 60V mit 90° Phasenverschiebung dauerhaft anzulegen.

Die Sinusberechnung habe ich rausgeworfen. Es gibt in dem
Sinus Phasensprünge die den Motor unruhig laufen lassen.
Als Zeitgeber verwende ich jetzt einen Multivibrator.
1
  mvist = micros();                                              
2
  if(mvist - mvstart >= (500 * per)){mvstart = mvist;
3
    if(mv == LOW){mv = HIGH;}
4
    else {mv = LOW;}}

Auch der läuft mit millis() nicht sauber, deshalb habe ich auf
micros() umgestellt. Damit bin ich zufrieden.

Problematisch war auch das Poti über analogRead. Es kann passieren,
dass man zwischen zwei Werten steht und der Wert flattert.
Auch das macht sich als Ruckeln im Motor bemerkbar.
Das habe ich so gelöst, dass der Wert erst dann gelesen wird,
wenn das Poti sich zwei Ziffern nach oben oder unten bewegt hat:
1
  void drehzahlspannung(){
2
  wert = (analogRead(potipin)) / 4 + 10;
3
  if(wert < 25){wert = 25;}        // Mindestdrehzahl
4
  if(wert >= 255){wert = 255;}     // Höchstdrehzahl      
5
  per = 5100 / wert;              // Berechnung der Periodendauer
6
  spg = 153 + 10 * wert / 25;           // Berechnung der Spannung 
7
  hspg = (spg * 10 /38);          // Berechnung der Hilfsspannung   
8
  }
9
void loop() { 
10
  poti = (analogRead(potipin)) / 4 + 10;
11
  if(poti < 25){poti = 25;}     
12
  if(poti >= 255){poti = 255;}     
13
  if((poti >= wert + 2) || (poti <= wert - 2)) 
14
    {drehzahlspannung(); dis = HIGH;}
15
    else{dis = LOW;}

Auch die Berechnung Des Spannungsabfalls über die Frequenz
für ein konstantes Moment ist optimiert.

...

LG
old.

Beitrag #6151510 wurde von einem Moderator gelöscht.
von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Fernbedienungs-Reparateur schrieb im Beitrag #6151510:
> Gleich kommt wieder ein Spezialist

Ich glaube die sind gerade im Ignorier-Modus.

im Anhang der aktuelle Sketch.
Ich bin so zufrieden, dass ich mir danach noch einen Inverter
für meine Ständerbohrmaschine baue.
Dann muss ich keinen Riemen mehr umlegen und kann damit
bequem Gewinde schneiden …

Momentan habe ich diese
https://de.rs-online.com/web/p/mosfet/7919324/
FETs drin. 33R vor dem Gate, die werden nicht mal warm.
Auch nicht bei blockiertem Motor.
Einen Kurzschluss darf ich aber nicht machen …
Nach jedem Softwareupdate kontrolliere ich vorher die
Ansteuerung und nehme die Zwischenkreisspannung vom Stelltrafo.
Bisher gab es keine Toten. Klopf auf Holz.

LG
old.

von oldeurope O. (Gast)



Lesenswert?

Eben habe ich den Inverter an der Dekupiersäge angeklemmt.

Leider ist sie nicht von selbst angelaufen.
Ich war schon ganz gefrustet.
Witzigerweise tut sie das mit Kondensator
auch bei niedrigen Drehzahlen!
Siehe Foto.
Ich vermute, das liegt an meiner Impulsform.
Gut so.

Für die Säge genügt erstaunlicherweise Wechselstrom,
also eine einzige Halbbrücke.
Das macht den Inverter dann sehr einfach und kleiner.
Da bekomme ich alles bequem auf eine Europakarte.

Nicht desto trotz werde ich mal die Spannung für die
Hilfswicklung größer machen und schauen ob er dann
anläuft. Vielleicht liegt es ja daran.

Noch ein Phänomen ist mir aufgefallen:
Ich messe an der Hauptwicklung 270V RMS.
Auch als Anwurfmotor.
Keine Ahnung warum ich da mehr Spannung bekomme
als mit einer Glühlampe als Last.
Aber das soll mir Recht sein, verringern lässt sich die
Spannung immer.
Ich prüfe das nochmal an dem anderen Motor.

Nachschrift:

Jubileee

Mit deutlich höherer Spannung an der Hilfswicklung
läuft er an. Auch im Zeitlupentempo, wo er mit Kondensator
nicht anläuft.

Ich werde den Strom durch die Hilfswicklung messen und
prüfen welche Spannung zum sicheren Anlaufen nötig ist.

:)))


LG
old.

von oldeurope O. (Gast)


Lesenswert?

Das ist ein ganz wunderbares Arbeiten mit der Säge so.
Es gibt übrigens eine Drehzahl, da kommt der Werktisch
in Resonanz. Die sollte man nicht einstellen.

Ich glaube ich brauche einen Bremschopper.

Für die Hilfsspannung werde ich einen Trimmer anbringen.
Den dreht man so weit auf, dass der Motor anläuft und gut ist.
So muss man nicht immer den Sketch anpassen.

Jedenfalls ein sehr erfolgreicher Abend.

Morgen säge ich mit langsamer Drehzahl am Kunststoff-
Gehäuse für den Umrichter …


LG
old.

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe zu wenig Zwischenkreiskapazität.

Die Zwischenkreisspannung wird schon im Langsambetrieb
zu hoch. (Vom Bremsen ganz zu schweigen.)
Mit Oszilloskop dran, traut man sich ja nicht mal
am Poti langsam zu drehen.
Ich habe an der positiven Hälfte des Zwischenkreises
gemessen.
Zum Glück habe ich nicht mit einer Kreissäge experimentiert ...

Jetzt weiß ich, weshalb solche Inverter bei schlappen
Zwischenkreiskondensatoren sich ausklinken oder  gar
durchlegieren.

Ich muss dem Arduino auf jeden Fall mitteilen,
wenn die Zwischenkreisspannung 750V überschreitet.
TL431 und Optokoppler.

LG
old.

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

So sieht das schon besser aus.
Je 500µF parallel zu den 150µF. Das reicht erstmal zum Arbeiten.
Vielleicht bekomme ich ja noch mehr Kapazität unter.

Ich muss softwareseitig die Poti Einstellung
verlangsamen, so ist auch das Bremsproblem gelöst
und ich komme ohne Bremschopper aus.

LG
old.

von oldeurope O. (Gast)



Lesenswert?

Mit der Langsamen Drehzahl kann ich endlich damit Kunststoff
sägen. Im Bild habe ich den Gehäuseboden damit ausgesägt.
:)))

In eingebautem Zustand kann ich ganz bequem auf beiden Seiten
der Leiterplatte arbeiten. Später kommt unten noch eine
Bodenplatte drunter. Übrigens gibt es beim Obi jetzt
Kunststoffschrauben und Muttern zum anschrauben der Leiterplatte.

LG
old.

von B. P. (skorpionx)


Angehängte Dateien:

Lesenswert?

Matthias S. schrieb:
> Wenn du die Tabellen anpasst und den Hilfswicklungsausgang anders
> skalierst, sollte das mit meinem FU funktionieren:
> https://www.mikrocontroller.net/articles/3-Phasen_Frequenzumrichter_mit_AVR

Ich habe das  analysiert und leider das wird nicht funktioniert. Jede
Zeile in der Tabelle hat drei Einträge. Ein Drehstrommotor hat drei
Spulen (Wicklungen)und (nehmen wir an...) dass die in Dreieck
geschaltet sind. Werte von 0 bis 1 für Sinusverlauf  werden  durch
Wert von 0 bis 255 von der Tabelle simuliert. Nennen wir die
„theoretische Sinuswerte“. Spannungsverlauf für die erste
Phasenwicklung ergibt sich  aus der Differenz zwischen dem
ersten und zweiten Zeileneintrag. Wenn der zweiten Zeileneintrag,
die verantwortlich ist  für die Spannungsverlauf für die zweite
Wicklung, nicht null  ist (Ende von der ersten Spule und der Anfang
von der zweiten Spule liegen nicht dauerhaft auf Masse)  muss um
diesen  Wert der ersten Zeileneintrag  größer als der theoretischen
Wert sein.   Also Addition...Aber keinen Tabellen Eintrag
kann größer als 255 sein. Und das ist möglich bei Phasenverschiebung
120° aber nicht bei der Verschiebung um 90°. Andere Möglichkeit
wäre wenn wir statt  drei, vier PWM Zähler zu Verfügung
hätten. Dann hätten wir auch keine Verbindung zwischen beiden
Spulen und zwei PWM Vollbrücken... Unsinn
Ich entscheide mich für die Lösung  mit zwei Halbbrücken
wie auf dem Skizze...
Ich versuche das Programm dazu anpassen...

: Bearbeitet durch User
von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

B. P. schrieb:
> Ich entscheide mich für die Lösung  mit zwei Halbbrücken
> wie auf dem Skizze...

Ist so gemacht, Danke.

Habe noch zwei von den Elkos im meiner Gebrauchtkondensatorkiste 
gefunden.

Und es hat Puff gemacht. Der NTC ist tot.

Ich muss mal sehen, ob ich mit der Versorgung vom
Arduino noch ein Relais schalten kann.

Dann werde ich einen 33R vor dem NTC mit dem Kontakt
brücken …

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Aus der W. schrieb:
> Ich muss mal sehen, ob ich mit der Versorgung vom
> Arduino noch ein Relais schalten kann.

Dann habe ich nur noch 10V am Ladekondensator.
Mit einem 12V Relais mit 270R Spule.
Damit ist der Netztrafo überlastet.
Wenn ich den 7805 durch einen Schaltregler ersetze
müsste ich hinkommen.

LG
old.

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Mit dem Schaltregler klappt das.
Das Relais überbrückt den Widerstand noch 2 Sekunden.
Dann startet der Inverter.
An dem 47R zum Laden ist eine Thermosicherung angebracht.

LG
old.

von oldeurope O. (Gast)



Lesenswert?

Aus der W. schrieb:
> Ich muss dem Arduino auf jeden Fall mitteilen,
> wenn die Zwischenkreisspannung 750V überschreitet.
> TL431 und Optokoppler.
1
  if((digitalRead(zwkpin)) == HIGH){zwkist = micros();          // Überspannungsabschaltung Zwischenkreis
2
    if(zwkist - zwkstart > zwkvz){zwk = HIGH;}}
3
    else{zwkstart = micros();}                                  // zwk soll HIGH bleiben Überspannungsabschaltung

zwkvz beträgt 100µs

Ansprechen wird das aber wirklich nur bei defekten
Zwischenkreiselkos. Ich kann jetzt schlagartig
vom Rechts- zum Linksanschlag drehen, die Säge
wird praktisch in Echtzeit in der Drehzahl gesteuert.
Bremst auch sofort ab. Also eine Zählschaltung,
die das Poti langsam wirken lässt, brauche ich hier nicht.

Auch das ist inzwischen erledigt.
Die Drehzahlregelung für den Kondensatormotor der
Dekupiersäge ist jetzt fertig.

Allerdings überlege ich, den 74LS00 runter zu löten
und die Optokoppler unmittelbar mit dem Arduino zu trieben.
Inzwischen ist mein Vertrauen in den Arduino gestiegen.

LG
old.

von oldeurope O. (Gast)



Lesenswert?

Ein paar Bilder zum Wochenende.
Dafür habe ich den Frequenzumrichter an der Dekupiersäge TFZ-400R,
so wie er hin soll, angeschlossen.

Noch auf der to do Liste:

Die Abdeckung für das Inverterboard,
eine Crowbar gegen Überspannung aus dem Netz,
Gummipuffer an den Haltewinkeln,
Schaltplan fertig zeichnen.

LG
old.

von oldeurope O. (Gast)



Lesenswert?

Der Ferritkern und der Kondensator genügen schon
für ungestörten (AM-)Radio Empfang.

LG
old.

von Timo N. (tnn85)


Lesenswert?

Wofür die ganzen Printtrafos?

von oldeurope O. (Gast)



Lesenswert?

Siehe inzwischen alte Schaltung.
Da sind vier unterschiedliche Potentiale.
GND, neutral, low side, high side Hauptwicklung und high side
Hilfswicklung. Wobei ich für neutral keine Versorgung brauche.

Ich habe gerade den 47S00 ausgebaut.
Mir ist die Idee gekommen, die Optoleds zwischen zwei Arduino-
Pins zu hängen.

LG
old.

von oldeurope O. (Gast)



Lesenswert?

Das hat funktioniert. Die Schaltung ist recht überschaubar
geworden und nun habe ich richtig viel Platz auf der
Europakarte gewonnen. Kein Ding so ein Frequenzumrichter
mit Arduino. Ich meine, der Selbstbau lohnt sich.
Das macht richtig Spaß.

Anbei noch zwei Oszillogramme damit man erkennt wie die
Signalform aussieht.
Bei 50Hz (und mehr) bekommt der Motor Reckteckimpulse.
Der Effektivwert entspricht dem Sinus entsprechender
Amplitude.

Bei Frequenzen kleiner 50Hz kommt passend PWM hinzu
um die Spannung mit der Frequenz abzusenken.
(Für das Foto konnte ich die Frequenz nur etwas herunterdrehen.)
Beachtet, dass die PWM jeweils nur bis zur Nulllinie geht.

Ich habe im Setup vorsichtshalber die Pegel voreingestellt,
damit keinesfalls beim Einschalten in einer Halbbrücke
beide Transistoren leitend werden. Ob man das muss, weiß
ich nicht. Aber es gibt mir ein sicheres Gefühl.

Die Schaltung ist eigentlich inhärent sicher, weil die
Opto-LED zwischen zwei Pins liegt.

Was im realen Aufbau noch fehlt, ist die AC-Crowbar. Die habe
ich im fliegenden Aufbau getestet. Einen potenten Triac, der
ein Sicherung-Auslösen überleben (soll), bestelle ich demnächst
mit.

Ich sehe gerade, ich habe das Poti und den XTAL noch nicht
eingezeichnet. Folgt …

Fein, dass das Forum aus der kiCad-pdf eine png macht.
:)

LG
old.

von Timo N. (tnn85)


Lesenswert?

Interessantes Projekt, auch wenn ich so im Hinterkopf habe, dass man 
eine Drehzahlregelung von Kondensatormotoren selbst mit einem FU nicht 
perfekt sein soll. Kondensatormotoren sind noch ein großes Mysterium für 
mich. Hab dennoch ein paar Fragen:

Aus der W. schrieb:
> Ich habe die Spannungen zwischen N und Hauptwicklung
> sowie N und Hilfswicklung gemessen.
> Beide haben etwa 230V.
> Zwischen den beiden Wicklungen liegen 375V.
>
> Eine LTspice-Simu ergibt eine Phasenverschiebung
> von 110°. Also sagen wir mal die bekannten 120°.

D.h. Dein N ist direkt mit beiden Spulen verbunden, richtig?
Was heißt "beide haben 230V"? Meinst du zwischen "L von Hauptwicklung" 
und N bzw. zwischen "L von Hilfswicklung" und N (das ist ein und 
dasselbe Potential, klar ist da 230V) oder meinst du zwischen dem Punkt 
hinter dem Kondensator der Hilfswicklung (also Verbindungspunkt 
Kondensator und Hilfswicklung) und N?

Dann bedeutet "Zwischen den beiden Wicklungen liegen 375V." wohl, dass 
zwischen dem Punkt der Hilfswicklung hinter dem Kondensator und L 375 
VAC RMS anliegen? Bei welcher Drehzahl und welchem Moment gemessen? 
Leerlauf oder Stillstand?

Aus der W. schrieb:
> Also für die Drehstrombrücke komme ich mit 325V Zwischenkreisspannung
> auf 60V bei 90° Phasenverschiebung.
> Ich muss dann 180° und 30° bzw. 330° je nach Laufrichtung einstellen.

Wie kommst du auf die "60V" und welche Phasenverschiebung zwischen 
welchen Punkten meinst du hier genau?
Wieso musst du dann 180° und 30°/330° einstellen um 90° zu bekommen?
Ich komm bei deinem Gedankengang nicht ganz mit. Redest du hier von der 
Spice-Simulation oder von einer realen Messung? Mit oder ohne 
Betriebskondensator?

Aus der W. schrieb:
> Zum Anlaufen braucht man die 90°.
> Im Betrieb lässt sich der Strom durch die Hilfswicklung
> bei etwa 120° zu Null bringen.
?

hinz schrieb:
> Besser wäre es etwas Literatur über Induktionsmotoren zu lesen. Das
> hilft ganz enorm sie zu verstehen.

Gibts da Empfehlungen dazu. Aber speziell zu Kondensatormotoren! Zu 
Dreiphasigen Asynchronmaschinen gibts ja viel, aber bei 
Kondensatormotoren dünnt es sich aus, obwohl die ja massenhaft überall 
verbaut sind.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Timo N. schrieb:
> Gibts da Empfehlungen dazu. Aber speziell zu Kondensatormotoren!

Unter dem englischen Stichwort 'Single Phase Induction Motor' findet man 
einiges. Hier ist z.B. ein nettes Video zur Funktionsweise:
https://www.youtube.com/watch?v=awrUxv7B-a8
Hier mehr ein Hands-On Video:
https://www.youtube.com/watch?v=2XYdTogWcIA
Der Autor des letzten Videos hat eine ganze Serie zu Motoren.

von oldeurope O. (Gast)


Lesenswert?

Der Strom durch den Kondensator verursacht Spannungen und Phasenlagen
die mich in die Irre geführt haben. Diese Messungen und Simus sind
für die Tonne.
Es gibt diverse Videos in denen man den Aufbau des Motors erkennt.

https://www.youtube.com/watch?v=__nS3OelY-s

Daraus folgt genau das was crazyhorse anfangs im ersten Absatz schrieb.

H.Joachim S. schrieb:
> Wenn
> überhaupt, brauchst du 2 mit 90° Phasenverschiebung. Allerdings dann
> auch mit verschiedenen Spannungen, Hilfs- und Hauptwicklung sind nicht
> gleich.

Und so habe ich das auch gemacht.

Ich habe jetzt erst zwei Motoren probiert und die Spannung an
der Hilfswicklung ist bei beiden sehr unterschiedlich.
Für mich als Selbstbauer ist das kein Ding.
Muss man nur eine Ziffer "12" dort anpassen:
1
 hspg = (spg * 10  / 12);        // Berechnung der Hilfsspannung für Dekupiersäge

Als Nächstes bekommt die Ständerbohrmaschine einen Inverter.
Da mache ich dann Rückspeisung ins Netz, weil viel Schwungmasse
vorhanden ist.

LG
old.

von Timo N. (tnn85)


Lesenswert?

Aus der W. schrieb:
> Ich habe jetzt erst zwei Motoren probiert und die Spannung an
> der Hilfswicklung ist bei beiden sehr unterschiedlich.

Du meinst die Spannung zwischen den beiden Anschlüssen der Hilfswicklung 
bei angeschlossenem Kondensator. D.h. der rest (230V - 60V) fällt dann 
eigentlich am Kondensator ab. Den gibt es bei dir nicht und du erzeugst 
nur phasenverschobene 60V?

Die Phasenverschiebung der SPANNUNG ist aber so gewählt (bei dir glaube 
ich 110°), dass der STROM 90° phasenverschoben ist?


Stimmt es so?

Aus der W. schrieb:
> Für mich als Selbstbauer ist das kein Ding.
> Muss man nur eine Ziffer "12" dort anpassen: hspg = (spg * 10  / 12);
> // Berechnung der Hilfsspannung für Dekupiersäge

Man merkt, dass du aus der Elektronik kommst und nicht aus der 
Softwareecke.
Dein Arduinoquellcode ist etwas schwer verständlich und somit auch für 
andere schwer wieder zu verwenden.
Z.b. diese "12" oder der Teiler "10/12" scheinen beim durchlesen 
willkürlich gewählt.  Es ist für mich nicht ersichtlich, wie du auf den 
Betrag kommst.
Wenn es feste Maschinenparameter sind, dann würde ich dies oben bei der 
Deklaration der entsprechenden Variable angeben und nicht unten in die 
Zuweisung packen. (z.b. mit #define HilfsSpgParam 10/12)

Auch die Werte zur Berechnung der Periodendauer "25ms" oder "5100" sind 
mir nicht klar.

Viele deiner Konstanten sind unkommentiert.

Auch für dich selbst wäre es sinnvoller hier aufzuräumen, Berechnungen 
in eigene Funktionen zu packen (mit Parametern), falls du später nochmal 
den Quelltext ändern musst.

Wenn du dich mal mit dem Timer vom ATmega beschäftigen würdest und den 
bare metal programmierst, würde dein Programm glaube ich um einiges 
einfacher werden.

Aber vielleicht weißt du ja schon, was ich dir vorschlage und hattest 
nur keine Lust :)

Matthias S. schrieb:
> Unter dem englischen Stichwort ....

Danke für den Tipp. Die Videos werde ich mir mal reinziehen :)

von oldeurope O. (Gast)


Lesenswert?

Timo N. schrieb:
> Drehzahlregelung von Kondensatormotoren selbst mit einem FU nicht
> perfekt sein soll.

Was bitte soll da nicht perfekt sein?



Timo N. schrieb:
> und du erzeugst
> nur phasenverschobene 60V?

230V/1,2 = 192V

Timo N. schrieb:
> Z.b. diese "12" oder der Teiler "10/12" scheinen beim durchlesen
> willkürlich gewählt.

Dann lies halt mal den Thread hier komplett. Ist eine Anleitung dabei.

Timo N. schrieb:
> würde dein Programm glaube ich um einiges
> einfacher werden.

Noch einfacher? Wunderbar. Mach mal, ich probiere den Sketch dann aus.

LG
old.

von Timo N. (tnn85)


Lesenswert?

Aus der W. schrieb:
> Timo N. schrieb:
>> Drehzahlregelung von Kondensatormotoren selbst mit einem FU nicht
>> perfekt sein soll.
>
> Was bitte soll da nicht perfekt sein?

"Anmerkung, Beschreibung verschiedener Anwendungen:
Der einstellbare Drehzahlbereich bei einphasigen Wechselstrommotoren ist 
technisch bedingt nicht so gross wie bei Drehstrommotoren in Verbindung 
mit Standard-Umrichtern. Je nach Eigenschaft des Motors und der 
Anwendung kann das Drehmoment in manchen Fällen bereits bei 25 Hz und 
darunter stark abfallen. Die obere Drezahlgrenze liegt bei 70 Hz für 
Pumpenund Lüfter, sowie bei 90 bis 100 Hz bei Antrieben mit konstantem 
Moment...." (Quelle: http://www.pophof.de/Frequenzumrichter-ODE1.html)

Aus der W. schrieb:
> Timo N. schrieb:
>> und du erzeugst
>> nur phasenverschobene 60V?
>
> 230V/1,2 = 192V
>
> Timo N. schrieb:
>> Z.b. diese "12" oder der Teiler "10/12" scheinen beim durchlesen
>> willkürlich gewählt.
>
> Dann lies halt mal den Thread hier komplett. Ist eine Anleitung dabei.

Ich finde es nicht. Im Programmcode kommt es vor, aber sonst habe ich 
den Wert 192V noch in keinem Beitrag von dir gelesen. Mich interessiert 
es wirklich.

Aus der W. schrieb:
> Noch einfacher? Wunderbar. Mach mal, ich probiere den Sketch dann aus.

Dazu müsste ich den Quellcode erst mal verstehen. Es fehlen mir aber die 
Bedeutung der Parameter.

Ich weiß auch nicht ob du es falsch aufgeschnappt hast. Es war mehr als 
konstruktive Kritik gemeint. Sonst hast du ja ganze Arbeit geleistet.

: Bearbeitet durch User
von oldeurope O. (Gast)


Lesenswert?

Timo N. schrieb:
> Dazu müsste ich den Quellcode erst mal verstehen.

Schau dir unter Beispiele den Sketch blink without delay
an. Wenn Du den verstanden hast, verstehst Du auch den
Quellcode. Sonnst copy und paste, man muss nicht alles
verstehen.

Timo N. schrieb:
> "Anmerkung,

Deren Problem.
Übrigens gehe ich von der 50Hz Drehzahl auf 1/10 runter.
1
  if(wert < 25){wert = 25;}       // Mindestdrehzahl
2
  if(wert >= 255){wert = 255;}    // Höchstdrehzahl      
3
  per = 5100 / wert;              // Berechnung der Periodendauer
Damit kann ich ganz langsam Kunststoffe sägen.
(Bei der Ständerbohrmaschine werde ich auch höher drehen und die
Richtung ändern.)

Timo N. schrieb:
> Ich finde es nicht.

Bitte sehr:
Aus der W. schrieb:
> Für die Hilfsspannung werde ich einen Trimmer anbringen.
> Den dreht man so weit auf, dass der Motor anläuft und gut ist.
> So muss man nicht immer den Sketch anpassen.

Bei dem Motor ist das bei 12 so. Da der Inverter fest mit
der Säge verbunden ist, habe ich das mit dem Trimmer nicht
realisiert.
Also bei 40 anfangen und die Zahl verkleinern, (min. 10 !) bis man
das Anlaufdrehmoment so hat wie im Betrieb ohne Inverter
mit Kondensator.

Die Einstellung der Spannungsreduzierung mit der Frequenz
ist auch individuell. Das habe ich über die Stromaufnahme
auf der Eingangsseite des Inverters ermittelt.
Aber das hat man bei 120° Drehstrom Motoren auch.
1
  spg = 157 + 10 * wert / 26;     // Berechnung der frequenzabhänigen Spannung

Man braucht da eine "Sockelzahl", hier 157.

LG
old.

von Timo N. (tnn85)


Lesenswert?

Die Logik deines Programms verstehe ich schon. Nur die genutzten 
Parameter sind mir unklar (was ein konkreter Wert von 5100, 10, usw. 
bedeutet bzw wie du den Wert berechnet oder ermittelt hast).

So wie du schreibst hast du scheinbar alles empirisch ermittelt. Das 
verstehe ich jetzt. So, dass es halt irgendwie passt.

von oldeurope O. (Gast)


Lesenswert?

Timo N. schrieb:
> 5100

Ein Byte geht von 0 bis 255.
Die Periodendauer ist bei 50Hz 20ms
5100 = 255*20

So bekommt jede Potistellung eine Priodendauer.

Timo N. schrieb:
> 10

Du hast hier ganzzahlige Datentypen ohne Dezimalkomma.
Wie willst Du jetzt durch 1,2 teilen?
Ganz einfach: Du multiplizierst mit 10 und teilst dann
durch 12.

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Matthias S. schrieb:
> Aus der W. schrieb:
>> Delon-Schaltung natürlich.
>
> Das macht kein Mensch und ist auch sinnlos. Und anscheinend weisst du
> nicht, was für Elkos dafür erforderlich wären.

Timo N. schrieb:
> dass es zwar mit einer
> Spannungsverdopplung "technisch" möglich wäre 3-phasig 400V aus 1-phasig
> 230V zu erzeugen, es aber wirtschaftlich nicht sinnvoll ist ?

Gegenüber der Grätzbrücke sind dafür zwei Elkos mit der halben
Kapazität und unveränderter Spannungsfestigkeit erforderlich.
Platz und kostenmässig besteht da kein Unterschied.

Übrigens haben die Delonschaltung und die Drehstrombrücke,
entspricht drei mal Delon, einen festen symmetrischen Bezug zum
Nullleiter.

Der Neutralleiter steht auch am Ausgang des Inverters zur
Verfügung.

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Aus der W. schrieb:
> Das Relais überbrückt den Widerstand noch 2 Sekunden.
> Dann startet der Inverter.
> An dem 47R zum Laden ist eine Thermosicherung angebracht.

Der 47R 11W ist einfach hochohmig geworden.
(Im Gegensatz zum NTC ganz unspektakulär.)
Dadurch ist die Netzsicherung beim Wiedereinschalten gekommen.

Ich muss da einen impulsfesten einen Drahtwiderstand nehmen.

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Aus der W. schrieb:
> Mir ist etwas neues eingefallen, wie ich die 1KHz doch nutzen
> kann.
>
> Und zwar, wenn ich während der positiven Halbwelle nur den
> "oberen" Schalttransistor  der Halbbrücke ansteuere und während
> der negativen nur den unteren.
>
> Damit senke ich die Belastung durch die Schaltfrequenz ganz
> erheblich und kann eine niedrige PWM-Frequenz nutzen.
>
> Und um die Totzeit brauche ich mich dann nicht zu kümmern.

Gestern entdeckt Gelesen:

Matthias S. schrieb:
> PWM Signal findet sich also in der Ansteuerung beider
> Teile der Halbbrücke.

Das ist bei mir nicht der Fall weil ich den Motor nicht mit
der Schaltfrequenz rail-to-rail belasten will. Bei DC Motoren ist das
ähnlich. Für 0V tackert man da auch nicht 1:1.
Könnte man zwar machen, wird auch oft so erklärt (=d-amp ohne Filter)
 - aber der Motor wird dann unnütz thermisch belastet.

Zum Glück habe ich mich für die separate Spannungsversorgung der
Optotreiber entschieden.

LG
old.

von hinz (Gast)


Lesenswert?

Aus der W. schrieb:
> Das ist bei mir nicht der Fall weil ich den Motor nicht mit
> der Schaltfrequenz rail-to-rail belasten will. Bei DC Motoren ist das
> ähnlich. Für 0V tackert man da auch nicht 1:1.
> Könnte man zwar machen, wird auch oft so erklärt (=d-amp ohne Filter)
>  - aber der Motor wird dann unnütz thermisch belastet.
>
> Zum Glück habe ich mich für die separate Spannungsversorgung der
> Optotreiber entschieden.

Du hast einfach keine Ahnung davon, glaubst aber das geschnittene Brot 
erfunden zu haben.

von oldeurope O. (Gast)


Lesenswert?

hinz schrieb:
> glaubst aber das geschnittene Brot
> erfunden zu haben.
[ironie]
Sorry, dass ich in 3 Wochen schaffe, was ihr in 7 Jahren
nicht hinbekommt.
[/ironie]

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

Matthias S. schrieb:
> Kondensatormotor. Diese Motore lassen sich nur sehr widerwillig und in
> einem engen Drehzahlbereich regeln, denn der Kondensator ist für die
> normale Arbeitsdrehzahl/Frequenz optimiert. Kurz: Nicht geeignet zum
> Betrieb am Frequenzumrichter.

Poltert ruhig weiter rum, das geht alles auf das Konto deines
Herrchens.

LG
old.

von hinz (Gast)


Lesenswert?

Aus der W. schrieb:
> Sorry, dass ich in 3 Wochen schaffe, was ihr in 7 Jahren
> nicht hinbekommt.

Ich hab sogar in über 40 Jahren nicht so einen Mist hinbekommen. Muss 
wohl an deiner Krankheit liegen.

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Aus der W. schrieb:
> Was im realen Aufbau noch fehlt, ist die AC-Crowbar. Die habe
> ich im fliegenden Aufbau getestet. Einen potenten Triac, der
> ein Sicherung-Auslösen überleben (soll), bestelle ich demnächst
> mit.

Also wie im vorhergehenden Schaltbild gezeichnet, klappt das
nicht. Der Triac zündet beim Einschalten manchmal über Kopf.
Überleben tut das Ding jedenfalls.

Wenn diese Schaltungsänderung nicht taugt, werfe ich die
AC-Triac-Crowbar raus.

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Ich bin vorsichtig optimistisch. :)))

Mache noch die Schaltung fertig
und poste sie dann mit dem passenden aktuellen Sketch.

LG
old.

von oldeurope O. (Gast)



Lesenswert?

So spiele ich den Sktech auf den externen atmega328.

Möglicherweise machen die Nerds das anders …

Vor dem Anklemmen Potentialausgleich (GND-Verbindung)
zwischen Arduino-UNO-Board und Inverterboard machen.
Zum Programmieren bekommt nur der Steuerteil des Inverters Netz.

LG
old.

von oldeurope O. (Gast)



Lesenswert?

Anbei der aktuelle Schaltplan mit Sketch.

Die Drehzahlsteuerung läuft so, es kommen ab jetzt nur noch
Updates … Mal sehen was da noch verwertbares rumkommt:
Beitrag "Re: Selbstbau von Überspannungsrelais"
Beitrag "Re: Frequenzumrichter für Wechselstrommotor."

Das Bild vom Klemmbrett, weil dort unscharf:
Beitrag "My first selbstbau Inverter dank arduino"

Ein Anlauf und die Bremse sind inzwischen dazu gekommen,
die Bremse habe ich gestern Abend noch programmiert.

Ich bremse nicht mit DC, sondern fahre die Frequenz
schnell runter.
Klappt genau so schön und geht auch ohne Netzspannung.

Freut mich, dass ich das Projekt hier, bis zur Fertigstellung,
durchziehen durfte.

LG
old.

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Anbei liefere ich die Messung zwischen U und N bei verminderter
Drehzahl am Frequenzumrichter nach.

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Nach Durchsicht der Software ist mir aufgefallen,
dass zwei Monoflops überflüssig sind. Sie erzeugen
nur nochmal das Multivibrator-Signal.
1
  mvist = micros();                                             // Multivibrator Anfang  
2
  if(mvist - mvstart >= (500 * per)){mvstart = mvist;
3
    if(mv == LOW){mv = HIGH;}
4
    else {mv = LOW;}}                                           // Multivibrator Ende
5
  if(mv == HIGH){enupistzeit = micros();                                                         
6
    if(enupistzeit - enupstart > (250 * per)){enup = HIGH;}}    // enable Monoflops Anfang
7
    else{enupstart = micros(); enup = LOW;}  
8
  if(mv == LOW){enunistzeit = micros();                                                         
9
    if(enunistzeit - enunstart > (250 * per)){enun = HIGH;}}   
10
    else{enunstart = micros(); enun = LOW;}  
11
  if(enup && !dis && !zwk && !enun){digitalWrite(enuppin,LOW);} 
12
    else{enup = LOW; digitalWrite(enuppin,HIGH);}  
13
  if(enun && !dis && !zwk && !enup){digitalWrite(enunpin,LOW);} 
14
    else{enun = LOW; digitalWrite(enunpin,HIGH);} 
15
  /*if(enup == LOW){enzpistzeit = micros();                                                         
16
    if(enzpistzeit - enzpstart > (500 * per)){enzpmf = HIGH;}}     
17
    else{enzpstart = micros(); enzpmf = LOW;}*/
18
  enzp = !enup && mv;    
19
  if(enzp && !dis && !zwk && !enzn){digitalWrite(enzppin,LOW);} 
20
    else{enzp = LOW; digitalWrite(enzppin,HIGH);}
21
  /*if(enun == LOW){enznistzeit = micros();                                                         
22
    if(enznistzeit - enznstart > (500 * per)){enznmf = HIGH;}}      
23
    else{enznstart = micros(); enznmf = LOW;}*/
24
  enzn = !enun && !mv;    
25
  if(enzn && !dis && !zwk && !enzp){digitalWrite(enznpin,LOW);} 
26
    else{enzn = LOW; digitalWrite(enznpin,HIGH);}                // enable Monoflops Ende


Das macht den Sketch für den FU ja nochmal einfacher.
Wer hätte das gedacht.
Werde die Änderung nachher testen.

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Matthias S. schrieb:
> 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

Können sie in deinem Schaltungsvorschlag nicht.
Ich erkläre das mit einem Zitat von dir:

Matthias S. schrieb:
> Am besten machst du dir mal die Funktion der integrierten Ladungspumpe
> in den IR Chips klar, die dafür sorgt, das auf VS die Gatespannung
> 'aufgestapelt' wird, und zwar unabhängig vom absoluten Pegel an VS.
> Die Pumpe muss getaktet werden, sonst kann sie die Spannung Vcc nicht
> auf VS aufstocken. Das bedeutet, das mit einem solchen System nie 100%
> ED auf der Highside gemacht werden kann

Deshalb die extra Spannungsversorgung mit den Printtrafos oder
GVS schrieb:
> Zum Versogen der Halbbrücken verwenden wir Recom DCDC-Wandler (5->15V)
> Typ RxxP2, jeweis 2 Stück.

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Nice to know, im Netz wird das hier:
https://www.mikrocontroller.net/attachment/447103/20200229_ohne_pwm.jpg
als modified sine wave bezeichnet.

Gestern Abend habe ich ein Experiment gemacht, wie sich dieser
gegenüber dem Sinus in der Erwärmung des Motors bemerkbar
macht.
Dazu habe ich einen GE-Motor nur an der Arbeitswicklung mit
Handanwurf betrieben und so lange laufen lassen, biss sich eine
stabile Temperatur einstellt.
Beim Netzsinus waren das 45°Celsius bei 13°KT (Keller-Temperatur)
Beim modifizierten Sinus 52°.
Also kann man etwa 20% mehr Verlustwärme annehmen.

Wie das mit einem nicht-geglätteten PWM-Sinus ausschaut,
gilt es zu prüfen. Dann kommt es noch drauf an, ob dieser
Sinus im, ich nenne das mal tri-state-mode, kommt.
Einen Eindruck bekommt man sicher, indem man einfach
einen D=50% Rechteck auf den Motor gibt, und prüft
wie stark er sich alleine dadurch erwärmt.

Ich meine deshalb nicht, dass man mit dem PWM-Sinus da
Beitrag "Diskussion zum Artikel "Single Chip Frequenzumrichter" für den 2. MC Wettbewerb"
weniger Wärmeverlust im Motor bekommt.
Mit der Tri-State-PWM kann ich mir das vorstellen.

Was ich jedoch für viel effizienter halte ist, die Spannung
nicht nur der Frequenz, sondern dem Schlupf anzupassen.
Schlupf groß - Spannung rauf, Schlupf klein - Spannung runter.

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Dazu habe ich die Taktfrequenz des Multivibrators mit
20 multipliziert. Nun zähle ich während einer Periode
bis 20. per steht für Periodendauer in Millisdekunden.
Also 20 für 50Hz.
Jedem Wert von 1...20 ordne ich PWM-Werte zu und gebe die
dazu passenden Optoled-Katoden frei.
So der Plan.
Letzteres funktioniert schon auf dem UNO-Board am Oszilloskop:
1
 mvv = mv;  
2
  mvist = micros();                                              // Multivibrator Anfang  
3
  if(mvist - mvstart >= (25 * per)){mvstart = mvist;
4
    if(mv == LOW){mv = HIGH;}
5
    else {mv = LOW;}}                                            // Multivibrator Ende
6
  if(mv != mvv){zahl ++;}
7
  if(zahl >= 21){zahl = 1;}                                      // zählt während einer Periode von 1...20
8
    if(zahl == 1)
9
     {enup = LOW; enun = HIGH; enzp = LOW; enzn = LOW;}        
10
    if(zahl == 2)
11
     {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW;} 
12
    if(zahl == 3)
13
     {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW;}
14
    if(zahl == 4)
15
     {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW;}
16
    if(zahl == 5)
17
     {enup = LOW; enun = LOW; enzp = HIGH; enzn = LOW;}
18
    if(zahl == 6)
19
     {enup = LOW; enun = LOW; enzp = HIGH; enzn = LOW;}
20
    if(zahl == 7)
21
     {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW;}
22
    if(zahl == 8)
23
     {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW;} 
24
    if(zahl == 9)
25
     {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW;}
26
    if(zahl == 10)
27
     {enup = HIGH; enun = LOW; enzp = LOW; enzn = LOW;} 
28
    if(zahl == 11)
29
     {enup = HIGH; enun = LOW; enzp = LOW; enzn = LOW;}
30
    if(zahl == 12)
31
     {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH;}  
32
    if(zahl == 13)
33
     {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH;}
34
    if(zahl == 14)
35
     {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH;}
36
    if(zahl == 15)
37
     {enup = LOW; enun = LOW; enzp = LOW; enzn = HIGH;}
38
    if(zahl == 16)
39
     {enup = LOW; enun = LOW; enzp = LOW; enzn = HIGH;}
40
    if(zahl == 17)
41
     {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH;}
42
    if(zahl == 18)
43
     {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH;}
44
    if(zahl == 19)
45
     {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH;}
46
    if(zahl == 20)
47
     {enup = LOW; enun = HIGH; enzp = LOW; enzn = LOW;} 
48
  if(enup && !zwk && !enun){digitalWrite(enuppin,LOW);} 
49
    else{enup = LOW; digitalWrite(enuppin,HIGH);} 
50
  if(enun && !zwk && !enup){digitalWrite(enunpin,LOW);} 
51
    else{enun = LOW; digitalWrite(enunpin,HIGH);} 
52
  if(enzp && !zwk && !enzn){digitalWrite(enzppin,LOW);} 
53
    else{enzp = LOW; digitalWrite(enzppin,HIGH);}
54
  if(enzn && !zwk && !enzp){digitalWrite(enznpin,LOW);} 
55
    else{enzn = LOW; digitalWrite(enznpin,HIGH);}

Ich muss jetzt für die 20 Punkte den passenden Sinus und
Cosinus Wert berechnen und mit dem Spannungsreduktionsfaktor
multiplizieren. Jetzt benötige für U und Z je einen PWM
Ausgang und nicht einen gemeinsamen wie für den mod Sin.

enup = Freigabe Arbeitsspannung positive Halbwelle
enun = Freigabe Arbeitsspannung negative Halbwelle
enzp = Freigabe Hilfsspannung positive Halbwelle
enzn = Freigabe Hilfsspannung negative Halbwelle
Die Katoden der entsprechenden Optotreiber sind mit
den Pins verbunden. Über die Anode kommt die PWM.
Das ist ja jetzt auch schon so.

LG
old.

von abc. (Gast)


Lesenswert?

lweuchtet mir irgendweie nicht ganz ein ;-)

magst einen 'scopeshot von den ansteuersignalen der fets machen?

Beitrag #6187278 wurde von einem Moderator gelöscht.
von oldeurope O. (Gast)



Lesenswert?

abc. schrieb:
> magst einen 'scopeshot von den ansteuersignalen der fets machen?

Ich probiere gerade auf dem UNO-Board.
Anbei der Sketch 20200321e zum spielen.
Der läuft auf dem UNO ohne weitere Anbauten.
Dafür ist einiges im Sketch deaktiviert.

Mit der 1KHz PWM klappt das irgendwie nicht so recht,
deshalb habe ich die 25KHz PWM eingebaut.
https://arduino.stackovernet.com/de/q/8407#25623

Mir sind die Abstufungen noch zu grob.
Da muss ich die Zahl verdoppeln. Fleißkärtchen Arbeit.
Aber wenn schon so eine hohe PWM-Frequenz, denn schon.

Aber das Oszillogramm stimmt mich schonmal optimistisch.
Oben: PWM mit 1K2 100n integriert
Unten: enuppin

LG
old.

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Die gefällt mir besser:
https://arduino.stackovernet.com/de/q/8407

Hat zwar 31KHz ist aber sehr leicht zu implementieren.
Geht von 0...255, und kann 4 PWM-Pins bedienen,
3 braucht man ja für 3PH-Drehstrom.

Bin mal gespannt wie sich das auf den Wirkungsgrad der
Halbbrücken auswirkt.
Falls jemand eine ähnlich leicht funktionierene PWM
Umstellung für den Bereich 5KHz bis 10KHz parat hat,
bitte teilen.

LG
old.

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Aus der W. schrieb:
> Danke für das Oszillogramm.
> So mit Totzeiten hätte ich das gerne. Siehe Bild.
> Für die phasenverschobene genau so.
https://www.mikrocontroller.net/attachment/447361/idealkurven_001.png

Das gefällt mir. :)))

Als nächstes werden die anderen Teile des Sketches
freigegeben und dann kommt der Test im Inverter.

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Ich musste noch eine Anpassung der Werte vornehmen,
damit der Effektivwert stimmt.
Grundsätzlich läuft das gut, aber die Verluste in den
Brücken sind zu hoch. Mit dem Mini-Kühlkörper komme
ich dann nicht aus. Mit 31KHz PWM ist das zu verlustig.
Also wenn ich vorher 0,5W Schaltverluste umsetzen musste,
so sind das jetzt 31*0,5W = 16W. Das kommt hin.
Da ist mir der modifizierte Sinus deutlich lieber.

Was ich noch versuchen will ist dem modifizierten
Sinus noch eine zusätzliche Zwischenstufe links und
rechts vom Maximalwert zu geben.
Wenn ich dann mit der 500Hz oder 1KHz PWM arbeiten kann,
ist das die sauberste Lösung.

LG
old.

von Carl D. (jcw2)


Lesenswert?

Irgendwann ist dann die Erfindung "Sinusinverter" fertig.

von oldeurope O. (Gast)


Lesenswert?

Carl D. schrieb:
> "Sinusinverter" fertig.

Nochmal für dich: Ist fertig, Wirkungsgrad gegenüber
mod. Sinus schlecht. Suche Kompromiss zwischen beiden.

von Carl D. (jcw2)


Lesenswert?

Aus der W. schrieb:
> Carl D. schrieb:
>> "Sinusinverter" fertig.
>
> Nochmal für dich: Ist fertig, Wirkungsgrad gegenüber
> mod. Sinus schlecht. Suche Kompromiss zwischen beiden.

Dann bau halt funktionierendes. Es gibt ja genügend Beispiele. Hast du 
schon ein Patent angemeldet für "wie betreibe ich einen AC-Motor als 
BLDC"?

von oldeurope O. (Gast)


Lesenswert?

Carl D. schrieb:
> Dann bau halt funktionierendes.

Funktioniert doch.

Carl D. schrieb:
> Hast du
> schon ein Patent angemeldet für "wie betreibe ich einen AC-Motor als
> BLDC"?

Nein. Du?

von oldeurope O. (Gast)


Lesenswert?

Das ist ja mal eine gute Webseite:
https://etechnophiles.com/change-frequency-pwm-pins-arduino-uno/

Aus der W. schrieb:
> Was ich noch versuchen will ist dem modifizierten
> Sinus noch eine zusätzliche Zwischenstufe links und
> rechts vom Maximalwert zu geben.
> Wenn ich dann mit der 500Hz oder 1KHz PWM arbeiten kann,
> ist das die sauberste Lösung.

Mit 4KHz PWM ufb. :)

LG
old.

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Mit der 4KHz PWM geht auch der Sinus bequem.
Der Kühlkörper erwärmt sich kaum merklich
gegenüber mod sin. Ich merke nicht, dass der
Motor wärmer wird als direkt am Netz, dass
muss ich aber mit Thermometer verifizieren.

Bei ganz langsamem Dreh läuft der Motor geschmeidiger
als mit modifiziertem Sinus, kein steppen.
Die doppelte Abtastrate des Sinus bringt keinen
merklichen Vorteil mehr, 20 Punke pro Periode reichen.

Ich muss die Spannung als Funktion der Frequenz anders
einstellen als bei Modsin.

Anbei das Oszillogramm am PWM-Pin bei reduzierter
Drehzahl.

LG
old.

von Joachim B. (jar)


Lesenswert?

hmmm ist das der Thread für Selbstgespräche?

von oldeurope O. (Gast)


Lesenswert?

Joachim B. schrieb:
> hmmm ist das der Thread für Selbstgespräche?

Ja, gehört eigentlich in die Rubrik Projekte und Code.
Warum ein Moderator den in Analog geschoben hat, keine
Ahnung.

LG
old.

von hinz (Gast)


Lesenswert?

Joachim B. schrieb:
> hmmm ist das der Thread für Selbstgespräche?

Seinen Blog liest ja niemend, aus gutem Grund.

von oldeurope O. (Gast)


Lesenswert?

hinz schrieb:
> aus gutem Grund

Weil es den noch nicht gibt. Wenn, dann stelle ich hier
einen Link dahin ein.

von hinz (Gast)


Lesenswert?

Aus der W. schrieb:
> hinz schrieb:
>> aus gutem Grund
>
> Weil es den noch nicht gibt.

Eine glatte Lüge.


> Wenn, dann stelle ich hier
> einen Link dahin ein.

Hast du doch schon oft genug.


Aber auch du darfst deine Stümperei publizieren...

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Hier der Sketch mit 4KHz-PWM-Sinus. :)))
Die PWM-Pins haben sich geändert!

Beim Drehen von Hand an der Motorwelle, erzeugt der Motor
eine kleine Wechselspannung , die man auf dem Oszilloskop
sehen kann. Ich habe nur einkanalig geschaut, aber bei
der Dekupiersäge generiert sich da an beiden Wicklungen
etwa die gleiche Amplitude, bei dem GE-Motor
eine um die Hälfte kleinere an der Hilfswicklung.

Ich habe deshalb die Spannung an Arbeitswicklung und
Hilfswicklung für die Dekupiersäge identisch programmiert.

Aus der W. schrieb:
> Die doppelte Abtastrate des Sinus bringt keinen
> merklichen Vorteil mehr, 20 Punke pro Periode reichen.

Bei 5(fünf!)Hz Drehfrequenz merkt man die "Abtastrate" schon.

Ich werde den Sketch deshalb so ändern, dass bei
Drehfrequenzen kleiner 25Hz der Sinus aus 40 Werten / Periode
gebildet wird.

Umgekehrt könnte man für weit höhere Drehzahlen als die
Netzfrequenz auf modsin ohne PWM gehen. Das kommt für das
Projekt Ständerbohrmaschine...

Jedenfalls besteht kein Bedarf an einer PWM im verlustigen
zwei stelligen KHz-Bereich.

LG
old.

von oldeurope O. (Gast)



Lesenswert?

Aus der W. schrieb:
> Ich werde den Sketch deshalb so ändern, dass bei
> Drehfrequenzen kleiner 25Hz der Sinus aus 40 Werten / Periode
> gebildet wird.

Erledigt. Und das funktioniert ganz wunderbar. :)))

Ich habe am Umschaltpunkt je einen Screenshot gemacht.
War nicht ganz leicht, weil das kein Speicherscope ist.
Man erkennt gut, wie der Sinus feiner aufgelöst wird.

Die Listen habe ich im Sketch aus der Loop genommen.

LG
old.

von oldeurope O. (Gast)


Lesenswert?


Beitrag #6192408 wurde von einem Moderator gelöscht.
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Jetzt muss ich doch nochmal antworten. Der TE hat meine ausgereifte 
Konstruktion nicht verstanden, behauptet aber immer wieder das 
Gegenteil:

Aus der W. schrieb:
> Matthias S. schrieb:
>> 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
>
> Können sie in deinem Schaltungsvorschlag nicht.
> Ich erkläre das mit einem Zitat von dir:
>
> Matthias S. schrieb:
>> Am besten machst du dir mal die Funktion der integrierten Ladungspumpe
>> in den IR Chips klar, die dafür sorgt, das auf VS die Gatespannung
>> 'aufgestapelt' wird, und zwar unabhängig vom absoluten Pegel an VS.
>> Die Pumpe muss getaktet werden, sonst kann sie die Spannung Vcc nicht
>> auf VS aufstocken. Das bedeutet, das mit einem solchen System nie 100%
>> ED auf der Highside gemacht werden kann

Das spricht schon Bände. Erstens ist dem TE offensichtlich nicht klar, 
das jede Endstufe meines Projektes in jeder Totzeit auf Tristate geht 
und zweitens redet der Mann von 'Ladungspumpe leer', obwohl im Tristate 
überhaupt keine Gatespannung notwendig ist. Das ist nach wie vor dem 
mangelnden Verständnis des TE über die Arbeitsweise eines echten 
Sinuswandlers zuzuordnen.

Dann redete er davon, das die Endstufe bei einer niedrigen Sinusfrequenz 
ja immer die Ladungspumpe leer machen würde, ohne überhaupt ansatzweise 
die grundlegende Eigenschaft eines per PWM erzeugten Sinus zu verstehen:
Aus der W. schrieb:
> Matthias S. schrieb:
>> Ich weiss schon, das du darauf hinauf möchtest, das die obere
>> Ladungspumpe irgendwann alle ist, aber deswegen gibt es eine
>> Wiederholfrequenz. Ausserdem kann so ein Elko für viele Millisekunden
>> die Highside versorgen, aha sie wieder aufgeladen wird, wenn ich das für
>> nötig befunden hätte.
>
> "Daten:
> Frequenzbereich: regelbar von ca. 0,6 Hz - 162 Hz"
> Halbe Periodendauer durch 0,6Hz
> 0.5/0,6Hz = 0,84sek
>
> Also fast eine Sekunde!
>
> Du hast dir mit diesem kardinalen Fehler viele Optionen genommen!

Was natürlich völliger Blödsinn ist.
Das wäre ja alles nicht so schlimm, wenn er irgendwann mal einsehen 
würde, das er Blödsinn verzapft und das Prinzip verstehen würde. 
Stattdessen kommt sowas:

Aus der W. schrieb:
> Sorry, dass ich in 3 Wochen schaffe, was ihr in 7 Jahren
> nicht hinbekommt.

Erstens ist die Zeit, die man für ein Projekt braucht, nicht 
entscheidend und ausserdem habe ich das Projekt auf einer soliden 
Grundlage innerhalb von 3 Monaten fertiggestellt und nebenbei den 
Artikel geschrieben. Der 4. Preis beim MC Wettbewerb ist ja auch nicht 
so schlecht.

Der TE versuchte sogar, einen Motor mit 'Mod.Sinus', also Rechteck 
anzusteuern, was der Motor sicher nicht gerne sieht, Wärme erzeugt und 
schwere Laufgeräusche. Wenn man sowas ventiliert, ist eigentlich klar, 
das Grundlagen offensichtlich fehlen.
Erst in den letzen Posts wird klar, das der TE endlich ein wenig 
dazugelernt hat (heimlich in meinem Code geschnüffelt?) und sich zur 
echten Sinusansteuerung überwunden hat.

So, das ist mein endgültig letzter Post hier. Sicher kommt da ein Haufen 
Kommentare, aber ich halte mich eisern zurück, weil ich es leid bin. 
Viel zu viel Zeit schon investiert in diesen Unsinn.

: Bearbeitet durch User
von Carl D. (jcw2)


Lesenswert?

Nicht aufregen Matthias. Gab es jemals ein Gebiet, das er anders 
beackert hat?

Auch wieder ein Post zuviel.

von oldeurope O. (Gast)


Lesenswert?

Matthias S. schrieb:
> Das spricht schon Bände. Erstens ist dem TE offensichtlich nicht klar,
> das jede Endstufe meines Projektes in jeder Totzeit auf Tristate geht

Die Totzeit von der du sprichst, findet während jeder Flanke
der PWM-Frequenz statt und verhindert ein Überlappen beim
Schalten.

Dieses Problem kenne ich gar nicht, weil ich während der
positiven Halbwelle der Drehzahlfrequenz also z.B. 5...50Hz,
den low side Transistor gar nicht ansteuere.

Bei 5Hz werden low side und high side abwechselnd für
mehr als 100ms nicht eingeschaltet. Das ist ein völlig
anderer Ansatz.

Bei dir ist das ein Bruchteil einer PWM-Halb-Periode
also im Mikrosekundenbereich.
Was du gebaut hast, ist ein klassischer D-amp ohne PWM-Filter
mit Sinus Input.

Mich wundert, dass du das weder am Code, der hier im Gegensatz
zu deinem frei lesbar (Codeansicht) ist, erkennst, noch an den
Oszillogrammen von denen es bei dir gar keine zu sehen gibt.

Überlege doch mal was deine Endstufen machen, wenn 0V rauskommen
sollen. Antwort: low side und high side tackern gleich lang mit
31KHz. Beim mir sind sie dann aus oder erzeugen je einen
Nadelinmpuls.

Matthias S. schrieb:
> heimlich in meinem Code geschnüffelt?

Dazu bin ich leider nicht in der Lage.
[Ironie]Aber sollte mein Code auf deinem Niveau sein,
so freut mich das.[/Ironie]
Matthias S. schrieb:
> sich zur
> echten Sinusansteuerung überwunden hat.

Die wollte ich von Anfang an. Siehst du gleich im
Startbeitrag. Ich bin nicht in der Lage eine D-amp
Soft zu schreiben und habe keinen Treiber mit Totzeiten
dafür gefunden, was dich und hinz ja sehr gefreut hatte. Pfui!
Aber es gibt auch andere Wege nach Rom.
Und ich bin froh einen anderen Weg gefunden zu haben.
Sonnst hätte ich das Projekt nicht zu einem guten Ende bringen können.

Ich glaube nicht, dass wir in
diesem Bereich neues schaffen können, in Fernost
ist man uns weit überlegen.

Matthias S. schrieb:
> 'Mod.Sinus', also Rechteck
Du kennst nicht den Unterschied zwischen den Beiden? !

LG
old.

von hinz (Gast)


Lesenswert?

Aus der W. schrieb:
> habe keinen Treiber mit Totzeiten
> dafür gefunden, was dich und hinz ja sehr gefreut hatte. Pfui!

Wieder mal am Lügen verbreiten.

Mit deshalb kann dich keiner leiden.

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

hinz schrieb:
> Aus der W. schrieb:
>> habe keinen Treiber mit Totzeiten
>> dafür gefunden, was dich und hinz ja sehr gefreut hatte. Pfui!
>
> Wieder mal am Lügen verbreiten.

Siehe Anhang. Ich habe den Thread komplett als pdf.
Löschen hilft euch nicht weiter.

LG
old.

von hinz (Gast)


Lesenswert?

Aus der W. schrieb:
> hinz schrieb:
>> Aus der W. schrieb:
>>> habe keinen Treiber mit Totzeiten
>>> dafür gefunden, was dich und hinz ja sehr gefreut hatte. Pfui!
>>
>> Wieder mal am Lügen verbreiten.
>
> Siehe Anhang. Ich habe den Thread komplett als pdf.


Man kann deine Lüge gut erkennen.



> Löschen hilft euch nicht weiter.

Das macht die Moderation, wenn nötig.

von oldeurope O. (Gast)


Lesenswert?


von hinz (Gast)


Lesenswert?

Aus der W. schrieb:
> @ scorpionx
>
> Beitrag "Re: Frequenzumrichter für Wechselstrommotor."
>
> Danke.
>
> LG
> old.

Ja, ihr habt beide nichts verstanden.

von oldeurope O. (Gast)


Lesenswert?

Für mich ist da interessant wieviele Samples/Periode ihr
verwendet habt.[Ironie] Vielleicht ziehe ich noch gleich.
[/Ironie]
Das ist ja wirklich Fleißkärtchen Arbeit, die erst bei
Drehstromfrequenzen unter 6Hz Früchte tragen würde.
Aber unterhalb von 13Hz auf 80 oder 100 Samples/Periode
gehen, das werde ich machen.

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Mal nachrechnen wie anspruchsvoll hinz und mschoeldgen sind:

https://www.mikrocontroller.net/articles/3-Phasen_Frequenzumrichter_mit_AVR
Frequenzbereich: regelbar von ca. 0,6 Hz - 162 Hz

Gefordert sind für 0,6Hz 192 Samples.
Macht 192 Samples * 0,6/s = 115 Samples pro Sekunde
für die gewünschte Laufruhe.

Für 5Hz, das ist meine niedrigste Frequenz, gibt das
(115Samples/s) / (5/s) = 23 Samples.
Ich habe da 40 Samples.
Weil zweiphasig:
0,67 * 40Samples = 26 Samples

Aus der W. schrieb:
> Vielleicht ziehe ich noch gleich.

Nicht nötig, bin ich bereits. :)

LG
old.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Grr, jetzt muss ich doch nochmal antworten. Es werden immer 192 
Samples durchfahren - unabhängig von der Ausgabefrequenz und für jede 
Phase. Mein FU liefert also immer noch ein viel sauberes Signal als dein 
Dings - und zeigt nach wie vor, das du nicht mal die grundlegenden 
Prinzipien verstanden hast.

Aus der W. schrieb:
> Nicht nötig, bin ich bereits. :)

... noch weit davon entfernt.

: Bearbeitet durch User
von oldeurope O. (Gast)


Lesenswert?

Matthias S. schrieb:
> Grr, jetzt muss ich doch nochmal antworten.

Och du armer ...

> Es werden immer 192
> Samples durchfahren - unabhängig von der Ausgabefrequenz und für jede
> Phase.

Bestreitet doch niemand.

> Mein FU liefert also immer noch ein viel sauberes Signal als dein
> Dings - und zeigt nach wie vor, das du nicht mal die grundlegenden
> Prinzipien verstanden hast.

Am Unsaubersten läuft dein FU bei der niedrigsten Drehstromfrequenz.

(Keine Panik, meiner auch.)

Darüber sorgt die Schwungmasse für einen immer ruhigeren Lauf.
Es bringt nichts, die Abtastrate weiter hoch zu halten.
Denn das hat zur Folge, dass du bei höheren Drehstromfrequenzen
eine höhere PWM-Frequenz mit dem daraus resultierenden schlechteren
Wirkungsgrad des FU bekommst.
Weil ich die Abtastrate bei höheren Frequenzen senke, kann ich mir
4KHz PWM Frequenz erlauben ohne das der FU "unsauberer" arbeitet.
Auf den Trichter bin ich auch nicht gleich gekommen, sondern im
Verlauf der Entwicklung.
Also ruhig Blut...

LG
old.

von hinz (Gast)


Lesenswert?

Aus der W. schrieb:
> Auf den Trichter bin ich auch nicht gleich gekommen, sondern im
> Verlauf der Entwicklung.

Du wirst dir bestimmt noch mehr Unsinn zusammenreimen. Man ist das von 
dir gewohnt.

Beitrag #6193678 wurde von einem Moderator gelöscht.
von Carl D. (jcw2)


Lesenswert?

Ob Halbleiter oder Vakuum, es endet immer gleich.
Wenn's aus der Werkstatt kommt.
Immer schön auf den Schirmgitterstrom achten!

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Aus der W. schrieb:
> Mit 31KHz PWM ist das zu verlustig.

Nachdem mir beinahe die Halbbrücken den Hitzetod gestorben
sind, habe ich einen BD238 als Temperatursensor angebracht.

Das Loch mit Gewinde hatte ich schon vorgesehen, aber wegen
der praktisch kaum vorhandenen Erwärmung bei 1KHz modsin
darauf verzichtet.

Ich habe Drähte zum Messen im Betrieb herausgeführt
und mit diversen Geschwindigkeiten gesägt.
Die Temperatur ist dabei unter 40 Grad Celsius geblieben.
Die 4KHz PWM-Frequenz Pure Sinus sind gut.

Die Abschalttemperatur habe ich erstmal auf 55°C
programmiert.

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Diesmal hab ich's mitbekommen.
Beitrag #6193678 wurde von einem Moderator gelöscht.
@ Löschmod*:
Da musst du hinz und jcw2 auch löschen oder alles stehen lassen.

LG
old.

*
Für Unbedarfte die sich über den Ton hier wundern:
http://forenfalle.blogspot.com/2019/01/relative-anonymitaet.html

Beitrag #6195320 wurde von einem Moderator gelöscht.
von oldeurope O. (Gast)



Lesenswert?

Anbei 4KHz PWM Pure Sinus.
Ich habe mir die Mühe gemacht und noch eine Sinusliste
mit 100 Samples hinzugefügt. Ich hoffe sie ist fehlerfrei.
Es wird jetzt zwischen 3 Sinuslisten, je nach gewünschter
Drehstromfrequenz, umgeschaltet.
____________________________________________________________

Nochmal zur Erklärung weshalb ich das tun muss:
Bei 50Hz, 20 Sinuswerten und 4 PWM-Perioden
gibt das eine PWM-Frequenz von
50Hz*20*4=4KHz
Wenn kann nun langsamer dreht, bekommt man mehr
PWM-Perioden pro Sinuswert. Das ist ja in Ordnung.
Dreht man schneller, bekommt man weniger.
Der Wert wird dann nicht korrekt abgebildet.
Der Motor läuft unruhig und es gibt Inteferenzen.

Schneller als mit 50Hz drehe ich die Dekupiersäge
natürlich nicht. Die Geschwindigkeit ist eh schon
grenzwertig hoch. Deshalb die liste20() für 50Hz
bis 25Hz.

Jetzt mal angenommen man würde für 50Hz die liste100(),
mit 100 Samples, verwenden.
50Hz*100*4=20KHz
Dann müsste ich eine 20KHz PWM verwenden um 4 PWM Perioden
pro Sample zu bekommen. Ist machbar, aber fünf mal so verlustig
weil fünf mal so viele Flanken. Dann übersteigt der
Schaltverlust den Rdson-Verlust.
Durch das Umschalten auf passend gewählte Sinustabellen
kann ich eine effiziente PWM-Frequenz beibehalten.

Mal sehen wie viele Perioden hinz und mschoeldgen
pro Sample haben:
31KHz/(162Hz*192 Samples)=0,99 Samples
Das ist mir bei einer asynchronen PWM-Frequenz zu wenig!
Ich würde auf modifizierten Sinus gehen, bevor 2 Perioden pro
Sample erreicht werden. Für das Projekt Ständerbohrmaschine
möchte ich gerne 200Hz Drehstromfrequenz max. fahren.
______________________________________________________

Im Schaltbild ist ein Transistor als Tempratursensor
hinzugekommen, die PWM Pins sind dem neuen Sketch
20200327c angepasst.

LG
old.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Aus der W. schrieb:
> Mal sehen wie viele Perioden hinz und mschoeldgen
> pro Sample haben:
> 31KHz/(162Hz*192 Samples)=0,99 Samples
> Das ist mir bei einer asynchronen PWM-Frequenz zu wenig!

Diese Rechnung ist von hinten bis vorne falsch. Bei der höchsten 
Frequenz wird eben bei jedem Timerinterrupt der nächste Tabellenwert 
geladen. Es bleibt also auch bei der höchsten Ausgabefrequenz immer bei 
192 Samples/Sinusperiode. Du hast nie (und das wird vermutlich leider so 
bleiben) das Prinzip dieses FU verstanden - ja, du hast dir nicht mal 
den ausführlichen Artikel durchgelesen, indem das überlegene Prinzip des 
FU genau beschrieben ist. Dein Quatsch mit verschiedenen Tabellen ist 
lediglich Platzverschwendung und Krücke.
Also nochmal für den Matheanfänger: 31250 mal pro Sekunde wird der 
nächste Tabellenwert geladen, die Tabelle ist 192 Samples lang. Das 
ergibt
31250Hz/192 = 162,76 Hz.
Jetzt kapiert?
Nochmal die Rechnung für die niedrigste Ausgabefrequenz. Hier wird nach 
255 Timerdurchläufen der nächste Tabellenwert geladen:
31250Hz/255/192 = 0,63 Hz

Ich hoffe, du hast jetzt verstanden, das nie ein Tabellenwert 
ausgelassen wird. Nachbauer werden dir bestätigen (mir glaubst du ja 
nicht), das auch bei 0,62Hz der Motor sauber und ohne Ruckeln läuft - so 
sauber hast du noch nie einen Motor gedreht. Mein Motor mit 1500U/min 
bei 50Hz läuft bei 0,62 Hz mit 18 U/min.

hinz hat mit dem FU übrigens nichts zu tun, hat aber verstanden, wie er 
funktioniert.
Übrigens - der Kühlkörper im Artikel wird gerade mal handwarm bei einem 
400W Motor und 50Hz/100% Amplitude. Du hast also noch ein massives 
Energieverschwender Problem.

: Bearbeitet durch User
von oldeurope O. (Gast)


Lesenswert?

Aus der W. schrieb:
> Mal sehen wie viele Perioden hinz und mschoeldgen
> pro Sample haben:
> 31KHz/(162Hz*192 Samples)=0,99 Samples
> Das ist mir bei einer asynchronen PWM-Frequenz zu wenig!
> Ich würde auf modifizierten Sinus gehen, bevor 2 Perioden pro
> Sample erreicht werden. Für das Projekt Ständerbohrmaschine
> möchte ich gerne 200Hz Drehstromfrequenz max. fahren.

31KHz/(162Hz*192 Samples)=0,99  PWM-Perioden nicht Samples.
Geht auch aus dem Text hervor.

Matthias S. schrieb:
> Diese Rechnung ist von hinten bis vorne falsch.

Du rechnest doch auch so:

Matthias S. schrieb:
> 31250Hz/192 = 162,76 Hz.
> Jetzt kapiert?

Schon lange. Eine PWM-Periode hast du da pro Sample.
Das habe ich dir und du mir vorgerechnet.
Bei mir sind das vier. Und warum ich da mehr
als eins haben möchte, hatte ich erklärt.

Der Rest deines Beitrages sind Antworten auf Behauptungen
die ich nicht getätigt habe die wie Beruhigungspillen
auf wen wirken sollen?

Ich werde noch das Ein- oder Andere davon aufgreifen.

Gibt ein Update im Blog zum Thema:
http://meinearduinoprojekte.blogspot.com/2020/03/two-phase-arduino-induction-motor-speed.html

LG
old.

von H. H. (Gast)


Lesenswert?

Aus der W. schrieb:
> Gibt ein Update im Blog zum Thema:

Dein Verleumdungsblog halt.

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Matthias S. schrieb:
> Du hast also noch ein massives
> Energieverschwender Problem.

Beide Kühlkörper werden handwarm.

Da musste ich herzlich lachen.

(Der große schwarze Rippenkühlkörper ist der von mschoeldgen.)

Sorry mschoeldgen, gegenüber 4KHz oder gar einem modifiziertem
Sinus hast du wirkungsgradtechnisch mit 31KHz gar keine Chance.

LG
old.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Aus der W. schrieb:
> Sinus hast du wirkungsgradtechnisch mit 31KHz gar keine Chance.

Du verbrätst doch schon in deinen Printtrafos nutzlos Wärme. Dann baust 
du eine Temperaturregelung ein, die ja wohl nicht nötig wäre, wenn du 
deine Software auch nur ein wenig im Griff hättest. Wir reden mal gar 
nicht von Kosten, Gewicht und Grösse deiner Kiste.
Das ist eben der Unterschied zu einer universellen, verständlichen 
Software, bei der jeder Parameter vom Benutzer einzustellen und logisch 
ist. Was ist überhaupt mit V/f Charakteristik bei deinem Dings? 
Implementiert? Voll regelbare Ausgangsspannung?
Und ja, der kleine Kühlkörper reicht mit den 6 Stück HGTG20N60B3D 
Endstufen ohne weiteres für Motoren bis 600W/50Hz Vollgas -handwarm. Ein 
1kW Motor macht da auch nicht viel aus.
Es ist nämlich eine Illusion, das eine niedrige PWM Frequenz besser sei, 
wenn man die Ansteuerung nicht beherrscht. Da mache ich doch gleich eine 
richtige Ansteuerung und bringe die PWM lieber jenseits des 
Hörbereiches.

Nö, du lügst dir da was in die Tasche, und murkst da mit irgendwelchen 
undurchsichtigen Parametern rum, mit denen jemand anderes gar nichts 
anfangen kann. Wenn du mal 25Hz ausgeben willst, kompilierst du alles 
neu?

Ich will dir mal was sagen: Während dein Murks vllt. ab und zu mal auf 
dem Tisch deiner Werkstatt läuft, ist mein FU ein gut dokumentiertes, 
universelles Projekt, mit dem du deines gar nicht vergleichen kannst. 
Jedes Teil meiner Hard- und Software ist so universell ausgelegt, das 
man praktisch jeden Motor mit jeder Endstufe zum Laufen bekommt. Da ist 
auch noch ein PID Regler drin, damit man damit Dinge machen kann, von 
denen dein Dings da nur träumen kann.
Probiere also besser gar nicht, meinen FU schlecht zu machen, sondern 
bastele einfach weiter an deiner Anordnung ohne Bezug zu meinem Projekt.

Aus der W. schrieb:
> oder gar einem modifiziertem
> Sinus

Machst du Witze? Kein einigermassen normaler Mensch wird einen Motor mit 
sowas ansteuern. Damit mordest nämlich wirklich Maschinen.

: Bearbeitet durch User
von oldeurope O. (Gast)


Lesenswert?

Matthias S. schrieb:
> Probiere also besser gar nicht, meinen FU schlecht zu machen

Matthias S. schrieb:
> dein Murks

Matthias S. schrieb:
> Mein FU liefert also immer noch ein viel sauberes Signal als dein
> Dings

usw.
Merkst du was?

[Ironie]
Und klar, ich habe eine Temperaturregelung drin und keine
// Frequenzabhänige Spannung. Die Beiträge dazu hier im Thread
gibt es nicht. [/Ironie]

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Matthias S. schrieb:
> Und ja, der kleine Kühlkörper reicht mit den 6 Stück HGTG20N60B3D

Das ist auch eine Erklärung für deinen relativ großen Kühlkörper,
(den du klein schreibst).

Siehe Größen Vergleich:
Beitrag "Re: Arduino Kondensatormotor Drehzahlsteuerung"


IGBT's sind in dieser Anwendung nicht so effizient
wie MOSFET's.
Grund:
Der Spannungsabfall am MOSFET ist Rdson*I,
beim IGBT mindestens der von einer PN-Strecke
also >0,6V.

Rechenbeispiel:

MOSFET:
P=I*I*R
rdson=0,4R; I=1A;
0,4W

IGBT:
P=U*I
Uce=0,6V; I=1A;
0,6W

Die Schaltverluste kommen bei beiden hinzu.
Bei 31KHz sind diese knapp acht mal höher als bei 4KHz.

LG
old.

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Matthias S. schrieb:
> Grr, jetzt muss ich doch nochmal antworten. Es werden immer 192
> Samples durchfahren - unabhängig von der Ausgabefrequenz und für jede
> Phase. Mein FU liefert also immer noch ein viel sauberes Signal als dein
> Dings - und zeigt nach wie vor, das du nicht mal die grundlegenden
> Prinzipien verstanden hast.

Wenn fünf mal hintereinander der gleiche Wert für eine
Sinuskurve gesampled wird, ist das leider sinnlos.
Siehe Ausschnitt aus deiner Tabelle.
https://www.mikrocontroller.net/attachment/highlight/449817
Denke daran, dass ist kein D-Amp sondern ein Inverter
für einen Motor.


Matthias S. schrieb:
> bringe die PWM lieber jenseits des
> Hörbereiches

Das ist ein Argument, dass ich gelten lassen kann.
Allerdings bedarf es da nicht 31KHz für.

Da: https://arduino.stackovernet.com/de/q/8407#25623
gibt es 25KHz mit 320 statt 255 Schritten, was die
Sinusauflösung genauer macht.

von Carl D. (jcw2)


Lesenswert?

Der Ahnungslose Aus der W. schrieb:
>
> Da: https://arduino.stackovernet.com/de/q/8407#25623
> gibt es 25KHz mit 320 statt 255 Schritten, was die
> Sinusauflösung genauer macht.

Ich biete 360 Schritte, das klingt noch mehr nach Trigonometrie.

von hinz (Gast)


Lesenswert?

Carl D. schrieb:
> Der Ahnungslose Aus der W. schrieb:
>>
>> Da: https://arduino.stackovernet.com/de/q/8407#25623
>> gibt es 25KHz mit 320 statt 255 Schritten, was die
>> Sinusauflösung genauer macht.
>
> Ich biete 360 Schritte, das klingt noch mehr nach Trigonometrie.

Und mit 400 gon erst!

von B. P. (skorpionx)


Lesenswert?

Aus der W. schrieb:
> Wenn fünf mal hintereinander der gleiche Wert für eine
> Sinuskurve gesampled wird, ist das leider sinnlos.
> Siehe Ausschnitt aus deiner Tabelle.

PWM wird (in dieser U-Phase ...)aus Differenz zwischen
Werten in dieser Kolumne und Werten in der Nachbarkolumne
generiert...

von Max (Gast)


Lesenswert?

ich hätte es nicht besser sagen können

von oldeurope O. (Gast)


Lesenswert?

B. P. schrieb:
> PWM wird (in dieser U-Phase ...)aus Differenz zwischen
> Werten in dieser Kolumne und Werten in der Nachbarkolumne
> generiert...

Danke für die Info. :)

Max schrieb:
> ich hätte es nicht besser sagen können

Hast du aber nicht.

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Matthias S. schrieb:
> Aus der W. schrieb:
>> Sorry mschoeldgen, gegenüber 4KHz oder gar einem
>> modifiziertem
>> Sinus hast du wirkungsgradtechnisch mit 31KHz gar keine Chance.
>
> Machst du Witze? Kein einigermassen normaler Mensch wird einen Motor mit
> sowas ansteuern. Damit mordest nämlich wirklich Maschinen.

Stimmt nicht und dein Sinus + K3 geht in die Richtung.
Also mal den Ball flachhalten.

Aus der W. schrieb:
> habe ich ein Experiment gemacht, wie sich dieser
> gegenüber dem Sinus in der Erwärmung des Motors bemerkbar
> macht.
> Dazu habe ich einen GE-Motor nur an der Arbeitswicklung mit
> Handanwurf betrieben und so lange laufen lassen, biss sich eine
> stabile Temperatur einstellt.
> Beim Netzsinus waren das 45°Celsius bei 13°KT (Keller-Temperatur)
> Beim modifizierten Sinus 52°.
> Also kann man etwa 20% mehr Verlustwärme annehmen.

LG
old.

von hinz (Gast)


Lesenswert?

Aus der W. schrieb:
> Stimmt nicht und dein Sinus + K3 geht in die Richtung.

Nichts kapiert.



> Also mal den Ball flachhalten.

Aber eine große Klappe.



Ja, so kennt man den Darius.

von oldeurope O. (Gast)


Lesenswert?

Eure Klientel kann sich selbst keine Meinung bilden
und wird durch meine Beiträge verunsichert.
Deshalb die "Zwischenrufe" zum Einnorden.

Den Realnamen setzt er für Google,
die Häufigkeit für das Ranking.

LG
old.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Aus der W. schrieb:
> 5x255.png

Ich sehe mit Freude, das es dir gelungen ist, die Projektdateien meines 
FU herunterzuladen und sogar zu öffnen. Dazu erstmal herzliche 
Gratulation. Einfach mal studieren und lernen.

von hinz (Gast)


Lesenswert?

Aus der W. schrieb:
> Eure Klientel kann sich selbst keine Meinung bilden
> und wird durch meine Beiträge verunsichert.
> Deshalb die "Zwischenrufe" zum Einnorden.
>
> Den Realnamen setzt er für Google,
> die Häufigkeit für das Ranking.


Darius, du solltest einen Facharzt für Psychiatrie aufsuchen.

von oldeurope O. (Gast)


Lesenswert?

Matthias S. schrieb:
> es dir gelungen ist, die Projektdateien meines
> FU herunterzuladen und sogar zu öffnen. Dazu erstmal herzliche
> Gratulation. Einfach mal studieren und lernen.

Nein, ist mir nicht gelungen.
Ich kenne Deine Schaltung aus dem Forenblog,
deine PWM Frequenz und wie du die PWM moduliert.
Habe deinen Text und alle Beiträge in deinem Thread
durchgearbeitet.
Im Rahmen der Diskussionen habe ich mitbekommen,
dass deine PWM-Frequenz fix bleibt, du eine Sinustabelle
für alle Drehzahlen verwendest. Den Trick mit der K3 addition
um mit 325V statt 374V Zwischenkreisspannung auszukommen.
Was sollte ich noch wissen?

Habe die Tabelle von da,
Beitrag "Re: Frequenzumrichter für Wechselstrommotor."
auf Codeansicht klicken.

Hast du denn weitere Verbesserungsvorschläge für meinen FU?
Pure Sin habe ich ja inzwischen …
Display und Drumherum brauche ich nicht.
Knopf zur Drehzahleinstellung reicht mir.

LG
old.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Aus der W. schrieb:
> Nein, ist mir nicht gelungen.

Wie schwierig ist es, einen Ordner auf dem Rechner zu machen und ein ZIP 
darein zu entpacken? Das ist wirklich Basiswissen.

Aus der W. schrieb:
> Display und Drumherum brauche ich nicht.

Ist aber zur Parametereinstellung sehr hilfreich.

Aus der W. schrieb:
> Knopf zur Drehzahleinstellung reicht mir.

Du musst unbedingt eine V/f Kurve implementieren, da du nicht die 
Nennspannung des Motors einspeisen darfst, wenn er nur halb so schnell 
dreht.

Ausserdem muss die Totzeit einer Halbbrücke mindestens so gross sein, 
das sich niemals Highside und Lowside Einschalter überschneiden. Bei mir 
ist sie einstellbar, damit der Anwender jede denkbare Endstufe benutzen 
kann.

Schutzschaltung. Mindestens Überstrom muss abgefangen werden, damit 
nicht bei jedem kleinen Problem die Endstufen hops gehen.

von hinz (Gast)


Lesenswert?

Aus der W. schrieb:
> Hast du denn weitere Verbesserungsvorschläge für meinen FU?

Bau einen Henkel dran.

von oldeurope O. (Gast)


Lesenswert?

Matthias S. schrieb:
> Du musst unbedingt eine V/f Kurve implementieren, da du nicht die
> Nennspannung des Motors einspeisen darfst, wenn er nur halb so schnell
> dreht.

Ist implementiert.

In diesem Beitrag findest du alle Unterlagen.

Beitrag "Re: Arduino Kondensatormotor Drehzahlsteuerung Schaltplan und Sketch 200327"

Klicke auf Codeansicht damit du ohne Arduino-Soft
den Code ansehen kannst. Das Forum bietet uns diese
Option. :)

Hier der Codeschnipsel dafür:
1
void drehzahlspannung(){
2
  wert = (lies / 4) + add;
3
  if(wert < 25){wert = 25;}       // Mindestdrehzahl
4
  if(wert >= 255){wert = 255;}    // Höchstdrehzahl      
5
  per = 5100 / wert;              // Berechnung der Periodendauer
6
  uspg = 164 + 10 * wert / 28;    // Frequenzabhänige Spannung für Arbeitswicklung
7
  zspg = (uspg * 10 / 10);        // Frequenzabhänige Spannung für Hilfswicklung

Der Wert wird vom Poti vorgegeben.

Ich habe die 28 folgendermaßen ermittelt:
Amperemeter in die Netzzuleitung vom Inverter.
Mit 50Hz Drehzahl den Motor im Leerlauf starten,
Anzeigewert merken.
Dieser Wert soll über den Drehzahlbereich nahezu konstant
bleiben.
Die 28 bestimmt die Steilheit y der Kurve,
die 164 bildet den Sockelwert x.
Beide hängen wie folgt zusammen:
255 = x + 10 * 255 / y
Nachkommastellen werden ignoriert.

LG
old.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Aus der W. schrieb:
> In diesem Beitrag findest du alle Unterlagen.
>
> Beitrag "Re: Arduino Kondensatormotor Drehzahlsteuerung Schaltplan und
> Sketch 200327"

Sorry, aber das ist ja völlig irre. Da wühle ich mich nicht durch. Hart 
in if-then Statements kodierte Sinuswerte sind für mich No-Go und auch 
schwierig zu warten und fehlerträchtig - naja, mach mal...

Ich kann dir nur raten, dich mal mit Strukturen und Arrays zu 
beschäftigen und dich von Arduino Pseudocode zu verabschieden. Sinnvolle 
Skalierungen machen das Leben auch leichter. Gleitkomma vermeiden. 
Arduino ist langsam und Gleitkomma machen den kleinen AVR nicht 
schneller.

von oldeurope O. (Gast)


Lesenswert?

Matthias S. schrieb:
> Da wühle ich mich nicht durch.

Musst du nicht. Ich habe dir im vorhergehenden Beitrag
den Codeschnipsel  mit Erklärung gegeben.

Matthias S. schrieb:
> dich von Arduino Pseudocode zu verabschieden

Ich bin froh, damit zurecht zu kommen und verstehe
auch nur einen kleinen Teil davon.
Bleibe bei Arduino.

Matthias S. schrieb:
> Arduino ist langsam

Ich kann nicht klagen. Alles ufb.

LG
old.

von batman (Gast)


Lesenswert?

Freut euch doch, daß eure Geräte es tun wie sie sollen und spart euch 
die seitenlangen Schwanzvergleiche.
Btw. taugt sowas evt. auch zur Geschwindikeitsregelung eines 
Filmprojektors, wo ein Asynchronmotor drin ist?

von oldeurope O. (Gast)


Lesenswert?

Matthias S. schrieb:
> Ausserdem muss die Totzeit einer Halbbrücke mindestens so gross sein,
> das sich niemals Highside und Lowside Einschalter überschneiden. Bei mir
> ist sie einstellbar, damit der Anwender jede denkbare Endstufe benutzen
> kann.

Das ist bei mir prinzipiell anders gelöst.
So:
https://www.mikrocontroller.net/attachment/450492/Bildschirmfoto_2020-03-29_um_12.00.05.png
Bildquelle:
Beitrag "Re: Arduino Uno / Atmega 328P Sinus PWM"
Das von dir beschriebene Problem existiert hier einfach nicht.
Ich könnte das anhand der Liste erklären aber
Matthias S. schrieb:
> Sorry, aber das ist ja völlig irre. Da wühle ich mich nicht durch.

Matthias S. schrieb:
> Schutzschaltung. Mindestens Überstrom muss abgefangen werden, damit
> nicht bei jedem kleinen Problem die Endstufen hops gehen.

Bei einem Installationsfehler geht meine hops.
Ein blockierter Motor ist kein Problem.
Ich hoffe die Temperaturabschaltung so eingestellt zu
haben, dass sie einen Motorschutz bietet.
Es sind noch die ersten MOSFETs drin trotz vieler Experimente.

batman schrieb:
> Geschwindikeitsregelung eines
> Filmprojektors, wo ein Asynchronmotor drin ist?

Für den Motor, ich hoffe doch!

LG
old.

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

M. K. schrieb:
> Aus der W. schrieb:
>> Es ist schlicht egal. Die Zeit zum Überspringen addiert sich zur
>> Periodendauer und senkt die Frequenz unmerklich.
>
> Wenn du beim ersten If-Statement einen Treffer bei dir hast und da noch
> 19 andere folgen...das macht keinen Sinn die 19 anderen Statements auch
> noch abzuarbeiten.

Wenn Du die Weitern und das werden zum Ende der Periode immer
weniger, nicht abarbeitest gibt das einen DC-Offset.

> Aus der W. schrieb:
>> Was verstehst Du unter if-Statements?
>> In Deinem Beispiel sind die if Bedingungen doch auch.
>> myvariable = zahl
>> doSomething_1() = (enup = LOW; enun = HIGH; enzp = LOW; enzn = LOW; usin
>> = 100; zsin = 0;)
>> Ich erkenne da jetzt keine Abkürzung.
>
> Ist ja auch keine Abkürzung aber man könnte stattdessen schreiben:
>
>
1
> ...
2
> int myVariable;
3
> ...
4
> myVariable = 1;
5
> switch (myVariable){
6
>   case 1:
7
>     doSomething_1();
8
>     break;
9
>   case 2:
10
>     doSomething_2();
11
>     break;
12
>   case 3:
13
>     doSomething_3();
14
>     break;
15
>   default:
16
>     doNothing();
17
>     break;
18
> }
19
>

Absolut genial, ich werde versuchen das umzusetzen.

> Das wäre 1. lesbarer als die ganzen Sachen mit if-Statements zu machen
> und 2. auch noch schneller weil nicht so viel geprüft werden muss (es
> wird immer nur ein Case abgearbeitet bzw. ohne Treffer das default).
> Warum du hier kein if...else... benutzt hast verstehe ich auch gar
> nicht, schon das hätte wenigstens etwas Rechenaufwand reduziert
> (wenngleich auch nicht alle if-Prüfungen damit eleminiert werden, wenn
> z.B. erst das letzte if ein Treffer ist werden ja immer noch alle
> vorhergehenden abgearbeitet)
>
> Und jetzt gehe ich noch ein wenig weiter rein bei dir:
>
>
1
> ...
2
>     if(zahl == 5)
3
>      {enup = LOW; enun = LOW; enzp = HIGH; enzn = LOW; usin = 0; zsin = 
4
> 100;}
5
>     if(zahl == 6)
6
>      {enup = LOW; enun = LOW; enzp = HIGH; enzn = LOW; usin = 0; zsin = 
7
> 100;}
8
>     if(zahl == 7)
9
>      {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 45; zsin 
10
> = 89;}
11
>     if(zahl == 8)
12
>      {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 71; zsin 
13
> = 71;}
14
>     if(zahl == 9)
15
>      {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 89; zsin 
16
> = 45;}
17
>
>
> Die Statements unterscheiden sich doch nur in usin und zsin, enup und Co
> sind hier immer gleich. Das liese sich doch vereinfachen ;)

Und dann nicht mehr.

> Aber, und das sieht man das nächste Manko, die ersten beiden
> if-Statments unterscheiden sich gar nicht, es ist schlicht egal ob zahl
> 5 oder 6 ist.

Das ändere ich noch, der Spalt beim Nulldruchgang muss nicht so groß 
sein.
Das kannst Du auch auf den Oszillogrammen weiter oben sehen. Da reicht 
ein Schritt

> Generell sieht es mir so aus als seien hier alle Variablen von Zahl
> abhängig. Wie hast du das berechnet?

Siehe Anhang. Dort ist ein Beispiel für die 56% in liste100().
Die Werte habe ich auf 100% normiert.

Übrigens war ich heute morgen schockiert als ich die Rechnung
kontrolliert hatte. Anderer Taschenrechner anderer Sinuswert.
Mein alter Casio errechnet da 51 statt 56 und ich dachte schon
ich hätte irgendwie einen Wert übersprungen.

> Wäre es hier nicht eine Idee
> generell die Variablen direkt aus der Variable zahl zu berechnen? Die
> ganzen ifs zeigen nämlich eins: Die Variablen enup, enun, enzp, enzn,
> usin und zsin sind anscheinend nur von zahl abhängig,

Das sind die Freigaben für die Schalter der B4-Brücke.

> es sind also
> f(zahl)-Funktionen. Statt also hunderte von ifs abzuarbeiten könntest du
> auch einfach 6 Werte ausrechnen lassen. Das dürfte erheblich schneller
> sein als deine if-Orgien abzuabreiten.

Vielen Dank für die Tipps.

LG
old.

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Habe es für die void liste20() gemacht und funktioniert.
Vielen Dank. :)))
Die anderen beiden folgen …

LG
old.

von oldeurope O. (Gast)


Lesenswert?

Aus der W. schrieb:
> Das ändere ich noch, der Spalt beim Nulldruchgang muss nicht so groß
> sein.

Spalt im Nulldurchgang um die Hälfte verkleinert.
Ist jetzt genau ein "case" lang.
1
void liste20(){ 
2
  if(mvist - mvstart >= (50 * per)){mvstart = mvist;
3
    if(mv == LOW){mv = HIGH;}
4
    else {mv = LOW;}}                                            // Multivibrator 
5
  if(mv != mvv){zahl ++;}                                        // Zähler 
6
  if(zahl >= 21){zahl = 1;}                                      // Zähler 
7
  switch(zahl)
8
   {case 1:
9
     enup = LOW; enun = HIGH; enzp = LOW; enzn = LOW; usin = 100; zsin = 0; break;        
10
    case 2:
11
     enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 89; zsin = 45; break; 
12
    case 3:
13
     enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 71; zsin = 71; break;
14
    case 4:
15
     enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 45; zsin = 89; break;
16
    case 5:
17
     enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 16; zsin = 100; break;
18
    case 6:
19
     enup = LOW; enun = LOW; enzp = HIGH; enzn = LOW; usin = 0; zsin = 100; break;
20
    case 7:
21
     enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 45; zsin = 89; break;
22
    case 8:
23
     enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 71; zsin = 71; break; 
24
    case 9:
25
     enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 89; zsin = 45; break;
26
    case 10:
27
     enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 100; zsin = 16; break;
28
    case 11:
29
     enup = HIGH; enun = LOW; enzp = LOW; enzn = LOW; usin = 100; zsin = 0; break;
30
    case 12:
31
     enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 89; zsin = 45; break;  
32
    case 13:
33
     enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 71; zsin = 71; break;
34
    case 14:
35
     enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 45; zsin = 89; break;
36
    case 15:
37
     enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 16; zsin = 100; break;
38
    case 16:
39
     enup = LOW; enun = LOW; enzp = LOW; enzn = HIGH; usin = 0; zsin = 100; break;
40
    case 17:
41
     enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 45; zsin = 89; break;
42
    case 18:
43
     enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 71; zsin = 71; break;
44
    case 19:
45
     enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 89; zsin = 45; break;
46
    case 20:
47
     enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 100; zsin = 16; break;} 
48
}

LG
old.

von M. K. (sylaina)


Lesenswert?

Sehr schön, wünsche dir noch viel erfolg. Ich werd mal am WE schaun mir 
dein Problem hier genauer anzuschauen aber es gefällt mir, dass ich dir 
hier schon teilweise helfen konnte ;)

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

M. K. schrieb:
> Sehr schön, wünsche dir noch viel erfolg.

Anbei der aktuelle Sketch.200402

Danke sylaina.
Nach dem Erfolg, werde ich probeweise meinen
Experimentiermotor mal bis 200Hz drehen.
Wenn ich den 200Hz-Sketch lauffähig habe, kommt das
Projekt Ständerbohrmaschine.

M. K. schrieb:
> Ich werd mal am WE schaun mir
> dein Problem hier genauer anzuschauen

Mit ist aufgefallen, dass die Drehzahlsteuerung nicht so
kontinuierlich erfolgt, wie die Rechnung das vermuten lässt.
Es gibt Abstufungen.
Ich habe mal per = 1 gesetzt und diese oszillographiert. Für
liste8()    2,8 ms
liste20()   6,9 ms
liste40()   13,8ms
liste100()  34  mS

Das sind die möglichen Drehzahlabstufungen innerhalb der Listen.
Woher die kommen, habe ich noch nicht raus.
Ich vermute es hängt mit micros() zusammen.

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

Aus der W. schrieb:
> Spalt im Nulldurchgang um die Hälfte verkleinert.

Nun habe ich einen 500µs Spalt bei den Freigaben programmiert.
So kann die PWM für die Sinuslisten durchlaufen.
Ausnahme liste8().

Anbei der aktuelle Sketch 200404.

Aus der W. schrieb:
> Nach dem Erfolg, werde ich probeweise meinen
> Experimentiermotor mal bis 200Hz drehen.
> Wenn ich den 200Hz-Sketch lauffähig habe, kommt das
> Projekt Ständerbohrmaschine.

Das hat funktioniert und der "Spalt" ist eine Voraussetzung
dafür. Was man machen muss, damit der Motor bei solch hohen
Drehzahlen nicht aus dem Drehfeld kippt, dann im neuen Thread.
Damit steht dem Projekt FU bis 200Hz Drehfrequenz für
2P Motore (Ständerbohrmaschine)
nichts mehr im Wege. :)))

LG
old.

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.