Hallo, ich möchte mit einem DC-Servomotor konstante Drehzahlen erreichen, der Motor hat einen Drehencoder (SUMTAK LDA-051-1000CE). Der Bereich erstreckt sich zwischen 10 bis 1000 U/min. Der Motor wird dabei nur gering belastet.Der „Ist Stand“ ist folgender: - Atmega32 - Motorendstufe L6203 - DCMotor PM Servo Motor Mod. MH3528-381C4, kein Datenblatt verfügbar - Drehencoder, gibt auf Kanal A und B um 90° versetzt 1000 Pulse pro Umdrehung - Die Motordrehzahl lässt sich per PWM steuern Um die Drehzahl zu regeln, wollte ich in bestimmten Abständen die Zeit zwischen den Pulsen zählen (Input Capture vom Timer)und in eine Drehzahl umrechnen. Mit diesem Werten möchte ich die Pulsweite für die Motor PWM regeln. Meine Fragen sind jetzt folgende: Ist die Herangehensweise so o.k.? Spielt Prellen eine Rolle? Kann ich die Werte für die PWM einfach hoch und runterzählen, oder benötige ich einen Regelalgorithmus (PID-Regler)? Wäre schön ein paar Anregungen zu erhalten, vielen Dank im voraus.
als gast schrieb: > Ist die Herangehensweise so o.k.? Das sampeln des Positionswert und das Ausführen der Regelung sollte in festen Abständen ablaufen, idealerweise in einem Vielfachen der PWM-Periode und mit selbiger synchronisiert. als gast schrieb: > Spielt Prellen eine Rolle? Wenn der Geber prellt, ja. als gast schrieb: > Kann ich die Werte für die PWM einfach hoch und runterzählen, oder > benötige ich einen Regelalgorithmus (PID-Regler)? "Einfach hoch und runterzählen" ist auch ein I-Regler, mit fester Verstärkung. Mach die Verstärkung noch variabel und baue eine P-Verstärkung dazu, dann hast du doch schon einen PI-Regler. Das ist der Standard für Motorregelung, PID-Regler verwendet man eher nicht.
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.