Jump to content
Intermodellbau 2024: Wir sind in Halle 3 dabei - schaut mal rein ×
Schiffsmodell.net

Selbstbauregler für BLDC/PMSM


hoppppla

Recommended Posts

Hallo Matthias,

Ich betreibe den Motor mit einem (selbstgebauten) Regler mit Sinusströmen. Bei 13,2 V Batteriespannung ist da prinzipbedingt die Motorspannung effektiv nur etwa 9 V. Eine (theoretische) Leerlaufdrehzahl von 16000 1/min halte ich noch für halbwegs akzeptabel.

 

Dieser Regler wäre irgendwann mal ein Thema für sich, aber da müssen erstmal noch diverse "Macken" raus...

Matthias

bin grad erst drüber gestolpert, würde mich aber brennend interessieren darüber noch mehr zu erfahren, da ich bald an nem ähnlichen Projekt sitzen werde.

Insofern auch gerne mit Macken, daraus lernt man, finde ich, fast am meisten :)

 

viele Grüße,

Hermann

Link to comment

Hallo Hermann,

Hallo Matthias,

 

bin grad erst drüber gestolpert, würde mich aber brennend interessieren darüber noch mehr zu erfahren, da ich bald an nem ähnlichen Projekt sitzen werde.

Insofern auch gerne mit Macken, daraus lernt man, finde ich, fast am meisten :)

 

viele Grüße,

Hermann

 

eigentlich berichte ich ja lieber über Dinge, die schon richtig funktionieren...;)

 

Aber, nun gut, eine kurze Zusammenfassung des jetzigen Stands:

 

  • Leistungsstufe mit 6x IRF1404
  • Halbbrückentreiber: IR2181
  • Strommessung (in 2 Phasen): Allegro ACS710
  • µC: ATXmega32A4

Der erste Testaufbau, mit dem ich bislang probegefahren bin, hat noch einen AT90PWM3B statt des Xmega. Auch sieht dieser Aufbau etwas abenteuerlich aus, da er ursprünglich mal für etwas anderes (mit weniger Strom) vorgesehen war und ich daher die Leiterbahnen mit aufgelöteten Kupferdrähten verstärken mußte.

Inzwischen sind ordentliche Platinen für Leistungsteil und Controllerboard entstanden. Vor kurzem habe ich die Software auf den Xmega portiert. Da ist doch einiges anders als bei den älteren AVRs...

 

Was schon geht:

 

  • Auswertung des RC-(Servo-)Signals
  • Anlauf im Blockbetrieb
  • Synchronisation mit den Sensorsignalen
  • Sinus-PWM (Raumzeigermodulation), inspiriert durch Atmel Appnote AVR435
  • ganz neu: Messung der Phasenströme

(Bis auf die Strommessung ging das soweit auch schon mit dem Testaufbau)

 

Was noch nicht geht:

 

  • Regelung der Phasenlage der Ausgangsströme in Bezug auf die Rotorlage
  • Drehzahlregelung (ich würde gerne das Aufjaulen des Motors, wenn der Jet mal Luft zieht, vermeiden)
  • Schutz: Leistungsreduzierung bei Batterie-Unterspannung, Übertemperatur,...

Zur Zeit läuft das ganze mit 15,6 kHz Abtastrate (und auch PWM-Schaltfrequenz). Das wird aber so langsam eng, selbst bei 32 MHz Prozessortakt. Mal sehen, ob man da noch etwas mit ein paar Inline-Assembler-Schnippseln optimieren kann, oder ob ich die Abtastrate für den Regler doch reduzieren muß.

 

Grüße

 

Matthias

Link to comment

Hallo Matthias,

 

vielen Dank für die Zusammenfassung. Zum Thema Raumzeigermodulation ist das glaub der erste Eigenbauregler der mir über den Weg läuft :) Machst Du sowas auch beruflich?

Leistungsstufe mit 6x IRF1404

Halbbrückentreiber: IR2181

Strommessung (in 2 Phasen): Allegro ACS710

µC: ATXmega32A4

Bei diesen ganzen IRF-Halbbrückentreibern blick ich inzwischen nimmer so ganz durch.. gibts da irgendwo ne Übersicht über die Features der einzelnen Typen?

Bzw. wie kamst Du auf die IR2181?

Um die XMegas hab ich bis jetzt einen Bogen gemacht.

Irgendwie werd ich dann vermutlich doch eher direkt auf 32Bit umsteigen, im Moment liebäugel ich mit dem STM32 von ST. Da sollte dann das Thema Rechenleistung vom Tisch sein :)

Wie gut funktioniert denn das Messen der Phasenströme? Bei den Allegrosensoren hatte ich bis jetzt immer ein bisschen Probleme mit dem Offset...

Hast Du eigentlich eine galvanische Trennung zwischen Controller und Leistungsteil?

Sorry, wenn das jetzt etwas vom Boot selber abdriftet, falls Du magst, würde ich mich auch über einen Baubericht für den Regler freuen :)

 

viele Grüße,

Hermann

Link to comment

Hallo Hermann,

Hallo Matthias,

 

vielen Dank für die Zusammenfassung. Zum Thema Raumzeigermodulation ist das glaub der erste Eigenbauregler der mir über den Weg läuft :) Machst Du sowas auch beruflich?

So was ähnliches...

Bei diesen ganzen IRF-Halbbrückentreibern blick ich inzwischen nimmer so ganz durch.. gibts da irgendwo ne Übersicht über die Features der einzelnen Typen?

Bzw. wie kamst Du auf die IR2181?

Mit der "parametrischen Suche"...

Ich habe einen Typ gesucht mit hohem Treiberstrom und gleichzeitig platzsparendem Gehäuse (SO-8). Bei dem Gehäuse führt die parametrische Suche übrigens in die Irre :(: Mit "8-Lead SOIC" gibt es nur zwei Treffer. Tatsächlich gibt es wohl alle (26) Achtbeiner auch als SO...

Dann habe ich wohl oder übel Datenblätter verglichen - und so nebenbei einen Blick darauf geworfen, welche Typen denn auch einfach beschaffbar sind. Damit fiel die Wahl dann auf die IR218x-Reihe. Die eingebaute Totzeit beim IR2183/4 war mir etwas zu lang, darum habe ich die Variante ohne Verriegelung/Totzeit (IR2181) ausgewählt. Die Totzeit wird von der PWM-Einheit des XMega in Hardware erzeugt (wenn sie denn einmal richtig programmiert ist), das scheint mir sicher genug.

Um die XMegas hab ich bis jetzt einen Bogen gemacht.

Ich bislang auch, dies ist der erste Versuch. Die XMegas haben für AVR-Verhältnisse (bei manchen anderen ist sowas ja leider normal...) eine ziemlich lange Errata-Liste, und sie sind auch beim Programmieren etwas zickig (ich habe - neben einem einfachen Parallelport-Programmer einen Dragon. Mit dem Dragon kann man nur die A4-Reihe per PDI programmieren, bei den A1/A3 funktioniert PDI nicht, nur JTAG, usw. usw...)

Andererseits hat mich der schnelle ADC gereizt, und die gegenüber bisherigen AVRs wesentlich flexiblere Pinbelegung. Bei dem zuerst verwendeten AT90PWM3 blockiert man sich eine ganze Menge andere Funktionen, wenn man die PWM-Einheit komplett nutzt.

Irgendwie werd ich dann vermutlich doch eher direkt auf 32Bit umsteigen, im Moment liebäugel ich mit dem STM32 von ST. Da sollte dann das Thema Rechenleistung vom Tisch sein :)

Wäre möglicherweise für mein Vorhaben auch sinnvoll gewesen.

Allerdings betrachte ich es jetzt, nachdem ich nunmal damit angefangen habe, auch irgendwie als eine sportliche Herausforderung ;), den Regler mit einem "gewöhnlichen 8-Bitter" zu realisieren. Ich hatte von der feldorientierten Regelung auf einem XC878 gelesen. Das ist ja ebenfalls ein 8-Bitter, allerdings mit einer speziellen Hardware-CORDIC-Einheit für die Vektortransformationen. Es reizte mich, so etwas (mit einer etwas einfacher gestrickten Regelung) auf einem Prozessor ohne solche Zusatzhardware umzusetzen. Und der CPU-Kern des XMega ist dann doch etwas leistungsfähiger als dieser 8051-Nachkomme, also könnte das Vorhaben klappen...

 

Die Prozessorauslastung ist übrigens nur noch ungefähr halb so groß, seit ich den Compiler nicht mehr auf minimale Größe, sondern auf Geschwindigkeit optimieren lasse...

Irgendwie war da die Standardeinstellung -Os stehengeblieben. :pfeif.:

Das ist hier natürlich alles andere als sinnvoll.

Wie gut funktioniert denn das Messen der Phasenströme? Bei den Allegrosensoren hatte ich bis jetzt immer ein bisschen Probleme mit dem Offset...

Bislang sieht's ganz gut aus. Die ACS710 haben einen extra Ausgang für den Vcc/2-Offset; ich messe mit einem Differenzeingang am ADC. Übrigens sollen die ACS709/710 wesentlich weniger als die älteren Typen rauschen.

Hast Du eigentlich eine galvanische Trennung zwischen Controller und Leistungsteil?

Nein, aber der PPM-Eingang vom Empfänger ist galvanisch getrennt.

Sorry, wenn das jetzt etwas vom Boot selber abdriftet,....

Ich habe damit keine Probleme. Wenn sich jemand beschweren sollte, können wir ja in ein anderes Unterforum umziehen (nur welches? Es gibt ja noch "Modellwerft/Fernsteuertechnik/Servos und Fahrtregler"- ich weiß nicht, ob solche Komplett-Selbstbau-Elektronik da reinpaßt?

 

Grüße

 

Matthias

Link to comment

Hallo,

 

@Matthias

Bislang sieht's ganz gut aus. Die ACS710 haben einen extra Ausgang für den Vcc/2-Offset; ich messe mit einem Differenzeingang am ADC. Übrigens sollen die ACS709/710 wesentlich weniger als die älteren Typen rauschen.

Ah, ok, mit nem Differenzausgang ist das natürlich besser. Ich kenne das Problem beim ACS712, das der Wert für 0 Strom etwas schwankte, bzw mit etwas Hysterese behaftet ist..

Für das nächste Projekt werd ich wohl auch die 712er nehmen.

 

Nein, aber der PPM-Eingang vom Empfänger ist galvanisch getrennt.

hm, ok, und der Xmega hat damit keine Probleme? Wieviel Strom geht den da über die Platine?

Ein Kollege hatte da mal ziemliche Probleme damit, seit dem bau ich da eigentlich grundsätzlich ne Trennung ein.

 

@Klaus

Vergess die IR-Treiber, die haben üble Macken, Schau Dir mal den LM5101 an.

hm, Not recommended for new designs. Was mich aber mehr interessieren würde: Von was für Macken sprichst Du konkret? Mit dieser Pauschalaussage kann ich leider nicht sehr viel anfangen.

 

viele Grüße,

Hermann

Link to comment

Hallo,

1.wenn Unterschwinger den "Highside"-Teil unter das Potential des Low-side-Teils bringt, das Latched der Treiber.

2. Bei sehr kurzen Einschaltimpulsen kann es vorkommen, das der Einschaltimpuls übertragen wird und der Ausschaltimpuls zum oberen Treiber verschluckt wird.

 

Da diese Treiber für 600V vorgesehen sind werden nur Flanken übertragen und kein Dauersignal.

Selber verwende ich nur noch für kleine Aufbauten (SMD) Halbbrückentreiber (LM5101), für etwas größeres würde ich oberen und unteren Treiber trennen. Für die oberen tendiere ich zu den SI8220 von SiliconLabs und für die unteren Treiber zum TC4426 o.ä. von Microchip.

 

Gruß Klaus

 

P.S.

Ich bin Leistungselektronikentwickler in der industriellen Antriebstechnik und dort normal im Leistungsbereich 1kW-500kW aktiv

Link to comment

Noch einen Nachtrag:

Die 9V aus 13,2V bekommt man aber nur raus, wenn man einen entsprechendes Nullsystem dreifacher Frequenz einrechnet.

Um ein Maschinenmodel mitlaufen zu lassen kann man einen "8-biter" vergessen.

Den STM32 gibt es in einem schönen kleinen QFN Gehäuse oder man rüstet gleich mit einem TI-Concerto auf.

Gruß Klaus

Soll der Motor stromgespeißt angefahren werden und dann auf ein spannungsgespeistes Regelverfahren umgestellt werden?

Link to comment

Zum dritten:

Der kleinst denkbare Umrichter für 4sLiIon 16V/10A wird die Größe von 15mm x 15mm haben. Die notwendigen Bauteile sind aber erst nur angekündigt.

Der Treiber würde der MCP14700 von Microchip sein.

Selbst entwickelte Umrichter lassen sich IMMER für beide Drehrichtungen programmieren.

 

Gruß Klaus

Link to comment

Hallo,

muß ergänzen:

Ein kleiner TI concerto kommt erst später auf den Markt. Im Augenblick ist der TMS320F28035RSH der sinnvollste uC für diese Anwendung.

Für die unteren Schalter ist der FAN3100 als Treiber noch besser als der TC4426.

Gruß Klaus

Link to comment

Hallo!

 

  • IR-Halbbrückentreiber: Die prinzipbedingten Eigenarten / "Macken" sind mir bekannt, ich halte sie aber für durchaus beherrschbar. Trotzdem vielen Dank für den Tipp mit dem LM5101 - das wäre für zukünftige Projekte eine interessante Alternative (@Hermann: "Not recommended for new designs" bezieht sich wohl nur auf die Variante "ohne Buchstaben", bei "-A", "-B", "-C" steht nichts in der Art.
  • AVR (Xmega) vs. ARM: ARM wären für mich komplett neu gewesen, der Xmega ist relativ ähnlich zu "normalen" AVRs. Wenn man sich sowieso in eine neue Prozessorarchitektur, andere Tools usw. einarbeiten möchte oder schon mit ARMs gearbeitet hat, kann die Entscheidung ganz anders aussehen. Ebenso, wenn man die Regler in Großserie herstellen möchte, und ein kleiner ARM billiger sein sollte als ein XMega...
  • Nullsystem dreifacher Grundfrequenz: Bei den gängigen Algorithmen zur Raumzeigermodulation ergibt sich das automatisch (keine reine 3. Harmonische, sondern in der Regel eine Dreieckfunktion mit dreifacher Grundfrequenz - das Ergebnis ist aber das gleiche: Der Modulationsgrad kann ohne Übersteuerung bis 1,15 erhöht werden)
  • Regelung: Z. Zt. noch ein etwas eigenwilliger Mischmasch: Der Ausgangsspannungsbetrag wird nur gestellt, die D-Komponente des Stroms auf Null geregelt. Drehzahlregler mit unterlagertem Q-Stromregler ist in Planung. Dafür brauche ich kein Maschinenmodell, nur eine Schätzung der Rotorlage (abgeleitet aus den Sensorsignalen)
  • (Keine) galvanische Trennung: Der Controller sitzt auf einer extra Platine, alle Verbindungen gehen räumlich dicht zusammen über einen Stecker. Über die Controllerplatine geht also praktisch gar kein Strom.
  • Der Zweiplatinenaufbau ermöglicht es, die Controllerplatine mit unterschiedlichen (für verschieden große Ströme) Leistungsteilen zu kombinieren. Oder doch noch auf einen anderen Controller (einen ARM? ;) - irgendwann kommt das bestimmt) umzusteigen
  • Abmessungen: 72x56x25
    Gewicht: 56 g (+ ggfs. Kühlkörper)
    "Besonders klein" oder "besonders leicht" waren nicht die primären Designziele...
  • Um Fragen in der Richtung vorzugreifen: Der Regler (nur das Material) ist deutlich teurer als ein in Serie hergestellter, käuflicher Regler. Er ist nur für Motoren mit Sensoren und mit (zumindestens näherungsweise) sinusförmiger induzierter Spannung geeignet. Und es gibt keine Programmierung von Null- und Endlage wie bei üblichen käuflichen Reglern. Die Werte (passend für meine Fernsteuerung), ebenso die Reglerparameter sind hart einprogrammiert.

Grüße

 

Matthias

Link to comment
  • 3 weeks later...
  • 1 month later...

Hallo Matthias,

 

sorry für die lange Pause, hatte das hier aus den Augen verloren...

Die Bilder sind hübsch, die Platinen sehen eher nach Industrieprodukt als nach Bastelprojekt aus :) Wo bekommt man diese Akkustecker als Printversion her?

Im Modellbaubereich hab ich bis jetzt nur MPX-Stecker verwendet, die kann man wenigstens auch direkt auf die Platine löten..

 

Demnächst werd ich vermutlich eine Diplomarbeit zum Thema Raumzeigermodulation an nem BLDC schreiben, insofern darf ich mich dann auch mit Praxis und Theorie beschäftigen...

Gerade bin ich noch am zusammensuchen von Literatur, hast Du da vl. Empfehlungen? Bis jetzt hab ich das Handbuch Elektrische Kleinantriebe gefunden, das sieht auf den ersten Blick ganz interessant aus.

Was als Prozessor verwendet wird, ist noch nicht ganz raus, mein Betreuer versucht noch immer, mir ein FPGA aufs Auge zu drücken...

Als Halbbrückentreiber hatte ich den LT1158 ins Auge gefaßt, der hätte den Vorteil, einen Überstromschutz gleich mitzubringen.

Mal sehen, was sich da so ergibt :)

 

viele Grüße,

Hermann

Link to comment

Moin Hermann,

Hallo Matthias,

 

sorry für die lange Pause, hatte das hier aus den Augen verloren...

Die Bilder sind hübsch, die Platinen sehen eher nach Industrieprodukt als nach Bastelprojekt aus :) Wo bekommt man diese Akkustecker als Printversion her?

 

Die Platinen habe ich fertigen lassen (ohne "richtige" Durchkontaktierungen wäre das niemals so kompakt geworden...). Bestückt/gelötet habe ich sie allerdings selbst. Das ist bei dem Leistungsteil mit 70µm Kupfer und vielen Thermal-Vias kein Spaß, geht aber.

 

Die Stecker sind AMP "Universal Mate-n-lock", die Printversion gibt's z.B. bei RS und bei Farnell. Über http://www.hbe-shop.de/ kann man auch als Privatkunde Teile aus dem Sortiment von Farnell kaufen. Du kannst als Student allerdings auch direkt bei Farnell bestellen (wenn sich da nicht inzwischen etwas geändert hat).

 

Ein Grund, warum ich diese Stecker verwendet habe, war eine Original-AMP-Crimpzange in Ausleih-Reichweite ;)

 

Im Modellbaubereich hab ich bis jetzt nur MPX-Stecker verwendet, die kann man wenigstens auch direkt auf die Platine löten..

 

Demnächst werd ich vermutlich eine Diplomarbeit zum Thema Raumzeigermodulation an nem BLDC schreiben, insofern darf ich mich dann auch mit Praxis und Theorie beschäftigen...

Gerade bin ich noch am zusammensuchen von Literatur, hast Du da vl. Empfehlungen? Bis jetzt hab ich das Handbuch Elektrische Kleinantriebe gefunden, das sieht auf den ersten Blick ganz interessant aus.

Nicht speziell BLDC/PMSM, aber allgemein zum Thema Modulationsverfahren: Jenni/Wüest: Steuerverfahren für selbstgeführte Stromrichter. Man kann das Buch dort inzwischen als PDF herunterladen; eine gedruckte Ausgabe sollte in einer gut sortierten Unibibliothek vorhanden sein.

Ansonsten gibt es von mehreren µC-Herstellern (Freescale, Microchip,...) ganz interessante Application Notes zu dem Thema, ich nehme an, die kennst Du schon?

 

Viele Grüße

 

Matthias

Link to comment

Hallo Matthias,

Die Stecker sind AMP "Universal Mate-n-lock", die Printversion gibt's z.B. bei RS und bei Farnell. Über http://www.hbe-shop.de/ kann man auch als Privatkunde Teile aus dem Sortiment von Farnell kaufen. Du kannst als Student allerdings auch direkt bei Farnell bestellen (wenn sich da nicht inzwischen etwas geändert hat).

Die Studentenoption bei Farnell gibts praktischerweise immer noch. Für die Diplomarbeit läuft das aber eh übers Institut, da kann ich mich also austoben..

Die Stecker hab ich jetzt allerdings auf die Schnelle nicht gefunden, die Suche spuckt nur "Micro Mate-n-lock" Verbinder aus :( Aber vermutlich wäre die passende Krimpzange eh jenseits meines Bugets... :)

Ein Grund, warum ich diese Stecker verwendet habe, war eine Original-AMP-Crimpzange in Ausleih-Reichweite

Ja, wenn ich die Preise für die Zangen seh, weis ich auch, warum das ein Grund ist ;)

Nicht speziell BLDC/PMSM, aber allgemein zum Thema Modulationsverfahren: Jenni/Wüest: Steuerverfahren für selbstgeführte Stromrichter. Man kann das Buch dort inzwischen als PDF herunterladen; eine gedruckte Ausgabe sollte in einer gut sortierten Unibibliothek vorhanden sein.

danke, das sieht auf den ersten Blick recht interessant aus, unsere Bib hats leider nur als Präsensexemplar... na ja, dann werd ich mal PDF lesen.

Ansonsten gibt es von mehreren µC-Herstellern (Freescale, Microchip,...) ganz interessante Application Notes zu dem Thema, ich nehme an, die kennst Du schon?

jup, durch die les ich mich grad durch. Teilweise sind die richtig gut.

Als erstes liegt wohl die Entscheidung für eine MC-Architektur an...

 

viele Grüße,

Hermann

Link to comment
  • 6 months later...

Hallo,

 

so, inzwischen bin ich ein ganzes Stück weiter.

MC ist jetzt ein ARM, Cortex M3 von Toshiba (TMPM374) mit eingebauter Vector-Controll-Unit in Hardware. Sehr schönes Spielzeug :)

Toshiba liefert dazu auch eine gute Beispielsoftware, durch die ich gerade ackere..

 

Die Endstufe ist inzwischen auch fertig, zum Einsatz gekommen sind nun Halbbrückentreiber von Linear (LTC4444), die Fets sind von NXP (PSMN4R0).

Die ersten Tests stehen jetzt dann an, ich bin mal gespannt, ob das nun alles so funktioniert wie erwartet.

 

Wenn alles läuft, wird da sicher nach der Abgabe der Arbeit auch ne Modellbauvariante entstehen, im Moment ist das ganze eher ein Laboraufbau...

 

viele Grüße,

Hermann

Link to comment
Guest franzemann

So ein Selbstbauregler würde mich auch intressieren, ich bräuchte zwei stück die ich mit mindest 24V betreiben kann.

 

Wo kann man die den beziehen bzw. wer baut mir sowas zusammen und was soll es kosten????

 

Ich hoffe ich bekomme hier hilfe.

Link to comment

Hallo,

 

das hier ist sicher bis jetzt kein Projekt zum einfach so nachbauen.

Wenn Du wirklich Sinusansteuerung Deiner Motoren benötigst, ist vl. der

sinusleistungssteller was für Dich.

Ansonsten gibt es einige Selbstbauprojekte für einfachere BLDC-Regler, in Zweifel einfach mal die Suchmaschine Deiner Wahl anwerfen.

 

viele Grüße,

Hermann

Link to comment
MatthiasR

Hallo,

 

Hermann hat's im Prinzip schon gesagt: Dieser Thread hier ist mehr eine Fachsimpelei von Leuten, die so einen Regler selber entwickeln wollen (und können).

Das, was ich da gebaut habe, ist für den Eigenbedarf OK, aber absolut nicht nachbautauglich.

 

@ Hermann: Interessanter Link. Es macht den Eindruck, daß die da wissen, was sie tun ;)

 

Grüße

 

Matthias

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.