Hallo Zusammen, ich möchte einen Regler Programmieren der einen sanften Anlauf des Motors ermöglicht. Bekomme den aktuellen sollwert von Joystick über den PC als Byte und vom IGR die Drehzahl als Byte. Nun habe ich keine Idee wie ich die beiden werte zusammen bekomme. Sprich wenn ich einen sollwert habe und die aktuelle Drehzahl dazu wie verknüpfe ich das so dass es langsam seinen Wert ändert. Also wenn jemand den Knüppel ruckartig bewegt es zu keiner Rückartigen bewegung am Motor kommt. Gruß Carsten
Indem sich der "Stellwert" oder Korrekurwert oder wies auch immer heißt eine bestimmte Größe nie übersteigt
Ich nutze für sowas einen "Nachlaufwert", der dem Sollwert in kleinen Schritten nacheilt. Dieser nachlaufende Sollwert wird dann mit dem Istwert verglichen und - falls es eine echte Regelung werden soll - der Stellwert (z.B. die PWM für den Motor) entsprechend angepasst. ...
Hallo, zunächst einmal sollte klar sein, ob Du eine Steuerung , oder eine Regelung realisieren willst: Wenn Du von Sollwerten im Zusammenhang mit der Drehzahl sprichst, dann hört sich das nach Regelung an. Dazu ist ein Regler (P, I, PID ...) nötig. Um einen allzuschnellen Anstieg zu verhindern, gibst Du den Sollwert auf einen Tiefpaß und den Ausgang auf den Regler-Sollwerteingang: z.B. Tiefpaß_ausgang := (Tiefpaß_ausgang * k + Sollwert)/(k+1) Diese Berechnung muß dann periodisch durchgeführt werden. Am Anfang muß Tiefpaß_ausgang initialisiert werden (z.B. auf null) Über k regelst Du die Anstiegsgeschwindigkeit des Tiefpasses: Aufrufperiode klein: langsamer Anstieg zum neuen Sollwert. Aufrufperiode groß:schneller Anstieg zum neuen Sollwert. K klein: Schneller Anstieg zum neuen Sollwert K groß : Langsamer Anstieg zum neuen Sollwert Gruß Wolfgang -- www.ibweinmann.de Brushless Development Kit
@ Wolfgang: wenn Du schon von Regelungen sprichst solltest Du auch die gängigen Bezeichnungen der Regelparameter verwenden: z.B. kp: Verstärkung Tn: Nachstellzeit A: Ansprechschwelle (bei getakteten Reglern) Y: Stellgröße X: Istwert W: Sollwert
@Sonic "@ Wolfgang: wenn Du schon von Regelungen sprichst solltest Du auch die gängigen Bezeichnungen der Regelparameter verwenden" Nein - der Meinung bin ich nicht, weil ich hier nur das Prinzip erläutert habe. Gruß Wolfgang
stellwert = (istwert*faktor+sollwert)/(faktor+1) so würd ichs machen - mit dem faktor musst du halt je nach anwendung experimentieren...
Ich danke euch allen für die Vorschläge, aber eines ist mir nicht klar... Wieso soll ich den Istwert mit dem Sollwert addieren. Ich dachte immer man braucht die Differenz? Aber ok und wenn ich die schleife dann abarbeite muss ich die Stellgöße immer noch auf den maximalen Wert begrenzen, richtig?? Gruß Carsten
Achso was ich noch vergessen habe, es funktioniert nat hervorragen!! Tiefpaß_ausgang := (Tiefpaß_ausgang * k + Sollwert)/(k+1) bzw. stellwert = (istwert*faktor+sollwert)/(faktor+1)
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.