Forum: Mikrocontroller und Digitale Elektronik Reglerparamter aus Sprungantwort


von Ingo L. (corrtexx)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich habe hier die Sprungantwort einer elektronischen Last. Das ganze ist 
n Hobbyprojekt, da ich eine elektronische Last gut gebrauchen kann. Es 
soll auf einem AVR @ 20MHz laufen.

Wenn ich mir jetzt die Sprungantwort der Strecke angucke, sehe ich, dass
Tg ~= 16,25ms und Tu ~= 1,5ms beträgt. Das Ks beträgt dX/dY = 1.

Somit bekomme ich nach:
http://rn-wissen.de/wiki/index.php/Regelungstechnik

folgende Paramter für einen PI-Regler:

Kp = 9,75 ; Tn = 4,125ms nach Ziegler/Nichols
Kp = 3,79 ; Tn = 19,5ms nach Chien/Hrones/Reswick

Jetzt stellt sich mir noch die Frage, wie oft muss der Regler im 
Programm aufgerufen werden? Reichen hier 1kHz? Ich meine die Strecke ist 
ja schnarch lahm...

Die Paramter nach Chien/Hrones/Reswick sehen auf den ersten Blick etwas 
stabiler aus, da das Kp hier ja nur gut 1/3 so großß ist wie bei 
Ziegler/Nichols.

Danke,
Ingo

von Raymund H. (raymund_h)


Lesenswert?

Ingo L. schrieb:
> Jetzt stellt sich mir noch die Frage, wie oft muss der Regler im
> Programm aufgerufen werden? Reichen hier 1kHz? Ich meine die Strecke ist
> ja schnarch lahm...

Ermittle doch den Phasengang der Last aus der Sprungantwort, dann wähle 
die Samplefrequenz so dass durch die Abtastung die Phasenreserve an der 
gewünschten Schleifenbandbreite nur unwesentlich reduziert wird.

Sieht ganz grob nach 1-10Khz Samplefrequenz dafür aus.

von Peter K. (Gast)


Lesenswert?

Ingo L. schrieb:
> Jetzt stellt sich mir noch die Frage, wie oft muss der Regler im
> Programm aufgerufen werden? Reichen hier 1kHz? Ich meine die Strecke ist
> ja schnarch lahm...

Die Periodendauer des Regleraufrufs kann man mit ca (kleinste relevante 
Zeitkonstante)/10 errechnen.

Was die kleinste Relevante Zeitkonstante ist hängt von deiner Anwendung 
ab.

Aber aus der Sprungantwort schätz ich mal dass du mit einem Regler 
aufruf alle 1ms gut dabei bist.
Für den Regler sieht das dann ca so aus wie eine Sprungantwort eines PT1 
und nicht wie eines PT2, ist aber oft vernachlässigbar.

Wenn du jedoch genügend Rechenleistung hast kannst du den Regler auch 
öfters ausführen, je nachdem was dein Prozessor, bzw deine 
Energiesparfunktionen erlauben.

von Ingo (Gast)


Lesenswert?

Raymund H. schrieb:
> Ingo L. schrieb:
> Jetzt stellt sich mir noch die Frage, wie oft muss der Regler im
> Programm aufgerufen werden? Reichen hier 1kHz? Ich meine die Strecke ist
> ja schnarch lahm...
>
> Ermittle doch den Phasengang der Last aus der >Sprungantwort...

Wie macht man das? Kannst du da etwas Hilfestellung geben?

von Raymund H. (raymund_h)


Lesenswert?

Ingo schrieb:
> Wie macht man das? Kannst du da etwas Hilfestellung geben?

z.B. quick & dirty in octave/matlab angenähert
1
sprungantwort=1-exp(linspace(0,-10,1001)); % zum test
2
3
plot (unwrap(angle(fft([diff(sprungantwort)] )))/pi*180) % phase

Die Sprungantwort sollte weit genug ausgeklungen also die Messung lang 
genug sein.

Man kann sich auch den Betragsfrequenzgang anzeigen lassen.
1
plot (log10(abs(fft([diff(sprungantwort)] )))*20) % betragsfrequenzgang

Hier sieht man natürlich die negativen Frequenzen oder das 
Spiegelspektrum, kann man ignorieren oder abschneiden.

Selbstverständlich sollte die Spungantwort genau mit dem ersten Sample 
anfangen, da sonst logischerweise Phasenverschiebungen.

von Ingo (Gast)


Lesenswert?

Leider habe ich weder Matlab noch Octave Kenntnisse :(

von Raymund H. (raymund_h)


Lesenswert?

Ach ja, ist das Diagramm aus LT Spice?

Warum kein Bode-Plot mit LT Spice machen, ist wohl noch direkter.

von Ingo (Gast)


Lesenswert?

Ich mach mal n Bode-Plot...

von Peter K. (Gast)


Lesenswert?

Hab ich vorher noch vergessen, bei digitalen Reglern musst du mit den 
Faustformeln aufpassen, die gelten nur wenn die Strecke weit unterhalb 
der Abtatsfrequenz arbeitet.

Ansonsten musst du auf die z oder Tustintransformation ausweichen und 
den Regler so parametrisieren. Mit der Tustintransformation bist du 
nacher im q-Bereich in dem kannst du die Regler nach den üblichen 
Frequenzkennlinien verfahren auslegen und dir daraus den Digitalregler 
berechnen.

von Ingo L. (corrtexx)


Angehängte Dateien:

Lesenswert?

Anbei mal der Phasengang... Aber was kann ich daraus nun ableiten?
Sorry, das ich so blöd frage, aber ich würde gern mehr darüber wissen!


Ingo

von Ingo (Gast)


Lesenswert?

Push

von Ingo L. (corrtexx)


Lesenswert?

Hat keiner dazu eine Idee?
Raymund? Peter?

von Tobi (Gast)


Lesenswert?

Moin,

Also wenn ich das richtig verstanden habe hast du eine PT2-Strecke und 
einen PI-Regler.

PT2: Gs(s) = KP/[(T1*s+1)(T2*s+1)]
PI: Gr(s) = Kr(1+ 1/(TI*s))

Wenn du nun den Prototypen-Ansatz benutzt (bisher hatte ich damit ganz 
gute Erfolge)
Musst du dir das Nennenpolynom des geschlossenen Kreises angucken.

1+G0 = 1+ Gr(s)*Gs(s)

Wenn ich mich nicht täusche muss da ein Polynom vierten Grades 
rauskommen.
Mit den unbekanten Kr und TI.
Nun ist die Frage ob du ein Überschwingen zulassen willst oder es 
vermeiden willst. Da du jedoch nur das Nennerpolynom betrachtest kann 
auch beim zweiten Ansatz ein Überschwingen entstehen je nach Zähler.

Dann musst du ein Koeffizientenvergleich durchführen.

ITAE-Ansatz: s^4+2,1*w0*s^3 + 3,4*w0^2*s^2 + 2,1*w0^3*s+w0^4
oder
binomial-Ansatz: s^4+4*w0*s^3 + 6*w0^2*s^2 + 4*w0^3*s + w0^4

Wenn da doch dritten Grades rauskommt musst du folgende Gleichung 
benutzen
ITAE: s^3 + 1,75*w0*s^2+ 2,15*w0^2*s + w0^3
Bino: s^3 + 3*w0*s^2+ 3*w0^2*s + w0^3

Kannst du mit wxMaxima oder Wolfram Alpha lösen.

von Ingo (Gast)


Lesenswert?

Bitte den Ingo von Bahnsteig 7 abholen... Ich verstehe nur Bahnhof!

von Tobi (Gast)


Angehängte Dateien:

Lesenswert?

mh ich stell mal einen Anhang hoch.
Da wurde sowas ähnliches mit wxMaxima gelöst.

War eine instabile Strecke, die Ähnlichkeit mit einer PT2-Gleichung hat.

von Raymund H. (raymund_h)


Lesenswert?

Ingo L. schrieb:
> Hat keiner dazu eine Idee?

Jetzt kannst du den Regler wie berechnet auch mit Spice modellieren, 
also die gesamte Schleife modellieren und zuerst einen open loop 
bode-plot machen.

Bei diesem sollte dann die Phase bei 0Db Schleifenversträrkung größer 
als -135Grad sein um eine ausreichende Reserve und geringes 
Überschwingen der geschlossenen Regelschleife zu haben.

Die Abtastung des Reglers läßt sich mit 
Verzögerungsleitungen/Transmissionlines nachempfinden.

Den Istwert durch eine Transmissionline geben mit 0.5/Fsampling Laufzeit 
modelliert das, nicht vergessen dass hier die Transmissionline in Spice 
immer mit dem korrekten Wellenwiderstand abgeschlossen sein sollte.

Falls noch weitere Laufzeiten vom Istwert zum Stellglied da sind dann 
müssen die natürlich aufaddiert werden.

Man kann nun auch die Regelschleife schließen und sich .TRAN und .AC 
ansehen, evtl. den Regler noch "tweaken".

Man sieht natürlich nicht die Abtastung selbst, aber der Phasen- und 
Frequenzgang ist gut genug angenähert.

von Peter K. (Gast)


Lesenswert?

Ich glaube den Ingo gehts nicht darum wie er den Regler berechnen muss 
sondern mit welcher Frequenz er die Reglerfunktion aufrufen soll.

Die Antwort darauf steht schon oben:

Raymund H. schrieb:
> Sieht ganz grob nach 1-10Khz Samplefrequenz dafür aus.

Peter Kremsner schrieb:
> Die Periodendauer des Regleraufrufs kann man mit ca (kleinste relevante
> Zeitkonstante)/10 errechnen.

Kommt dann auf den selben Bereich den Raymund genannt hat.

Ohne Vorkenntnisse in der Regelungstechnik ist es klar dass die 
Mathematik dahinter schwer ist. Aber es gibt da so ein paar 
"Faustformeln" zB in dem führ einen relevantent Teil der Sprungantwort 
der Strecke sollte man mindestens 10 mal Abtasten. Also bei dir kann man 
knapp sagen 10 mal Abtasten im Bereich der ungefähr konstanten Steigung 
deiner Sprungfunktion.

Bzw bei deinem Amplitudengang, da siehst du ein paar kleine "Bögen" 
davor und danach ist der Amplitudengang relativ gerade. Wenn der Regler 
davon noch was mitbekommen soll, dann nimmst du die Frequenz wo der 
Bogen ist und rechnest die mal 2.

Ansonsten kommen so Effekte wie Alliasing vom Abtasten her ins Spiel und 
die "Stören" den Regler.

Grundsätzlich kannst du aber sagen wenn du einen analogen Regler 
entwirfst was ja das Ziegler-Nichols oder Chien-Hrones-Reswick verfahren 
macht und du willst den Regler digitalisieren nimm die Abtastfrequenz so 
hoch wie nur irgendwie möglich, je niedriger die Abtastfrequenz desto 
schlechter arbeitet der Regler.

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
Noch kein Account? Hier anmelden.