Forum: Mikrocontroller und Digitale Elektronik Motorstrom BLDC


von Jan S. (Firma: Eigenbau) (vox_equus)


Lesenswert?

Guten Abend,
kennt sich jemand aus mit dem Motor Control PWM Module vom dsPic30F? 
Eigentlich ist der Controller schon realisiert und läuft auch. Es geht 
nun darum, Softwaremässig den Anlaufstrom und auch sonst den Strom 
während des Betriebs zu begrenzen. Mit dem Fault-Pin-event, ausgelöst 
durch OP u. Shunt habe ich keinen Erfolg gehabt, es rattert nur.
MFG Jan

: Bearbeitet durch User
von Jan S. (Firma: Eigenbau) (vox_equus)


Lesenswert?

Update:
Der Anlaufstrom eines Elektromotors ist bekanntlich sehr hoch. Ist es 
eine Illusion, den Strom mit dem internen ADC(Samplingrate c.a.200Khz) 
über einen OP zu messen und mit interrupt bei jeder einzelnen 
PWM-Kommutation bei einem definierten ADC-Wert zu unterbrechen? 1 
Sampling c.a. 5uS + c.a. 3uS Software, d.h. während c.a. 8-10 uS bekämen 
die Mosfets Möglicherweise den vollen Anlaufstrom?
Gruss Jan

von Klaus S. (kseege)


Lesenswert?

Jan S. schrieb:
> Ist es
> eine Illusion, den Strom mit dem internen ADC(Samplingrate c.a.200Khz)
> über einen OP zu messen und mit interrupt bei jeder einzelnen
> PWM-Kommutation bei einem definierten ADC-Wert zu unterbrechen?

Warum einfach, wenn es auch kompliziert geht?
Ein Vorwiderstand mit einem parallelgeschaltetem FET und einem DAC zum 
allmählichen Durchschalten des FETs ist völlig unabhängig von der 
verwendeten PWM.

Just my 2 cents

von Jan S. (Firma: Eigenbau) (vox_equus)


Lesenswert?

Guten Tag,
Da der Anlaufstrom eines (BLDC)Motors hoch ist, frage ich mich, wie man 
diesen auf einen bestimmten, maximalen Wert begrenzen kann. Bei meinem 
handelt es sich um einen Pedelec-Motor.
Gruss Jan

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


Lesenswert?

Jan S. schrieb:
> Da der Anlaufstrom eines (BLDC)Motors hoch ist, frage ich mich, wie man
> diesen auf einen bestimmten, maximalen Wert begrenzen kann.
Die Stuerung darf einfach nicht so viel Strom liefern (Begrenzung der 
Pulsdauer, passende PWM). Ob sie das kann steht auf einem anderen 
Blatt.

> Bei meinem handelt es sich um einen Pedelec-Motor.
Normalerweise kann die passende Steuerung den entsprechenden Strom 
liefern. Warum ist das hier nicht der Fall?

von Jan S. (Firma: Eigenbau) (vox_equus)


Lesenswert?

Lothar M. schrieb:
> Die Stuerung darf einfach nicht so viel Strom liefern (Begrenzung der
> Pulsdauer, passende PWM).
Ja, ich denke die passende PWM wäre die richtige Lösung. - Nur, wie 
erreicht man das?
>  Ob sie das kann steht auf einem anderen Blatt.
Kann mein selbstgebauter Controller eben vorläufig noch nicht.
> Normalerweise kann die passende Steuerung den entsprechenden Strom
> liefern. Warum ist das hier nicht der Fall?
Bei meinem handelt es sich um einen Pedelec-Motor mit Handgas.

von Udo S. (urschmitt)


Lesenswert?

Jan S. schrieb:
> Nur, wie erreicht man das?
> ...
> Bei meinem handelt es sich um einen Pedelec-Motor mit Handgas.

Indem man nicht irgendwas kauft, sondern genau das, das dein Problem 
löst.
Was genau dein Problem ist hast du ja nicht geschildert.

von Jan S. (Firma: Eigenbau) (vox_equus)


Lesenswert?

Udo S. schrieb:

> Was genau dein Problem ist hast du ja nicht geschildert.
Doch, ich suche nach einer Technik, wie man den Strom eines BLDC's unter 
einem bestimmten wert halten kann. Also, klar, ein Shunt, die abfallende 
Spannung wird über OP gemessen - und  wie weiter?

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


Lesenswert?

Jan S. schrieb:
> Da der Anlaufstrom eines (BLDC)Motors hoch ist,

Wobei sich hier die Frage stellt, ob der Strom in einer der drei 
Zuleitungen zum BLDC-Motor zu hoch wird, oder der Strom, der insgesamt 
aus der Spannungsversorgung gezogen wird.

von Jan S. (Firma: Eigenbau) (vox_equus)


Lesenswert?

Dieter D. schrieb:
> Jan S. schrieb:
>> Da der Anlaufstrom eines (BLDC)Motors hoch ist,
>
> Wobei sich hier die Frage stellt, ob der Strom in einer der drei
> Zuleitungen zum BLDC-Motor zu hoch wird, oder der Strom, der insgesamt
> aus der Spannungsversorgung gezogen wird.
Natürlich an allen drei. Der Motor läuft sonst sauber.
Ich könnte natürlich für ein paar Euronen einen fertigen Motorcontroller 
kaufen, es geht mir darum, im Detail zu verstehen, wie alles 
funktioniert - Firmware, Mikrocontroller u.s.w..

: Bearbeitet durch User
von Udo S. (urschmitt)


Lesenswert?

Hier kannst du dich mal einlesen:
https://www.mikrocontroller.net/articles/Brushless-Controller_f%C3%BCr_Modellbaumotoren
Am Ende des Artikels gibts dann noch mehr Links.

von Peter N. (alv)


Lesenswert?

Bei Pedelec-BLDC-Kontrollern wird der Akkustrom (also alle 3 Motorphasen 
gemeinsam) überwacht.
Wird der Strom zu hoch, kann der Kontroller Gegenmaßnahmen ergreifen.

von Rainer W. (rawi)


Lesenswert?

Jan S. schrieb:
> Da der Anlaufstrom eines (BLDC)Motors hoch ist

Was bedeutet die Klammer? Ist es nun ein BLDC-Motor oder nicht?
Ist er sensorlos oder nicht?

Beim Anlauf steuert normalerweise der Treiber den Strom.

Jan S. schrieb:
> Ja, ich denke die passende PWM wäre die richtige Lösung. - Nur, wie
> erreicht man das?

Durch passende Steuerung des Treibers?

: Bearbeitet durch User
von Helmut L. (helmi1)


Lesenswert?

Jan S. schrieb:
> Doch, ich suche nach einer Technik, wie man den Strom eines BLDC's unter
> einem bestimmten wert halten kann. Also, klar, ein Shunt, die abfallende
> Spannung wird über OP gemessen - und  wie weiter?

Die Spannung vergleichst du mit einem Komparator und wenn eine Schwelle 
ueberschritten wird schaltest du den Leistungstransistor ab.

von Jens G. (jensig)


Lesenswert?

Jan S. schrieb:
> Kann mein selbstgebauter Controller eben vorläufig noch nicht.
...
> Bei meinem handelt es sich um einen Pedelec-Motor mit Handgas.

Ich glaube noch nicht einmal, daß dies ein "Controller" ist, sondern ein 
simpler On/Off-Schalter für einen irgendwo gekauften BLDC-Treiber. Oder 
wie baut man einen Controller mit Handgas-Steuerung, ohne zu wissen, wie 
man mit PWM umgehen muß.
Mich würde daher schon interessieren, was das für ein 
Selbstbau-Controller ist. Z.B. anhand eines Schaltplan dieses 
Controllers, und Verdrahtungsplan mit seiner Peripherie.

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


Lesenswert?

Jens G. schrieb:
> Mich würde daher schon interessieren, was das für ein
> Selbstbau-Controller ist.

Man soll es zwar nicht, habe es aber doch gemacht, weil das vielleicht 
etwas Licht ins Dunkel bringen könnte:
https://www.mikrocontroller.net/topic/547394
und vielleicht noch ein Atmega8.

: Bearbeitet durch User
von Jan S. (Firma: Eigenbau) (vox_equus)


Angehängte Dateien:

Lesenswert?

Etwas genauere Erklärung:
Habe aus der Mülltonne einen Bionx-Hubmotor gerettet, also nur das
Hinterrad, kein LCD-Controller, kein Akku. Den Hubmotor habe ich
geöffnet und den darin befindlichen Controller begutachtet.
Die Firmware und die Schemata zu diesem hubmotor ist leider nirgends
einsehbar, auch nach langem Suchen nicht. So habe ich eine eigene
Firmware mit mplabx geschrieben, der Motor läuft nun sauber als
Hallsensor-gesteuerter BLDC, die Drehzahl kann mit einem Poti verändert
werden.
-Nur den Stromfluss beim Anlaufen kann ich noch nicht softwaremässig
regulieren.
Ein LM339 und 3 Shunts wären schon auf der Platine, die Anschlüsse zu
den Pins zum MC sind auch schon bekannt.
Ich hoffe, hiermit habe ich alles gesagt und hoffe auf Ideen von Profis.

: Bearbeitet durch User
von Jan S. (Firma: Eigenbau) (vox_equus)


Lesenswert?

Danke für die Antworten. Ursprünglich habe ich den thread unter 
µC&Elektronik gepostet, der Moderator hat den thread leider unter 
Fahrzeugelektronik gewechselt, obschon mein Anliegen hauptsächlich die 
Software eines dsPic Mikrocontrollers betrifft.
Habe aus der Mülltonne einen Bionx-Hubmotor gerettet, also nur das 
Hinterrad, kein LCD-Controller, kein Akku. Den Hubmotor habe ich 
geöffnet und den darin befindlichen Controller begutachtet.
Die Firmware und die Schemata zu diesem hubmotor ist leider nirgends 
einsehbar, auch nach langem Suchen nicht. So habe ich eine eigene 
Firmware mit mplabx geschrieben, der Motor läuft nun sauber als 
Hallsensor-gesteuerter BLDC, die Drehzahl kann mit einem Poti verändert 
werden.
-Nur den Stromfluss beim Anlaufen kann ich noch nicht softwaremässig 
regulieren.
Ein LM339 und 3 Shunts wären schon auf der Platine, die Anschlüsse zu 
den Pins zum MC sind auch schon bekannt.
Ich hoffe, hiermit habe ich alles gesagt und hoffe auf Ideen von Profis.

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


Lesenswert?

Jan S. schrieb:
> obschon mein Anliegen hauptsächlich die Software eines dsPic
> Mikrocontrollers betrifft.
Dann hättest du das sinnvollerweise gleich am Anfang dazuschreiben 
sollen, denn das kann man aus dem "Motorstrom BLCD"-Threadverlauf nicht 
erkennen. Für mich war das von Anfang an reinste Analogtechnik. Welcher 
PWM-Wert eingestellt wird, ist nur eine kleine Fußnote im µC.

Ich hänge deine "neue" Frage einfach an den "alten" Thread an, denn 
offenbar dreht es sich dabei ja um die selbe Aufgabenstellung. Sieht 
jetzt halt ein wenig "verstolpert" aus, weil die Posts dem zeitlichen 
Ablauf nach sortiert werden.

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


Lesenswert?

Du könntest ja, wenn du in die Software nicht eingreifen willst, auf den 
Handgas Eingang gehen. Da kommt ein OpAmp dazwischen. Der 
nichtinvertierende Eingang geht aufs Handgas und der invertierte Eingang 
bekommt ein evtl. verstärktes Signal vom Shunt. Steigt die Spannung am 
Shunt, wird der Ausgang des Handgas zum PIC abgesenkt. Man wird da ein 
wenig einstellen müssen, damit es richtig klappt.
Im Prinzip so, wie Klaus das schon ganz oben vorgeschlagen hatte, bloß 
nicht mit FET.
Mein Auto misst den Shunt und bei 'Eco' Stellung des Potis wird ab einer 
gewissen Grenze (ca. 60A-70A) der Motorsteller abgeregelt bzw. begrenzt. 
In Stellung 'Sport' setzt das ganze erst bei viel höheren Messwerten 
(150A) am Shunt ein.
Abgeregelt wird bei meinem Curtis Controller über einen Optokoppler 
parallel zum Fahrpedal Poti.

: Bearbeitet durch User
von Jan S. (Firma: Eigenbau) (vox_equus)


Lesenswert?

Matthias S. schrieb:
> Da kommt ein OpAmp dazwischen. Der
> nichtinvertierende Eingang geht aufs Handgas und der invertierte Eingang
> bekommt ein evtl. verstärktes Signal vom Shunt. Steigt die Spannung am
> Shunt, wird der Ausgang des Handgas zum PIC abgesenkt.
Danke für die Antwort.
Ich habs nicht geschrieben, aber die Schaltung mit dem OP dazu habe ich 
schon erprobt und sie funzt.
Eleganter wärs halt, wenn ich es in die Software integrieren könnte. Ein 
Problem überfordert mich dabei: Der ADC misst das Poti vom Handgas, 
sollte dabei auch den Strom messen und richtige Mischung den 3 
PWM-Generatoren beibringen...
Freundliche Grüsse Jan

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


Lesenswert?

Jan S. schrieb:
> Ein
> Problem überfordert mich dabei: Der ADC misst das Poti vom Handgas,
> sollte dabei auch den Strom messen und richtige Mischung den 3
> PWM-Generatoren beibringen...

Zu den PICs kann ich nichts sagen, aber wenn du mehr als einen Eingang 
für den ADC hast, sollte der in der Lage sein, auch den zweiten 
Eingang/Kanal des ADC einzulesen. An den hängst du den OpAmp vom Shunt. 
Wenn dort Überstrom gemessen wird, reduzierst du die Motor-PWM, um den 
Strom abzusenken.
Normalerweise sollte man sowas über einen (PID) Regler führen, damit das 
nicht ruckartig, sondern geregelt erfolgt. Man muss sich aber bei 
solchen Reglern immer Gedanken über die Skalierung der Eingangswerte und 
über Raceconditions machen.

von Jan S. (Firma: Eigenbau) (vox_equus)


Lesenswert?

Matthias S. schrieb:
>
> Zu den PICs kann ich nichts sagen, aber wenn du mehr als einen Eingang
> für den ADC hast, sollte der in der Lage
> Normalerweise sollte man sowas über einen (PID) Regler führen, damit das
> nicht ruckartig, sondern geregelt erfolgt. Man muss sich aber bei
> solchen Reglern immer Gedanken über die Skalierung der Eingangswerte und
> über Raceconditions machen.
Der Pic hat genügend ADC-Eingänge. Die Messung des ADC plus einige 
Arbeitstakte für Software nehmen nach meiner Einschätzung etwa 8µS, nun 
stellt sich mir die Frage, ob die 8µS reichen, um die Mosfets zu killen.
Hast du da Erfahrung? MFG

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


Lesenswert?

Jan S. schrieb:
> um die Mosfets zu killen.
Warum sollten die Mosfets nach so kurzer Zeit gleich kaputt sein? Denn 
der Strom in der Motorwicklung steigt ja nicht schlagartig an, sondern 
langsam, wie es sich bei einer Induktivität gehört.

> 8µS
Echt jetzt? Acht mikro-Siemens?

: Bearbeitet durch Moderator
von Jan S. (Firma: Eigenbau) (vox_equus)


Lesenswert?

Lothar M. schrieb:
> der Strom in der Motorwicklung steigt ja nicht schlagartig an, sondern
> langsam, wie es sich bei einer Induktivität gehört.
Langsam, aber dann, wenn ein kritischer Wert erreicht ist, vergeht eben 
Zeit, bis die Firmware reagieren kann.
>
>> 8µS
> Echt jetzt? Acht mikro-Siemens?
Natürlich 8µSec.

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


Lesenswert?

Jan S. schrieb:
> Natürlich 8µSec.
Nimm doch einfach die weltweit üblichen SI-Einheiten: 8 µs

Jan S. schrieb:
> aber dann, wenn ein kritischer Wert erreicht ist, vergeht eben Zeit, bis
> die Firmware reagieren kann.
Weil/Wenn du weißt, dass du 8 µs brauchst, dann musst du den Transitor 
einfach schon bei einem Strom abschalten, der 8 µs vor dem Maximalstrom 
fließt.

So machst du es ja auch, wenn du über eine befahrene Straße gehst: du 
läufst also nicht los und wenns rumpelt bist zu spät dran und 
überfahren, sondern du weißt, wie lange du für diese Überquerung etwa 
brauchst und musst dann um so viel früher loslaufen, dass dich das 
nächste Auto nicht überfährt.

von Jan S. (Firma: Eigenbau) (vox_equus)


Angehängte Dateien:

Lesenswert?

Lothar M. schrieb:
> Nimm doch einfach die weltweit üblichen SI-Einheiten: 8 µs

Danke für die Antwort.
Bin halt nicht vom Fach.

> Weil/Wenn du weißt, dass du 8 µs brauchst, dann musst du den Transitor
> einfach schon bei einem Strom abschalten, der 8 µs vor dem Maximalstrom
> fließt.

Wie schon  *Matthias S.* geschrieben hat, wenn man den Fet einfach 
abschaltet, gibts einen Ruck. Zu diesem Zweck hätte die Hardware des 
dsPic sogar einen Fault-Pin, der nanosekunden schnell reagiert.
Ich werde mir wohl den Kopf zerbrechen müssen, wie ich das lösen kann, 
dass der Strom digital sanft und kontinuierlich reguliert wird...
Anbei noch ein Bild von meinem berggängigen Bastelbike, hier noch mit 
externem Controller.

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


Angehängte Dateien:

Lesenswert?

Jan S. schrieb:
> Anbei noch ein Bild von meinem berggängigen Bastelbike
Anbei die Zuordnung zum Unterforum "Fahrzeugelektronik". Irgendwie ist 
dein Problem in der Gesamtheit hier bei Digitalelektronik fehl am 
Platz. Denn die macht dir ja im Grunde kein Problem.

> Wie schon  Matthias S. geschrieben hat, wenn man den Fet einfach
> abschaltet, gibts einen Ruck.
Du sollst den auch nicht dauerhaft abschalten, sondern den PWM Tastgrad 
reduzieren.

> dass der Strom digital sanft und kontinuierlich reguliert wird..
Genau für diese Einstellung des Strommmittelwerts ist die PWM da.

: Bearbeitet durch Moderator
von J. T. (chaoskind)


Lesenswert?

Jan S. schrieb:
> Anbei noch ein Bild von meinem berggängigen Bastelbike, hier noch mit
> externem Controller.

Schick, mein erstes Fully war auch ein Floater.

von Jan S. (Firma: Eigenbau) (vox_equus)


Lesenswert?

Lothar M. schrieb:
>> dass der Strom digital sanft und kontinuierlich reguliert wird..
> Genau für diese Einstellung des Strommmittelwerts ist die PWM da.
Genau damit tue ich mich schwer, ich hoffte, hier im Forum evtl. Ideen 
oder Codeschnipsel dazu zu erhalten, diesbezüglich Dank auch an Matthias 
S.

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


Lesenswert?

Ausserdem gibts keinen 'Ruck', wenn man die MOSFets abschaltet, sondern 
der Motor geht in den Freilauf, wenn das in der Software richtig gemacht 
wurde. Pfiffige Entwickler nutzen diesen Zustand, um schon mal das 
Rekuperieren vorzubereiten.

AppNote AVR447/doc8010 bei Microchip übrigens beschreibt die 
Sinusansteuerung eines BLDC mit Sensoren.

: Bearbeitet durch User
von Jan S. (Firma: Eigenbau) (vox_equus)


Lesenswert?

Matthias S. schrieb:
> Pfiffige Entwickler nutzen diesen Zustand, um schon mal das
> Rekuperieren vorzubereiten.
Da wage ich mich nicht dran, im Nu sind bei Versuchen die Fets 
verknallt.
>
> AppNote AVR447/doc8010 bei Microchip übrigens beschreibt die
> Sinusansteuerung eines BLDC mit Sensoren.
Danke, werde mir das anschauen, die Sinusoidal-Steuerung ist alles 
Andere als trivial, das ist für mich eine andere Dimension...
Freundliche Grüsse Jan

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


Lesenswert?

Jan S. schrieb:
> Danke, werde mir das anschauen, die Sinusoidal-Steuerung ist alles
> Andere als trivial, das ist für mich eine andere Dimension...

Muss heute aber sein, vor allem für Traktion. Niemand möchte einen 
blockkommutierten Motor mit Ruckeln und Geräusch. Zumal du da 
Rechenleistung ohne Ende hast. Das Prinzip von AVR447 habe ich mal 
portiert auf XMega und STM32 und das war gar nicht so schwer.

von Jan S. (Firma: Eigenbau) (vox_equus)


Lesenswert?

Matthias S. schrieb:
> Muss heute aber sein, vor allem für Traktion. Niemand möchte einen
> blockkommutierten Motor mit Ruckeln und Geräusch. Zumal du da
> Rechenleistung ohne Ende hast. Das Prinzip von AVR447 habe ich mal
> portiert auf XMega und STM32 und das war gar nicht so schwer.
Ja, an der Rechenleistung des Pic fehlts nicht... mal schauen, ob ich 
weiter komme, danke, freundliche Grüsse Jan

P.S. Danke noch mal für den Hinweis auf AVR447, dort wird die Technik 
der Strombegrenzung sehr gut beschrieben, Gruss Jan

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