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
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...
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.
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.
Aus der W. schrieb: > Man könnte somit diesen Motor ohne Kondensator > an N, L1, und L2 klemmen. Mach mal, aber nicht hinterher heulen.
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
Nur eine Frage: haben Haupt- und Hilfswicklung annähernd gleiche Widerstände?
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.
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
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.
MaWin schrieb: > Normale Kondensatormotore haben eine schwächere hochohmigere > Hilfswicklung. Und auch die können beide Laufrichtungen, nur reicht dann kein einfacher Umschalter mehr.
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.
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.
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.
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.
Aus der W. schrieb: > Vielleicht doch, wenn man die 3.Halbbrücke nach dem Start > abklemmt. Viel Spaß mit dem deutlich kleineren Kippmoment.
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
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.
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.
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.
Besser wäre es etwas Literatur über Induktionsmotoren zu lesen. Das hilft ganz enorm sie zu verstehen.
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.
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.
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.
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.
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.
Matthias S. schrieb: > Nehmen wir mal 2 Ausgänge (immer als Halbbrücke), > die genau gegenphasig sind. Nennt man so etwas nicht Vollbrücke?
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.
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.
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.
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.
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.
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.
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°.
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.
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.
hinz schrieb: > Du hast nur mal wieder keine Ahnung. Troll dich du Blendgranate. Nicht einen hilfreichen Beitrag hast Du hier bisher gebracht. LG old.
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.
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.
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.
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.
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.
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.
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.
Matthias S. schrieb: > 230V AC sind übrigens 325Vpp und nicht 650. Aua. Da warst du jetzt aber neben der Spur.
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
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.
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.
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.
Lässt sich der "N" im Motor nicht auftrennen? Dann könnte man den Motor mit 2 Vollbrücken aus 325V Zwischenkreis betreiben.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
Der Ferritkern und der Kondensator genügen schon für ungestörten (AM-)Radio Empfang. LG old.
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.
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.
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.
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.
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.
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 :)
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Ich bin vorsichtig optimistisch. :))) Mache noch die Schaltung fertig und poste sie dann mit dem passenden aktuellen Sketch. LG old.
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.
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.
Anbei liefere ich die Messung zwischen U und N bei verminderter Drehzahl am Frequenzumrichter nach. LG old.
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.
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.
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.
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.
lweuchtet mir irgendweie nicht ganz ein ;-) magst einen 'scopeshot von den ansteuersignalen der fets machen?
Beitrag #6187278 wurde von einem Moderator gelöscht.
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.
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.
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.
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.
Irgendwann ist dann die Erfindung "Sinusinverter" fertig.
Carl D. schrieb: > "Sinusinverter" fertig. Nochmal für dich: Ist fertig, Wirkungsgrad gegenüber mod. Sinus schlecht. Suche Kompromiss zwischen beiden.
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"?
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?
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.
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.
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.
Joachim B. schrieb: > hmmm ist das der Thread für Selbstgespräche? Seinen Blog liest ja niemend, aus gutem Grund.
hinz schrieb: > aus gutem Grund Weil es den noch nicht gibt. Wenn, dann stelle ich hier einen Link dahin ein.
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...
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.
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.
Habe eben den Blog erstellt: http://meinearduinoprojekte.blogspot.com/2020/03/two-phase-arduino-induction-motor-speed.html LG old.
Beitrag #6192408 wurde von einem Moderator gelöscht.
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
Nicht aufregen Matthias. Gab es jemals ein Gebiet, das er anders beackert hat? Auch wieder ein Post zuviel.
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.
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.
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.
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.
Aus der W. schrieb: > @ scorpionx > > Beitrag "Re: Frequenzumrichter für Wechselstrommotor." > > Danke. > > LG > old. Ja, ihr habt beide nichts verstanden.
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.
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.
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
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.
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.
Ob Halbleiter oder Vakuum, es endet immer gleich. Wenn's aus der Werkstatt kommt. Immer schön auf den Schirmgitterstrom achten!
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.
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.
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.
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
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.
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.
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
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.
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.
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.
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.
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!
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...
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.
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.
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.
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.
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.
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.
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.
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.
Aus der W. schrieb: > Hast du denn weitere Verbesserungsvorschläge für meinen FU? Bau einen Henkel dran.
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.
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.
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.
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?
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.
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.
Habe es für die void liste20() gemacht und funktioniert. Vielen Dank. :))) Die anderen beiden folgen … LG old.
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.
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 ;)
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.