Ich möchte eine PID-Reglung realisieren und weiß nicht mit welcher Abtastrate ich das machen soll. Der Drehzahlsensor liefert pro Spindeldrehung genau einen Impuls, d.h. die Taktrate in denen ich Istwerte erhalte hängt von der Drehzahl ab. Der Drehzahlbereich liegt zwischen ca. 15 U/min und 1000 U/min. Der Taktrate für den Istwert liegt somit zwischen 4 Sekunden und 60ms. Der Sollwert ändert sich kontinuierlich und wird mit einer festen Rate alle 20-60ms (einstellbar)erfasst. Ich befürchte, dass ein PID-Regler mit einer konstanten Taktrate nur für einen kleinen bestimmten Drehzahlbereich optimiert werden kann. Als laienhafte Ideen hätte ich folgendes anzubieten a) Taktrate = Umdrehungszeit, also variabel oder b) Konstante ausreichend hohe Taktrate und Extrapolation (Schätzung) der aktuellen Drehzahl (akt. Drehzahl = zuletzt gemessene Drehzahl + seitdem vergangene Zeit Stellgröße Beschleunigungsfaktor Ich denke die Experten haben da eine ganz andere Lösung!?
60ms... Das is doch noch Gleichstrom für einen Mikrocontroller... (Spaß beiseite...) Für eine Drehzahlregelung reicht in aller Regel ein PI-Regler vollkommen aus. Du musst auch nichts extrapolieren, sondern rechnest den Regler einfach z.B. alle 20ms. Der Istwert der Drehzahl bleibt immer solange konstant, bis wieder die Positionsmarke vom Motor erkannt wird, dann aus der vergangenen Zeit eine neue Drehzahl errechnet, die die alte ersetzt. Das ist auch kein Problem, nur ein D-Anteil hätte mit den Sprüngen ein Problem. Das funktioniert bestimmt schon gut genug so, da muss man nicht mit schwereren Methoden dran gehen. Das Verfahren ist schön einfach, da die Integrierer nur Addierer sind, die nicht mit der Samplingrate gewichtet werden müssen. Was man vielleicht braucht, ist eine dynamische Verstellung der Regelparameter, da das System, wenn es langsam ist, nur selten Istwerte liefert und damit zum Überschwingen neigt. Also, wenn es langsam ist, den P-Anteil erheblich reduzieren. Der Einfachheit halber kann (und sollte) man den P-Anteil über den Istwert gewichten. Grüße, Peter
Danke Peter für die schnelle Antwort. Das mit der Gewichtung des P-Anteils mit dem Istwert hört sich gut an. Genau die Befürchtung hatte ich, wenn man in meinem Fall einen klassischen PI-Regler mit konstanten Parametern und konstanter Taktrate verwendet. Optimiert man für die hohen Drehzahlen, kommt es zu Überschwingungen in den niedrigen Drehzahlen. Umgekehrt wird der Regler in den hohen Drehzahlen zu träge. Ich werde Deinen Vorschlag ausprobieren und hier über das Ergebnis berichten. Besten Dank!
Habe lange mit der Gewichtung des P-Anteils experimentiert und festgestellt, dass dies mit einer einfachen linearen Gewichtung über den breiten Drehzahlbereich nicht hinhaut, zu dem das Verhalten des Motor/Getriebe-Systems durch das nachgeschaltete Getriebe verändert wird. Da das Finden einer geschlossenen Formel für mich zu schwierig war, blieb für mich eine tabellarische Lösung, bei der Gewichtungswert aus der Tabelle als Funktion der Drehzahl und der Getriebestufe ausgelesen wird. Allerdings ist es sehr mühevoll die optimalen Werte für diese Tabelle zu finden. Mittelweile habe ich eine gänzlich andere Lösung gefunden, so dass ich den PID-Regler nicht mehr brauche.
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.