Motorstrom BLDC

OP (Firma: Eigenbau) #7280356
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
OP (Firma: Eigenbau) #7379603
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

#7379835
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

Moderator (Firma: Titel) Persönliche Seite #7380285
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?

OP (Firma: Eigenbau) #7380341
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.

OP (Firma: Eigenbau) #7380377
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..

#7380537
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.

OP (Firma: Eigenbau) #7380578
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.

Angehängte Dateien:
OP (Firma: Eigenbau) #7380579
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.

Moderator (Firma: Titel) Persönliche Seite #7380893
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.

(Firma: matzetronics) #7380908
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.

OP (Firma: Eigenbau) #7380927
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

(Firma: matzetronics) #7381050
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.

OP (Firma: Eigenbau) #7381074
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

Moderator (Firma: Titel) Persönliche Seite #7381117
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.

OP (Firma: Eigenbau) #7381178
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.

Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #7381179
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.

Angehängte Dateien:
(Firma: matzetronics) #7381245
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.

OP (Firma: Eigenbau) #7381318
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

(Firma: matzetronics) #7381685
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.

OP (Firma: Eigenbau) #7381735
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren