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.
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?
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.
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Simon Richter