Forum: Analoge Elektronik und Schaltungstechnik BLDC-Motor: Überspannung beim Bremsen trotz Durchschaltung aller Low-Side-MOSFETs?


von Agamemnon (jemandanders)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

dies ist mein erster Post hier und die Leistungselektronik eigentlich 
überhaupt nicht meiner Zuständigkeit; deshalb seid ein bißchen 
nachsichtig :-) Ich habe versucht, meine Hausaufgaben vorab zu machen, 
und wirklich lange recherchiert, leider ohne eine Antwort auf meine 
Frage zu finden.

Also:

Wir haben einen BLDC-Motor, den wir mit einer üblichen H-Brücke 
ansteuern, und zwar mithilfe des TI8350F (siehe angehängtes Datenblatt). 
Die Schaltung ist dort auf Seite 18 gezeigt ("Functional Block 
Diagram").

Wie so oft bei solchen Schaltungen entsteht beim starken Abbremsen des 
Motors eine Überspannung auf der Versorgung. Die Ursachen derselben 
sowie gängige Methoden des Umgangs damit sind eigentlich klar. 
Allerdings habe ich eine Frage, die ein paar Level weiter tiefer 
ansetzt, beim grundlegenden Verständnis:

Wir betreiben den Motor-Controller im 1x PWM-Modus mit 
Block-Kommutierung, beschrieben auf Seite 22 im Kapitel 8.3.1.1.3 des 
Datenblatts. Beim starken Abbremsen (z.B. beim Nothalt) ziehen wir das 
Pin "INLC" auf Low, was laut Datenblatt die Motorbremse aktiviert, indem 
sämtliche High-Side-MOSFETs abgeschaltet werden und sämtliche 
Low-Side-MOSFETs angeschaltet werden.

Trotz dieser Maßnahme entstehen auf unserer Versorgung (VDrain), die 
normalerweise 48V beträgt, Spannungen bis zu 85V.

Nun zur Frage: Wenn sämtliche Low-Side-MOSFETs durchgeschaltet sind, 
sind doch alle Phasen-Anschlüsse des Motors kurzgeschlossen, richtig? 
Woher kommt dann die Überspannung überhaupt? Die Spule im Motor wirkt 
als Generator, soweit klar, aber die Ausgänge dieses Generators sind 
kurzgeschlossen. Ich verstehe nicht, an den Ausgängen eines Generators 
eine solche Überspannung anliegen kann, wenn die Ausgänge miteinander 
verbunden sind. Liegt das daran, daß diese Verbindung nur theoretisch 0 
Ohm Widerstand besitzt, der Widerstand in der Praxis aber doch einige 
Bruchteile eines Ohms beträgt?

Wir werden heute den ganzen Tag messen, um ein Verständnis der Vorgänge 
zu gewinnen. Aber eine verständliche Erklärung hier wäre ein große 
Hilfe.

Vielen Dank vorab, und schöne Grüße!

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


Lesenswert?

Vermutlich wird der Motor 'gechoppert', dabei sind die LowSide MOSFets 
eben nicht 100% dauerhaft an, sondern werden doch getaktet. Dabei ist 
die resultierende Schaltung ganz ähnlich einem Boostkonverter und die 
entstehende Spannung wird über die Bodydioden der Highside MOSFets in 
die Versorgung geleitet.

Schaut euch die Gatespannung der Lowside im Bremsfall mal an mit dem 
Oszi und blockt die Versorgung wie immer gut ab mit ein paar dicken 
Elkos.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Agamemnon schrieb:
> Wie so oft bei solchen Schaltungen entsteht beim starken Abbremsen des
> Motors eine Überspannung auf der Versorgung.
Das nennt sich "Rückspeisung ind den Zwischenkreis".

> die Ausgänge dieses Generators sind kurzgeschlossen.
Bist du absolut sicher? Hast du das gemessen? Wie fließen diese 
Kurzschlusströme? Können die evtl. das Gatepotential anheben?

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

Meine Vermutung wäre, das im Kurzschlussfall durch die Low-Side-Mosfet 
der Strom zu groß wird. Die Schutzschaltung bekommt das mit und schaltet 
die Mosfet ab. Nach dem nächsten Nulldurchgang (Drehstrom) werden diese 
wieder freigegeben und das Spiel wiederholt sich. Dabei arbeitet das 
System als Aufwärtswandler.

Daher wird die Schaltung um einen zuschaltbaren Bremswiderstand im 
Versorgungskreis ergänzt werden müssen.

von Agamemnon (jemandanders)


Lesenswert?

Matthias S. schrieb:
> Vermutlich wird der Motor 'gechoppert', dabei sind die LowSide MOSFets
> eben nicht 100% dauerhaft an, sondern werden doch getaktet.

Vielen Dank für die Hilfe! Wie eingangs beschrieben wollten wir heute 
den ganzen Tag diese Dinge nachmessen, aber die Vorbereitungen sind noch 
nicht erledigt (es geht um eine Schaltung mit SMD-Komponenten, an die 
man kaum herankommt, also muß erst einmal Fädeldraht an viele Stellen, 
so daß wir im System messen können).

Das Folgende ist also mit Vorsicht zu genießen, weil meßtechnisch nicht 
verifiziert, aber nach meinem Verständnis des Datenblatts werden die 
Low-Side-MOSFETs nicht gechoppert.

Zitat aus Seite 22 des Datenblatts im Kapitel über den 1xPWM-Betrieb:

The INLC input brakes the motor by turning off all high-side MOSFETs and 
turning on all low-side MOSFETs when it is pulled low. This brake is 
independent of the states of the other input pins. Tie the INLC pin high 
if this feature is not required.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Agamemnon schrieb:
> also muß erst einmal Fädeldraht an viele Stellen
Führe auch die jeweilige nächstliegende Masse am zu messenden Bauteil 
mit heraus.

Du wirst dir was in die Tasche lügen, wenn du nur 1 "zentrale 
Sternpunkt-Masse" als Bezugspunkt hernimmst. Denn jeder Mosfet sieht nur 
die Spanung direkt an seinen G und S Anschlüssen, egal, was das 
ansteuernde IC bezogen auf seine lokale Masse ausgibt.

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


Lesenswert?

Agamemnon schrieb:
> The INLC input brakes the motor by turning off all high-side MOSFETs and
> turning on all low-side MOSFETs when it is pulled low.

Ja, das klingt sehr schön. Aber du misst ja trotz allem die 85V. 
Entweder erzählen die Texaner Mist, oder du hast Mist in der Schaltung. 
Also Gatesignale messen.

von Agamemnon (jemandanders)


Lesenswert?

Lothar M. schrieb:
>> die Ausgänge dieses Generators sind kurzgeschlossen.
> Bist du absolut sicher? Hast du das gemessen? Wie fließen diese
> Kurzschlusströme? Können die evtl. das Gatepotential anheben?

Wir sind nur insoweit sicher, als wir dem Datenblatt trauen können. 
Zitat von Seite 22, im Kapitel über den 1xPWM-Betrieb:

The INLC input brakes the motor by turning off all high-side MOSFETs and 
turning on all low-side MOSFETs when it is pulled low. This brake is 
independent of the states of the other input pins. Tie the INLC pin high 
if this feature is not required.

Anhand des Functional Block Diagram auf Seite 18 würde ich davon 
ausgehen, daß die Kurzschlußströme über die GND-Verbindungen der 
Leistungsseite fließen; alle Low-Side-MOSFETs sollten ja laut Datenblatt 
ihre Source zur jeweiligen Phase durchschalten. Die MOSFETs der H-Brücke 
sind benachbart auf der Platine plaziert, so daß der ohm'sche Widerstand 
dieser Strecken minimal sein dürfte. Der RDS-on der MOSFETSs liegt bei 5 
mOhm.

Mir fehlt profundes Grundlagenwissen über MOSFETs, deshalb bin ich 
bezüglich der Anhebung der Gate-Spannung unsicher. Wenn wir annehmen, 
daß eine solche Anhebung auftritt, sollte sie aber keine negative 
Auswirkung haben:

Falls die Gate-Spannung bei den Low-Side-MOSFETs angehoben würde, wäre 
das wünschenswert, da diese ohnehin durchschalten sollten, um ein 
Entstehen der Überspannung am Anschluß der Phase zu verhindern, also 
zwischen Low- und High-Side-MOSFET. Falls die Gate-Spannung bei den 
High-Side-MOSFETs angehoben würde, sollte das auch nichts ausmachen; 
deren Sperrung würde durch eine entsprechende Anhebung der Gate-Spannung 
zwar zunichte gemacht, aber eine Überspannung an der Phase würde ohnehin 
über die Freilauf-Diode des High-Side-MOSFETs durchschlagen - trotz 
Sperrung.

Ich verstehe nach wie vor nicht, warum eine etwaige Überspannung 
zwischen Low- und High-Side nicht sofort durch den Kurzschluß zwischen 
den Phasen zunichte gemacht wird.

Eigentlich wollten wir das alles heute nachmessen, aber die 
Vorbereitungen sind noch nicht abgeschlossen; das wird heute nichts 
mehr.

: Bearbeitet durch User
von Agamemnon (jemandanders)


Lesenswert?

Lothar M. schrieb:
>> also muß erst einmal Fädeldraht an viele Stellen
> Führe auch die jeweilige nächstliegende Masse am zu messenden Bauteil
> mit heraus.
>
> Du wirst dir was in die Tasche lügen, wenn du nur 1 "zentrale
> Sternpunkt-Masse" als Bezugspunkt hernimmst. Denn jeder Mosfet sieht nur
> die Spanung direkt an seinen G und S Anschlüssen, egal, was das
> ansteuernde IC bezogen auf seine lokale Masse ausgibt.

Vielen Dank für den Tip! Das hatten wir so vor, weil ich ganz explizit 
die Potential-Unterschiede zwischen den verschiedenen GND-Anschlüssen 
nachmessen möchte :-)

von Agamemnon (jemandanders)


Lesenswert?

Matthias S. schrieb:
>> The INLC input brakes the motor by turning off all high-side MOSFETs and
>> turning on all low-side MOSFETs when it is pulled low.
>
> Ja, das klingt sehr schön. Aber du misst ja trotz allem die 85V.
> Entweder erzählen die Texaner Mist, oder du hast Mist in der Schaltung.
> Also Gatesignale messen.

Vielen Dank!

Diese Messungen hatten wir heute vor, aber leider sind die 
Vorbereitungen noch nicht abgeschlossen. Ich denke, das wird Montag ...

von Agamemnon (jemandanders)


Lesenswert?

Dieter D. schrieb:
> Meine Vermutung wäre, das im Kurzschlussfall durch die Low-Side-Mosfet
> der Strom zu groß wird. Die Schutzschaltung bekommt das mit und schaltet
> die Mosfet ab. Nach dem nächsten Nulldurchgang (Drehstrom) werden diese
> wieder freigegeben und das Spiel wiederholt sich. Dabei arbeitet das
> System als Aufwärtswandler.
>
> Daher wird die Schaltung um einen zuschaltbaren Bremswiderstand im
> Versorgungskreis ergänzt werden müssen.

Vielen Dank!

Diese Theorie erscheint mir fast schon als am wahrscheinlichsten, und 
sie läßt sich relativ leicht überprüfen: Bei dem TI 8350F läßt sich die 
Schutzschaltung deaktivieren. Das werden wir auf jeden Fall testen.

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


Lesenswert?

Sofern noch nicht geschehen, solltet ihr den Fault Ausgang auswerten. Am 
sinnvollsten direkt mit dem steuernden Mikrocontroller, der einen 
Interrupt auslöst und den Fehler ausliest, aber meinetwegen auch mit 
einem Oszi.
Die Gatespannung der Lowside wird im Fehlerfall übrigens sicher nicht 
erhöht, sondern auf Null gesetzt.
Wie gesagt, ein Oszi am Gate einer Lowside sollte euch Klarheit 
verschaffen.
M.M.n. bringen diese komple(x)tten Treiber ICs oft mehr Probleme als 
Lösungen. Aber gut, nun habt ihr ihn auf dem Board und müsst euch damit 
rumschlagen.

: Bearbeitet durch User
von S. K. (hauspapa)


Lesenswert?

Das Kapitel:
8.3.5.3 MOSFET VDS Overcurrent Protection (VDS_OCP)
ist sicher in diesem Fall auch Lesenswert

viel Erfolg
hauspapa

Herzlichen Dank für die präzise Beschreibung samt verlinktem Datenblatt. 
Kommt hier nicht allzu oft vor.

von Agamemnon (jemandanders)


Lesenswert?

S. K. schrieb:
> Das Kapitel:
> 8.3.5.3 MOSFET VDS Overcurrent Protection (VDS_OCP)
> ist sicher in diesem Fall auch Lesenswert
>
> viel Erfolg
> hauspapa
>
> Herzlichen Dank für die präzise Beschreibung samt verlinktem Datenblatt.
> Kommt hier nicht allzu oft vor.

Danke für die Blumen :-) Gerade als Anfänger sollte man versuchen, die 
Anfänger-Fehler zu vermeiden ...

Du hast natürlich recht. In 8.3.5.3 steht die Funktionsweise der OCP gut 
beschrieben. Wir hatten ja vor, testweise diesen Schutz zu deaktivieren, 
um zu sehen, ob das Problem dann verschwindet. Leider war dies gestern 
nicht mehr möglich; wir haben es auf Montag verschoben.

Ich habe mir aber gestern abend noch den Schaltplan angesehen und 
festgestellt, daß der Schutz auf einer relativ hohen Stufe aktiviert 
ist. Wir verwenden die Hardware-Version des Controllers, d.h. der 
maximal erlaubte Spannungs-Abfall über die MOSFETs wird über die 
Spannung am VDS-Eingang bestimmt. Dieser Eingang ist über einen R auf 
GND gezogen; den Wert von R muß ich nochmals nachsehen.

von Agamemnon (jemandanders)


Lesenswert?

Matthias S. schrieb:
> Sofern noch nicht geschehen, solltet ihr den Fault Ausgang auswerten. Am
> sinnvollsten direkt mit dem steuernden Mikrocontroller, der einen
> Interrupt auslöst und den Fehler ausliest, aber meinetwegen auch mit
> einem Oszi.
> Die Gatespannung der Lowside wird im Fehlerfall übrigens sicher nicht
> erhöht, sondern auf Null gesetzt.
> Wie gesagt, ein Oszi am Gate einer Lowside sollte euch Klarheit
> verschaffen.
> M.M.n. bringen diese komple(x)tten Treiber ICs oft mehr Probleme als
> Lösungen. Aber gut, nun habt ihr ihn auf dem Board und müsst euch damit
> rumschlagen.

Vielen Dank!

Genau das hatten wir gestern noch vor (die Messung per Oszi ist mir in 
solchen Fällen lieber). Das hat aber leider nicht mehr geklappt und 
wurde deshalb auf Montag verschoben.

Ich sehe mittlerweile gute Chancen, daß die Ursache des Problems in der 
Strombegrenzung liegt (VDS_OCP-Überwachung), so wie weiter oben schon 
vermutet.

Was Motorcontroller im allgemeinen anbelangt, bin ich wirklich bei Dir. 
Speziell der TI 8350F gefällt mir aber sehr gut. Mit der SPI-Version 
kannst Du alle denkbaren Parameter in weiten Bereichen einstellen, und 
auch die hier verwendete Hardware-Version ist nach meiner persönlichen 
Ansicht ein sehr guter Kompromiß aus Einstellbarkeit und sinnvollen 
Default-Werten. Die Dead-Time-Steuerung funktioniert zuverlässig und 
arbeitet mit praxisgerechten Voreinstellungen. Das Teil ist gut 
dokumentiert und tut ausnahmsweise mal exakt das, was im Datenblatt 
steht; wir konnten bis jetzt kein einziges Mal ein Fehlverhalten oder 
undokumentiertes Verhalten feststellen. Unser Problem mit der 
Überspannung ist sicher kein Problem des Motor-Controllers, sondern ein 
grundlegendes Verständnisproblem auf unserer Seite.

Wenn man das alles selber nachbauen will, ist das auch nicht so einfach. 
Die Kommutierung aus den Hallgeber-Signalen geht noch, aber die 
Deadtime-Steuerung, die Ladungspumpe für die High-Side-Gates und die 
Sicherheits-Überwachungen sind nicht trivial. Dazu das Decoupling ... 
und auf unseren Platinen ist der Platzbedarf immer ein ganz heißes 
Thema.

Natürlich werde ich unsere Meßergebnisse und unseren Fortschritt hier 
dokumentieren; ich denke, daß ich am Montag abend ein Update posten 
kann.

Disclaimer: Ich stehe in keinerlei Beziehung zu TI.

: Bearbeitet durch User
von Armin X. (werweiswas)


Lesenswert?

Lothar M. schrieb:
> Das nennt sich "Rückspeisung ind den Zwischenkreis".

Dieter D. schrieb:
> Daher wird die Schaltung um einen zuschaltbaren Bremswiderstand im
> Versorgungskreis ergänzt werden müssen.

wenn das eine Batteriebetriebene Anwendung ist wird der "Zündimpuls" der 
beim Abschalten des Mosfets entsteht, über die parasitären Dioden der 
Highsidetransistoren in die Batterie abgeleitet.
Wenn "nur" ein Netzteil speist muss die Energie in einen 
Bremswiderstand. das ist auch der Fall wenn Du nur durch Gaswegnehmen 
ein Objekt mitbremsen willst.

von Sebastian W. (wangnick)


Lesenswert?

Armin X. schrieb:
> in die Batterie abgeleitet

Ein Verpolschutz am Spannungsversorgungseingang kann da auch hinderlich 
sein ...

LG, Sebastian

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


Lesenswert?

Agamemnon schrieb:
> Die Kommutierung aus den Hallgeber-Signalen geht noch, aber die
> Deadtime-Steuerung, die Ladungspumpe für die High-Side-Gates und die
> Sicherheits-Überwachungen sind nicht trivial.

Das ist heute in vielen MC schon drin. STM32 und auch XMega haben dafür 
die passenden Timer und DT Blöcke - den Rest erledigen einfache 
Treiberbausteine wie die tausendfach bewährten IR2110 und Konsorten.
Ohne MC ist auch dein TI Chip hilflos und wenn man den sowieso schon 
drin hat, ist nicht einzusehen, warum der nicht auch gleich die PWM 
erzeugen soll.

von Agamemnon (jemandanders)


Lesenswert?

Matthias S. schrieb:
> Das ist heute in vielen MC schon drin. STM32 und auch XMega haben dafür
> die passenden Timer und DT Blöcke - den Rest erledigen einfache
> Treiberbausteine wie die tausendfach bewährten IR2110 und Konsorten.
> Ohne MC ist auch dein TI Chip hilflos und wenn man den sowieso schon
> drin hat, ist nicht einzusehen, warum der nicht auch gleich die PWM
> erzeugen soll.

Das ist alles richtig. Wir verwenden aber in diesem Projekt einen AVR32 
(AT32UC3C0512C). Das ist nicht verhandelbar.

Wir finden mittlerweile den Motor-Controller von TI sehr gut und werden 
diesen auch in zukünftigen Projekten verwenden - auch dann, wenn dort 
ein anderer uC zum Einsatz kommen sollte, der einen Teil der 
Motorcontroller-Funktionen theoretisch übernehmen könnte. Nur wenn der 
uC wirklich alles bieten würde (von der sinnvollen und genau passenden 
Deadtime-Steuerung über den Align-, Stop- und Brake-Mode über die 
Gate-Ströme von 2A/1A bis hin zu den Sicherheits-Features (charge pump 
monitoring, overcurrent etc.) und den integrierten Ladungspumpen auch 
für die High-Side) würden wir einen Wechsel in Erwägung ziehen. Außerdem 
müßte der uC zusätzlich eine genauso saubere galvanische Trennung 
zwischen Logik- und Leistungsseite zur Verfügung stellen wie der 
Motor-Controller.

Das PWM-Signal selbst wird natürlich auch in unserem Fall vom uC (also 
vom AVR32) erzeugt.

von Agamemnon (jemandanders)


Lesenswert?

So, jetzt die versprochene Rückmeldung nach einigen Messungen mehr. 
Bitte entschuldigt die Verspätung (ich hatte die Rückmeldung für Montag 
abend versprochen); ein Unwetter hat hier größere Schäden verursacht.

Die Theorie von @Dieter_1234 hat sich als zutreffend erwiesen - vielen 
Dank nochmals.

Wir haben mit dem Oszi auf den Fault-Ausgang getriggert und dabei die 
Versorgungsspannung von 48V mit dem anderen Oszi-Kanal beobachtet. Es 
war schön zu sehen, wie der Fault-Ausgang im Takt von einigen ms gesetzt 
und zurückgesetzt wurde. Am Anfang gab es keinen Fault, und die Spannung 
blieb bei 48V. Nach einigen ms kam der Fault, offensichtlich wurden die 
Gates auf der Low-Side dann abgeschaltet, und die Spannung sprang nach 
oben. Dann wurde der Fault nach einigen ms zurückgesetzt, die Spannung 
blieb für einige ms konstant. Dann wurde der Fault wieder gesetzt, die 
Spannung ging die nächste Treppenstufe nach oben. Und so weiter.

Das Ergebnis war so eindeutig, daß wir die Gates und die anderen 
potentiellen Ziele gar nicht mehr gemessen haben.

Die OCP des Motor-Controllers war auf die zweitempfindlichste Stufe 
eingestellt, was in unserem Fall immerhin ungefähr 40A entspricht - pro 
MOSFET, von denen in jeder Phase auf jeder Seite vier Stück parallel 
geschaltet sind.

Angesichts dessen wurde die Reduzierung der Empfindlichkeit der OCP als 
Lösung des Problems abgelehnt; es bestanden Befürchtungen hinsichtlich 
möglicher Schäden an den Motoren bzw. der Verkabelung (nach meiner 
Meinung zu Unrecht).

Nachdem das Problem endlich verstanden ist, wird es nun mit großen 
Kondensatoren totgeschlagen (vollständiger Erfolg bei 33000 uF an jedem 
Motor). Ich bin gespannt, was das nun für Probleme verursachen wird, vor 
allem beim Einschalten :-) Aber das ist ein anderes Thema für einen 
anderen Thread.

Nochmals danke an alle!

: 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.