PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Software-Regler



peterbauer
13.02.2009, 18:26
Hallo zusammen,

ich habe mich aben durch das Regelungstechnik-Tutorial gearbeitet und habe ein Verständnisproblem bei den Softwareimplementierung der Regler.

Gehen wir einfach mal vom P-Regler aus: Der Regelausgang y ist gleich dem Produkt aus der Verstärkerkonstante und der Regelabweichung, also

y = Kp * e

Angenommen wir möchten die Drehzahl eines Motors steuern, dann ist wirkt der Ausgang des Reglers doch als Stellgröße für den Motor (z.B. Spannung). Wenn die Regelabweichung jetzt aber Null ist, dann wird die Ausgangsgröße des Reglers doch auch NUll sein. Also würde der Motor nicht mehr angesteuert.

Müsste der Reglerausgang sich nicht auch auf den altern Wert des Reglerausgangs beziehen, also

y = yalt + Kp * e

Danke für Eure Hilfe!


Peter

Christoph2
13.02.2009, 22:09
Soweit ich weiß gibt die Stellgröße nur an, um wieviel man den alten wert ändern muss.

Also y = yalt + Kp * e stimmt glaub ich, aber warte lieber noch die Antwort von einem anderen ab.

lg Christoph

Besserwessi
14.02.2009, 00:27
Die einfache Formle y = K * e stimmt schon.
Das Problem beim einfachen Proportionalregler ist gerade das man selten e = 0 hinkriegt. Deshalb ist der Speziallfall e = 0 hier eher die Ausnahme und bei der Drehzahl wohl nur für Drehzahl 0 gut zu erreichen. Als erste verbessserung gegenüber dem Proprotionaregler kann man zur Ausgangsgröße noch einen geschätzten Wert für den Sollwert addieren.

oberallgeier
14.02.2009, 09:36
... Wenn die Regelabweichung jetzt aber Null ist, dann wird die Ausgangsgröße des Reglers doch auch NUll sein ...Nein. Schau Dir einmal diese Skizze an (übrigens hatte ich zur Motorregelung bei meinen Motoren hier etwas geschrieben (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=389526#389526)).

......................http://oberallgeier.ob.funpic.de/regel-notiz.jpg

Hier siehst Du, dass die eigentliche Eingangsgröße des "Reglers" der vorzugebende Sollwert (=Führungsgröße w) ist, z.B. die von Dir vorgegebene Motordrehzahl. Der Proportionalitätsfaktor multipliziert im [Regler] den Sollwert so, dass ein sinnvoller Stellwert (für den Motor) rauskommt. Die Regelschleife dient dann dazu, eventuelle Abweichungen sinnvoll mit in den Stellwert hineinzubringen - ergibt die Größe e. Wenn der Sensor feststellt, dass die Abweichung null ist, dann wird eben der Sollwert "nur" mit dem Proportionalitätsfaktor multipliziert - so nach dem Muster: PWMfürMotor = Sollfahrt mal motorspezifischerFaktor. Deine Frage tritt also eher bei Sollfahrt = Null auf - weniger bei Abweichung = Null. Deine Frage (was tun, wenn Motor nicht angesteuert wird . . . . ) trifft formal auch dann zu, wenn die Regelabweichung so gross ist (z.B. Motor läuft viel zu schnell), dass die Korrektur x den vorgegebenen Sollwert w vollständig ausgleichen - zu Null setzen - will: => e wird Null => Motor wird nicht angesteuert.

So. Nun nehmen wir an, dass wir nicht nur eine Geschwindigkeitsregelung haben - z.B. bewege einen Hebel aufwärts - sondern auch eine Positionieraufgabe - bleib auf x = hausnummer stehen. Dann solltest Du einen I-Anteil haben. Der guckt nach der Abweichung und incrementiert den Stellwert auch bei einer "Nullvorgabe". Nachteil ist dabei das mögliche Zittern um den Nullpunkt. Das wird so verhindert, dass man den I-Anteil um den Nullpunkt herum nicht mehr änderte - "freischneiden".

War das verständlich?

peterbauer
14.02.2009, 09:59
Hallo,

Danke für Eure Antworten, aber so richtig bin ich noch nicht überzeugt :)

Du schreibst:

Wenn der Sensor feststellt, dass die Abweichung null ist, dann wird eben der Sollwert "nur" mit dem Proportionalitätsfaktor multipliziert

Ist das denn richtig? Es wird doch die Regelabweichung mit dem Proportionalitätsfaktor multipliziert, also e. Und e ist dieDifferenz aus w und x. Du sagst , wenn die Abweichung null ist, dann wird nur der Sollwert mit dem Proportionalitätsfaktor multipliziert. Aber e ist Sollwert mit gemessene Größe. Bei gleichem Betrag wird e zu NUll. Folglich wird NULL mi dem Proportionalitätsfaktor multipliziert. Liege ich falsch?

Grüße

Peter

oberallgeier
14.02.2009, 10:13
Sorry, dass ich nicht verständlich bin. Ich könnte das jetzt ausbreiten - wenn meine Erklärung dann gut würde, müsste ich beim Tutorial rauskommen. Und das steht ja schon im RNWissen . . .

mare_crisium
14.02.2009, 11:01
peterbauer,

die Sache mit dem P-Regler hast Du ganz richtig erfasst: Wenn zum Erreichen des Sollwertes eine von Null verschiedene Stellgrösse erforderlich ist, dann kann der P-Regler die Regelabweichung nicht zum Verschwinden bringen.

Für den Fall, dass Dich die Mathematik dazu interessiert, habe ich eine pdf-Datei angehängt. Darin wirst Du auch wiederfinden, was oberallgeier mit Worten zu erklären versuchte - manchmal sind Formel halt einfacher zu verstehen ;-).

Beantwortet das Deine Frage?

Ciao,

mare_crisium

Edit: Anhang gelöscht, wg. Upload-Quota

peterbauer
15.02.2009, 09:46
Danke Danke,

Dein PDF bestätigt genau meine Vermutung.

Hast Du noch zu den anderen Reglern Ausarbeitungen und würdest diese vllt. bereitstellen?


Danke und Grüße

Peter

Volly42
15.02.2009, 21:19
Hallo Peter,

Deine erste Annahme ist absolut richtig -- und ein großes Kompliment für Deine kritische Auseinandersetzung mit den Antworten.

Ein P-Regler verursacht an einer PTn-Strecke immer eine "bleibende Regelabweichung", diese läßt sich auch berechnen, wenn die Strecke bekannt ist. Aus diesem Grund verwendet man auch bei der Drehzahlregelung einen PI Regler. In diesem Fall läßt sich der Motor als PT1 Strecke auch vereinfacht darstellen.

Wenn nun der Motor positioniert werden soll, wird im einfachsten Fall eine Kaskadenregelung eingesetzt. Der innere Regelkreis ist der Drehzahlregler als PI Regler und für den äußeren Regelkreis reicht ein P Regler, wenn die Position erfaßt wird. Bei der Lage-Regelung soll der Motor stehen bleiben wenn die Positionsabweichung Null ist.

https://www.roboternetz.de/wissen/index.php/Regelungstechnik#P-Regler

Die Algorithmen für den PI Regler sind auch verfügbar, nur immer daran denken, die Summation zu begrenzen, sonst passiert ein Überlauf...

Gruss
Volly

mare_crisium
15.02.2009, 23:22
Peterbauer,

nee, leider hab' ich nicht mehr. Für die gründliche Diskussion von Reglern in PI- und PID-Konfiguration muss man mit z-Transformationen hantieren - da komme ich mit meiner Küchenmathe auch nicht mehr weiter ;-) .

Ciao,

mare_crisium

P.S.: Ein schönes Beispiel für die Software eines PI-Reglers in AVR-Assembler kannst Du hier finden:

http://elm-chan.org/works/smc/report_e.html