MikroKopter - Forum » BL-Ctrl » Open-BLDC next generation brushless regler

Open-BLDC next generation brushless regler

Neues Thema GESCHLOSSEN

Seite: 1 2 >

Autor Neuer Beitrag
Mitglied
Registriert seit: Jul 2007
Beiträge: 24
Hallo Leute,

Vor ein paar Monaten habe ich ein Projekt gestartet, Brushless Motor Regler zu bauen. Seit Vorgestern funktioniert der Prototyp auf einem Steckbrett mit Kommutierungserkennung. Deshalb finde ich das eine gute Gelegenheit euch dieses Projekt vorzustellen.

Ich habe ein kleines Video gemacht um den aktuellen Stand zu dokumentieren:

http://www.youtube.com/watch?v=Xigl9tx2mrc

Schaltpläne, Platinenlayouts und Quellcode stehen unter freien Lizenzen (Schaltpläne und Layouts CC-BY-SA 3.0 DE und Quellen GPL v3) und ihr könnt diese im GitHub Repository finden.

Die Homepage des Projektes findet ihr hier. Neuigkeiten zum Projekt findet ihr im PlanetNG und in meinem Blog.

Aktuell fehlt eigentlich nur noch die Strommessschaltung (die ersten Ideen sind schon im Schaltplan enthalten) wenn diese funktioniert und auf dem Steckbrett getestet ist kann man sich um den ersten Prototypen in Platinenform kümmern.

Dass Ziel ist hier nicht einen möglichst billigen bzw. einfachen Regler zu entwerfen, sondern einen der möglichst flexibel und mächtig ist (auch wenn die Bauteile dadurch ein wenig mehr kosten). Ausserdem sollen diese Regler genug Platz für Experimente geben.

Die wohl wichtigsten geplanten Features sind:
* Support für mehrere PWM Schemes (bereits implementiert)
* Support für mehrere Protokolle: i2c Mikrokopter, i2c AscTec, Quax, PPM und vielleicht sogar CAN (geplant) (derzeit ist nur RS232 Seriell implementiert)
* Support für aktiven Freilauf (geplant)
* Support für aktives Bremsen (geplant)
* Mindestens 20A Leistung
* Möglichst kleines Platinenlayout (SMD)
* Keine Shunts für Strommessung (Hall Effekt Stromsensoren)
* Basiert auf STM32 ARM Cortex M3 (wegen sehr guter hardware unterstützung für Brushless Regler, und freier ARM GCC Toolchain und JTAG support in OpenOCD) (uuuuund vom Preis her ist er vergleichbar mit einem großen ATMEGA)

Bin gespannt auf eure Meinungen. ^^

Cheers Esden
Mitglied
Registriert seit: Jun 2008
Beiträge: 451
Hi,

Super Projekt, habe das vor ein paar Wochen schonmal auf der Projekt Homepage gefunden und diese mir gleich gespeichert. Also ranhalten hier ist bedarf^^

MFG
Tobias
Mitglied
Registriert seit: Jan 2008
Beiträge: 253
Beachte, dass der IR2110 mindestens 10V benötigt. Ansonsten, schönes Projekt. Vor allem der STM32 ist ein tolles Gerät.
Aktiver Freilauf und aktives Bremsen sind relativ programmieraufwendig, da bin ich mal gespannt wie du das machst.
Für den Strom würde ich persönlich wahrscheinlich weiterhin auf Shunts setzen, weil: Günstiger, Shunt kann man besser auf der Platine unterbringen (einfach ein wenig Leiterbahn irgendwo langschlängeln), und somit wahrscheinlich auch kleinerer Platzverbrauch.
Problem ist: Ohne Verstärker (Hat der STM32 einen AD Wandler mit Verstärker drin?) reicht die Auflösung nur für eine Überstromerkennung.

Was meinst du mit unterschiedliche PWM Schemes? Umschalten zwischen Synchronous Rectifying, High/Lowside only? Macht das sinn? Okay, mehr Hardware Aufwand erfordert das denke ich mal nicht.

Wo finde ich denn einen Schaltplan auf deiner Seite?
Mitglied
Registriert seit: Jun 2008
Beiträge: 671
Ort: Offenbach a.M.
Geilo!
MK-Betatester
Registriert seit: Jan 2008
Beiträge: 2633
Ort: Schweiz
Cooles Projekt!

Für die Strommessung würde ich versuchen einen Widerstands-Shunt zu nehmen.
Auf der Sparkfunseite habe ich ein geeignetes IC (INA-169) gefunden.

Gruss Martin
Mitglied
Registriert seit: Sep 2007
Beiträge: 680
Ort: Seligenstadt
es gibt auch hal sensoren die werden einfach auf die Leiterbahn gesetzt
und messen dann das Magnetfeld um die Leiterbahn
Mitglied
Registriert seit: Aug 2007
Beiträge: 314
Ort: Essen
esden meinte
* Support für mehrere Protokolle: i2c Mikrokopter, i2c AscTec, Quax, PPM und vielleicht sogar CAN (geplant) (derzeit ist nur RS232 Seriell implementiert)


Was ist "Quax"...

RS232-Seriell = UART (Armokopter) ?

v800290

PS: Ansonsten "Weiter so!"
Mitglied
Registriert seit: Sep 2007
Beiträge: 680
Ort: Seligenstadt
rs232 einfach zum deebugen per PC hat nicht mit demm armo zu tuhn :)
Mitglied
Registriert seit: Jul 2007
Beiträge: 24
Danke für eure Kommentare!

AVR-Simon meinte
Beachte, dass der IR2110 mindestens 10V benötigt.

Stimmt. Da darf der Akku nicht unter 10V runtergehen. Da gibt es aber eine richtig grosse Palette an Treibern bei International Rectifier. Da habe ich eh noch eine lange Suchsession vor mir, bis ich genau den passenden Treiber finde. (da sind noch paar Bauteile in der Schaltung welche mehr Recherche brauchen)

AVR-Simon meinte
Ansonsten, schönes Projekt.

Danke.
AVR-Simon meinte
Vor allem der STM32 ist ein tolles Gerät.

Finde ich auch. Bis jetzt bin ich ziemlich zufrieden mit dem Kriechvieh. ^^

AVR-Simon meinte
Aktiver Freilauf und aktives Bremsen sind relativ programmieraufwendig, da bin ich mal gespannt wie du das machst.

Aktiver Freilauf ist praktisch schon da. Wird von der STM32 Hardware mehr oder weniger frei Haus geliefert. Habe leider noch irgendwie komisches verhalten. Habe nicht die Zeit gehabt mich da tiefer einzudenken warum es noch nicht geht. Auf aktives Bremsen freue ich mich schon, wird bestimmt ein spass es zum laufen zu bringen ohne gleich alles zu verbrennen. ^^ Worauf ich mich auch freue ist echte Feldvektorkontrolle (habe ich in der liste vergessen reinzuschreiben) ich hoffe dass ist machbar.

AVR-Simon meinte
Für den Strom würde ich persönlich wahrscheinlich weiterhin auf Shunts setzen, weil: Günstiger, Shunt kann man besser auf der Platine unterbringen (einfach ein wenig Leiterbahn irgendwo langschlängeln), und somit wahrscheinlich auch kleinerer Platzverbrauch.
Problem ist: Ohne Verstärker (Hat der STM32 einen AD Wandler mit Verstärker drin?) reicht die Auflösung nur für eine Überstromerkennung.

Soweit ich weiss hat der STM32 keinen verstärker verbaut. Dadurch heisst es dass man da einen opamp hinzufügen müsste. Ich habe aber dermassen schlechte erfahrungen gehabt mit verbrennenden Shunts bei BL-Ctrl dass ich auf keinen fall diesen weg gehen möchte. Bis jetzt habe ich zwei Lösungen:
*Allegro Halleffect Stromsensor
*Melexis Halleffect Stromsensor (Danke MarkusBec)
Momentan habe ich die Allegro Lösung in den Schaltplan eingezeichnet. Beide können von -30A bis +30A messen. Und die 2Eur pro Regler sind die mir schon wert. Man kann beide Lösungen mit intelligentem Platinendesign auch im Messbereich erweitern. Der Melexis hat den Vorteil dass er keinen physischen Kontakt zum gemessenen Strom hat.

AVR-Simon meinte
Was meinst du mit unterschiedliche PWM Schemes? Umschalten zwischen Synchronous Rectifying, High/Lowside only? Macht das sinn? Okay, mehr Hardware Aufwand erfordert das denke ich mal nicht.

Also nicht im laufenden betrieb umschalten. Es wird schon beim kompilieren der Firmware eine Art ausgewählt. So kann man leichter rumexperimentieren, und ja es ist eine reine Software Sache.

AVR-Simon meinte
Wo finde ich denn einen Schaltplan auf deiner Seite?

Bis jetzt gab es den Schaltplan nur im Repository hier: http://github.com/esden/open-bldc/tree/master
im Unterverzeichniss hardware/v0.1 ... aber nach deiner frage habe ich auch mal den aktuellen stand als Bild exportiert und mal ins Wiki hochgeladen: https://open-bldc.org/wiki/Circuit

@v800290 RS232-Seriell ist UART ja aber nicht dass protokoll von Armokopter ... ist nur zum Debuggen am Rechner bis jetzt. Währe aber überhaupt kein Problem dieses Protokoll auch zu unterstützen.

@martinchzh Wie schon oben gesagt, ich habe keine lust auf brennende Shunts ... da kann ich gleich statt dessen eine Schmelzsicherung einbauen. :D

@MarkusBec Jups, und danke für den Tipp mit den Melexis Sensoren im IRC. Könnte echt ne bessere Lösung sein als die Allegro Dinger. Vorallem hat man da glaube ich mehr Herstellerunabhängigkeit. ^^
MK-Betatester
Registriert seit: Jan 2008
Beiträge: 2633
Ort: Schweiz
Ich meinte eben ja auch einen Widerstands-Shunt, keinen Platinen-Shunt.
Mitglied
Registriert seit: Sep 2007
Beiträge: 680
Ort: Seligenstadt
mit einem shunt kann man halt ohne opamp auch nicht wirklich was messen
bzw nur in einer sehr geringen auflösung
Mitglied
Registriert seit: Jan 2008
Beiträge: 253
esden meinte
Stimmt. Da darf der Akku nicht unter 10V runtergehen. Da gibt es aber eine richtig grosse Palette an Treibern bei International Rectifier. Da habe ich eh noch eine lange Suchsession vor mir, bis ich genau den passenden Treiber finde. (da sind noch paar Bauteile in der Schaltung welche mehr Recherche brauchen)

Ja, IRF hat eine sehr große Auswahl. Aber um dich schon mal vorweg zu enttäuschen: Von der Mindestspannung her ist das Niedrigste der IR2136. Schau mal hier:
http://www.irf.com/product-info/datasheets/data/ir2136.pdf

esden meinte
Aktiver Freilauf ist praktisch schon da. Wird von der STM32 Hardware mehr oder weniger frei Haus geliefert. Habe leider noch irgendwie komisches verhalten. Habe nicht die Zeit gehabt mich da tiefer einzudenken warum es noch nicht geht. Auf aktives Bremsen freue ich mich schon, wird bestimmt ein spass es zum laufen zu bringen ohne gleich alles zu verbrennen. ^^ Worauf ich mich auch freue ist echte Feldvektorkontrolle (habe ich in der liste vergessen reinzuschreiben) ich hoffe dass ist machbar.

Ah, stimmt. Aktiven Freilauf habe ich bei meiner Entwicklung auch eingebaut. Damit werden die FETs wirklich kaum noch merkbar warm (bei CF2822 Motorisierung). Im Vergleich dazu die hohe Temperatur bei den BL Ctrls. Ich habe aber 3 Stück IR2104S verwendet.

esden meinte
Soweit ich weiss hat der STM32 keinen verstärker verbaut. Dadurch heisst es dass man da einen opamp hinzufügen müsste. Ich habe aber dermassen schlechte erfahrungen gehabt mit verbrennenden Shunts bei BL-Ctrl dass ich auf keinen fall diesen weg gehen möchte. Bis jetzt habe ich zwei Lösungen:
*Allegro Halleffect Stromsensor
*Melexis Halleffect Stromsensor (Danke MarkusBec)
Momentan habe ich die Allegro Lösung in den Schaltplan eingezeichnet. Beide können von -30A bis +30A messen. Und die 2Eur pro Regler sind die mir schon wert. Man kann beide Lösungen mit intelligentem Platinendesign auch im Messbereich erweitern. Der Melexis hat den Vorteil dass er keinen physischen Kontakt zum gemessenen Strom hat.

Ja gut. Ohne Verstärker kannst du den Shunt eben nur noch so wirklich als Überstromerkennung benutzen. Zumindest bei den von dir vorgesehenen Strömen.
Bezüglich Abbrennen des Shunts: Alles eine Sache der Auslegung. Ich habe bei meiner Entwicklung auch einen Platinenshunt verwendet (etwa 10mOhm). Allerdings mit einer Gesamtoberfläche von 114mm² (etwa 57mm lang und 2mm breit). Der schlängelt sich so um die drei FETs drumherum.
Damit bekomme ich eine Leistungsverteilung von 8,6mW/mm² bei 10A Stromfluss. Und wie zu erwarten war erwärmt sich der Shunt nicht merkbar, da die Oberfläche groß genug ist.
Von Shunts in Widerstandsform würde ich (gerade bei 30A) abraten. Die Dinger haben ja noch eine kleinere Oberfläche als der Shunt der BL-Ctrl beispielsweise. Die brennen dir quasi sofort weg (zumindest ohne aktive Kühlung).

Ich persönlich finde diese Hallsensoren eigentlich ziemlich genial. Wie du schon sagst, man kann den Strom berührungslos messen, was sicher auch Vorteile hat. Vor allem kann man bei dem entsprechenden Hall Sensor dann den Stromwert direkt über eine digitale Schnittstelle auslesen :D
Nochmal überlegt: Bei 30A ist das wohl der beste Weg. Und wenns wirklich nur 2€ pro Controller sind, ist es doch sehr gut.
Wenigstens mal jemand der was innovatives einbringt :D

esden meinte
Also nicht im laufenden betrieb umschalten. Es wird schon beim kompilieren der Firmware eine Art ausgewählt. So kann man leichter rumexperimentieren, und ja es ist eine reine Software Sache.

Hab gestern noch die Seite zu den PWM Schemes gefunden und muss irgendwie sagen, dass ich teilweise nicht so ganz verstehe, wo die Zweckmäßigkeit liegt. Warum sollte man denn den Motor teilweise mit PWM fahren und teilweise an lassen (wenn ich das richtig verstanden habe)?
Aber gut, du sagst es, bisschen Softwarespielerei muss ja auch sein :D

Danke für den Schaltplan, ich werd mal drüberschauen.
Mitglied
Registriert seit: Jun 2007
Beiträge: 368
AVR-Simon meinte
....
esden meinte
Aktiver Freilauf ist praktisch schon da. Wird von der STM32 Hardware mehr oder weniger frei Haus geliefert. Habe leider noch irgendwie komisches verhalten. Habe nicht die Zeit gehabt mich da tiefer einzudenken warum es noch nicht geht.
....

Ah, stimmt. Aktiven Freilauf habe ich bei meiner Entwicklung auch eingebaut. Damit werden die FETs wirklich kaum noch merkbar warm (bei CF2822 Motorisierung). Im Vergleich dazu die hohe Temperatur bei den BL Ctrls. Ich habe aber 3 Stück IR2104S verwendet.
....


Wenn du den aktiven Freilauf schon fertig hast, würde mich mal interessieren, ob du deine Erfahrungen mit uns teilen möchtest. Ein paar "Problemchen" gibt es ja schließlich doch, z.B. dass das BEMF Signal in den Power-Off Phasen deutlich kleiner wird.

Wär ja schön, wenn nicht jeder für sich das Rad neu erfinden müsste. ;)

tschüss
quax
Mitglied
Registriert seit: Jun 2008
Beiträge: 671
Ort: Offenbach a.M.
Quax meinte
Wär ja schön, wenn nicht jeder für sich das Rad neu erfinden müsste. ;)


esden meinte
Schaltpläne, Platinenlayouts und Quellcode stehen unter freien Lizenzen (Schaltpläne und Layouts CC-BY-SA 3.0 DE und Quellen GPL v3) und ihr könnt diese im GitHub Repository finden.
Mitglied
Registriert seit: Jun 2008
Beiträge: 451
Quax bezieht sich aber auf die Entwicklung von AVR-Simon.
Mitglied
Registriert seit: Jul 2007
Beiträge: 24
AVR-Simon meinte
esden meinte
Stimmt. Da darf der Akku nicht unter 10V runtergehen. Da gibt es aber eine richtig grosse Palette an Treibern bei International Rectifier. Da habe ich eh noch eine lange Suchsession vor mir, bis ich genau den passenden Treiber finde. (da sind noch paar Bauteile in der Schaltung welche mehr Recherche brauchen)

Ja, IRF hat eine sehr große Auswahl. Aber um dich schon mal vorweg zu enttäuschen: Von der Mindestspannung her ist das Niedrigste der IR2136. Schau mal hier:
http://www.irf.com/product-info/datasheets/data/ir2136.pdf

Jo dass stimmt. Deshalb werden wir so wie bei manchen anderen Reglern eine Ladungspumpe einbauen damit man auch mit 2s Akkus alles sicher betreiben kann. ^^

AVR-Simon meinte
esden meinte
Aktiver Freilauf ist praktisch schon da. Wird von der STM32 Hardware mehr oder weniger frei Haus geliefert. Habe leider noch irgendwie komisches verhalten. Habe nicht die Zeit gehabt mich da tiefer einzudenken warum es noch nicht geht. Auf aktives Bremsen freue ich mich schon, wird bestimmt ein spass es zum laufen zu bringen ohne gleich alles zu verbrennen. ^^ Worauf ich mich auch freue ist echte Feldvektorkontrolle (habe ich in der liste vergessen reinzuschreiben) ich hoffe dass ist machbar.

Ah, stimmt. Aktiven Freilauf habe ich bei meiner Entwicklung auch eingebaut. Damit werden die FETs wirklich kaum noch merkbar warm (bei CF2822 Motorisierung). Im Vergleich dazu die hohe Temperatur bei den BL Ctrls. Ich habe aber 3 Stück IR2104S verwendet.

Ja dass sind wohl die Schaltverluste. Da bin ich gespannt wie es laufen wird. Sind halt schon fast doppelt so viele Schaltvorgänge. Momentan macht der Freilauf schmarrn bei mir und anstatt den motor verlustfreier laufen zu lassen bremst er diesen. Da habe ich wohl noch was falsch gemacht. ^^ Ich sage dann bescheid wenn ich mehr weiss.

AVR-Simon meinte
esden meinte
Soweit ich weiss hat der STM32 keinen verstärker verbaut. Dadurch heisst es dass man da einen opamp hinzufügen müsste. Ich habe aber dermassen schlechte erfahrungen gehabt mit verbrennenden Shunts bei BL-Ctrl dass ich auf keinen fall diesen weg gehen möchte. Bis jetzt habe ich zwei Lösungen:
*Allegro Halleffect Stromsensor
*Melexis Halleffect Stromsensor (Danke MarkusBec)
Momentan habe ich die Allegro Lösung in den Schaltplan eingezeichnet. Beide können von -30A bis +30A messen. Und die 2Eur pro Regler sind die mir schon wert. Man kann beide Lösungen mit intelligentem Platinendesign auch im Messbereich erweitern. Der Melexis hat den Vorteil dass er keinen physischen Kontakt zum gemessenen Strom hat.

Ja gut. Ohne Verstärker kannst du den Shunt eben nur noch so wirklich als Überstromerkennung benutzen. Zumindest bei den von dir vorgesehenen Strömen.
Bezüglich Abbrennen des Shunts: Alles eine Sache der Auslegung. Ich habe bei meiner Entwicklung auch einen Platinenshunt verwendet (etwa 10mOhm). Allerdings mit einer Gesamtoberfläche von 114mm² (etwa 57mm lang und 2mm breit). Der schlängelt sich so um die drei FETs drumherum.
Damit bekomme ich eine Leistungsverteilung von 8,6mW/mm² bei 10A Stromfluss. Und wie zu erwarten war erwärmt sich der Shunt nicht merkbar, da die Oberfläche groß genug ist.
Von Shunts in Widerstandsform würde ich (gerade bei 30A) abraten. Die Dinger haben ja noch eine kleinere Oberfläche als der Shunt der BL-Ctrl beispielsweise. Die brennen dir quasi sofort weg (zumindest ohne aktive Kühlung).

Jo genau... :D

AVR-Simon meinte
Ich persönlich finde diese Hallsensoren eigentlich ziemlich genial. Wie du schon sagst, man kann den Strom berührungslos messen, was sicher auch Vorteile hat. Vor allem kann man bei dem entsprechenden Hall Sensor dann den Stromwert direkt über eine digitale Schnittstelle auslesen :D
Nochmal überlegt: Bei 30A ist das wohl der beste Weg. Und wenns wirklich nur 2€ pro Controller sind, ist es doch sehr gut.
Wenigstens mal jemand der was innovatives einbringt :D

Hoffentlich eine gute Innovation. ^^

AVR-Simon meinte
esden meinte
Also nicht im laufenden betrieb umschalten. Es wird schon beim kompilieren der Firmware eine Art ausgewählt. So kann man leichter rumexperimentieren, und ja es ist eine reine Software Sache.

Hab gestern noch die Seite zu den PWM Schemes gefunden und muss irgendwie sagen, dass ich teilweise nicht so ganz verstehe, wo die Zweckmäßigkeit liegt. Warum sollte man denn den Motor teilweise mit PWM fahren und teilweise an lassen (wenn ich das richtig verstanden habe)?
Aber gut, du sagst es, bisschen Softwarespielerei muss ja auch sein :D

Puhh dass ist eine längere Geschichte. Ich werde wohl dazu mal einen Blog Eintrag schreiben müssen. Um es kurz zu fassen kann man dadurch noch weiter optimieren und weniger Ströme haben welche über die Freilaufdioden abfliessen. Dieses ist besser bei dem PWM_ON und ON_PWM schema und am besten bei PWM_ON_PWM. Da habe ich paar Veröffentlichungen zum Thema gefunden. Ich versuche mal die links zusammenzutragen und dann poste ich diese.

AVR-Simon meinte
Danke für den Schaltplan, ich werd mal drüberschauen.

Bitte bitte ... ist ja alles Open Source. Ist ja selbstverständlich dass der Schaltplan dann für alle einsehbar ist. ^^

Quax meinte
AVR-Simon meinte
....
esden meinte
Aktiver Freilauf ist praktisch schon da. Wird von der STM32 Hardware mehr oder weniger frei Haus geliefert. Habe leider noch irgendwie komisches verhalten. Habe nicht die Zeit gehabt mich da tiefer einzudenken warum es noch nicht geht.
....

Ah, stimmt. Aktiven Freilauf habe ich bei meiner Entwicklung auch eingebaut. Damit werden die FETs wirklich kaum noch merkbar warm (bei CF2822 Motorisierung). Im Vergleich dazu die hohe Temperatur bei den BL Ctrls. Ich habe aber 3 Stück IR2104S verwendet.
....


Wenn du den aktiven Freilauf schon fertig hast, würde mich mal interessieren, ob du deine Erfahrungen mit uns teilen möchtest. Ein paar "Problemchen" gibt es ja schließlich doch, z.B. dass das BEMF Signal in den Power-Off Phasen deutlich kleiner wird.

Wär ja schön, wenn nicht jeder für sich das Rad neu erfinden müsste. ;)


Du meinst wohl die Entwicklung von AVR-Simon. In meinem fall ist es ja klar dass du zu allem Einsicht bekommst, sobald ich es selber habe. Ich hoffe dadurch dass ich keinen virtuellen Kreuzpunkt verwende und die Spannungen zu sehr genauen Zeitpunkten mit dem ADC sample und deshalb keinen Tiefpass brauche ein nutzbares Signal zu bekommen ohne Verstärkerschaltungen oder ähnliches verwenden zu müssen. ^^ Hier auch mehr dazu sobald ich es habe.

Cheers Esden
Mitglied
Registriert seit: Jan 2008
Beiträge: 253
Quax meinte
Wenn du den aktiven Freilauf schon fertig hast, würde mich mal interessieren, ob du deine Erfahrungen mit uns teilen möchtest. Ein paar "Problemchen" gibt es ja schließlich doch, z.B. dass das BEMF Signal in den Power-Off Phasen deutlich kleiner wird.


Hi Quax,

Vorneweg: Ich benutze die RC-Tiefpass Methode wie beim BL-Ctrl. Hierbei ergibt sich aber keine Änderung in Schaltung oder Software. Alles funktioniert wie vorher.

Außerdem: Warum sollte das BEMF Signal in den Power-Off deutlich kleiner werden? Bzw: Warum sollte es wesentlich kleiner werden als beim passiven Freilauf?
Beim aktiven Freilauf wird doch einfach nur die Freilaufdiode gebrückt. Das heißt, das BEMF Signal ist im Nulldurchgang statt U_Drop (von der Diode) 0V.

Ferner: Soweit ich weiß benutzt du ja das BEMF Auswerteverfahren, das ohne RC Filter auskommt. Dazu kannst du hier in dem Papier auch noch mehr lesen:
http://scholar.lib.vt.edu/theses/available/etd-09152003-171904/unrestricted/T.pdf
Da wird auch aktiver Freilauf zusammen mit dieser Methode benutzt.

Esden will das ja auch so machen (wenn ich das richtig verstanden hab), also dürften da mehr nutzbare Informationen für dich anfallen als bei meinem Projekt :D
Mitglied
Registriert seit: Jul 2007
Beiträge: 24
AVR-Simon meinte
Ferner: Soweit ich weiß benutzt du ja das BEMF Auswerteverfahren, das ohne RC Filter auskommt. Dazu kannst du hier in dem Papier auch noch mehr lesen:
http://scholar.lib.vt.edu/theses/available/etd-09152003-171904/unrestricted/T.pdf
Da wird auch aktiver Freilauf zusammen mit dieser Methode benutzt.

Esden will das ja auch so machen (wenn ich das richtig verstanden hab), also dürften da mehr nutzbare Informationen für dich anfallen als bei meinem Projekt :D


Ganz genau diese Methode benutze ich. Ich habe mir nur den Komparator und den Latch gespart. Ich lasse mir den ADC vom PWM Triggern. Wie man in dem Video sieht funktioniert es. ^^

Noch als Randnotiz: Ich konditionier dass Signal noch mit einem Spannungsteiler und cutoffdioden auf die 3V3 welche der ADC verträgt.

Cheers Esden
Mitglied
Registriert seit: Jun 2007
Beiträge: 368
esden meinte
....
Ganz genau diese Methode benutze ich. Ich habe mir nur den Komparator und den Latch gespart. Ich lasse mir den ADC vom PWM Triggern. Wie man in dem Video sieht funktioniert es. ^^
....


"T.pdf empfehle ich auch immer gern weiter, ist wirklich klasse beschrieben :)
Versuche habe ich auch schon mit aktivem Freilauf gemacht, aber noch kein zufriedenstellendes Ergebnis bei hohen Drehzahlen erreicht.

Allerdings ist die Methode nur einmal pro PWM den BEMF Status zu holen nicht genau genug bei unseren BL-Motoren. Bei 10kHz PWM schafft man noch 10 Scans bei 1ms/Kommutierung. Das sind 6ms/elektrische UPS oder 10.000 elektrische UPM. Ein 9N12P hat 6 Kommutierungen/Achsenumdrehung macht also 10 Scans bei 1666 UPM[Achse] . Das ist nicht sehr genau und 1666 UPM ist nicht sehr viel. Bei 16.666 UPM[Achse] wäre es nur noch ein Scan/Kommutierung - da geht gar nichts mehr.

Daher muss die BEMF Analyse ständig erfolgen. Sowohl bei PWM-high und bei PWM-low und auch während der vollständigen High- oder Low-Zeiten. Während der PWM-Off Zeit ist die Spannungsdifferenz zwischen den getriebenen Phasen lediglich [2 x (Strom x RDSon)] statt [0.7V+(Strom x RDS-on)] und daher werden die Auswertbaren Pegel auch geringer.

Das Dokument beschreibt eine Industrieanwendung. Die ist nicht 1:1 auf unsere BL-Motore übertragbar. Der wichtigste Unterschied ist, dass wir u.U. nur sehr wenig PWM-Pulse pro Kommutierung haben und daher eine einzige BEMF-Auswertung pro PWM-Periode zu ungenau ist.

tschüss
Bernhard
Mitglied
Registriert seit: Apr 2007
Beiträge: 1091
Quax meinte
Das Dokument beschreibt eine Industrieanwendung. Die ist nicht 1:1 auf unsere BL-Motore übertragbar. Der wichtigste Unterschied ist, dass wir u.U. nur sehr wenig PWM-Pulse pro Kommutierung haben und daher eine einzige BEMF-Auswertung pro PWM-Periode zu ungenau ist.

Damit's ihr nicht soviel Zeit verliert: Das kann ich bestätigen. Die ersten Softwareversionen des X-BL Controllers haben auch per A/D-Wandler gearbeitet. Es reicht zwar grade noch so für unsere Motoren der normalen Größe, wird aber bei (elektrisch) schneller drehenden Motoren zu wenig. Ausserdem hat sich die Kommutierung mit virtuellem Sternpunkt als robuster erwiesen. Es funktionieren mehr Motoren auf Anhieb ohne was einzustellen. Die Hardware des X-BL kann übrigens beides.
Mitglied
Registriert seit: Jan 2008
Beiträge: 253
Interessant Quax, so habe ich das noch gar nicht gesehen. Mein erster Tipp wäre die PWM Frequenz zu erhöhen. Aber wenns bei 16kUPM nur noch 1 Scan/Kommutierung sind, sinds bei der doppelten PWM Frequenz ja auch gerade mal nur zwei Scans. Wie hoch ist denn die PWM Frequenz in deiner Anwendung? Bis 64kHz hab ich mit einem ATxmega bei 32MHz geschafft (und 9 Bit PWM Auflösung). Die Treiber sind dann aber auch schon am Limit möchte ich behaupten. Alleine durch die hardwired Cross conduction protection. (paar hunder Nanosekunden).

Wie auch immer, ich bin gespannt wie ihr das Problem lösen werdet. :-) Mir gehen die Brushless Motoren, bzw. deren Ansteuerung nach nen paar Monaten rumgewerkel ziemlich aufn Sack ;)
Mitglied
Registriert seit: Mar 2007
Beiträge: 4485
Ort: MVP
AVR-Simon meinte
... Bis 64kHz hab ich mit einem ATxmega bei 32MHz geschafft (und 9 Bit PWM Auflösung). ...


da frage ich mich nur, was meint dann das blechpaket eines motors dazu, und was sagen die schaltverluste ???

;)
« Bearbeitet von JUERGEN_ am 11.05.2009 20:57. »
Mitglied
Registriert seit: Jun 2007
Beiträge: 368
Bei rcgroups gab es mal jemanden, der ein FPGA mit ins Design aufgenommen hatte und sogar 1MHz PWM konnte, ein schöne HF-Dreckschleuder.

Also normalerweise nehme ich 10kHz. Hat sich prima bewährt. Wenn das PWM-Piepsen nervt, geht auch 16kHz, das verscheucht dann Hunde, Katzen und Mäuse und bringt sie damit gleichzeitig in Sicherheit ;)

Beim Floh, den 1 Lipo-BLC für die 4#3 Walkera Helis habe ich dann 20kHz genommen. Die hatten so wenig Induktivität, diese lütten Motore, dass selbst 16kHz etwas knapp war und außerdem haben die noch bei 16kHz laut gefiepst.

Man muss das also auch an die Anwendung anpassen. Es gilt: so klein wie möglich. Eine zu hohe PWM-Frequenz kostet nur Energie und bringt keinen Vorteil mehr. Ein Parade-Pferd von BLC würde ich daher von 8kHz bis 32kHz etwa einstellbar machen. Damit sollten die allermeisten Anforderungen erfüllbar sein.

Ähnliches gilt auch für die maximale elektrische RPM. Wenn nicht gerade Extrem-Wettbewerbe anstehen, halte ich 200.000 elektrische RPM für ausreichend. Darüber hinaus gibt's wieder ordentliche Eisen-, Schalt- und sonstige Verluste.

Ich bitte zu beachten, dass dies die Ergebnisse meiner persönlichen Erfahrungen sind, nicht etwa ein gesichertes Regelwerk. Das sind daher maximal Anhaltspunkte zum "Weiterforschen" :)
Mitglied
Registriert seit: Jul 2007
Beiträge: 24
Soo hallo Leute,

Dass ist ein sehr guter Einwand. Ich kriege momentan nur 3000RPM (Achse) zuverlässig hin. Bei mir ist dass PWM 36kHz. Ich kann mit dem STM irgendwo in bereich von 70kHz gehen. Die Schaltverluste und kurzschluss Todzeiten sind auf jeden fall nicht von der hand zu weisen. Trotzdem möchte ich die Idee noch nicht verwerfen.

Ich habe zumindest zwei Ideen welche ich noch austesten möchte. Abhängig von der Drehzahl die PWM Frequenz erhöhen ist eins. Zweitens kann ich durch zusammenschliessen von Timern in PWM ON und PWM OFF Zeiten samplen. Auf diese weise verdoppelt man die menge der Samples. Natürlich muss man noch irgendwie aus den zwei unterschiedlichen Werten welche man kriegt schlau werden. Mal sehen ob es hilft.

Ich denke dass rein für Quadrokopter 12000RPM (Achse) ausreichen sollten, oder? Kann jemand sagen was die höchste Drehzahl von standard Quadrokopter Motoren ist? Natürlich währe es sehr gut wenn man die Regler auch für andere Anwendungen verwenden könnte, aber dass ist zumindest für mich erstmal zweitrangig.

Wie gesagt ich will noch paar Sachen testen bevor ich die Idee verwerfe. Stay tuned. :)

Cheers Esden

P.S. Ich habe ein neues Video am Wochenende gemacht um ein bisschen die verschiedenen PWM Schemes zu dokumentieren: http://www.esden.net/blog/2009/05/11/open-bldc-pwm-schemes/
Mitglied
Registriert seit: Mar 2007
Beiträge: 4485
Ort: MVP
wenn ich richtig informiert bin, verwendet KONTRONIK in ihren BL-Reglern neuerdings moderne DSP-Prozessoren.

.

Neues Thema GESCHLOSSEN

Seite: 1 2 >

MikroKopter - Forum » BL-Ctrl » Open-BLDC next generation brushless regler