DC-Motordrehzahl vs. PWM-Tastverhältnis

Soweit ich weiß, gab es einige Posts, in denen nach Problemen mit der DC-Motordrehzahl und dem PWM-Tastverhältnis gefragt wurde. Ich fand diese Fragen jedoch anders als das, was ich stellen wollte, also muss ich dieses Thema erneut stellen.

Ich habe eine Schaltung entworfen, um einen kleinen Gleichstrommotor anzutreiben, wie unten gezeigt. Die P-Kanäle in der H-Brücke sind entweder Full-ON oder Full-OFF, je nachdem, in welche Richtung sich der Motor dreht, und der entsprechende N-Kanal erhält PWM-Ansteuersignale. Die PWM-Frequenz beträgt 20 kHz, VDC beträgt 7 V, T1 und T2 sind mit den DC-Motorklemmen verbunden und die verwendeten Gate-Widerstände betragen 10 Ohm.

Nach meinem Verständnis soll die Drehzahl des Gleichstrommotors proportional zur angelegten Antriebsspannung sein. Wenn also VDC fest ist, sollte die Motordrehzahl meiner Meinung nach proportional zum PWM-Tastverhältnis sein, da die Motorantriebsspannung VDC * PWM_dutycycle ist.

Geben Sie hier die Bildbeschreibung ein

Dies war jedoch weit vom tatsächlichen Fall entfernt. Unten ist die von mir aufgezeichnete Geschwindigkeits-/Arbeitszykluskurve ( Bild aktualisiert ).

Geben Sie hier die Bildbeschreibung ein

Als ich das PWM-Tastverhältnis festlegte, aber den VDC-Wert änderte, wurde die Motordrehzahl jedoch proportional zu VDC*PWM_dutycycle.

Würde jemand bitte mitteilen, warum VDC * PWM_dutycycle beim Ändern von VDC unterschiedliche Auswirkungen auf die Motordrehzahl haben könnte, verglichen mit dem Ändern des PWM-Tastverhältnisses?

[ aktualisieren ]

Ich habe vergessen zu erwähnen, dass die Motorwelle mit einem Getriebe verbunden war, dessen Untersetzungsverhältnis 290 beträgt, und die im obigen Diagramm gezeigte Geschwindigkeit die Motorgeschwindigkeit ist, nicht die Ausgangsgeschwindigkeit des Getriebes.

Ich begann mich zu fragen, ob dieses Problem zwischen Geschwindigkeit und Einschaltdauer durch die Getriebereibung verursacht wurde, die als Motorlast fungierte.

Angenommen, Vcc = 5 V und DT = 0,6. Für eine 1-V-Erhöhung der Spannung, während der DT fixiert wurde, erhalten Sie eine 0,6-V-Differenz im Ausgang. Wenn Sie andererseits den DT um 10 Prozent erhöhen, während die Spannung fest ist, erhalten Sie eine 0,5-V-Steigerung des Ausgangs. In beiden Fällen wird also die an den Motor gelieferte Durchschnittsleistung erhöht, jedoch mit unterschiedlichen Beträgen.
Ich verstehe Ihren Standpunkt, aber wenn Sie sich das Diagramm ansehen, führten 20 % Einschaltdauer und 40 % Einschaltdauer nur zu einer Geschwindigkeitssteigerung von 30 %. Bei 7V VDC bedeutet 20% Einschaltdauer 1,4V, 40% 2,8V, sollte nicht auch die Geschwindigkeit verdoppelt werden?
Nach meinem Verständnis und der Tatsache, dass reale Motoren einen Widerstand und eine Reihe anderer Dinge haben, stimmt es nicht immer, dass sich die Motordrehzahl linear mit der angelegten Spannung ändert. Irgendwann kann es leicht beginnen, ein nichtlineares Verhalten zu zeigen.
Welchen Motor hast du getestet (Marke/Modell, technische Daten)? Welche Drehzahl hat der Motor bei 7V direkt gemacht? Wie haben Sie das PWM-Verhältnis ermittelt und wie haben Sie es geschafft, mit 0 % PWM über 500 U/min zu kommen ? Welche Schaltung treibt die unteren FET-Gates an? Haben Sie die Antriebswellenform untersucht?
Hallo, Bruce, es tut mir leid, dass ich einen Fehler in der Einheit der Plot-Y-Achse gemacht habe, und ich habe das Bild in der Post aktualisiert. Das PWM-Verhältnis wird von der MCU gesteuert und wir haben es mit einem Oszilloskop überprüft. Der erste Testpunkt könnte etwas irreführend sein, aber er wurde bei einem Arbeitszyklus von 1 % getestet. Die P-Kanäle wurden von einem anderen Transistor angesteuert und die N-Kanäle werden direkt von MCU-PWM-Ausgängen angesteuert. Ich habe die Gate-Signale und Motorklemmenspannungen beobachtet und denke, dass die MOSFETs ordnungsgemäß funktionieren. Was die Motorspezifikation betrifft, habe ich sie leider nicht.

Antworten (1)

Das von Ihnen geteilte Diagramm scheint dem hier gezeigten mit Diodenfreilauf ziemlich ähnlich zu sein . Da Sie eine H-Brücke mit aktivem Freilauf verwenden, würde ich vermuten, dass dies mit Abfall- und Ausbreitungsverzögerungen bei den MOSFETs zusammenhängen könnte . Während der Übergänge haben Sie eine Zeit, in der nur die Diode freiläuft. Versuchen Sie, Ihrer PWM-Generierung eine Totzeit hinzuzufügen, Sie können für diese Angelegenheit TIMx_BDTR verwenden.

Ab 1 scheint es auch so, als würden niedrigere Gate-Ströme dazu neigen, Nichtlinearität hinzuzufügen, sodass das Ändern der Gate-Widerstände gegen niedrigere helfen könnte.

Aber wie Sie sagten, würde die Getriebeflüssigkeit Nichtlinearität hinzufügen. Versuchen Sie, den Motor ohne Getriebe zu fahren und die Drehzahl zu überprüfen. Wenn die Geschwindigkeitssteuerung von größter Bedeutung ist, wird von einer Steuerung ohne Rückführung abgeraten. Eine Geschwindigkeitsrückmeldung mit einem Encoder und einem PID-Algorithmus, der die PWM steuert, wäre ein guter Ansatz, wie hier zu sehen ist .

Außerdem ist das von Ihnen geteilte Diagramm einer Strom-Drehmoment-Kurve eines Elektromotors sehr ähnlich. Wenn der Motor eine Last hat (etwas, das davon angetrieben wird), würde die Drehzahl direkt vom Drehmoment beeinflusst. Wenn dies der Fall ist, ist die Kurve in RPM x PWM einfach die Nichtlinearität des Motors. Sie können das Problem einfach lösen, indem Sie diese Punkte in Ihrer Software abbilden und für die gewünschte Drehzahl interpolieren. Die beste Lösung wäre eine Closed-Loop-Steuerung, indem Sie den Encoder-Ausgang in Ihre Software einspeisen und eine PID zur Steuerung der Geschwindigkeit verwenden.