Hallo ich bin gerade dabei einen 24V-DC Motor mit Arduino zu regeln. Ich benutze eine H-Brücke mit PWM um die Drehzahl zu steuern. Im Motor befindet sich ein Drehpotentiometer welches auf 10 Umdrehungen genau regeln kann. Mein Ziel ist es über ein Zahnstangen/Ritzel System. In einem Bereich von 0 bis 0,5 m zu regeln (Wert ist variabel). Die Genauigkeit ist im mm Bereich also nicht allzu genau. Ich habe es geschafft das Analoge Signal am Arduino auszulesen. Das Problem das ich habe ist, dass wenn ich auf die Position hin will also den Motoren fahren lasse und dann bei der Position stoppen lasse. Läuft der Motor immer nach und will Natürlich wieder zurück auf die eingestellte Position in dem er die Drehrichtung ändert. Danach dreht er wieder beim Ausschalten nach und das ganze ist ein Vorgang der sehr lange dauert also das Wiederholt sich sehr oft bis er sich einpendelt bis der Motor im gewünschten Bereich ist. Das dauert mir aber zu lange und ich brauche Hilfe. Denn in Regelungstechnik bin ich ein Anfänger. Habt ihr Lösungsvorschläge. LG Mathias
Wenn du es schnell und genau willst brauchst du einen PID-Regler. Für den Anfang einfacher und wahrscheinlich ausreichend ist der PI-Regler. Genau ja, aber langsamer. Für dein System unbrauchbar der noch einfachere P-Regler. Dein konkretes Problem kann niemand aus der Ferne lösen, du musst dich mit Regelungstechnik befassen.
Typischer Weise verwendet man hier kaskadierte Regler, P für Position -> PI für Drehzahl -> PI für Strom -> Stellgröße. PID ist hier eigentlich nicht hilfreich, da das System nicht wirklich zum Schwingen neigt. Der D- Anteil macht das Einstellen des Reglers unverhältnismäßig schwerer. Zumal ist ein gut implementierte D-Anteil auch nicht so einfach, da die reine Ableitung im diskreten eigentlich nicht wirklich funktioniert. Ein sauber eingestellter PI ist schnell genug und kaum bis gar nicht langsamer als der PID.
Kurz gesagt: du darfst natürlich nicht mit "Volldampf" den Punkt anfahren, sonnst schiest der Motor immer etwas über das Ziel hinaus. Regle deine PWM runter sobald der Motor in die Nähe deines "Wunschpunktes" kommt. Das Verfahren ist bei CNC und 3D Drucker gang und gebe. Mann nennt dies Anfahr- und Abbrems- Rampen. Oder auch einfach Rampen. Dies bezeichnet eine Regelung der Drehgeschwindigkeit in Bezug der Distanz zum Ziel un/oder vom Start. Bringt den Vorteil dass wen die distanz von Punkt "A" zu Punkt "B" nur klein ist der Motor gar nicht zu schnell werden kann, und dann übers Ziel hinaus schießt. DC Motoren brauchen nicht zwingend eine Anfahr-Rampe, Steppermotoren schon! Aber das war ja nicht deine Frage. ;-) Als Beispiel: PWM_Effektiv=((Endpunkt - Aktuelle_Position) x PWM_Value) Ist jetzt aber nur Minimalistisch dargestellt. Da braucht es natürlich noch so Parameter wie: IF (Endpunkt - Aktuelle_Position)< XX% Fahrweg usw um das Optimal zu machen.
:
Bearbeitet durch User
Danke werde das Ausprobieren und hoffe es funktioniert dann wie ich es will
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.