Hallo,
ich stehe total auf dem Schlauch!
Nehmen wir mal an ich habe einen P-Regler.
Y=Kp*e
Und ich will damit, sagen wir mal eine Drehzahl auf 5000u/min regeln.
Ich muss doch dann die Stellgröße auf die Istgröße aufaddieren? Es heißt
immer auf die "Regelstrecke die Stellgröße" aber WIE programmtechnisch?
Gruß
ohman schrieb:> Hallo,>> ich stehe total auf dem Schlauch!>> Nehmen wir mal an ich habe einen P-Regler.>> Y=Kp*e>> Und ich will damit, sagen wir mal eine Drehzahl auf 5000u/min regeln.
Das geht mit einem reinen P-Regler nicht.
Ein reiner P-Regler schafft es nicht eine vorgegebene Sollgröße zu
erreichen. Daher muss ein P-Regler immer mit einem anderen Regler
kombiniert werden. Normalerweise ein I-Regler. Wobei ein Teil der
Integration durchaus auch von der Regelstrecke selber übernommen werden
kann.
> Ich muss doch dann die Stellgröße auf die Istgröße aufaddieren?
Damit hast du dann hier im Prinzip einen I-Regler versteckt.
> Es heißt> immer auf die "Regelstrecke die Stellgröße" aber WIE programmtechnisch?
Du hast eine Stellgröße 'Stell'
1
Y=K*e;
2
Stell=Stell+Y;
In der Theorie bin ich auch nicht so fit. Das was du da hast, ist dann
kein klassischer P-Regler mehr, sondern eigentlich, ja was eigentlich,
das müsste IMHO ein I-Regler sein, weil die Fehlerabweichung ja
aufsummiert wird.
Das wichtige in Kürze:
Ein reiner P-Regler hat immer eine Regelabweichung, die er nicht mehr
ausgleichen kann. Gibst du dem 5000 U/min vor (unter Last), dann
erreicht er die nicht. Wohl aber reagiert er schnell auf die
Regelabweichung und fängt an auszuregeln. Irgendwann im Regelprozess
übernimmt dann der I-Regler das Ruder und gleicht Ist an Soll an,
wodurch dann der P_Regler aus dem Schneider ist und immer mehr in den
Hintergrund tritt. Ist der Sollwert erreicht, dann ist im wesentlichen
nur mehr der I-Regler an der Arbeit um die kleinen Abweichungen
auszugleichen. Erst bei größeren Abweichungen 'kickt' dann der P-Regler
wieder ein und macht die ersten Korrekturen, weil er schneller reagiert
als der I-Regler.
Kann man sehr gut erkennen, wenn man sich in einer Regelstrecke die
einzelnen KOmpoenten der kompletten Reglergleichung ansieht (und hat
mich auch das erste mal verblüfft, als ich die Zahlen beobachtet habe,
während der Regler an der Arbeit war)
Vielen Dank für die ausführliche Aufklärung!
Aber irgendwie ist es mir trotzdem noch nicht klar. Also ich formuliere
es nochmal so:
Ich habe einen P-Regler Y=Kp*e
Und praktisch: der Motor dreht sich gerade mit 3000u/min, der Sollwert
sind aber 5000u/min.
Also muss ich ihm mehr Spannung geben. Die Spannung ist gerade auf sagen
wir 5V. Also muss ich ja irgendwie das Ergebnis vom P-Regler in V
umrechnen und auf die 5V addieren. Oder ist das komplett falsch?
Also vlt. an diesem Beispiel!
ohman schrieb:> Ich muss doch dann die Stellgröße auf die Istgröße aufaddieren? Es heißt> immer auf die "Regelstrecke die Stellgröße" aber WIE programmtechnisch?
Was ist die Istgröße?
Der Regler bekommt die Regelabweichung, also die Differenz aus
Regelgröße und Führungsgröße. Daraus berechnet der Regler die
Stellgröße. Die Größe wird auf die Strecke gegeben.
ohman schrieb:> Oder ist das komplett falsch?
Ja.
Der Regler bekommt die Differenz, also 2000 U/min. Daraus berechnet er
die neue Stellgröße, also z.B. 7V.
Joe G. schrieb:> ohman schrieb:>> Oder ist das komplett falsch?>> Ja.>> Der Regler bekommt die Differenz, also 2000 U/min. Daraus berechnet er> die neue Stellgröße, also z.B. 7V.
Verstehe ich irgendwie nicht. Kannst du da vlt. am oberen Beispiel von
mir aufzeigen. und vor allem wie er dann auf die 7V kommt ?
Danke
Gruß
ohman schrieb:> Kannst du da vlt. am oberen Beispiel von> mir aufzeigen. und vor allem wie er dann auf die 7V kommt ?
Nimm deine Gleichung Y=Kp*e und stelle sie nach Kp um.
Kp = 7/2000
Kp:= 0.1
nSoll=5000
Loop alle 1 ms
nIst = MesseDrehzahl()
err = nSoll - nIst
UOut = Kp * err
StelleUOutAlsPWMOderSo(Uout)
Loop Ende
Beispiel:
nSoll = 5000
nIst = 3000
err = 2000
UOut soll 7V sein
Also Kp = UOut/err = 0.0035
Der Haken ist, wie oben schon erklärt, dass Du mit dieser Struktur die
Nenndrehzahl nie erreichst. Wenn Soll=Ist, dann err=0 und damit UOut
auch 0. Der Fehler beim P-Regler sinkt mit steigendem Kp, wobei die
Regelstrecke schwingt, wenn das Kp zu gross wird.
Wenn Kp unendlich ist (und damit die Regelabweichung theoretisch 0), hat
man einen Bügeleisenthermostat. Dessen Regelabweichung ist durch die
Dynamik der Strecke gegeben.
Was Du mit "Addieren" meinst, gibt einen I-Regler, der tatsächlich die
Nenndrehzahl erreicht, wenn auch langsam. Deswegen kombiniert man P und
I-Regler zu PI.
Martin schrieb:> Der Haken ist, wie oben schon erklärt, dass Du mit dieser Struktur die> Nenndrehzahl nie erreichst. Wenn Soll=Ist, dann err=0 und damit UOut> auch 0. Der Fehler beim P-Regler sinkt mit steigendem Kp, wobei die> Regelstrecke schwingt, wenn das Kp zu gross wird.
Nun ist der Lerneffekt aber hin :-( Erst wenn der TO genau diesen
Effekt selber herausbekommen hätte, könnte er nun von echtem
Wissenszuwachs sprechen.
Joe G. schrieb:> Nun ist der Lerneffekt aber hin :-( Erst wenn der TO genau diesen> Effekt selber herausbekommen hätte, könnte er nun von echtem> Wissenszuwachs sprechen.
Man könnte anmerken, dass zwischen dem Beobachten des Motorzappelns bei
zu grossem Kp und dem Verstehen von Frequenzgang, Phasengang und
Nyquist-Kriterium (was mE das Minimum wäre, Pol/Nullstellenlage etc.
braucht es dazu nicht) ein Riesenschritt ist. Wenn man es mal begriffen
hat, ist die Theorie ja sehr einfach, aber wenn nicht... nützen
vermutlich auch wohlgemeinte Links zu Regelungstechnik nichts.
Der Lerneffekt wäre riesig, wenn der TO sich anhand seines Beispiels die
Theorie eines PI-Reglers erarbeiten würde, aber das ist eben gar nicht
so einfach. Nimm mal ein einem Mikrocontroller-Aufbau mit PWM-Endstufe
einen Frequenzgang auf.
Am meisten habe ich gelernt, als ich mir eine Reglung zu Testzwecken
aufgebaut habe und mir dann vom µC Tabellen gezogen habe, in denen ich
mir den zeitlichen Verlauf der einzelnen Werte angesehen habe. Wie
entwickelt sich e, wie entwickelt sich esum, was macht der Kp*e Term,
wie ist der Integrale Anteil der Regelstrecke, was macht der Istwert und
die Stellgröße.
Das ganze in Tabellenform aufbereitet und als Grafik umgeschlüsselt.
Beim sinnieren darüber, was ich da in den Diagrammen sehe, ist mir so
manches Licht aufgegangen, welche sich dann durch Versuche 'am lebenden
Objekt' verfiziert habe.
Ich hab mir einfach mit einem AVR und LCD ein kleines
Motorregelungssystem aufgebaut und dabei die AVR221 durchgearbeitet.
Übers LCD und 3 Taster konnte man P, I und D einzeln einstellen (und
natürlich die gewünschte Drehzahl) und dabei dem Motorregler bei der
Arbeit zusehen.
AVR221 ist sowieso recht interessant, weil da grafisch und textlich die
einzelnen Parameter gut erklärt werden.
http://www.atmel.com/Images/doc2558.pdf