Brushless-Fahrtregler: Grundlagen und Nachbau

    • Offizieller Beitrag

    Im Thread von IceMaster's Überarbeitung von ScaryCube haben wir mit der Diskussion über die Brushless-Regler (bzw. -Steller) angefangen. Damit wir den Umbau-Thread von Scary-Cube nicht weiter versauen, sollten wir zukünftig mit dem Brushless-Thema hier weiter diskutieren.

    • Offizieller Beitrag

    Hier sind die Bilder von den beiden Test's, die Kai und Thorsten gemacht haben.


    Vollgas:

    mit der Zeitbasis:


    Langsame Fahrt:

    mit der Zeitbasis:

    • Offizieller Beitrag

    @reiner: danke fürs einstellen der bilder


    ok... was sehen wir?

    erstes bild:

    - vollgas,
    - eine phase (ich tippe mal auf eines der drei motorkabel gegen GND (minuspol der batterie) gemessen)
    - klassische trapezansteuerung, nix mit sinus...
    - KEINE der trapezansteuerung überlagerte PWM (klar, ist vollgas)

    periodendauer: T=3,6*0,5ms=0,0018s
    drehzahl: 1/T*60=33333 1/min

    also vollgas-drehzahl:
    - 33333 umdrehungen pro minute bei einer einpoligen maschine
    - 16666 umdrehungen pro minute bei einer zweipoligen maschine
    - 11111 umdrehungen pro minute bei einer dreipoligen maschine

    wie schnell der motor bei gegebener drehfeldfrequenz wirklich dreht, hängt von der polzahl (oder polpaarzahl) ab.
    ich tippe mal auf einen einpoligen motor.


    drittes bild:
    - teillast (langsame drehzahl)
    - periodendauer T=1,2*0,1ms=0,12ms
    - frequenz: f=1/T=8,3kHz

    das ist die der trapezansteuerung überlagerte PWM
    das kann man sehen, wenn man den gashebel bewegt, dann ändert sich das puls-pausen-verhältnis

    diese PWM hat NICHTS mit der drehzahl des motors zu tun!!!
    der mittelwert der PWM ist die virtuelle spannung, die die spule sieht!

    wenn man die trapezansteuerung bei langsamer fahrt sehen möchte, muss man die zeitbasis des oszilloskops DEUTLICH herunterdrehen (bei 1000 umdrehungen pro minute auf 10ms)!!!


    :D;)8)

  • Hab ich also doch recht gehabt, dass sich die frequenz nicht ändert oder? Ich tuh mich schwer damit sowas nachzuvollziehen wenn ich es nicht selber gemessen habe.

    Erfahrungen sind was sehr nützliches, leider macht man sie erst kurz nachdem man sie gebraucht hätte...

    • Offizieller Beitrag

    - die frequenz der der trapezansteuerung überlagerten PWM ändert sich NICHT, wohl aber das TASTVERHÄLTNIS der PWM und damit der mittelwert der phasenspannung

    - die frequenz des DREHFELDES ändert sich sehr wohl!!!
    (remember: SYNCHRON-maschine, drehzahl ist proportional zur frequenz des drehfeldes!)

  • Also die Spannungsimpulse sind also immer die volle Akkuspannung und die Frequenz der Trapeze ändern sich + die PWM innerhalb der Trapeze?

    Erfahrungen sind was sehr nützliches, leider macht man sie erst kurz nachdem man sie gebraucht hätte...

    • Offizieller Beitrag

    Ehrlich gesagt passen die o.g. Oszillogramme nicht mit dem zusammen, was ich erwartet hätte.

    Lest mal zunächst den Beitrag im Wikipedia

    Da ist eine Skizze, die zeigt, wie man die Dinger normalerweise ansteuert:

    (Quelle: http://www.wikipedia.de ; Kapitel "Bürstenloser Gleichstrommotor")

    Zitat

    - eine phase (ich tippe mal auf eines der drei motorkabel gegen GND (minuspol der batterie) gemessen)


    Wenn mit dem Oszi gegenüber Masse gemessen wird, dann frage ich mich, wie die negative Spannung bzw. der negative Trapez entstehen soll? Dass hier ein Spannungskonverter bzw. -inverter auf dem Regler integriert ist, würde mich ganz stark wundern.

    Eher ist mit dem Oszi zwischen zwei Motorphasen gemessen worden. (@Kai: korrekt?)

  • Warum ist doch klar. Wenn man gegen U und V misst kann man erst die wechselspannung messen.
    V1 und V2 sind niemals gleichzeitig geschaltet. V3 usw...

    Erfahrungen sind was sehr nützliches, leider macht man sie erst kurz nachdem man sie gebraucht hätte...

    • Offizieller Beitrag
    Zitat

    Eher ist mit dem Oszi zwischen zwei Motorphasen gemessen worden


    möglich... die kurvenform wäre ähnlich...
    zu der messung zwischen zwei phasen passt aber die kurvenform auf bild 3 nicht so ganz...
    sicher kann uns das nur kai sagen...

    - war das oszilloskop auf AC geschaltet?
    - wo lag die null-linie?


    Zitat

    Da ist eine Skizze, die zeigt, wie man die Dinger normalerweise ansteuert


    du kannst davon ausgehen, dass auch kai's regler so eine endstufe besitzt (dreiphasen-vollbrücke)


    Zitat

    Dass hier ein Spannungskonverter bzw. -inverter auf dem Regler integriert ist, würde mich ganz stark wundern.


    bestimmt nicht in der endstufe... *GRINS*


    Zitat

    Wenn man gegen U und V misst kann man erst die wechselspannung messen.


    müsste ich erstmal drüber nachdenken, aus dem bauch raus würde ich jedoch sagen:
    "es gibt zeitliche phasen" im kurvenverlauf, in denen ich auch an einem motorpin gegen gnd gemessen eine wechselspannung sehen kann.
    warum?
    es ist nicht so, dass immer v1 ODER v2 leitend sind, sondern es gibt zeiten, zu denen v1 UND v2 OFFEN sind.
    die spannung am mittelpunkt zwischen v1 und v2 wird dann durch die spannungspegel an v2,v3,v4,v5 bestimmt, denn die sind über die (im stern oder dreieck geschalteten) spulen mit v1,v2 verbunden...
    wie gesagt, muss ich mir nochmal durch den kopf gehen lassen... :rolleyes:

    • Offizieller Beitrag
    Zitat

    wie gesagt, muss ich mir nochmal durch den kopf gehen lassen...


    Das habe ich mir vorher auch gedacht. (... " nicht unter 6mm..." :rolleyes: )

    • Offizieller Beitrag

    *grinsel*

    warte erstmal ab, bis du versuchst auf deinem regler das BEMF-Sensing, 10kHz(8kHz) PWM und die anlauf-algorithmen zu implementieren...

    da reichen 6mm bei weitem nicht mehr aus... :D:D:D


    EDIT:
    gute App-Note zum BEMF-Sensing mit Zero-Crossing:
    BEMF-Sensing mit Zero-Crossing-Detection


    gemessen zwischen zwei motorphasen (YouTube, englisch):
    BLDC-Waveforms

  • Hi
    Puh
    Ersmal @Heiko: Ja hast recht, die Frequenz Drehfeldes ändert sich. Thorsten hatte mich falsch verstanden, als ich ihn darum gefragt hatte. Habe ihn heute morgen aber nochmal genauer ausgefragt(der ist etwas schwierig ;) )

    Es wurde zwischen 2der 3Kabeln gemessen. Also denke mal zwischen 2 Motorphasen.

    Ja war auf AC geschaltet. Thorsten sagte das wäre bei der Frequenz egal.

    Die Nulllinie ist das wo der Lange schwarze Strich ist :D

    Zitat

    - klassische trapezansteuerung, nix mit sinus.


    Würde sinn machen. Er hat mir gesagt es wäre Sinus......


    Regler war der Hype Alphacar150A,
    und motor Hype Alphacar 2000kv.


    Der Großteil von dem was ich schreibe, hat Thorsten mir erklärt, also mich bitte nich verurteilen, wenn nicht alles ganz richtig ist, was ich schreib.

    • Offizieller Beitrag
    Zitat

    der ist etwas schwierig


    sind wir das nicht alle??? *schenkelklopf*

    Zitat

    also mich bitte nich verurteilen, wenn nicht alles ganz richtig ist, was ich schreib.


    ich verurteile nicht, ich bin nur rechthaberisch... :D:D:D

    mal im ernst, falls ich manchmal mit meinen kommentaren etwas zickig rüberkomme, es ist NIE böse gemeint (und falls doch, werdet ihr es DEUTLICH am tonfall merken... :D).

    es ist einfach so, dass bei manchen postings (nicht auf diesen thrad bezogen, sondern generell) hier mindestens meine augenbrauen hochgehen, teilweise aber auch eine akute schnappatmung einsetzt 8)
    und dann... dannn ... dannnnn-n-n kann ich mich einfach nicht zurückhalten und muss ein wenig klugsch***en :tongue:


    was ich übrigens wirklich toll finde ist das technische interesse des nachwuchses (man verzeihe mir die titulierung, schliesslich seid ihr mitlerweile auch schon lage genug dabei ;) )

    gruss,
    heiko

    • Offizieller Beitrag

    Reiner, Aufgabe... Du nimmst:

    1x die Mikrokopter Schaltung für den Brushless Regler
    1x nen PIC anstatt des Atmels
    1x den Atmel C Code und übersetzt ihn in PIC C Code

    Zwischen den PIC und 6x gescheite FETs (IRF1405 o.ä.) baust du ne gescheite Stufe mit nem HIP4086. Strombegrenzung machst du später und auch das Anfahren über BEMF Sensing und gescheiten Sensoren für die Rotorstellung lässt du erst mal weg und "rätst" wie die Mikrokopter Jungs...

    Wollte ich zwar schon immer mal machen aber du bekommst es hin... :rolleyes:

    • Offizieller Beitrag
    Zitat

    was ich übrigens wirklich toll finde ist das technische interesse des nachwuchses (man verzeihe mir die titulierung, schliesslich seid ihr mitlerweile auch schon lage genug dabei


    Da muss ich mich auch mal anschließen ! Es hat mich schon z.B. bei MMMV11 imponiert, dass die Ant-Arena-Elektronik so ganz einfach eingebaut bzw. umgerüstet wurde. Klar wäre ich bei Bedarf bereitgestanden, aber der "Selbstläufer" hat mir gut gefallen. *schulterklopf* Und dass hier solche Beiträge auf fruchtbaren Boden finde ich toll! *Lob*

    Und wie Heiko schon sagte, dass unsere "jungen Wilden" hier bei dem Bruhsless-Thema mitziehen, gefällt mir auch. Irgendwas nicht zu wissen, ist keine Schande. Sich nicht um die Wissenslücke zu kümmern, das ist bedenklich.


    Zitat

    Reiner, Aufgabe... Du nimmst:

    1x die Mikrokopter Schaltung für den Brushless Regler
    1x nen PIC anstatt des Atmels
    1x den Atmel C Code und übersetzt ihn in PIC C Code

    Zwischen den PIC und 6x gescheite FETs (IRF1405 o.ä.) baust du ne gescheite Stufe mit nem HIP4086. Strombegrenzung machst du später und auch das Anfahren über BEMF Sensing und gescheiten Sensoren für die Rotorstellung lässt du erst mal weg und "rätst" wie die Mikrokopter Jungs...

    Wollte ich zwar schon immer mal machen aber du bekommst es hin... Augen rollen

    Aye aye , Sir ! :D:D;)

    Im Ernst: Ich wollte bei der "Grundlagenforschung" hier im Forum jetzt nicht gleich eine große Baustelle schaffen. Im Prinzip einfach mal meinen 3fach-Fahrtregler mit den MOSFET-Halbbrücken etwas vergewaltigen und einen Brushless-Motor zum Testen anhängen. Die ganze Sensorik mit der Erkennung von der aktuellen Motorlage über einen Stromsensor, das ist mir zuviel gefrickel. Außerdem steckt da der Teufel im Detail, den ich mit meinen Bordmitteln nicht mehr analysieren kann (Ich habe mal mit einem befreundeten Conti-Entwickler gesprochen, der in der Abteilung arbeitet, die für die großen PKW-Motoren (Porsche etc) die elektrische Ventilsteuerung bauen. Die aktuelle Lage des Ventils wird dabei auch über den Strom von der "Auslösespule" gemessen und dann berechnet. => Aussichtslos für eine One-Man-Show, so wie ich das hier am Feierabend und Wochenende betreibe).

    Einen vorgegebenen Code zu übersetzen; Ginge prinzipiell, wenn ich die Hardware von dem Atmel kennen würde.

    Eigentlich hätte ich viele Teile von meinem bestehenden Fahrtregler-Programm verwenden wollen und "nur" die Ansteuerung von den drei/sechs Phasen für den Motor modifiziert.

    @Marco: Unwichtige Frage nebenbei: Die Mikrokopter-Schaltung ist mir nicht geläufig. Ist das Open-Source oder wo hast Du die Schaltung bzw. den Quellcode her ?
    Der Teil von der Ansteuerung der sechs MOSFETs hätte mich brennend interessiert, denn den kann ich ganz gut in das PIC-Programm integrieren. :D (... ich heiße zwar nicht Guttenberg, aber manchmal muss man das Rad ja doch nicht neu erfinden... :D )

    • Offizieller Beitrag
    Zitat

    Die ganze Sensorik mit der Erkennung von der aktuellen Motorlage über einen Stromsensor, das ist mir zuviel gefrickel


    die ROTORlage wird über die BEMF (eigentlich pro phase nur ein spannungsteiler mit filter-kondi und synchronisation zur pwm in der software, der teil hat es aber echt in sich!) oder über hall-sensoren gemessen, nicht über den strom!!!

    ohne rotorlageerkennung wirst du keinen BLDC zum laufen bekommen!!!

    eine synchronmaschine läuft nur dann, wenn der winkel zwischen statorfeld und rotorfeld nicht grösser (und das ist wirklich schon das absolute theoretische maximum!!!) 90° ist.

    kritisch ist das gerade beim anlaufen des motors, die ansteuerung muss dafür sorgen, dass die ständerdrehfeldfrequenz (hach, schööönes wort) nur so langsam erhöht wird, dass der rotor folgen kann, ohne einen winkel über 80° zu erzeugen.

    man kann sich das so vorstellen, dass ständer und rotor mit einem gummiband zusammenhängen, wird das gummiband weiter als 90° gedehnt, reisst es.
    folge: der motor kommt aus dem tritt, es treten riesige ströme auf usw (einen industriemotor kann sowas vom fundament reissen!!!)


    Zitat

    Eigentlich hätte ich viele Teile von meinem bestehenden Fahrtregler-Programm verwenden wollen und "nur" die Ansteuerung von den drei/sechs Phasen für den Motor modifiziert.


    *hüstel* das "nur" dürfte ca. 60% des codes ausmachen... ;):D

    Zitat

    Die Mikrokopter-Schaltung ist mir nicht geläufig. Ist das Open-Source oder wo hast Du die Schaltung bzw. den Quellcode her ?


    die schaltung ist frei verfügbar (GNU-lizenz oder ähnlich meine ich) 1 dinA4-blatt, nix wirklich wildes.
    schau dir mal hardwareversion 2.0 an:

    http://www.mikrokopter.com/ucwiki/BL-Ctrl_2.0

    die software (firmware) ist NICHT frei verfügbar! (leider)

  • Aha! Ich habe mir letzte Woche genau dieses Projekt mal angeschaut weil ich mich in dem Bereich (Brushless etc.) auch noch ein wenig einlernen will.

    So stieß ich auch auf diese Seite und wollte den am liebsten sofort nachbauen, nur fand ich das Programm nirgens... Jetzt weiss ich warum X(

  • Irgendwie wollen die ja auch Geld verdienen......
    Wären ja auch dumm wenn nicht.

    Erfahrungen sind was sehr nützliches, leider macht man sie erst kurz nachdem man sie gebraucht hätte...

    • Offizieller Beitrag

    Ich weiß, der Source ist auch in deren SVN nicht zu finden, aber das ist auch nix anderes als ein Atmel AppNote um eine Ansteuerung nebst Protokoll für I2C aufzubohren...

    Siehe z.B:

    http://www.atmel.com/dyn/resources/…nts/doc8306.pdf
    http://www.atmel.com/dyn/resources/prod_documents/AVR172.zip