Hey, ich erprobe gerade meinen BLDC Treiber "Prototyp". Ich nutze einen Attiny 861, Halbbrückentreiber vom Typ IR2104 und Mosfets vom Typ IRLU024. Die "BEMF-Schaltung" besteht aus 10 kOhm (zu Phase und Sternpunkt) und 7,5 kOhm (gegen Masse) Widerständen sowie 100 nF Kondensatoren gegen Masse. Soweit läuft es schon ganz gut, aber hin und wieder scheint es Fehlkommutierungen zu geben. Ich bin unsicher ob es an der Programmierung oder Störungen auf den Komparator liegt. Ich hänge 4 Oszillogramme an, die jeweils die Spannungsverläufe der 3 Phasen und des Sternpunkts zeigen - bei 3 verschiedenen Drehzahlen. Die PWM ist noch deutlich zu sehen, aber vor allem verwundert mich dass die Kanäle unterschiedlich stark "gestört" scheinen. Ich weiß, es folgt die Glaskugelfrage: Sind die Störungen mehr auf Fehlkommutierungen, Fehlmessung oder Schaltungsfehler zurückzuführen. Kann / sollte ich die Filterung elektronisch verbessern? Ich freue mich über jeden Tipp, wie ich vorgehen könnte um Schritt für Schritt weiterzukommen. Ich reiche natürlich auch gerne Infos nach! Vielen Dank und beste Grüße Daniel
Daniel H. schrieb: > Ich reiche natürlich auch gerne Infos nach! Mach mal, zum Beispiel dem Schaltplan mit eingezeichnete Messpunkten und dem kompletten Quelltext. Ich sehe nämlich wenig Sinn darin, über ein paar Oszilloskop-Bilder zu schwafeln. Du willst ja nicht dein Oszilloskop reparieren.
Guten Morgen, anbei der Quelltext und der Schaltplan. Ein Teil des Codes stammt vom "Brushless Motor Controller" von Ulrich Radig. Stefan ⛄ F. schrieb: > Du willst ja nicht dein Oszilloskop reparieren. Stimmt, das möchte ich natürlich nicht. Die erste Frage sollte eher eine Einschätzung erbitten, ob die Messergebnisse plausibel scheinen.
Mit so simplen R/C Filtern bekommst du die PWM nie und nimmer in "saubere" Sinus Signale umgewandelt. Grössere Kondensatoren werden das Ergebnis natürlich mehr glätten, aber auch mehr zeitlich verschieben und die Amplitude reduzieren. Insgesamt sehen die Bilder für mich plausibel aus.
Stefan ⛄ F. schrieb: > Mit so simplen R/C Filtern bekommst du die PWM nie und nimmer in > "saubere" Sinus Signale umgewandelt. Wäre zwar schön, aber hatte ich auch nicht erwartet. Hauptsache es funktioniert hinreichend. Bei weiteren Tests ist mir aber gerade aufgefallen, dass irgendwas nicht zu stimmen scheint. Anbei ein Bild bei voller Leistung/ Drehzahl/ PWM. Die Störungen der PWM sind logischerweise weg, aber ich hätte erwartet ähnliche Spannungsverläufe der 3 Phasen zu sehen - dem ist offensichtlich nicht so. Zufällig eine Idee worauf das hindeuten könnte? Ich stehe sprichwörtlich auf dem Schlauch!
Carl D. schrieb: > Die LED würde ich mir sparen. Die brennt eh nie. Vielen Dank für den hilfreichen und konstruktiven Beitrag. Ich bin auch froh, dass die LED nicht brennt. Das Leuchten - zum gewünschten Zeitpunkt - gefällt mir besser.
Daniel H. schrieb: > Carl D. schrieb: >> Die LED würde ich mir sparen. Die brennt eh nie. > > Vielen Dank für den hilfreichen und konstruktiven Beitrag. Ich bin auch > froh, dass die LED nicht brennt. Das Leuchten - zum gewünschten > Zeitpunkt - gefällt mir besser. Das war ein dezenter Hinweis auf die gewählte Anschlußweise. So wie im Schaltplan angeschlossen, müßte der AVR eine negative Spannung liefern. Vielleicht kannst du mit der Information mehr anfangen.
Vielleicht haben die drei Spulen des Motor nicht identische Eigenschaften. Wenn du die drei Anschlüsse vertauschst, sieht man das dann auch am Oszilloskp? Du könntest zu Gegenprobe auch mal einfach Widerstände oder Glühlampen als Last benutzen.
Carl D. schrieb: > Das war ein dezenter Hinweis auf die gewählte Anschlußweise. So wie im > Schaltplan angeschlossen, müßte der AVR eine negative Spannung liefern. > Vielleicht kannst du mit der Information mehr anfangen. Danke für den Hinweis. Jetzt weiß ich worum es geht. Den Schaltplan habe ich heute morgen etwas "aufgeräumt". Keine Ahnung ob der Fehler im Layout auch vorher bestand. Auf der Platine habe ich die LED natürlich korrekt eingelötet. Ich korrigiere den Schaltplan entsprechend.
Stefan ⛄ F. schrieb: > Vielleicht haben die drei Spulen des Motor nicht identische > Eigenschaften. Wenn du die drei Anschlüsse vertauschst, sieht man das > dann auch am Oszilloskp? Das Ergebnis mit vertauschten Phasen ist identisch. Stefan ⛄ F. schrieb: > Du könntest zu Gegenprobe auch mal einfach Widerstände oder Glühlampen > als Last benutzen. Ich schaue mal ob ich was geeignetes finde und werde berichten. Ich vermute Ursache meiner Probleme sind Fehler in der Programmierung. Anbei auch der korrigierte Schaltplan.
Daniel H. schrieb: > Das Ergebnis mit vertauschten Phasen ist identisch. Verstehe ich dich richt, dass du drei Phasen mit identischer Schaltung hast, aber unterschiedlichen Signal? Und es ist ganz sicher, dass die Last nicht daran Schuld ist? Dann kann doch nur sein, dass a) Der Mikrocontroller unterschiedliche PWM Signale erzeugt b) Die Schaltung nicht dem Plan entspricht c) Die Verteilung der Stromversorgung mangelhaft ist Zumindest a und c kannst du leicht mit dem Oszilloskop überprüfen.
Stefan ⛄ F. schrieb: > Verstehe ich dich richt, dass du drei Phasen mit identischer Schaltung > hast, aber unterschiedlichen Signal? Und es ist ganz sicher, dass die > Last nicht daran Schuld ist? Danach schaut es aus. Zumindest ändert sich nichts an meiner Messung. Ich habe jetzt drei 90 Ohm Widerstände zur Lastsimulation genutzt. Es erfolgt natürlich nur noch eine Zwangskommutierung mit etwa 200 Hz. Die Aufnahmen entsprechen PWM-Werten von 32, 128 und 255. Bei PWM255, also "Dauer-Ein" schauen die 3 Phasen bis auf den gewollten Versatz ziemlich identisch aus. Bei geringen Tastverhältnissen der PWM Signale zeigen sich Unterschiede. Kanal 4 zeigt die Zeitpunkte der Zwangskommutierung. Stefan ⛄ F. schrieb: > a) Der Mikrocontroller unterschiedliche PWM Signale erzeugt Die eigentlichen Signale schauen identisch aus. Liegt es vllt. an der Art wie ich die Register bzgl. des Compare Output Modes ändere? Stefan ⛄ F. schrieb: > b) Die Schaltung nicht dem Plan entspricht Ist natürlich möglich, aber ich kann leider nichts finden. Stefan ⛄ F. schrieb: > c) Die Verteilung der Stromversorgung mangelhaft ist Danach sieht es nicht aus.
Ohne mir das Ganze näher angeschaut zu haben, nur eine Idee: es ist bekannt, dass "The OCR1x Registers are double buffered when using any of the Pulse Width Modulation (PWM) modes. ... The double buffering synchronizes the update of the OCR1x Compare Registers to either top or bottom of the counting sequence"?
> Die Aufnahmen entsprechen PWM-Werten von 32, 128 und 255.
Gemessen an C9, C10 und C11, richtg?
Entferne mal R12, R13 und R14, damit sich die Tiefpässe der drei Phasen
nicht gegenseitig beeinflussen.
Wie dem auch sei, bei deinen jüngsten Bildern sehen alle drei Kanäle
gleich aus. Also kommt die ungleichmäßige Verzerrung also vom Motor. Da
könnte man sich vielleicht noch fragen, warum der Motor das
Ausgangssignal der Endstufen überhaupt signifikant beeinflussen kann.
Wenn die beiden Transistoren sauber im Wechsel voll durchschalten, kann
da gar keine Verzerrung auftreten, denn das Signal ist digital.
Aber wenn die Transistoren nicht sauber schalten, kann der Motor die
Spannungspegel beinflussen. messe das nach, aber nicht an den Ausgängen
deiner Tiefpässe, sondern an den Ausgängen deiner Endstufen. Ich will
das digitale PWM Signal sehen.
Um die Sache besser analysieren zu können, solltest du
a) alle drei Timer einfach mal auf einen festen PWM Wert setzen, anstatt
zeitlich versetzte Sinus Signale zu erzeugen. Sieht das Ergebnis mit
KLastwiderständen dann wie erwartet aus? Kannst du PWM Signale dann
sehen, sind sie gleichmäßig (ohne Aussetzer)?
b) drei Zeitlich versetzte Sinus Kurven erzeugen, ohne das Feedback
Signal zu verwenden. Sieht das Ergebnis mit KLastwiderständen dann wie
erwartet aus? Kannst du PWM Signale dann sehen, sind sie gleichmäßig
(ohne Aussetzer)?
Wenn das beides nicht klappt, dann kann die Steuerung insgesamt mit
Feedback Signalen auch nicht gehen.
>> Die Verteilung der Stromversorgung mangelhaft ist > Danach sieht es nicht aus. Dazu würde ich gerne mal Oszilloskop-Bilder sehen. Schließe GND vom Oszilloskop an die GND Klemme des Boardes an, wo das netzteil angeschlossen ist. Dann interessiert mich das Bild von allen Source und Drain Anschlüssen aller 6 Transistoren. Also insgesamt 9 Messungen. Und wie gesagt: Vergiss erst einmal die Sinus kurven. Ich will die PWM Signale sehen, insbesondere das Timing, die Flanken und die Spannungspegel von Low und High. Saubere digitale Ausgangssignale sind Voraussetzung, dass der ganze Aufbau funktionieren kann.
Noch eine Sache, vielleicht bin ich blöd, aber ich sehe in deinem Programm gar keinen Sinus-Generator. Kann es sein, dass dieses Signal ausschließlich durch die analogen Teile der Schaltung (also dem Feedback) erzeugt werden? Ich glaube nicht, dass das in der Praxis funktionieren kann. Eigentlich sollte das Programm drei zeitlich versetzte Wechselspannungen erzeugen, deren Phasenlage an das Feedback vom Motor angepasst wird und deren Frequenz vom Anwendungsfall vorgegeben wird. Das Feedback Signal wird immer verzerrt sein, weil der Motor nicht 100% symmetrisch gebaut ist und auch nicht 100% gleichmäßig belastet wird. Denke da nur mal ein ein Modellauto, dass über ein Steinchen fährt. Da entsteht ein Ruckler, der das Signal verändern wird, dass der µC erzeugt. Da kann ja wohl nicht Sinn der Sache sein. Mir scheint das Konzept dieses Programm fragwürdig. Aber vielleicht irre ich mich da. Lass uns erst einmal sicher stellen, dass die Ausgangs-Treiber funktionieren.
Schau mal auf die u.g. Seiten, da kannst Du Dir Anregungen für Dein Projekt holen, Hardware und Software. http://wiki.mikrokopter.de/BL-Ctrl_V1.2 http://svn.mikrokopter.de/websvn/listing.php?repname=BL-Ctrl&path=%2Ftags%2FV0.42%2F&#a4bfcc0886576e3118d94460220fa558a Christian
Vielen Dank für die ausführlichen Antworten und Tipps. Wie es aussieht war das größte Problem doch irgendwie die Spannungsversorgung - mehr die Masseführung. Irgendwie habe ich die etwas vernachlässigt und eine kleine Insel geschaffen. Anbei Bilder des Layouts (nicht exakt wie im Schaltplan, aber die Platine in Nutzung schaut exakt so aus) und in "bot_Masseflaeche" habe ich markiert wo ich Brücken eingelötet habe. Nach dieser Veränderung ist die Stromaufnahme gesunken, die Drehzahl hat sich um 75 % erhöht und die Spannungsverläufe sehen deutlich besser - vor allem ähnlicher - aus. Stefan ⛄ F. schrieb: >> Die Aufnahmen entsprechen PWM-Werten von 32, 128 und 255. > > Gemessen an C9, C10 und C11, richtg? Genau. Stefan ⛄ F. schrieb: > Aber wenn die Transistoren nicht sauber schalten, kann der Motor die > Spannungspegel beinflussen. messe das nach, aber nicht an den Ausgängen > deiner Tiefpässe, sondern an den Ausgängen deiner Endstufen. Ich will > das digitale PWM Signal sehen. Kann ich bei Interesse gerne noch machen. Stefan ⛄ F. schrieb: > Dazu würde ich gerne mal Oszilloskop-Bilder sehen. Schließe GND vom > Oszilloskop an die GND Klemme des Boardes an, wo das netzteil > angeschlossen ist. Dann interessiert mich das Bild von allen Source und > Drain Anschlüssen aller 6 Transistoren. Also insgesamt 9 Messungen. Die Aufnahmen mache ich gleich. Stefan ⛄ F. schrieb: > aber ich sehe in deinem Programm gar keinen > Sinus-Generator. Kann es sein, dass dieses Signal ausschließlich durch > die analogen Teile der Schaltung (also dem Feedback) erzeugt werden? Ich bin nicht ganz sicher ob es das perfekt beschreibt, aber so funktioniert das wohl. Christian B. schrieb: > Schau mal auf die u.g. Seiten, da kannst Du Dir Anregungen für Dein > Projekt holen, Hardware und Software. Das schaue ich mir mal an. Danke. Vielleicht ist da ja etwas erheblich cleverer gelöst als bei mir - wahrscheinlich sogar ;).
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.