Institutionen för Tillämpad Fysik och elektronik Umeå Universitet BE Version: 05-02-29 Reglersystem Introduktion till verktyget SIMULINK Grunderna.....2 Tidskontinuerliga Reglersystem... 8 Övningsuppgift...3 Tidsdiskreta Reglersystem..(jobba med i mån av tid)..4 Appendix A. Symboler. 8
Introduktion till SIMULINK 2 Grunderna Starta MATLAB - Välj i första hand den Matlab som finns lokalt installerad på din dator i labbet. Välj din egen hemkatalog ( t.ex med cd h: eller klicka på rullgardinsmeny) En ny modell bildar du i Simulink genom att använda rullgardinsmenyn "file" - "new" - "model". Du får då ett vitt nytt ark att lägga in schemakomponenter på. Starta "Simulink library browser" genom att markera ikonen och dubbelklicka höger musknapp: Nu visas:
Introduktion till SIMULINK 3 Dubbelklicka sedan på Simulink-symbolen så fås: Grundfunktioner Reglerteknik Diverse Ett exempel: Simulera hur nivån (h) i en tank med avlopp (area a) i botten variera med inflödet (q): Tankens area = A, utflöde = w.
Introduktion till SIMULINK 4 q h Fysikens lagar ger oss detta ( olinjära pga rottecknet ) uttryck: dv dt dh = A = q a dt 2 9.8 h = q f ( h) w Sambandet kan i blockschemaform beskrivas så här: q A*dh/dt dh/dt h /A dt w f(h)
Introduktion till SIMULINK 5 Skapa en ny modell och rita upp schemat. Dubbelklick höger musknapp för val av funktion och höger musknapp för att dra förbindningslinjer. Ventil / Gain s Integrator h Scope Fcn f(u)
Introduktion till SIMULINK 6 Välj sedan att simulera förloppet i 50 sekunder: Med parametrarna A = m 2 och a = 0. m 2 fås resultatet genom att dubbelklicka på oscilloskopet ("scope" ) :
Introduktion till SIMULINK 7 Att fundera över: Ventilen som öppnar flödet ( "step" ) aktiveras efter sekund. Hur ändra denna tid.? Vilken blir den teoretiska slutnivån i tanken?. Verkar det stämma med simuleringen?
Introduktion till SIMULINK 8 Reglerteknik,Tidskontinuerliga system. Antag att vi vill reglera processen ( s + 20) G( s) = 2 s( s + 24s + 44) med en proportionell regulator med säg K=2 gånger. Block Clock och Workspace behövs normalt ej. Step 2 Gain s+20 s 3+24s 2+44s Transfer Fcn Scope y To Workspace t Clock To Workspace Om man direkt vill se stegsvaret, använd "scope". Alternativt kan simuleringsresultat placeras i arbetsbiblioteket med blocket "To Workspace". För att få korrekt tidsinformation kopplas en klocka in. Klockan hittas i Source-biblioteket. Observera att i To Workspce-blocket skall "save format" sättas till "matrix". Plott av resultatet kan göras med kommandor plot(t,y). 0.9 0.8 0.7 a r v S tegs 0.6 0.5 0.4 0.3 0.2 0. 0 0 0.2 0.4 0.6 0.8.2.4.6.8 2
Introduktion till SIMULINK 9 Undersök vad som händer om en transportfördröjning ( "dödtid" ) på t.ex 0.5 sek. införes i processen: Step 2 Gain s+20 s 3+24s 2+44s Transfer Fcn Transport Delay Scope y To Workspace t Clock To Workspace.5 0.5 0 0 2 3 4 5 6 7 8 9 0 Undersök vad händer med systemets stabilitet om dödtiden ökas. Vilken slutsats kan dras om dödtidens inverkan?
Introduktion till SIMULINK 0 Exempel Tankreglering. A. tank. Parametrar: q inflöde [m 3 /s] w utflöde [m 3 /s] A area [m 2 ] a utloppsarea [m 2 ] h nivå [m] q Enl. sid 4 kan tankdynamiken beskrivas som: w dv dt dh = A = q a dt 2 9.8 h = q f ( h) q h /0.0 /A s Integrator w f(u) a*sqrt(2*g*u) Antag att vi vill reglera nivån i tanken med hjälp av en pump + en PID-regulator. Pumpen lämnar ett flöde q som en funktion av den spänning u som tillförs pumpen. Antag att det gäller att q=k*u, med k = 0-5 [m 3 /s]. Tanknivå mäts med en nivågivare som antas ha överföringsfunktionen =. Tankarea A = 0.000 [m 2 ] Utloppsarea a =0-5 [m 2 ] Obs signalbegränsaren efter regulatorn. Praktiska förhållanden gör att utsignalen från PID:en begränsas till området 0 till +5 Volt. Ett SIMULINK-schema ritas: Sty rsignal till pump Step PID PID Controller Saturation 0^(-5) Pump /0.000 /A s Integrator Nivå Scope En simulering med PID-parametrarna K = 4, I=0 ( T I = ) och D=0 (T D =0) ger: Nivågivare Fcn f(u)
Introduktion till SIMULINK ( Se appendix under "Simulink extras" för olika PID-algoritmer. ) 4 3.5 3 Styrsignal 2.5 2.5 Nivå 0.5 0 0 2 4 6 8 0 2 4 6 8 20 Man observerar att nivån inte når den önskade ( enhet ) utan stannar på 0.8950. Ett kvarstående fel på -0.895=0.05 enheter uppträder. PS Graf ovan ej exakt som texten. Med en PI-regulator ( K=4, I= ) kan nämnda fel elimineras: 4 3.5 3 2.5 2.5 0.5 0 0 2 4 6 8 0 2 4 6 8 20 B. Två tankar. Antag nu att låter utloppet från tanken ledas till en likadan tank:
Introduktion till SIMULINK 2 För att inte SIMULINK-schemat skall bli så stort kan man nu definiera en tank som att separat block genom att markera tanken ( med muspekaren ) och under EDIT välja "Create Subsystem". Ett subsystem bildas ( Om Du vill kan Du komplettara namnet till Subsystem Tank). Med tex kopiera och klistra in kan subsystem återanvändas. Nedre tankens inlopp blir övre tankens utlopp. Bör-värde= PID PID P=, I= 0-5V 0^(-5) Pump ger Inflöde /0.000 /A s Integrator Scope Olinjärt utflöde=a*sqrt(2*g*u) Utflöde( a=0^(-5)) f(u) y Nivågivare To Workspace t Clock To Workspace PID Bör-värde= PID P=, I= 0-5V 0^(-5) Pump ger Inflöde Inflöde Nivå Utflöde Scope Subsystem Tank Nivågivare y To Workspace t Clock To Workspace brytas ned delblock etc.) är ett måste i större system. Tips: Skriv demos i matlab-fönstret och gå in under simulink. Många exempel finns där. Nivå PID 0^(-5) Inflöde Nivå Bör-värde= PID P=, I= 0-5V Pump ger Inflöde Utflöde SubsystemTank Inflöde Utflöde SubsystemTank2 Scope Nivågivare y To Workspace Clock t To Workspace
Introduktion till SIMULINK 3 Övningsuppgift Att redovisa muntligt till labbhandledaren. Simulera dubbeltankprocessen enligt föregående exempel. Ta fram en tidsgraf motsvarande den som finns här nedan Fast nu så skall utloppsarean a i den undre tanken ha värdetl 2*0-5 [m 2 ] (dubbla arean). Visa det nya förloppet! Antag att övre tanken har en startnivå på 2 m ( hur ställer Du in detta värde? ) En simulering med P=, I= samt D=0 ger detta resultat enligt fig nedan. ( Vilka förlopp beskrivs av kurvorna?) Räkna fram PID-parametrarna K, Ti och Td. ( Svar: ggr, sek. resp. 0 sek.) Förklara den övre kurvans utseende. 7 6 5 4 3 2 0 0 0 20 30 40 50 60 70 80 90 00 Tid [s] Graf: Då undre tanken har utloppsarea a =.0*0-5 [m 2 ] Undersök vad som händer om utloppsarean a i den undre tanken ökas från 0-5 [m 2 ] till 2*0-5 [m 2 ]. Visa det nya förloppet! Förklara vad som händer!
Introduktion till SIMULINK 4 Reglerteknik, Tidsdiskreta System Denna del ingår ej i kurs Mät- och Reglersystem A, 5p Bakgrund: I dagens reglersystem är normalfallet tidsdiskreta (datorbaserade) regulatorer som styr tidskontinuerliga processer. Tips: Läs kap. 4 i Thomas "Modern Reglerteknik". Ta som exempel en :a ordningens process med tidskonstanten 0 sekunder som regleras av en tidsdiskret P-regulator med förstärkningen 2 ggr och med samplingsfrekvens 2 Hz, dvs samplingsintervallet 0.5 sekunder. För att beskriva regulatorn tids-diskreta natur används blocket "zero order hold" eller hållkrets, vilken håller en signal på konstant nivå mellan sampeltidpunkterna. Zero-order-hold-funktionen framgår av detta exempel med en tidskontinuerlig ramp ( A ) som samplas med sampelintervallet sekund ( B ): A 5 4.5 out 4 3.5 Ramp Zero-Order Hold B To Workspace time p m ra 3 2.5 2.5 Clock To Workspace 0.5 0 0 0.5.5 2 2.5 3 3.5 4 4.5 5 tid [s] Regulator u BÖRvärde 2 Gain Zero-Order Hold 0s+ :a ordn. process y Scope Blockschema som beskriver den reglerade processen. u är styrsignal och y är utsignal.
Introduktion till SIMULINK 5 2.8.6.4.2 u G( s) = 0s + 0.8 0.6 0.4 0.2 y 0 0 5 0 5 tid[s] Stegsvar för processen G(s) reglerad med tidsdiskret P-regulator med förstärkning 2 ggr och sampelintervall 0.5 sek. Steget pålagt vid tiden t= sek. Man kan observera att stegsvaret planar ut mot nivån 0.67. BÖR-värder var ju = dvs det finns ett kvarstående fel -0.67=0.33. För att åtgärda detta provar vi med en PI-regulator som i tidskontinuerliga fallet kunde beskrivas som: G P ( K TI s + K) ( s) = K + = TI s TI s Den kan diskretiseras i MATLAB t.ex så här: % Diskretisera en PI % IN-data: % K=förstärkning % Ti=integrationstid % Ts=samplingsintervall % % UT-data: % nd=täljare % dd=nämnare K=2;Ti=0;Ts=0.5; num=[k*ti K];%Täljare den=[ti 0];%Nämnare [nd,dd]=c2dm(num,den,ts); printsys(nd,dd,'z') ger utskrift: 2 z -.9 --------- z - Den tidsdiskreta PI-regulatorn blir med dessa data: ( Obs 2 olika men likvärdiga skrivsätt! ): H 2z.9 z 2.9 z z ( z) = = Det nya systemet (observera att nu krävs ingen zero-order-hold eftersom vi har ett tidsdiskret block, "Discrete PI-reg.", med samplingstiden 0.5 sek.) :
Introduktion till SIMULINK 6 2z-.9 BÖRvärde z- Discrete PI-reg. 0s+ :a ordn. process Scope 2.8.6.4.2 0.8 0.6 0.4 0.2 0 0 5 0 5 20 25 tid [s] Man ser att utsignalen från processen (ÄR-värdet ) nu går mot, dvs det kvarstående felet har eliminerats. Detta är ett fundamentalt resultat i regler-tekniken att för vissa processer så ger PI-reglering inget kvarstående fel.
Introduktion till SIMULINK 7
Introduktion till SIMULINK 8 Appendix A. Några användbara SIMULINK-symboler.. Tidskontinuerliga system. "Continuous"-biblioteket: s+ Transfer Fcn Transport Delay (s-) s(s+) Zero-Pole Överföringsfunktion Dödtid Pol-Nollställe-funktion "Functions and tables": f(u) Fcn Matematisk funktion, t.ex f(u)=sqrt(u) om vi vill generera ett rot-uttryck "Math": Gain Product Förstärkning Multiplikation Jämförare ( obs att ett minustecken mäste in ) "Nonlinear": Saturation Relay Mättning Relä "Signals and systems": SubSystem [] IC In Out Sub-system Begynnelsevärde MUX IN-port UT-port
Introduktion till SIMULINK 9 "Sinks": (Visa eller spara signaler. ) Scope simout To Workspace untitled.mat To File Oscilloskop Till arbetsbibliotek Till fil "Sources": (Signalkällor ) Clock Constant Ramp Random Number Signal Generator Sine Wave Step Simuleringstid "Control Systems Toolbox": tf(,[ ]) LTI System LTI-block. ( Titta i MATLABS help ) "Simulink Extras" Additional linear: PID PID Controller PID-regulator PID PID Controller (with Approximate Derivative) PID-regulator med modifierad derivata-del.
Introduktion till SIMULINK 20 Observera att i SIMULINK beskrivs PID-algoritmen så här: ( P+I+D) U ( s) = K + I s + D s Jämför med lärobokens PID-algoritm: U ( s) = K ( + + TD s) T s I 2. Tidsdiskreta system. "discrete" T z+0.5 Discrete Transfer Fcn z- Discrete-Time Integrator z Unit Delay Zero-Order Hold Överföringsfunktion Integrator Fördröjning Hållkrets