PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : BLDC Motorcontoller anfahren/starten



CCP1CON
12.09.2011, 07:17
Hallo.

Was habt ihr für eine Anfahrstrategie?
Ich frage, weil ich den Motor zwar jedesmal relativ sicher mit fixer Kommutation anfahren kann, aber scheinbar die
Zwangskommutierung nicht zum Drehfeld passt und der Controller (und ich) dann auch keine zero crossings sieht.
Zumindest sind diese nicht dort, wo ich sie erwarte und brauche.
Wenn ich den Motor leicht abbremse werden die Signale besser. Aber ich kann natürlich nicht jedesmal manuell
eingreifen :-)

Zuerst spanne ich den Motor ein, indem ich zwei Phasen bestrome (z.B. UH
und VH high – WL auf Massse). Dann eine Phase ausschalten (hier UH).
Somit sollte der Rotor sicher auf VH-WL stehen. Dann setzt die
Zwangskommutierung mit schneller werdende Intervallen ein.

Ich habe schon viel experimentiert. Z.B. die Intervalle variiert und auch mit dem Duty Cycle rumgespielt.

Wie kann ich verhindern, dass der Motor in einen solchen falschen Takt gerät?
Ist es überhaupt möglich den Motor über längere Zeit (1-2 Sekunden) mit Zwangskommutation zu betreiben?
Oder läuft das Drehfeld immer schell weg?

CCP1CON
13.09.2011, 14:12
Hier noch zwei Schnappschüsse mit dem Oszi.
Der Erste zeigt das Signal wie der Motor mit Zwangskommutierung und festem Intervallen (450 U/min) nach dem Hochfahren läuft.
Das zweite Bild dann leicht gebremst und mit grünem debugg signal (so sollte es immer aussehen).

Keiner schon mal sowas gemacht? :-(

20001

20002

davts
24.01.2012, 06:09
Hallo CCP1CON,

ich habe ein ähnliches Problem. Momentan baue ich an einem 8 fach Bl Regler. Momentan ist nur ein BL teil bestückt aber das starten ist ein Problem. Ich kann den Motor mit der Hand anschuppsen dann läuft er einwandfrei. Der versuch ihn mit einer zwangskomutierung zu starten war leider erfolglos.

Mit welcher Frequenzt betreibst Du denn die PWM für die Leistungsregelung?

CCP1CON
24.01.2012, 09:35
Hi davts,

Die PWM Frequenz ist variabel, startet bei 13 kHz und wird mit der Drehzahl erhöht, so das sich bei 6000 Umdrehungen ca. 20 kHz einstellen.
Das Anfahren ist eine Kombination aus Zwangskommutierung und Kommutation durch erkannte ZC’ings mit 10% duty cycle, die dann nahtlos in closed loop übergeht.
In dieser Version funzt es zuverlässig nur für genau diesen einen Motor (ROXXY 2850) und genau diese Last (den Propeller).
Damit kann ich aber leben, da der Controller nur für diesen speziellen Fall gebraucht wird.

Wenn ich einen anderen Motor anschließen wollte, muss ich die Timer Variable, DC und PWM Frequenz manuell anpassen.

Was sollen denn deine 8 Motoren antreiben? Etwa einen Oktokopter?

davts
24.01.2012, 16:12
Hallo ,

ja es soll ein Oktokopter angetrieben werden.
Bei meinem ersten Prototypern war immer nur das Porblem mit dem Anlaufen. Ich weiß das es für viel Geld natürlich so etwas schon fertig gibt aber ist ja auch die Freude am Bauen. Ich hatte 6 - 1,5 Khz PWM probiert vielleicht get es mit höherer Frequenz besser.

Mein Gedanke war den Motor manuell zu Komutieren, die Schleife wird dann immer schneller so das ich etwas schwung bekomme. Anschließend habe ich umgeschalten auf Komutierung durch die Interuppts. Dabei ist der motor immer außer Tritt gekommen.

Was einst Du mit Kombination aus Zwangskomutation und erkannte ZC ings, Kannst Du mir ein sinngemäßes Ablaufschema geben.

zb.
PWM =10%
Zwangskomutierung mit XYms pause zwischen den schritten
wenn XYZ dann Interuptroutiene aktivieren.


Das wäre supper da ich hier irgendwie in einer Sakgasse hänge.

Danke.

derNeue
24.01.2012, 17:09
Also ich hab selbst noch keinen Regler programmiert, habe ich aber demnächst auch vor, und mir kommt das mit deiner niedrigen PWM-Frequenz irgendwie komisch vor. Also du musst pro Umdrehung ja dreimal die High-Side umschalten. Sozusagen muss die PWM-frequenz min. dreimal so hoch sein, wie die Umdrehungsfrequenz des ganzen Rotors. Sozusagen kannst du bei einer PWM-frequenz von 1,5khz den Motor nicht schneller als 500U/Min drehen lassen, oder du kannst den ganzen Duty Cycle nicht ausnutzen. Bei einer PWM-frequenz von 13khz am Anfang wie bei ccp1con kannst du also schneller drehen, und trotzdem den ganzen Duty Cycle ausnutzen. 13khz geteilt durch 3 kannst du immerhin schon reichlich 4000U/Min schaffen. Oder eben bei 500U/Min sogar 8 mal die PWM durchlaufen, bevor du die nächste High-side ansteuern musst.
Ihr könnt mich gern berichtigen, wenn ich einen Denkfehler habe, aber das waren meine Gedankengänge, die ich mir unter anderem bisher zu so einem regler gemacht habe.

MfG dennis

edit: Mir fällt gerade selbst auf, das ich ganz schönen bockmist geschrieben habe, weil sich eine Frequenz auf Sekunden bezieht, und Umdrehungen auf Minuten, oh man, jetzt bekommt man nichtmal mehr die einfachen Sachen auf die Reihe, peinlich peinlich

davts
24.01.2012, 19:46
Hallo Denis.

mit der PWM Frequenz war nicht die Drehfeldfrequenz gemeint sondern die PWM Frequenz mit der die Leistung des Motors geregelt wird. Wenn eine Spule bestromt wird dann wird der LeistungsTransistor mit einer PWm bestromt um so die Leistung zu regeln. Sobald der Motor einen Schritt weiter ist entsteht an der nicht bestromten Spule eine Spannung. An dieser kann mann die Rotorlage erkennen und somit zur nächsten Komutierung weiter schalten.

MFG David

CCP1CON
24.01.2012, 20:08
Hi,

in Bezug auf die Drehzahl: mein ROXXY BL-outrunner 2815 hat 7 Polpaare (14 polig) d.h. man braucht 7 elektrische Umdrehungen für eine Mechanische. Da man aller 60 Grad kommutiert, braucht man also 6 Kommutationen für eine elektrische Umdrehung, also 42 mal kummitieren für eine mechanische Umdrehung.

6 kHz scheint mir auch ein bisschen wenig. Ich würde mindestens 8-10 kHz versuchen.

davts
24.01.2012, 20:48
Hi CCP1CON,

das mit dem drehfeld /Mech. Umdrehungen ist mir schon klar. Die neue PWM kann ist erst nächste Woche Testen. Dachte aber das die PWm Frequenz der Leistungsreglung keinen einfluss auf das Anlaufen hatt.
Ich hoffe wir schreiben nicht an ein ander vorbei. Mit 6KhZ meine ich die Frequenz mit der die Transistoren angetseuert werden wenn sie durchgesteuert werden. Natürlich etscheidet der ED über die Leistung.

davts
02.02.2012, 17:02
Hi CCP1CON,

danke für den Tipp mit der Frequenz. Ich habe die Frequenz von der PWM auf 23KHZ erhöt. Nun lässt sich der Motor einwandfrei starten und läuft dann super. Die CPU ist mit 24 MHZ getaktet da bin ich bis zu einer Motordrehzahl von ca. 14500 U/min gekommen ( ohne Luftschraube) dann kahm scheinbar die CPU nicht mehr hinter her. ABer das reicht ja locker denn mit LS dreht er ja nicht so hoch.

David

CCP1CON
03.02.2012, 07:49
Cool!

14.500 U/min – Respekt!
Hast du die Umdrehungen gemessen oder im Controller errechnet?
Und welcher Duty Cycle war dazu nötig?
Mach mal einen Test mit LS.

davts
03.02.2012, 09:57
HI,

der Motor lief natürlich ohne Prop. und die Drehzahlmessung ist auch noch nicht im Regler implementiert. Duty Cycle war bei ca. 50% ich habe die Spannung langsam erhöt da ich am Netzteil die untergrenze eingestellt hatte. Somit Stieg natürlich auch die Drehzahl und war auch nur so hoch weil kein Prop dran war. Gemessen habe ich das ganze mit dem Oszi an den Rückkanälen für die Rortorerkennung und dann entsprechend umgerechnet. Da der Motor ab 14550U/Min an fing aus demn Tritt zu kommen nehme ich an das der Kontroller nicht mehr hinter her kahm. Oder die Drehzal war für den Motor zu hoch sodass der Rotor anfing zu schwingen. Mit Prop. passiert das nicht da die Drehzal da nicht so hoch gehen kann und soll. Weitere Testst sind in Arbeit :-)

David