Sie sind auf Seite 1von 13

PID-Entwurf 19.06.11 V2.

0 __________________________________________________________________________________________

PID - Regler
1. Einfhrung 2. PID-Entwurf im f-Bereich
2.1 P-Reglerentwurf 2.2 PI - Reglerentwurf 2.3 PID - Reglerentwurf

3. PID-Entwurf anhand der Sprungantwort 4. Ziegler-Nichols-PID-Entwurf 5. digitaler PID-Algorithmus 6. Anhang Matlab-Beispiele 7. Anhang Probierverfahren 1. Einfhrung
Der PID - Regler ist die lteste Reglertype. Dennoch wird er noch immer gerne eingesetzt. In vielen Anwendungen erhlt man schnell befriedigende Lsungen, wenn die P, I- und D-Kosntanten einfach mit Probieren eingestellt werden. Fhrt das Probieren nicht zum Ziel, knnen die Konstanten mit dem PID Entwurf bestimmt werden. Der PID - Reglerentwurf fhrt zu hnlichen Ergebnissen wie das Frequenzkennlinierverfahren. Die Frequenzgnge sind hnlich. Deshalb behandeln wir aus der Vielzahl der PIDEntwurfsverfahren nur zwei und diese nur kurz. idealer PID - Regler realer PID - Regler Lead - Lag - Regler
Y1 ( Lag-Glied )

D PID P I

*s

Y2 ( Lead-Glied )

1/s

Frequenzgnge : Alog Alog Alog


Y1,Lag Y2, Lead

log

log

log

90 -90

90 -90

90 -90

__________________________________________________________________________________________ Stttler PA 1/13

PID-Entwurf 19.06.11 V2.0 __________________________________________________________________________________________

Parallelschaltung von Frequenzgngen :


Beachten Sie, da die drei Einzelanteile P-, I- und D nicht in Serie sondern mit Hilfe eines Summationspunktes parallel geschaltet sind. Whrend fr die Serienschaltung von Frequenzgngen gilt : sie addieren sich im Bodediagramm gilt fr die Parallelschaltung nherungsweise : das Maximum ergibt den resultierenden F-Gang im Bodediagramm PID = P-,I-,D-Parallelschaltung

Beispiel : Serien/Parallelschaltung

|G|log G1+G2 G1 0db G2 G1*G2 GPID = GP+GI+GD = P + i/ + ( / D1) / (1+ / D2) GPID = GP+GI+GD = P + I/ + D / (1+ / D2) GPID = P*( 1/ )*(1+ / 1) (1+ / 2) / (1+ /D2)
log

P 0db
1

D1

D2

log

Die bertragungsfunktion des PID lautet : oder : oder unmittelbar aus dem F-Gang abgelesen :

2. PID-Entwurf im f-Bereich
2.1 P - Reglerentwurf
I - und D- Faktoren sind auf 0 gestellt. Der Frequenzgang der Strecke wird gezeichnet. Der P - Faktor wird so gewhlt, soda : r + = 70. Diese Methode wurde bei den Meverstrkern fters angewandt. Nachteil des P - Reglers : wenn die Strecke keinen I - Anteil aufweist, entsteht eine bleibende Regelabweichung ( = L( =0) / (1+L( =0)) ) auch wenn die Fhrungsgre konstant bleibt.

2.2 PI - Reglerentwurf
Weist die Strecke keinen I-Anteil auf, kann die bleibende Regelabweichung ( wenigstens fr eine konstante Fhrungsgre ) mit einem I-Anteil im Regler ausgeregelt werden. Der D- Faktor ist auf 0 gestellt. Man beginnt mit dem P-Entwurf : Dazu wird der Frequenzgang der Strecke G(s) gezeichnet. Der P - Faktor wird so gewhlt, soda : r + = 70. Der Frequenzgang L1(s) = P*G(s) wird gezeichnet. I - Entwurf : Die PI-Eckfrequenz 1 = 0.1*Durchtrittsfrequenz von L1(s). Damit verflscht der I-Anteil des PI die Phase des P-Entwurfes kaum. Dann liest man die Druchtrittsfrequenz der I-bertragungsfunktion ab und erhlt : GI= i/ ( oder man rechnet : i = 1*P, I = i ). Vorteil des I-Reglers : der I-Anteil regelt dieRegelabweichung nach 0 aus. Wenn die Strecke integrierendes Verhalten ( dh. eine Polstelle bei s=0 ) besitzt, wird i etwas nach links verschoben oder der I-Anteil entfllt berhaupt. Allerdings werden dann Strungen nicht nach 0 ausgeregelt. Der I-Anteil eines PI-Reglers wirkt auerdem destabilisierend. __________________________________________________________________________________________ Stttler PA 2/13

PID-Entwurf 19.06.11 V2.0 __________________________________________________________________________________________

2.3 PID - Reglerentwurf


Der zustzliche D-Anteil dient der Phasenanhebung des Streckenfrequenzganges. Dadurch ist es mglich den PAnteil hher zu whlen. Der Regler wird schneller. Der I-Anteil entfllt, so die Strecke einen solchen aufweist. Man beginnt mit dem P-Entwurf : Dazu wird der Frequenzgang der Strecke G(s)+3dB gezeichnet. Der P Faktor wird so gewhlt, da : r + = 25 Der Frequenzgang L1(s) = P*G(s)+3db wird gezeichnet.

Anmerkung : r + = 25 statt 70, weil der D-Regler die Phase anschlieend wieder um 45 anhebt. +3dB, weil der D-Entwurf zustzlich +3db bei der Durchtrittsfrequenz von L1 einbringt.

D-Entwurf : Die PD-Eckfrequenz 2 = Durchtrittsfrequenz von L1(s). Damit wird die Phase bei der Durchtrittsfrequenz um 45 angehoben und wir erhalten die ursprngliche Formel fr den Phasenrand r + = 70. Dann liest man die Druchtrittsfrequenz der D-bertragungsfunktion D1 ab. D2 whlt man mglichst weit rechts von 1, nimmt aber auf die Stabilitt des D-Reglers Rcksicht. Man erhlt : GD= ( / D1) / (1+ / D2) ( oder man rechnet : D1 = 2/P, D = 1/ D1

D2

> 2*10 und beachte die Stabilitt des D-Reglers ).

I - Entwurf : Die PI-Eckfrequenz 1 = 0.1*Durchtrittsfrequenz von L1(s). Damit verflscht der I-Anteil des PI die Phase des PD-Entwurfes kaum. Dann liest man die Druchtrittsfrequenz der I-bertragungsfunktion i ab und erhlt : GI= i/ ( oder man rechnet : i = 1*P, I = i ). Wenn die Strecke integrierendes Verhalten ( dh. eine Polstelle bei s=0 ) besitzt siehe PI-Regler.
Anmerkung : Der PID-Entwurf wird besser, dh. das berschwingen kleiner, wenn D1 des D-Reglers etwas nach links und D2 etwas nach rechts verschoben werden. In der Literatur findet man eine Reihe weiterer Verfahren zur ( nherungsweisen Bestimmung ) der P-, I- und DKonstanten. Insbesondere auch solche, die von der Sprungantwort der Strecke ausgehen und die Kenntnis des Streckenfrequenzganges nicht bentigen. berlegen Sie sich auch die Sprungantwort von P-, PI-, PD-, PID- und realem PID- Reglern.

3. PID-Entwurf im Zeitbereich (anhand der Sprungantwort der Regelstrecke )


Gegeben sei nur die Sprungantwort der Strecke : y
Wendepunkt

Einstellregeln :

GPID(s)= P + I/s + D*s V.. Verstrkung der Strecke V=y/u Nichtintegr.Strecke ( S. mit Ausgleich ) Reglertyp t P PI PID P 0.7Ta/(TuV) 0.6Ta/(TuV) 0.95Ta/(TuV) I P/Ta P/(1.35Ta) D TuP/2

Tu

Ta

y
y

GPID(s)= P + I/s + D*s Integrierende Strecke ( S. ohne Ausgleich ) Ti=u*T/y Reglertyp P PD PI PID P 0.5Ti/Tu 0.5Ti/Tu 0.4Ti/Tu 0.4Ti/Tu I 0.2P/Tu 0.3P/Tu D 0.5PTu 0.8PTu

t Tu T

__________________________________________________________________________________________ Stttler PA 3/13

PID-Entwurf 19.06.11 V2.0 __________________________________________________________________________________________

4. Ziegler-Nichols-PID-Entwurf
Dieses Verfahren wird auch Schwingversuchsverfahren genannt. Es wird am realen geschlossenen Regelkreis oder am simulierten geschlossenen Regelkreis angewandt. Vorgehensweise : 1. Der I- und der D-Anteil werden auf 0 gesetzt. Der P-Anteil wird solange erhht bis eine Dauerschwingung auftritt. Damit befindet sich der Regelkreis an der Stabilittsgrenze. Diese eingestellte Verstrkung nennt man Pkrit. Die auftretende Periodendauer wird gemessen und sei Tkrit.

2.

Anhand nachfolgender Tabelle werden dann fr den gewnschten Reglertyp die Regeleinstellparameter ermittelt fr die Form GPID(s)= P + I/s + D*s : oder fr die FormGPID(s)= P + P/(TNs) + P*TV*s GPID(s)= P + I/s + D*s GPID(s)= P + P/(TNs) + P*TV*s Reglertyp P PD PI PID P TN TV 0.12Tkrit 0.12Tkrit

Reglertyp P PD PI PID

D 0.096KkritTkrit 0.072KkritTkrit

0.5Kkrit 0.8Kkrit 0.45Kkrit 0.53Kkrit/Tkrit 0.6Kkrit 1.2Kkrit/Tkrit

0.5Kkrit 0.8Kkrit 0.45Kkrit 0.85Tkrit 0.6Kkrit 0.5Tkrit

5. Digital simulierter analoger PID


Eine Variante digitale Regler zu realisieren besteht darin, die Integration und Differentiation numerisch anzunhern ( siehe Simulation ). Ist die Schrittweite klein, entspricht das Verhalten des digitalen PID qualitativ annhernd dem des analogen PID. digital simulierter PID - Regler idealer PID - Regler uk+1 yk+1 D yk+1=(uk+1-uk)/T D PID P I 1/s I 1/s - > Zustandsraum : xk = 0 + uk xk+1= xk*T+xk yk+1= xk+1 +0 = uk*T+xk = xk+1 uk+1 xk+1= uk*T+xk yk+1=xk+1 (yk+1= uk*T+yk) yk+1 s P

__________________________________________________________________________________________ Stttler PA 4/13

PID-Entwurf 19.06.11 V2.0 __________________________________________________________________________________________ Besser : realer PID - Regler digital simulierter realer PID - Regler uk+1 xk+1 =(1- 1T)*xk+ T*uk yk+1 yk+1 =- 12*xk+1+ 1*uk+1

D D PID P I 1/s s/(1+s/ 1) uk P

uk+1 I s/(1+s/ 1) - > Zustandsraum :

xk+1= uk*T+xk yk+1=xk+1 (yk+1= uk*T+yk)

yk+1

xk = - 1*xk + uk xk+1= xk*T+xk = = (- 1*xk+uk)*T+xk = (1- 1T)*xk + T*uk yk+1 = - 12*xk+1+ 1*uk+1 = - 12*xk+1+ 1*uk+1

Nachteile simulierter Analogregler : Simulation wirkt destabilisierend auf den Regelkreis, bentigen eine hohe Rechenleistung, weil die Abtastzeit sehr viel kleiner als die Streckenzeitkonstanten/Reglerzeitkonstanten sein mssen. Abhilfe schafft der Reglerentwurf fr diskrete ( digitale ) Regler mit der Z-Transformation. Wind-Up-Effekt : Aufgrund der immer vorhandenen Stellgrenbeschrnkungen ist es wahrscheinlich, da die Regelstrecke langsamer antwortet als berechnet ( ein Reglerentwurf ohne Bercksichtigung von Stellgrenbeschrnkungen sei vorausgesetzt ). Als Folge erhlt der Integrator fallweise zu lange ein Eingangssignal, soda er auf sehr hohe Werte integriert. Eine Verbesserung liefert die Abschaltung des Integrators, wenn eine Stellgre an den Anschlag luft. Schlielich ist ein Rampenvorfilter zur Stellgrenbeschrnkungen zweckmig. Die berprfung ob eine Stellgre in der Begrenzung ist mu durch Messung derselben berwacht werden. Der Wind-Up-Effekt ist bei digitalen Reglern problematisch.
Aufgabe : Setzen Sie einen ganzen PID in den Zust.R. um und geben Sie den Algorithmus des digital simulierten PID an

6. PID-Testprogramme in Matlab 1
%6.1 PID-Test Strecke mit Ausgleich ( nicht integrierend ) : 5/(s+1)(0.1s+1)(0.02s+1)
figure(1); clear; figure(1); N1=[1 1]; N2=[0.1 1];N3=[0.02 1]; [Zs Ns]=series(5,N1,1,N2);[Zs Ns]=series(Zs,Ns,1,N3); bode(Zs,Ns);pause; %Frequenzgang der Maschine step(Zs,Ns);pause; %Sprungantwort der Maschine

%6.1.1 P-Entwurf basierend auf der Sprungantwort


Ta=1.5;Tu=0.08;V=5; figure(2); title('P-Regler'); P=0.7*Ta/(Tu*V);[Z N]=series(P,1,Zs,Ns); bode(Z,N);pause; [Zc Nc]=cloop(Z,N,-1);step(Zc,Nc); %aus der Sprungantwort abgelesen %Frequenzgang des offenen Kreises mit P- geregelter Maschine %Sprungantwort der P- geregelten Maschine

%6.1.2 PI-Entwurf basierend auf der Sprungantwort


figure(3);title('PI-Regler'); P=0.6*Ta/(Tu*V);I=P/Ta; [Zr Nr]=parallel(P,1,[0 I],[1 0]);[Z N]=series(Zr,Nr,Zs,Ns); bode(Z,N);pause; %Frequenzgang des offenen Kreises mit PI- geregelter Maschine [Zc Nc]=cloop(Z,N,-1);step(Zc,Nc); %Sprungantwort der PI- geregelten Maschine
1

die Programme knnen mit 'strg c' / 'strg v' in Matlab importiert und ausgetestet __________________________________________________________________________________________ Stttler PA 5/13

PID-Entwurf 19.06.11 V2.0 __________________________________________________________________________________________ %6.1.3 PID-Entwurf basierend auf der Sprungantwort
figure(4);title('PID-Regler'); P=0.95*Ta/(Tu*V);I=P/(1.35*Ta);D=P*(0.47*Tu); [Zr Nr]=parallel(P,1,[0 I],[1 0]); [Zr Nr]=parallel(Zr,Nr,[D 0],[1/100 1]); [Z N]=series(Zr,Nr,Zs,Ns); bode(Z,N);pause; [Zc Nc]=cloop(Z,N,-1);step(Zc,Nc);

%Frequenzgang des offenen Kreises mit PID- geregelter Maschine %Sprungantwort der PID- geregelten Maschine

%6.2 PID-Test Strecke ohne Ausgleich ( integrierend ) : 1/s(1.1s+1)(0.1s+1)


clear; figure(1); N1=[1 0]; N2=[1.1 1];N3=[0.1 1]; [Zs Ns]=series([0 1],N1,1,N2);[Zs Ns]=series(Zs,Ns,1,N3); bode(Zs,Ns);pause; %Frequenzgang der Maschine step(Zs,Ns);pause; %Sprungantwort der Maschine

%6.2.1 P-Entwurf basierend auf der Sprungantwort


Ti=3.5/3.8;Tu=1.5; figure(2); P=0.5*Ti/(Tu);[Z N]=series(P,1,Zs,Ns); bode(Z,N);pause; [Zc Nc]=cloop(Z,N,-1);step(Zc,Nc); %aus der Sprungantwort abgelesen %Frequenzgang des offenen Kreises mit P- geregelter Maschine %Sprungantwort der P- geregelten Maschine

%6.2.2 PI-Entwurf basierend auf der Sprungantwort


figure(3); P=0.4*Ti/(Tu);I=0.2*P/Tu; [Zr Nr]=parallel(P,1,[0 I],[1 0]);[Z N]=series(Zr,Nr,Zs,Ns); bode(Z,N);pause; %Frequenzgang des offenen Kreises mit PI- geregelter Maschine [Zc Nc]=cloop(Z,N,-1);step(Zc,Nc); %Sprungantwort der PI- geregelten Maschine figure(4);

%6.2.3 PID-Entwurf basierend auf der Sprungantwort


P=0.4*Ti/(Tu);I=0.3*P/*Tu;D=0.8*Tu*P; [Zr Nr]=parallel(P,1,[0 I],[1 0]); [Zr Nr]=parallel(Zr,Nr,[D 0],[1/100 1]); [Z N]=series(Zr,Nr,Zs,Ns); bode(Z,N);pause; [Zc Nc]=cloop(Z,N,-1);step(Zc,Nc);

%Frequenzgang des offenen Kreises mit PID- geregelter Maschine %Sprungantwort der PID- geregelten Maschine

%6.2.4 PD-Entwurf basierend auf der Sprungantwort


figure(5); P=0.5*Ti/(Tu);D=0.5*Tu*P;I=0; [Zr Nr]=parallel(P,1,[0 I],[1 0]); [Zr Nr]=parallel(Zr,Nr,[D 0],[1/100 1]); [Z N]=series(Zr,Nr,Zs,Ns); bode(Z,N);pause; [Zc Nc]=cloop(Z,N,-1);step(Zc,Nc);

%Frequenzgang des offenen Kreises mit PD- geregelter Maschine %Sprungantwort der PD- geregelten Maschine

__________________________________________________________________________________________ Stttler PA 6/13

PID-Entwurf 19.06.11 V2.0 __________________________________________________________________________________________

6.3 P-, PI-, PID-Entwurf im f-Bereich


Dieser nachfolgende Text enthlt Matlab-m-Files mit denen Sie den P-, den PI-, und den PID-Entwurf im fBereich etwas ben knnen. Als Basis dient das Verfahren nach Stttler siehe oben. Voraussetzung fr die Verwendung ist das Vorhandensein von Matlab und der Matlab-Toolboxen 'Signal Processing'und 'COntrol'. Es ist empfehlenswert diesen Text auszudrucken. Kopieren Sie die Texte ber die Zwischenablage in eigene Files und geben Sie Ihnen die Extension .m ( nennen Sie sie p.m, pi.m, pid.m ) p_.m .. Trainer fr den P-Reglerentwurf pi_.m .. Trainer fr den PI-Reglerentwurf pid.m .. Trainer fr den PID-Reglerentwurf Das Trainerfile fr den P-Entwurf enthlt auch bungen zur Beurteilung der Stabilitt anhand der Ortskurve. Vorgehensweise: 1.starten Sie Matlab 2.kopieren Sie die Programme ( siehe weiter unten ) mit dem Windows-Explorerin eigene Files mit der Extension .m . Legen Sie die Files im Pfad c:\matlab\pid\ ab(andere Pfade sind natrlich auch mglich) 3.tippen Sie im Matlab-Kommandofenster : cd c:\matlab\pid <return> 4.mit : dir <return> wird das directory mit den drei Trainingsdateien gelistet 5. sie starten die Trainer indem Sie einfach den Namen der Datei - aber ohne extension im Matlab-Kommandofenster eingeben. Z.B.: p_ <return> .. startet den Trainer fr den P-Regler mit der return - Taste steuern Sie die schrittweise Abarbeitung und Vorfhrung des Reglerentwurfes 6. ffnen Sie parallel dazu mit einem Editor das laufende m-File es enthlt wichtige Dokumentationen zum Reglerentwurf weitere Files, Vortrge und Dokumentationen zu diesem und anderen Themen finden Sie unter : http:\\members.aon.at\vtv\spa.htm Antworten auf Fragen, Hilfe, Untersttzung bei der Entwicklung von Elektronik, elektronischen Steuerungen, Metechnik,.. finden Sie bei : spa stttler prozessautomatisierung A6774 Tschagguns I.L.2 tel/fax 05556 72165 technic.stuettler@aon.at

%6.3.1 Programm P-Regler im f-Bereich entworfen :


%*************************************************************** %Bsp.2.2 Joergl 'Regelungstechnik1' ein hydraulisches Beispiel, die Regelstrecke ist vorgegeben % Es soll ein Regler entworfen werden. Ueberschwingen ue=20% : %*************************************************************** % alle Variable loeschen : clear; %******************************************************************************* %die Regelstrecke ( Berechnung siehe Joergl : Regelungstechnik 1 ) : %******************************************************************************* % mit rho = 1e3;Leitungslnge l = 100m, Leitungsquerschnitt AL=0.1m2; If=10; Cf=0.1; Rf=200; R=150; K=1e-3; __________________________________________________________________________________________ Stttler PA 7/13

PID-Entwurf 19.06.11 V2.0 __________________________________________________________________________________________ Ns=[If*Cf Cf*(Rf+R) 1];Zs=[0 0 K]; bode(Zs,Ns); pause; % Der 3x400V Antriebsmotor habe naeherungseise % folgende Uebertragungsfunktion G(s) = 2/(1+s/0.5) % Anmerkung : weil der Antriebsmotor sehr schnell ist % ( nur ein Pol bei w=0.5 ) % koennte er auch vernachlssigt werden: Fuehren Sie den % Entwurf ohne Beruecksichtigung des Motors durch und % vergleichen Sie. Es sollte sich derselbe PID nur um den Faktor % 2 im Bodediagramm hher liegend ergeben, weil der Faktor % 2 des Motors fehlt [Zs,Ns]=series(Zs,Ns,[0 2],[1/0.5 1]); % die gesamte Regelstrecke U->p2 : bode(Zs,Ns); pause; %******************************************************************************* %der P-Entwurf : %******************************************************************************* %Reglerentwurf auf ue=20% : ue=20; phi = 70-ue % aus dem Boded. : wd = 0.5; Gwd_in_dB=-82dB Gwd_in_dB=-82;wd=0.5; Gwd=10^(Gwd_in_dB/20); % bei wd soll L = 1 sein dh P=1/G P=1/Gwd; %wir plotten den Frequenzgang von L = P*G : [ZL,NL]=series(Zs,Ns,P,1); bode(ZL,NL);title(' *** P-Entwurf ***');pause; % wir schliessen den offenen Regelkreis und testen ihn mit der Sprungantwort [Zc,Nc]=cloop(ZL,NL,-1); step(Zc,Nc);title(' *** P-Entwurf ***');pause; %der Regelkreis ist stabil und die Pole von T(geschl. Kreis) liegen bei : pzmap(Zc,Nc);title(' *** P-Entwurf ***');pause; %selbstverstaendlich liegen die Pole (mit 'x' gekennzeichnet) alle links %wir erhalten beinahe exakt 20% ueberschwingen ! Nach ca. 4sec ist der Sollwert %das erste mal erreicht ( Risetime = 4sec ) %Beachten Sie dass auch nach unendlich langer Zeit der sollwert nicht exakt %erreicht wird!( rot strichlierte Linie zeigt den Limes fuer t -> unendlich = % = 0.97 dh. 3% bleibende Abweichung ) % zum Abschluss plotten wir die Ortskurve von L. Sie duerfte -1 nicht umschlingen! nyquist(ZL,NL);title(' *** P-Entwurf ***');pause; % Wir wollen die Regleruebertragungsfunktion und das Bodediagramm plotten : bode(P,1);title(' *** P-Regler-Uebertragungsfunktion ***');pause; P %******************************************************************************* %der P-Regler ist entworfen. Wir fhren noch einige Versuche durch : %******************************************************************************* __________________________________________________________________________________________ Stttler PA 8/13

PID-Entwurf 19.06.11 V2.0 __________________________________________________________________________________________ % versuchsweise wollen wir den Regelkreis etwas beschleunigen und erhhen % dazu P. Weil dadurch wd nach rechts wandert, also hin zum schlechteren % Phasenrand, ist gemaess ue= 70-phi ein groesseres ue zu erwarten [ZL,NL]=series(Zs,Ns,P*5,1); bode(ZL,NL);pause; [Zc,Nc]=cloop(ZL,NL,-1); step(Zc,Nc);title(' *** P-Entwurf mit P*5 ***');pause; %der Regelkreis ist noch stabil und die Pole liegen noch links sind aber % etwas nach rechts in Richtung Instabilitt gerueckt : pzmap(Zc,Nc);title(' *** P-Entwurf mit P*5 ***');pause; %ausserdem erhalten wir nun wie erwartet ein groessere ue von nahezu 50% ! % dafuer ist die Risetime kuerzer geworden: 1sec % auch wird der sollwert von 1 nun mit groesserem P besser erreicht! % zum Abschluss plotten wir die Ortskurve von L. Sie duerfte -1 nicht umschlingen! nyquist(ZL,NL);title(' *** P-Entwurf P*5 ***');pause; % -1 wird nicht umschlungen, aber doch beinahe axis([-10 10 -10 10]); pause; % nun sehen Sie es besser! % was waere, wenn wir den P Faktor viel zu gross waehlen wuerden [ZL,NL]=series(Zs,Ns,100*P,1); bode (ZL,NL);pause; [Zc,Nc]=cloop(ZL,NL,-1);t=[0:0.0001:10]; step(Zc,Nc,t);title(' *** P-Entwurf mit P>> ***');pause; % der Regelkreis ist nun instabil, die Ausgangsgroesse schwingt sich nicht auf % den Sollwert ein, sondern 'explodiert' % Auch den Polen muesste die Instabiliaet ansehen. Mindestens einer muesste nun % rechts liegen : pzmap(Zc,Nc);title(' *** P-Entwurf mit P>> ***');pause; % tatschlich der Regelkreis muss instabil sein. % zum Abschluss plotten wir die Ortskurve von L. Sie muesste -1 nun umschlingen! nyquist(ZL,NL);title(' *** P-Entwurf P>> ***');pause; % -1 wird nun umschlungen, es ist nur schlecht erkennbar! axis([-10 10 -10 10]);pause; % nun sehen Sie es besser! rlocus(ZL,NL);pause; %************************************************************************** % damit sind unsere Tests am P-regler beendet %**************************************************************************

%6.3.2 Programm PI-Regler im f-Bereich entworfen :


%*************************************************************** %Bsp.2.2 Joergl % Es soll ein Regler entworfen werden. Ueberschwingen ue=20% : %*************************************************************** % alle Variable loeschen : clear; %******************************************************************************* %die Regelstrecke ( Berechnung siehe Joergl ) : %******************************************************************************* % mit rho = 1e3;Leitungslnge l = 100m, Leitungsquerschnitt AL=0.1m2; If=10; Cf=0.1; Rf=200; R=150; __________________________________________________________________________________________ Stttler PA 9/13

PID-Entwurf 19.06.11 V2.0 __________________________________________________________________________________________ K=1e-3; Ns=[If*Cf Cf*(Rf+R) 1];Zs=[0 0 K]; bode(Zs,Ns);title(' *** das hydraulische System: ***') pause; % Der 3x400V Antriebsmotor habe naeherungseise % folgende Uebertragungsfunktion G(s) = 2/(1+s/0.5) % Anmerkung : weil der Antriebsmotor sehr schnell ist % ( nur ein Pol bei w=0.5 ) % knnte er auch vernachlssigt werden: Fuehren Sie den % Entwurf ohne Beruecksichtigung des Motors durch und % vergleichen Sie. Es sollte sich derselbe PID nur um den Faktor % 2 im Bodediagramm hoeher liegend ergeben, weil der Faktor % 2 des Motors fehlt [Zs,Ns]=series(Zs,Ns,[0 2],[1/0.5 1]); % die gesamte Regelstrecke U->p2 : bode(Zs,Ns); title(' *** Motor+Hydr.System=Regelstrecke G=> P,wd ablesen ***'); pause;

%************************************************************************** % PI-Entwurf %************************************************************************** ue=20; phi = 70-ue % aus dem Boded. : wd = 0.5; Gwd_in_dB=-82dB Gwd_in_dB=-82;wd=0.5; Gwd=10^(Gwd_in_dB/20); % aus dem P-Entwurf bernehmen wir den P-Regler P = 1.2589e+004 % wir fuegen nun einen I-Anteil hinzu um die bleibende Regelabweichung zu % eliminieren! Der I-P Knick muss mindestens eine Dekade links von wd liegen % damit der I-Anteil die Phase nicht wesentlich verschlechtern kann % die Durchtrittsfrequenz der I-Geraden wi erhaelt man durch Multiplikation mit P wi = wd/10*P; [Zr,Nr]=parallel(P,1,[0 1],[1/wi 0]); [ZL,NL]=series(Zs,Ns,Zr,Nr); bode (ZL,NL);title(' *** Loop-Gain L : kontrolliere Phasenrand!***');pause; % man erkennt am Bode-Diagramm die Verschlechterung der Phase bei wd um ca 7 % daher ist ein um ca. 7% erh"htes berschwingen zu erwarten % wir berechnen die -Funktion des geschlossenen Kreises [Zc,Nc]=cloop(ZL,NL,-1);t=[0:0.0001:10]; step(Zc,Nc,t);title(' *** Sprungantwort PI-Entwurf ***');pause; % Der Limes der Regelabweichung der PI-geregelten Maschine ist % fr t -> unendlich nun 0!!! wenn Sie es nicht glauben uebergeben % Sie dem step-Befehl eine Zeitachse mit 'langem' Zeitvektor % man erkennt aber auch, dass das berschwingen etwas groesser geworden ist, weil % der I-Anteil Phase bei wd doch noch etwas verschlechtert hat ( ca.6%) . Wenn % Sie den I-Anteil 2 Dekaden nach links verschieben wird der I-Anteil zwar % schwcher und weniger wirksam, aber Sie knnten so den zwar geringen doch % vorhandenen negativen Einfluss auf die Phase bei wd eliminieren % versuchen Sie den I-Anteil selbst etwas nach links zu verschieben % und schauen Sie sich dann das Bodediagramm L(s) sowie % die Sprunganwort des geschlossenen Kreises an. % Wir wollen die Regleruebertragungsfunktion und das Bodediagramm plotten : __________________________________________________________________________________________ Stttler PA 10/13

PID-Entwurf 19.06.11 V2.0 __________________________________________________________________________________________ % sie erkennen auch den P-I-Knick bei wd/10 = 0.05 bode(Zr,Nr);title(' *** PI-Regler-Uebertragungsfunktion ***');pause; Zr,Nr % Drucken Sie das Bodediagramm aus, um es spter mit dem PID vergleichen zu % koennen!Die Regleruebertragungsfunktion koennte nun in den zustandsraum % transformiert werden und dann durch Hochintegration des Zustandsraumes waere der % Regler auf einem Digitalrechner realisierbar und koennte die Anlage regeln! % Die Sprungantwort eines PI-Reglers hat zwar praktisch keine Bedeutung, aber % man erkennt die Arbeitsweise des PI-Reglers. Der Sprung kommt vom P-Anteil, % die ansteigende Gerade vom I-Anteil.Dieses stete langsame Ansteigen des I% Anteiles macht den I-Regler so genau! Er steuert damit die Maschine an, bis % die Regelabweichung 0 ist. step(Zr,Nr);title(' *** PI-Regler-Sprungantwort ***');pause;

%6.3.3 PID-Regler im f-Bereich entworfen :


%*************************************************************** %Bsp.2.2 Joergl % Es soll ein Regler entworfen werden. Ueberschwingen ue=20% : %*************************************************************** % alle Variable loeschen : clear; %******************************************************************************* %die Regelstrecke ( Berechnung siehe Jiergl ) : %******************************************************************************* % mit rho = 1e3;Leitungslnge l = 100m, Leitungsquerschnitt AL=0.1m2; If=10; Cf=0.1; Rf=200; R=150; K=1e-3; Ns=[If*Cf Cf*(Rf+R) 1];Zs=[0 0 K]; bode(Zs,Ns);title(' *** das hydraulische System der Regelstrecke ***'); pause; % Der 3x400V Antriebsmotor habe nherungseise % folgende Uebertragungsfunktion G(s) = 2/(1+s/0.5) % Anmerkung : weil der Antriebsmotor sehr schnell ist % ( nur ein Pol bei w=0.5 ) % koennte er auch vernachlaessigt werden: Fuehren Sie den % Entwurf ohne Beruecksichtigung des Motors durch und % vergleichen Sie. Es sollte sich derselbe PID nur um den Faktor % 2 im Bodediagramm hoeher liegend ergeben, weil der Faktor % 2 des Motors fehlt [Zs,Ns]=series(Zs,Ns,[0 2],[1/0.5 1]); % die gesamte Regelstrecke U->p2 : bode(Zs,Ns); title(' *** die gesamte Regelstrecke mit Motor = G(s) ***'); pause; %************************************************************************** % PID-Entwurf %************************************************************************** __________________________________________________________________________________________ Stttler PA 11/13

PID-Entwurf 19.06.11 V2.0 __________________________________________________________________________________________ % wir verwenden die Formel phi = 25 statt 70, weil der D-Anteil die Phase % spter bei wd um 45 hebt, soda die urspruengliche Formel gilt. % Wir verwenden also die Formel phi = 25 und machen wie gewohnt den PI-Entwurf % allerdings nicht fr die Strecke G= Zs/Ns, sondern fuer G= Zs/Ns+3dB = 1.4*Zs/Ns, weil der D_anteil spter % den Amplitudengang bei wd um 3dB hebt. ue=20; phi = 25-ue Zs_=1.4*Zs;bode(Zs_,Ns);title(' pause; *** G(s)+3dB : P,wd ablesen (bie phi+ue=25!) ***');

% aus dem Boded. : wd = 2.3; Gwd_in_dB=-102dB der P-Faktor ist groesser als beim % P-Entwurf! => der Regler wird schneller und genauer! Vergleichen Sie mit dem %P-Entwurf!! Gwd_in_dB=-102;wd=2.3; Gwd=10^(Gwd_in_dB/20); % P-Regler : bei wd soll L = 1 sein dh P=1/G P=1/Gwd %I-Regler : wi = wd/10*P; [Zr,Nr]=parallel(P,1,[0 1],[1/wi 0]); % D-Regler : wd1 = wd /P;wd2 = 30*wd; [Zr,Nr]=parallel(Zr,Nr,[1/wd1 0],[1/wd2 1]); % damit waere der Regler fertig. Wir wollen ihn simulationstechnisch prfen und % berechnen dazu die Uebertragungsfunktion des 'open loop' L : [ZL,NL]=series(Zs,Ns,Zr,Nr); %Bode des offenen Kreises ( Sie sehen die Phase bei wd=2.3 ist gut - aufgrund %des D-Anteiles!) bode(ZL,NL);title(' ***Open Loop Gain L: Phasenrand pruefen! ( phi+ue=70!) ***'); pause; % nun der 'closed loop' : [Zc,Nc]=cloop(ZL,NL,-1);t=[0:0.0001:10]; step(Zc,Nc,t);title(' *** Sprungantwort mit PID-Regler ***');pause; % der Regler ist schnell ( Risetime unter 1sec, und genau Regelabweichung =0 ! ) % das Ueberschwingen ist etwas zu hoch. Sie knnten es verbessern, indem Sie den % I-Anteilweiter als eine Dekade nach links verschieben oder den Entwurf % wiederholen, aber mit etwas nach links verschobenem D-Anteil. Versuchen Sie diese Manahme! % Wir wollen die Regleruebertragungsfunktion und das Bodediagramm plotten : % sie erkennen auch den P-I-Knick bei wd/10 = 0.23 und den P-D-Knick bei wd=2.3 % der wd2 - Knick ist noetig, sonst wuerde der D-Anteil nicht realisierbar bode(Zr,Nr);title(' *** PID-Regler-Uebertragungsfunktion ***');pause; Zr,Nr % Die Sprungantwort eines PID-Reglers hat zwar praktisch keine Bedeutung, aber % man erkennt die Arbeitsweise des PID-Reglers. Der Sprung kommt vom P-Anteil, % die ansteigende Gerade vom I-Antei. Der Peak zu beginn entsteht aufgrund des % D-Anteiles. der peak macht den D-Regler so schnell und bewirkt ausserdem, dass % der P und der I-Anteil 'weniger regeln' mssen und so die Stabilitaet gegenueber % dem PI-Regler besser wird step(Zr,Nr,t);title(' *** PID-Regler-Sprungantwort ***');pause; % der Regler koennte nun nach erfolgreichem Test, auf dem Steuerungsrechner % implementiert werden. Dieses Pumpensystem sollte sich dann so verhalten wie % berechnet und simuliert! __________________________________________________________________________________________ Stttler PA 12/13

PID-Entwurf 19.06.11 V2.0 __________________________________________________________________________________________ %zum Schluss wollen wir die Strecken bertragungsfunktion G(s) und die bertragungsfunktion %des PID-Reglers sowie die Schleifenverst"rkung L bereinander anordnen. Man sieht deutlich %die kompensierende Wirkung des PID-Frequezganges : die Verst"rkung f r niedere Frequenzen %wird durch den I-Anteil verbessert, der Regler wird dadurch genau. Die Verst"rkung f r die hohen %Frequenzen wird durch den D-Anteil angehoben. Dadurch wird der Regler schnell. Auerdem %hebt der D-Anteil die Phase bei den hohen Frequenzen und tr"gt damit zur Stabilit"t bei, %bzw. macht es m"glich dass gr"ssere P-Faktoren verwendet werden d rfen. ww=logspace(-3,3,1000); figure(1);[a1,p1,w1]=bode(Zs,Ns,ww);subplot(2,1,1);loglog(ww,a1,'r');grid;subplot(2,1,2); semilogx(ww,p1,'r');grid;title(' *** die gesamte Regelstrecke G(s) ***'); figure(2);[a2,p2,w2]=bode(Zr,Nr,ww);subplot(2,1,1);loglog(ww,a2,'r');grid;subplot(2,1,2); semilogx(ww,p2,'r');grid;title(' *** PID-Regler-bertragungsfunktion ***'); figure(3);[a3,p3,w3]=bode(ZL,NL,ww);subplot(2,1,1);loglog(ww,a3,'r');grid;subplot(2,1,2); semilogx(ww,p3,'r');grid;title(' ***Open Loop Gain L***'); figure(4); subplot(2,1,1),loglog(ww,a1,'r',ww,a2,'g',ww,a3,'y'); title(' G(s): red R(s): green L(s): yellow'); grid; subplot(2,1,2),semilogx(ww,p1,'r',ww,p2,'g',ww,p3,'y'); title(' phi(G(s)): red phi(R(s)): green phi(L(s)): yellow'); grid; pause; %************************************************************************** % PID-Entwurf - Ende %************************************************************************** % Beachten Sie, da es eine Vielzahl andere Varianten von PID-Entwurfsverfahren % gibt. Auch solche die mit der Sprungantwort arbeiten. Meist ist deren % Entwurfsergebnis etwas schlechter als bei Verfahren die im Frequenzbereich % arbeiten.

7. Reglerentwurf mit der Probiermethode


Diese Methode erfolgt direkt an der Maschine durch geschicktes Einstellen der P-, I-, D-Werte. Selbstverstndlich kann diese Technik auch an einer simulierten Maschine eingesetzt werden. Dieser Entwurf hat den Vorteil, da kein Aufwand fr den Entwurf anfllt. Der Nachteil des Entwurfes besteht darin, da man eventuell suboptimale Lsungen erhlt und auerdem das an sich wertvolle Studium der Dynamik der Maschine verabsumt wird. Die Vorgehensweise ist wie folgt : 1. 2. 3. 4. 5. I=0, D=0, und P wird solange erhht bis die Sprungantwort das zulssige berschwingen errreicht dann wird D erhht bis das berschwingen in der Sprungantwort sich deutlich reduziert es wird wiederum P erhht bis die Sprungantwort wiederum das zulssige berschwingen errreicht 2. und 3. werden solange durchgefhrt bis es mit einer Erhhung des D-Anteils nicht mehr gelingt, dasberschwingen zu reduzieren oder bis die maximal zulssigen Stellsignale erreicht werden anschlieend wird der I-Anteil solange erhht bis der negative Einflu auf die Stabilitt an einer Erhhung des berschwingens sichtbar wird. Man nimmt den I-Anteil dann etwas zurck ( Sicherheitsreserve ).

__________________________________________________________________________________________ Stttler PA 13/13