Sind diese BLDC-Wellenformen sinnvoll?

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:

Geben Sie hier die Bildbeschreibung ein

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:Geben Sie hier die Bildbeschreibung ein

Da ich erwarte, dass die Kommutierungssequenz so abläuft: Geben Sie hier die Bildbeschreibung ein, 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 Geben Sie hier die Bildbeschreibung ein 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:

Geben Sie hier die Bildbeschreibung ein

Und hier ist eine ansteigende Schwebephase:

Geben Sie hier die Bildbeschreibung ein

Und hier ist eine fallende Schwimmphase ... ich denke, sie fällt ... der Boden steigt, aber vielleicht irre ich mich ...:

Geben Sie hier die Bildbeschreibung ein

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:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Linkbeschreibung ein

Das sieht so aus, als wäre es eine Transformatorwirkung zwischen Spulen. Das holst du dir immer. Überprüfen Sie die Phasenströme anstelle von Spannungen.

Antworten (1)

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:

BLDC-Wellenform

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.

Danke, das ist gut zu hören. Wenn Sie sagen, dass PWM nicht in Phase ist, sprechen Sie von den Hochfrequenzimpulsen, nicht von der Kommutierungsfrequenz, oder? Und können Sie die letzten Sätze erläutern? Nicht sicher durch "das Laufwerk wendet ein Hoch auf diese Phase an, da die Phase ihren Höhepunkt erreicht." danke, dass du dir die Zeit genommen hast, mir zu helfen
Kein Problem. Auf der Wellenform, die ich verlinkt habe, legt der Antrieb etwa 1/3 durch das Bild Strom an die Phase an. Beachten Sie, dass die Wellenform eine sehr plötzliche Diskontinuität zwischen dem gekrümmten Bereich und dem harten On aufweist. Das ist der Antrieb, der einen High-Zustand an die Phase anlegt, wenn auch durch die PWM-Aktion gedämpft.
Ok, wenn ich Sie richtig verstehe, muss ich anscheinend warten, bis der untere Rand der Wellenform aufhört, unter Null zu gehen (Abtastung während pwm off), und dann eine vorgeschriebene Zeitspanne warten und dann den Kommutierungszustand ändern? Aufschäumen, ausspülen, wiederholen? Und Sie sagen mir auch, dass ich diese gerade nicht sehen kann, aber sie sind irgendwo da? Können Sie vorschlagen, welche Parameter für den Wechselrichtertreiber Sie ändern würden, um sie zumindest im offenen Regelkreis sehen zu können? Wenn ich die richtige Wellenform erscheinen lassen könnte, selbst wenn sie erfunden ist, würde das das Debuggen des Feedback-Codes um einiges einfacher machen!
@testname123 Ich war unterwegs, als du das geschrieben hast, entschuldige die späte Antwort. Der Übergang von Open-Loop zu Closed-Loop ist beim ersten Mal immer schwierig. Sie können BEMF oben oder unten am PWM messen, spielt keine Rolle, solange Sie dies beide Male an derselben Stelle tun. Ich bevorzuge das Oberteil. Wenn Sie einen Nulldurchgang erkennen (wenn BEMF > Vbus/2), warten Sie eine Zeit basierend auf der Geschwindigkeit und kommutieren Sie dann. Zum Debuggen läuft der Motor ohne die zeitgesteuerte Wartezeit einwandfrei, er ist nur nicht so effizient ... kommutieren Sie einfach, wenn Sie einen Nulldurchgang erkennen. Das sollte helfen!
Danke für die Rückmeldung! Eine Frage jedoch ... Wenn Sie die zweite nach unten gerichtete BEMF-Wellenform bemerken, steigt sie niemals über Vbus / 2 ... ist das ein Fehler der offenen Schleife? Ich habe versucht, mit der Kommutierungsvorschubgeschwindigkeit und dem Arbeitszyklus im offenen Regelkreis zu spielen, aber ich muss unpraktisch langsam und mit einem riesigen Arbeitszyklus vorgehen, um das hintere Ende der Spitze der BEMF dazu zu bringen, über Vbus / 2 zu gehen.
Wenn Sie an den Spitzen der PWM abtasten (abhängig von den PWM-Techniken, die Sie ebenfalls verwenden), sollten Sie in der Lage sein, den Nulldurchgang zu finden. Dies funktioniert am besten mit komplementären PWM-Methoden (immer hoch oder niedrig in den angesteuerten Phasen, niemals ruhend). Das von Ihnen gepostete Bild „klare lineare Rampe“ verwendet eine kostenlose Methode. Beachten Sie, wie es PWM gibt, wenn die Phase „hoch“ ist UND wenn die Phase „niedrig“ ist? Ihre PWM-Methode hat kein PWM, wenn die Phase niedrig ist. Das könnte helfen.
Ahh, wissen Sie was, ich war die ganze Nacht wach, um Dinge umzuschreiben, um Ihre Ratschläge aus Ihren vorherigen Kommentaren zu berücksichtigen, und gerade als ich die süßen und köstlichen Wellenformen und das 18-kHz-Gejammer des Erfolgs genoss, sah ich diesen Kommentar! Du hattest Recht... Das Vertrauen in den Algorithmus hat alles geregelt... Ich fing an, einen versprochenen Nulldurchgang auszulösen, und tatsächlich, als ich den Algorithmus fahren ließ, erschienen sie wie versprochen. Ich habe sogar einen kleinen Akkumulator/Schwellenwert als Hold-Off nach einem Nulldurchgangsereignis hinzugefügt, um dem Umschalten etwas Totzeit hinzuzufügen. Ich werde die Frage aktualisieren und danke für die Hilfe