Hi
Auf der Suche nach effektiven Anlaufmethoden habe ich im Web folgenden
Auszug gefunden
i write for start a car 1/8 1/10 scale
the best method i have for starting 6 phase
pwm on phase 1 240us
phase 2 480us
phase 3 960us
X 2 the times and change phase each time to reach 0.0344s
/ 2 the times start at 0.0344 to reach 240us
between each time you check if the phase is good two times and if the
next phase is OK two times you put the next phase at 0.1s same as
watchdog to check if motor turn if timer reach 0.1s restart at 240us
the timming is made for 2000 kv to 8000 kv any load
Ich hab n paar Probleme, das korrekt zu übersetzen, vllt kann ja wer
helfen.
1. Frage phase 1 240us phase 2 480us
meint der da die 6 kommutierungsschritte, oder bestromt er jeweils eine
phase, in dem er diese auf HIGH stellt und die anderen beiden auf LOW?
2. Frage raise to reach 0.0344s
wenn ich weiter verdopple, erhalte ich 240, 480, 960 1920, 3840, 7680,
15360 und 30720 us, addiere ich 240 + 480 + 960 + 1920 + 3840 + 7680 +
15360, kommt 30480 us heraus, aber ich komm nie auf 34400 us.
Was ist damit gemeint?
3. frage check two times if the phase is good and if the next phase is
OK two times usw usw
Was ist mit check phase gemeint? Kontrollieren ob an der unbestromten
Phase Spannung induziert wird?
Anscheinend soll dieses Anlaufverhalten auch unter Last gut
funktionieren, nur blick ich nich wie das genau gemeint ist.
Kann jemand den Text nachvollziehen?
Ursprung ist btw
http://www.edaboard.com/thread143432.html
Morgy schrieb:> Anscheinend soll dieses Anlaufverhalten auch unter Last gut> funktionieren,
Tja, man glaubt gerne Dinge die einfach erscheinen.
Es hat schon seinen Grund, warum andere Leute dort lieber BLDC mit
Sensoren verwenden.
Er beginnt mit viel zu hoher Frequenz um zu folgen, reduziert die und
erhöht sie wieder und hofft, daß sich der Rotor dadurch mitnehmen lässt.
Es hängt nicht bloss vom Auto und konkreten Motor ab, sondern auch von
der Steigung auf der das Auto gerade steht.
MaWin schrieb:> Es hat schon seinen Grund, warum andere Leute dort lieber BLDC mit> Sensoren verwenden.
Quatsch, die sind quasi ausgestorben.
Richtig ist daß es nicht so einfach ist und erhebliche Unterschiede
zwischen den Herstellern bestehen, was das Anlaufverhalten betrifft. Der
diesbezüglich "schlechteste" Steller in meinem Fundus stammt übrigens
von einem (mitlerweile insolventen) deutschen Hersteller.
Mein Motor muss gar nicht unter Last starten, da er für Flugmodelle
ausgelegt werden soll.
Allerdings ist das Rastmoment bestimmter Motoren so hoch, dass diese
sich von einem fest rotierendem Drehfeld nicht mitnehmen lassen.
Deshalb würde es mich interessieren, wie du einen Brushless anlaufen
lassen würdest, oder mir sagen könntest, wie man dieses oben genannte
verbessert.
Hat jemand ne Idee wie das mit der S-Kurve umsetzbar wäre?
Laut Antriebstechnik ist ein S-förmiger Wegverlauf ja das
non-plus-ultra, vllt hat der typ es ja darauf übertragen?
Morgy schrieb:> Hat jemand ne Idee wie das mit der S-Kurve umsetzbar wäre?> Laut Antriebstechnik ist ein S-förmiger Wegverlauf ja das> non-plus-ultra, vllt hat der typ es ja darauf übertragen?
Die S-Kurve wird für eine Positionsregelung verwendet um eine Last
Ruckfrei zufahren, das hat mit dem Anlauf nichts zu tun.
Morgy schrieb:> Allerdings ist das Rastmoment bestimmter Motoren so hoch, dass diese> sich von einem fest rotierendem Drehfeld nicht mitnehmen lassen.
Überleg noch mal genau. Wenn der Motor mehr Rastmoment hat als er
elektrisch selbst aufbringen kann, dann läuft der nie. Der wird einfach
mit zu wenig Strom angefahren.
Zu deinem Problem. Die sinnigste Variante ist recht ähnliche dem was ich
glaube aus der kryptischen Beschreibung aus deinem Post zu lesen.
Was der machen wird:
>the best method i have for starting 6 phase>pwm on phase 1 240us
Sektor 1 für 240us. mit dem PWM Duty den du durch dein Eingang vom
Empfänger vorgibst.
>phase 2 480us
Sektor 2 für 240us. mit dem PWM Duty den du durch dein Eingang vom
Empfänger vorgibst.
>phase 3 960us
Sektor 3 für 240us. mit dem PWM Duty den du durch dein Eingang vom
Empfänger vorgibst.
>X 2 the times and change phase each time to reach 0.0344s
das ganze bis Sektor 6 (also ne Volle Umdrehung.)
Und die Zeit erhöhen (*2) bis du ein maximum erreichst. (Drehfrequenz
senken)
>/ 2 the times start at 0.0344 to reach 240us
das ganze bis Sektor 6 (also ne Volle Umdrehung.)
Und die Zeit senken (/2) bis du ein minimum erreichst. (Drehfrequenz
erhöhen)
Und wenn du dann 2 mal hinter einander einen Bemf Nulldurchgang gesehen
hast -> Drehzahl berechen und damit weiter auf Touren.
Prinzip Drehfeld Frequenz mit Viel zuschnell Starten -> Maschine
Vibriert. Drehfeldfrequenz senken irgend wann kommt die Maschine mit.
Durchs senken fährst du durch den optimalen Arbeitspunkt durch. und
erwischst ihn hoffendlich mit den BEMF Messungen. Wenn nicht das gleich
noch mal mit steigender Frequenz.
Gruß
Tec
Danke TEC, genau das was ich wollte / brauchte,
besser hätte ne Antwort nicht sein können ^^
Werds am WE vllt mal umsetzen, Prinzip ist jedenfalls vorstellbar.
Zu dem einen noch:
between each time you check if the phase is good two times and if the
next phase is OK two times you put the next phase at 0.1s same as
watchdog to check if motor turn if timer reach 0.1s restart at 240us
Mit check phase vermut ich mal, dass er den Motor auf Rotation prüft
oder?
Wie stellt man das am blödsten an?
Wenn ich den Text richtig deute, setzt er seinen Watchdog auf 0,1s zum
Resetten. Ich versteh nicht, warum er da nicht n normalen Timer nimmt,
beim Watchdog Reset muss mein Mikrocontroller ja erst mal wieder
anfangen, den Sollwert vom Empfänger zu holen, es entsteht ein Lag.
Außerdem hab ich dabei das Problem, dass wenn der Motor wegen zu hoher
Frequenz vibriert, er deutlich mehr Rückinduktionen hat als bei normalem
Lauf, was meinen Watchdog ja auch wieder resettet, der Motor vibriert
schön vor sich hin und der uC denkt es ist alles in Ordnung, wird ja
rückinduziert, passt ja.
Momentan messe ich die Anzahl der Rückinduktionen innerhalb eines
Zeitraums, ist dieser zu niedrig tut sich gar nix, ist dieser zu hoch
vibriert der Motor, mittendrin dreht er sich (bei mir ca. 10000
Kommutierungen innerhalb 1s).
Hab als akzeptablen Bereich zwischen 500 und 20.000 angenommen.
Allerdings bin ich mit der Lösung unzufrieden, da diese Zahl ja bei
jedem Motor schwanken kann.
Wie kontrolliert man am besten die Rotation bzw. was meint der Zitierte
mit seinem check phase?
Björn schrieb:> Mit check phase vermut ich mal, dass er den Motor auf Rotation prüft> oder?> Wie stellt man das am blödsten an?
Moin Björn,
der meint die BEMF messung auf der freien Phase. Also die früher übliche
Weise auf den "Nulldurchgang" der freien Phase prüfen. Oder die schöne
Variante:
Prüfen auf Nulldurchgang mit nem ADC und die Spannung auf der Phase
integrieren bis eine Schwellwert überschritten ist. Dann kommutieren.
Über den Schwellwert kann man das "Timing" dann einstellen. Und das
sauber über den gesamten Drehzahlbereich. Siehe InstaSpin BLDC von TI.
Gruß
Tec
zuio schrieb:> Quatsch, die sind quasi ausgestorben.
So ein Unsinn, die werden massenweise eingesetzt eben weil sie mit dem
Anlaufen unter Last keine Probleme haben. Es gibt mehr als das Dir
bekannte, offenbar enge, Einsatzfeld.