Ich versuche, einen BLDC mit einem Mikrocontroller, einem diskreten Wechselrichter und einem sensorlosen Netzwerk für Feedback zu betreiben. Hier ist das Modell, das ich verwende, und was letztendlich meine PCBA ist:
Ich fahre dieses Ding gerade im offenen Regelkreis, nur um die Wellenformen usw. zu überprüfen. Folgendes bekomme ich, wenn ich den Motor mit einem Arbeitszyklus von 18 kHz und 30 % antreibe:
Da ich erwarte, dass die Kommutierungssequenz so abläuft: , sieht das richtig aus ... Also denke ich, dass ich das richtig gemacht habe.
Meine Frage ist, warum sieht die schwebende Phase so aus, als würde sie viel zusätzliches Gepäck mit sich führen? Und wenn es so sein soll, an welchem Punkt würden Sie dann sagen, dass die Nulldurchgänge auftreten? Ich hatte gehofft, dass es etwas sauberer aussehen würde, wie aus diesem Anwendungshinweis von Microchip http://ww1.microchip.com/downloads/en/AppNotes/01160b.pdf Sehen Sie, wie es eine klare, lineare Rampe gibt? bei mir sehe ich das nicht..
Außerdem sollte ich darauf hinweisen, dass ich nur ein Bein PWMe, während das andere an eine Gleichspannung (GND in diesen Bildern) gebunden ist, obwohl ich damit gespielt habe, VDC angeschlossen zu lassen und das GND-Bein PWM zu machen, aber es hat nicht funktioniert alles in eine schöne Rampe ... Es hat nur die Polarität dessen geändert, was ich in meinen ersten Bildern gezeigt habe).
Der Vollständigkeit halber habe ich außerdem einige nähere Ansichten der Wellenformen hinzugefügt ... Denken Sie noch einmal daran, dass sie im offenen Regelkreis laufen, also gibt es keine Rückmeldung ... Ich schalte nur den Kommutierungsstatus bei einem Timer-Rollover, mit dem ich zufrieden war mit zum Debuggen.
Hier ist ein genauerer Blick auf die Kommutierungssequenz:
Und hier ist eine ansteigende Schwebephase:
Und hier ist eine fallende Schwimmphase ... ich denke, sie fällt ... der Boden steigt, aber vielleicht irre ich mich ...:
Ist das richtig, oder mache ich etwas falsch?
Bearbeiten
Dank der folgenden Antwort bringe ich den Motor jetzt für 100 ms auf Hochtouren, um das BEMF-Kochen zu erreichen, und behalte dann den Moment im Auge, in dem meine niedrige Seite der PWM über Null geht. Ich warte dann eine gewisse Totzeit und drücke dann auf Kommutierungsvorlauf. Das ist viel besser ... Früher lief der Motor langsam bei etwa 112 mA bei 12 V, aber jetzt kann er problemlos bis zu 7200 U / min bei 40 mA bei 12 V laufen. Das Laden des Motors (indem ich die Welle mit meinen Fingern auf den Rotor drücke) verlangsamt ihn überhaupt nicht, es erhöht einfach die Stromaufnahme wie erwartet.
Bilder oder es ist nicht passiert:
Ja, die Diagramme sind sinnvoll, aber Ihre auferlegte PWM ist nicht „in Phase“ mit der BEMF-Spannung.
Wie Sie bereits sagten, treiben Sie diese offene Schleife an, die eher einem Schrittmotor ähnelt, sodass Ihr „Positiv“ nicht mit dem BEMF-Positiv übereinstimmt. Wenn Sie anfangen, Ihr Sensorfeedback zu verwenden, wird Ihr BEMF viel mehr wie im Beispiel aussehen.
Beachten Sie, dass die Linearität der BEMF stark vom Motor abhängt. Seien Sie nicht beunruhigt, wenn Sie eine Krümmung sehen:
Beachten Sie, dass diese Wellenform „in Phase“ ist, was bedeutet, dass der Antrieb ein Hoch auf diese Phase anwendet, wenn die Phase ihren Höhepunkt erreicht. Das ist was du willst. Im Moment wenden Sie es zu einem anderen Zeitpunkt an, also sind Sie phasenverschoben.
Trevor_G