Ich habe einen PID-Controller eingerichtet, um die Wellenposition eines bürstenbehafteten Gleichstrommotors zu steuern, den ich über PWM und einen optischen Encoder steuere. Ich rekonstruiere im Grunde ein RC-Servo.
Jetzt, wo ich glaube, die richtigen Tuning-Parameter gefunden zu haben (alle drei Parameter ungleich Null), stehe ich vor einem weiteren Problem: Der Schaft kommt mit einiger Annäherung im gewünschten Winkel an (siehe schwarzen Stick unter https: // www.instagram.com/p/BTg25HngIDo/ ), hört dann auf, sich weiter zu bewegen. Ich höre ein "brummendes Crescendo" vom Motor, das nach einigen Sekunden damit endet, dass er sich etwas weiter bewegt, aber jetzt zu viel. Also gibt es ein weiteres summendes Crescendo und so weiter. Es erreicht fast nie exakt den Zielwinkel.
Wenn ich mir die Ausgabe / Fehlerausgabe ansehe, sehe ich, dass der Controller während des Summens kleine PWM-Werte sendet, die zu klein sind, um den Motor zu starten (wie ich selbst experimentieren konnte, siehe https://www.instagram.com/p/ BQYBZsShq9x/ ). Ich denke, das ist eine Art Nichtlinearität, während ein PID nur mit linearen Prozessen arbeiten kann. Da der Motor an einer nahe gelegenen Position gestoppt wird, summiert sich der Fehler im I-Zweig und damit auch im Ausgang, bis ein Schwellenwert erreicht wird.
Was ist der übliche Ansatz, um dieses Problem zu lösen? Ich denke darüber nach, den Ausgang wie in dieser Antwort vorgeschlagen zu linearisieren (dh eine "Totzonen" -Funktion zu implementieren, damit der Motor niemals kleine PWM-Werte erhält), aber ich mache mir Sorgen, dass der Linearisierer dem System mehr unabhängige Variablen hinzufügen wird.
Sie haben ein Spiel im Getriebe, das einer elektrischen Hysterese gleicht. Das verursacht "Jagd". Sie können das Flankenspiel minimieren, indem Sie wie bei Anti-Backlash-Getrieben vorspannen. Sie können ein einfacheres Steuerschema wie P (möglicherweise mit einer gewissen Steuertotzone) oder P+D übernehmen. Der Integralterm, falls vorhanden, integriert alle verbleibenden Fehler, bis eine Bewegung auftritt (es sei denn, der I-Term hat selbst eine absichtliche oder versehentliche Totzone - beispielsweise aufgrund einer niedrigen ADC-Auflösung).
Vielleicht möchten Sie dieses Papier von Tim Wescott lesen . Tim arbeitet viel mit elektromechanischen Präzisionssystemen, die in militärischen und ähnlichen Anwendungen eingesetzt werden.
Benutzer16222
ris8_allo_zen0
Jack Creasey
Trevor_G
Jack Creasey
glen_geek
ris8_allo_zen0
Trevor_G
Jack Creasey
Trevor_G