Forum: Mikrocontroller und Digitale Elektronik Brushless startup, kann das wer übersetzen?


von Morgy (Gast)


Lesenswert?

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

von MaWin (Gast)


Lesenswert?

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.

von zuio (Gast)


Lesenswert?

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.

von Morgy (Gast)


Lesenswert?

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.

von Morgy (Gast)


Lesenswert?

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?

von Morgy (Gast)


Lesenswert?

keiner ne idee?

von Alex E. (tecnologic) Benutzerseite


Lesenswert?

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

von Björn (Gast)


Lesenswert?

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?

von Alex E. (tecnologic) Benutzerseite


Lesenswert?

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

von Steffen W. (derwarze)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.