Forum: Mikrocontroller und Digitale Elektronik BLDC-Regler mit PIC32


von Thomas H. (beon)


Angehängte Dateien:

Lesenswert?

Hi,

mein erster Beitrag und gleich ein größeres Problem =D

Ich arbeite im Moment an meiner Studienarbeit; es soll ein BLDC-Regler 
werden und einen Graupner Compact 465Z antreiben.

Dieser dreht sich auch schon, nur leider werden nach kurzer Zeit die 
MOSFETs heiß. Auch das Oszillogramm sieht nicht ganz so wünschenswert 
aus.

Als µP kommt ein PIC32 zum Einsatz.

Auf dem Oszi-Bild sind die oberen 3 Graphen die Oszillogramme der 
Phasen, die unteren 3 sind die HW-Interruptsignale, die der PIC von der 
BEMF-Schaltung über einen nachgeschalteten Komparator bekommt.

Liegt der Fehler in meiner Schaltung oder, wie ich vermute, in der 
Programmierung des PIC? Hat jemand auf einem PIC32 schon einmal 
erfolgreich einen BLDC-Regler laufen lassen?

Mfg Beon

: Bearbeitet durch User
von Bernhard K. (kraftb)


Lesenswert?

Hallo,

Also ich bin jetzt kein Motorexperte. Aber wenn die MOSFETs zu heißt 
werden spricht das im Normalfall dafür, dass diese nicht schnell genug 
durchgeschalten werden.

Eine Frage noch: Hat der Motor Freilaufdioden eingebaut? Wenn das nicht 
der Fall ist könnte es sein das durch die Induktivität des Motors 
einfach eine Überspannung an den MOSFETs induziert wird und diese im 
Halbleiter überschlägt. In deinem Schaltplan sind keine Freilaufdioden 
eingezeichnet. Könnte auch die Spitzen in den oberen Graphen erklären. 
Mir haben die fehlenden Freilaufdioden für eine Transformatoransteuerung 
mal einige MOSFETs + Treiber gekostet ...


grüße,
Bernhard

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Wo und wie soll denn der Motor Freilaufdioden enthalten? Die gehören 
natürlich in die H-Brücke, und nicht in den Motor...

Jedes DSO sollte übrigens eine Speicherfunktion für den Bildschirm 
haben. Ich wette, dass das Ergebnis der Speicherung deutlich kompakter 
ist als ein Handyfoto von der Bildschirmanzeige. (Tip: Das ist ein 
dezenter Hinweis auf das Thema "Bildformate").

Mit freundlichen Grüßen
Thorsten Ostermann

von Bernhard K. (kraftb)


Lesenswert?

Wobei es sich in diesem Fall nicht um eine H-Brücke handelt. Der Motor 
hat 3 Anschlüsse und wird somit wohl eher einem Dreieck entsprechen.

von Achim (Gast)


Lesenswert?

Hat der Pic ein eingebautes Totzeit-Glied?
Wenn nicht, gibt es bei jedem Umschalten einen Kurzschluss und die 
MosFETs werden deshalb heiß.

von Bernhard K. (kraftb)


Lesenswert?

So wie ich das Datenblatt der MOSFET Treiber gelesen habe bauen die ein 
kurzes Delay zwischen dem Umschalten von Hi- auf Lo-Side ein. Das 
Problem das bei CMOS auftritt kann es also in diesem Fall nicht sein ...

von Max H. (hartl192)


Lesenswert?

Beim IR2101 lassen sich der High- und der Lowside FET eigentlich 
unabhängig voneinander schalten. Wenn du beide gleichzeitig auf '1' hast 
baust du einen schönen Kurzschluss.

: Bearbeitet durch User
von Frank K. (fchk)


Lesenswert?

Du hättest lieber VORHER hier fragen sollen.

Für solche Zwecke gibt es PICs, die genau dafür gemacht worden sind und 
die die erforderliche Hardware zum zerstörungsfreien Ansteuern der 
Halbbrücken eingebaut haben. Diese PICs erkennst Du an den Buchstaben 
"MC" in der Typenbezeichnung (MotorControl).

Schau Dir mal den dsPIC33EP128MC504 an.
http://www.microchip.com/wwwproducts/Devices.aspx?product=dsPIC33EP128MC504

Nicht umsonst steht da in der Beschreibung "PWM support for:- Inverters, 
PFC, Lighting- BLDC, PMSM, ACIM, SRM". Da sind dann auch die ganzen 
Geschichten wie programmierbare Totzeit etc pp in Hardware drin.

Microchip hat auch entsprechende Entwicklungsboards. zB:
http://ww1.microchip.com/downloads/en/DeviceDoc/DS-52080a.pdf

Danach hättest Du auch mal schauen können.
Sowie fertige Bibliotheken. Danach darfst Du selber schauen.

fchk

von Fabian F. (fabian_f55)


Lesenswert?

Frank K. schrieb:
> Du hättest lieber VORHER hier fragen sollen.
>
> Für solche Zwecke gibt es PICs, die genau dafür gemacht worden sind und
> die die erforderliche Hardware zum zerstörungsfreien Ansteuern der
> Halbbrücken eingebaut haben. Diese PICs erkennst Du an den Buchstaben
> "MC" in der Typenbezeichnung (MotorControl).

Wollte ich auch vorschlagen. Man kann sich eine Menge Arbeit sparen wenn 
man einen µC nimmt der BLDCs von Haus aus beherrscht.
Wir haben damals Wochenlang vergeblich versucht mit einem µC von 
Infinieon einen BLDC anzusteuern.
Dann haben wir die Platine in die Tonne getreten und einen Atmega32M1 
genommen. Innerhalb von 2 Tagen lief der Motor rund..

@beon
Aus der Schaltung wird so doch keiner schlau. Ohne Beschriftung der 
Verbindungen ist das nur ein wildes Gewusel von Grünen Linien.
So hab ich keinen Nerf das Gewirr bei den Logik-gattern unten in der 
Schaltung zu entschlüsseln (Die man sich übrigens auch sparen kann wenn 
man einen dedizierten µC nimmt)

von Martin G. (Firma: http://www.gyurma.de) (martin_g)


Lesenswert?

1. Alle HIN und LIN der Treiber direkt mit dem uC verbinden, und die 
Gatter eliminieren.
2. das PWM generierende Programm gescheit schreiben.

Deine Phasenspannungen zeigen eindeutig Probleme mit der Berechnung der 
PWM. Bevor man richtige Mosfets da kaputt macht, sollte man wirklich 
erst mit Oszi die HIN und LIN Ausgänge kontrollieren, ob denn nicht doch 
ein Kurzer gezogen werden könnte.

von Thomas H. (beon)


Lesenswert?

Vielen Dank erstmal für die Antworten.

Ich werde mal mit meinem Professor reden, ob die Studienarbeit mit einem 
speziellen µC noch erfüllt wäre.

Die großen Probleme traten auch erst mit dem "großen" Motor auf, für die 
ersten Versuche hatte ich einen alten Videorecordermotor, der lief ganz 
ordentlich.

@fabian_f55

Kannst du mir genauer schreiben, was da an Beschriftung hingehört? Bin 
ja noch am lernen und freue mich, wenn mir jemand sowas erklären kann.

@Thorsten Ostermann

Das DSO hat schon ein paar Jahre hinter sich, ist ein Yokogawa DL716 mit 
Diskette... habe es versucht, auf diese zu speichern, leider ohne 
wirklichen Erfolg. Das DSO speichert i-welche Projekte, ohne richtige 
Bilddateien...

Mfg Beon

von Fabian F. (fabian_f55)


Angehängte Dateien:

Lesenswert?

Bei den Layouten gibt es verschiedene Ansätze. Ich vermeide 
überkreuzende Linien weitgehend indem ich Schaltungen in 
zusammengehörige Gruppen auftrenne(s.Bilder).

Andere Möglichkeit sind "Busse", Also mehrere Linien zu einer Dicken 
Line zusammenzuführen. Das macht vor allem bei Parallelinterfaces Sinn.

Selbst wenn man die Linien nicht unterbrechen möchte, ist es trotzdem 
hilfreich den Linien Labels zu geben, damit man auf einen Blick sehen 
kann woher sie kommt, und whohin sie geht.

Ein nettes Plus ist, wenn alle Pin am µC die Sonderfunktionen zeigen. 
Dann muss man nicht jedes mal das Datenblatt rauskramen um zu schauen 
was der Pin wohl macht.

Was das Output-Format angeht:
Vernünftige PCB-Programme können verlinkte pdfs ausgeben. Wenn man Auf 
das Buslabel klickt, springt die Ansicht zum anderen Ende des Signals. 
Klick einfach mal in dem PDF im Anhang auf SCK am Programmierstecker und 
schau was passiert. Das ist immens hilfreich für Leute die sich nicht in 
deiner Schaltung auskennen.
Schaut aus als würdest du EAGLE nutzen. Keine Ahnung ob das da auch 
geht, aber versuchen kann mans ja.

von Fabian F. (fabian_f55)


Lesenswert?

Nachtrag:
Farben:
Wie man vielleicht erkennen kann, gebe ich Spannung-Rails verschiedene 
Farben (Auch im PCB). Damit man sie auf einen Blick von Logik 
unterscheiden kann.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

.. und ich wünschte, die Eagle Pläne wären nicht alle so unscharf und 
luschig. Ich jage sie deswegen durch Irfanview und reduziere sie auf 
Schwarz/Weiss, und dann wird noch einmal die Schärfe verbessert.
Zur Schaltung: 47R sind als Gatewiderstände sehr hoch. Die IRF2804 haben 
schon eine relativ grosse Gateladung (160nC) und diese muss zügig 
geladen und entladen werden. Gatewiderstände im Bereich 10-20R sind da 
angesagt. Die Kapazität der Ladungspumpe ist mit 1µF sehr klein, 
bedenke, das dieser C seine Ladung ins Gate abgibt und sie vollständig 
laden muss. 10µF oder 47µF sind da deutlich entspannter und müssen nicht 
jedesmal komplett aufgeladen werden - dadurch halten sie auch länger. 
Ach ja, das sollten schon gute C sein, impulsfest und so. Ich baue da 
50V oder 63V Typen ein, selbst wenn Vcc nur bei 12V liegt.
1N4004 ist nun wirklich keine gute Diode dafür. Sie hält zwar die 
Spannung aus, ist aber langsam und hindert die Ladungspumpe am 
Vollwerden. Nimm BA159 oder was ähnlich schnelles.
Als nächstes muss die Motorspannung abgefedert werden. Ich bin nicht 
sicher, ob du dafür den 4700µF vorgesehen hast. Wenn ja, muss dieser so 
dicht wie möglich an die Leistungsrail und mit kräftigen Verbindungen 
angeschlossen sein. Überhaupt sollten die drei Halbbrücken niederohmig 
ausgelegt sein, damit durch den Motorstrom nicht die gesamte Spannung 
zusammenbricht.

: Bearbeitet durch User
von Ge E. (re_n)


Lesenswert?

Matthias Sch. schrieb:
> .. und ich wünschte, die Eagle Pläne wären nicht alle so unscharf und
> luschig. Ich jage sie deswegen durch Irfanview und reduziere sie auf
> Schwarz/Weiss, und dann wird noch einmal die Schärfe verbessert.
> Zur Schaltung: 47R sind als Gatewiderstände sehr hoch. Die IRF2804 haben
> schon eine relativ grosse Gateladung (160nC) und diese muss zügig
> geladen und entladen werden. Gatewiderstände im Bereich 10-20R sind da
> angesagt. Die Kapazität der Ladungspumpe ist mit 1µF sehr klein,
> bedenke, das dieser C seine Ladung ins Gate abgibt und sie vollständig
> laden muss. 10µF oder 47µF sind da deutlich entspannter und müssen nicht
> jedesmal komplett aufgeladen werden - dadurch halten sie auch länger.
> Ach ja, das sollten schon gute C sein, impulsfest und so. Ich baue da
> 50V oder 63V Typen ein, selbst wenn Vcc nur bei 12V liegt.
> 1N4004 ist nun wirklich keine gute Diode dafür. Sie hält zwar die
> Spannung aus, ist aber langsam und hindert die Ladungspumpe am
> Vollwerden. Nimm BA159 oder was ähnlich schnelles.
> Als nächstes muss die Motorspannung abgefedert werden. Ich bin nicht
> sicher, ob du dafür den 4700µF vorgesehen hast. Wenn ja, muss dieser so
> dicht wie möglich an die Leistungsrail und mit kräftigen Verbindungen
> angeschlossen sein. Überhaupt sollten die drei Halbbrücken niederohmig
> ausgelegt sein, damit durch den Motorstrom nicht die gesamte Spannung
> zusammenbricht.

Schließe mich meinem Vorredner in jedem Punkt an, mit einer Ausnahme!

Der Bootstrap Kondi muss und sollte auch nicht 10µF oder größer sein. 
Aus 3 Gründen:

1. Die Gate Kapazität eines (Leistungs-) Mosfets reicht üblicherweise 
vonn ein paar hundert pF bis in den einstelligen nF Bereich herein, 
liegt auf der Hand das ein Kondi mit mehreren 10µF völlig 
überdimensioniert ist. Ich benutze immer 1µF Folienkondi (MP) größere 
Werte ergeben Nachweisbar keine besseren Schaltvorgänge mehr.

2. Wenn der Kondi zu groß ist belastest du die Bootstrap Diode 
entsprechend stärker und sie könnte durchbrennen

3. Größere Kondis haben längere Ladezeiten, du benötigst schon deine 12V 
um die Mosfets sicher durchzusteuern. Bei einem zu großen Kondi läufst 
du gefahr das sich der Kondi nicht vollständig aufgeladen hat und du das 
Gate dann nur mit 5V ansteuerst. Dann wirkt der Mosfet u.U. wie ein 
Widerstand und wird heiß.

Mir fallen noch mehr Gründe ein wie Größe/Preis aber das waren jetzt die 
wichtigsten Punkte

Achja die BA159 ist mit ihren 250ns doch schon sehr Träge, würde dir 
eher die UG2B-E3/54 empfehlen (15ns/60A Spitze) und günstig ist die auch 
mit ca 20ct

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Re Né schrieb:
> 2. Wenn der Kondi zu groß ist belastest du die Bootstrap Diode
> entsprechend stärker und sie könnte durchbrennen

Du vergisst dabei allerdings (der TE ist vermutlich aber schon längst 
ganz woanders) das ein grösserer Kondensator ja auch nur wenig durch die 
Gateladung entladen wird, der Aufladevorgang über die Diode auch 
entsprechend klein ist. Im Prinzip fliesst ja über die Bootstrapdiode 
nur das, was auch an Gateladung 'verbraucht' wird.
Ich nutze hier Endstufen mit 3*IRFB3207 parallel, je 15R Gatewiderstand 
und 100µF/50V, das läuft dauerhaft und gut. (4kW/48V PMSM). Die Elkos 
werden so auch nur wenig belastet, weil sie kaum geladen und entladen 
werden und eigentlich immer fast voll sind.

von Ge E. (re_n)


Lesenswert?

Ja.. muss man halt auf den Anwendungsfall beziehen. Ich steuere meistens 
mosfets mit 40-800kHz und Rg weit unter 10R an (einzeln nicht mehrere 
Paralell) und da funktioniert die Kombi mit dem 1µF natürlich super. Und 
ja klar wird der 100µF nicht komplett entladen allerdings würde er bei 
sehr hohen Frequenzen auch nie ganz Voll geladen werden ;)

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Re Né schrieb:
> 40-800kHz

Das kann ich mit meinen dicken Motoren hier nicht machen, ich muss knapp 
jenseits der Hörgrenze bleiben, sonst werden die Verluste viel zu hoch. 
Am liebsten würde ich sie nur mit 2-3 kHz fahren, aber dann pfeifts. Ich 
muss hier wirtschaftlich vorgehen und kann mir keine Wärmeverluste in 
den MOSFet leisten.

Re Né schrieb:
> allerdings würde er bei
> sehr hohen Frequenzen auch nie ganz Voll geladen werden ;)

Bei sehr hohen Frequenzen wie 800kHz würde ich auch keine Elkos nehmen. 
Aber warum sollte er nicht voll werden? Es spricht nichts gegen die 
vollständige Ladung durch die Diode.

: Bearbeitet durch User
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.