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
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
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
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
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?
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.
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.
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?
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.
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
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.
Bei Pedelec-BLDC-Kontrollern wird der Akkustrom (also alle 3 Motorphasen gemeinsam) überwacht. Wird der Strom zu hoch, kann der Kontroller Gegenmaßnahmen ergreifen.
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
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.
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.
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
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
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
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
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
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
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.
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
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
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.
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.
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.
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
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.
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.
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
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.