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
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.
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.
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?
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.
Ach ja, ist das Diagramm aus LT Spice? Warum kein Bode-Plot mit LT Spice machen, ist wohl noch direkter.
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.
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
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.
Bitte den Ingo von Bahnsteig 7 abholen... Ich verstehe nur Bahnhof!
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.