Welcher Ansatz ist besser, um einen bürstenlosen Gleichstrommotor mit PWM-Tastverhältnis anzutreiben?

Ich mache ein Projekt, das einen bürstenlosen DC-Getriebemotor verwendet.

Der Motor ist mit einer beweglichen Plattform verbunden. Ich werde den Motor mit PWM antreiben, der Motor bewegt dann die Plattform von einer Grad- in eine Grad-Position.

Geben Sie hier die Bildbeschreibung ein

Es gibt eine RPM-Einstellung für die Bewegungsgeschwindigkeit, die erreicht werden muss, um dies jedes Mal zu tun, wenn die Spitzenposition (0 Grad) erreicht wird. Ich lese die Winkelgeschwindigkeit vom Kreiselsensor ab, der in der Plattform angebracht war, und gebe den Wert dann an den PID-Regler weiter.

Ich möchte fragen, welcher der richtige / bessere Ansatz ist, um den Motor anzutreiben: (Motor stoppt zunächst)

(1) Beginnen Sie mit einem MINIMUM Duty Cycle (sagen wir ~ 30 % ist das Minimum, um die Plattform zu bewegen), dann erhöhe ich das Duty Cycle in jedem Zeitintervall (z. B. +1 % alle 100 ms), wenn es 0 Grad erreicht Position I Beginnen Sie mit dem Bremsen, indem Sie das Tastverhältnis verringern (z. B. -2 % alle 100 ms), und stoppen Sie dann den Motor, wenn Sie die Endposition erreichen. Das wird ein Zyklus sein, dann werde ich nach jedem abgeschlossenen Zyklus einen neuen Wert für das Inkrement und Dekrement berechnen, um die RPM-Einstellung zu erreichen.

(2) Von der Startposition aus treibe ich den Motor mit konstantem Arbeitszyklus an, und wenn ich dann die 0-Grad-Position erreiche, beginne ich mit dem Bremsen, genau wie bei Annäherung (1) mit Dekrement. Dann berechne ich nach jedem abgeschlossenen Zyklus einen neuen Wert für die verwendete konstante Leistung und auch den Dekrementwert beim Bremsen.

Welcher ist der bessere ALGORITHMUS mit Vor- und Nachteilen?

Die gestellte Frage ist im Grunde nur, ob es sinnvoll ist, die Bewegung langsam oder abrupt zu starten. Das hängt davon ab, ob Ihre Anwendung erwartet, dass die Plattform plötzlich einen großen Sprung macht (wenn das System eingeschaltet ist) und ob der Motor genug Leistung liefern kann, um die Bewegung ohne Rutschen zu starten.

Antworten (1)

Sie sagen, dass Sie einen PID-Regler verwenden werden, aber dann sprechen Sie darüber, das Tastverhältnis des Motors direkt zu steuern. Ich glaube, Sie verstehen nicht, was ein PID-Regler ist .

Sie sollten einen linearen Controller verwenden, der möglicherweise mit Integrator-Anti-Windup ausgestattet ist. Hier ist ein einfaches Blockdiagramm, das für Sie funktionieren sollte. Der Block „Rotation“ ist irgendwie fiktiv; Es ist nur da, um von der Motordrehzahl zur Motorposition zu wechseln.

Sie brauchen keine verrückte Sequenzierung mit Timern und if-Anweisungen und Hunderte von Codezeilen! Sie brauchen nur einfache Linearregler, wie sie die Menschheit seit 100 Jahren herstellt.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Nein nein nein, mein System ist nicht wie dieses Blockdiagramm. OK, vergessen Sie die PID, nehmen wir an, dies verwendet nur Softwarecode. Welcher Ansatz ist besser (1) oder (2)? Das ist, was ich frage
Ich bin mir ziemlich sicher, dass beide gleichermaßen düstere Ergebnisse haben werden. Ich mache das jetzt seit 30 Jahren und habe sowohl nach (1) als auch nach (2) aufgeräumt. Ich weiß, wovon ich spreche. Nur weil etwas eine PID-Schleife implementiert, heißt das nicht, dass es kein Algorithmus ist, also können Sie das Blockdiagramm verwenden, das ich Ihnen gebe, und es einen Algorithmus nennen.