och inlämningsuppgift PC-BERÄKNINAR Inlämningsdatum:... Inlämnad av labgrupp:... ruppdeltagare:............ ranskad:... Reglab PC-beräkningar del.doc
INLEDNIN Denna laboration kommer att visa fördelarna med modern programvara vid analys av dynamiska system och syntes av reglersystem. Många moment som innefattar numeriskt besvärliga beräkningar eller tidskrävande diagramritningar blir både enklare och snabbare att utföra. Beräkningarna utförs i grupper om en eller två personer med hjälp av MATLAB, som är ett kraftfullt programpaket för många typer av beräkningar, inte bara vad gäller reglerteknik. Användaren kan också skriva egna makron, vilket gör att man kan konstruera kommandon efter egna önskemål. Nedan följer en kort introduktion till MATLAB. MATLAB startas från Windows genom att dubbelklicka på ikonen MATLAB i programhanteraren. Till MATLAB finns bibliotek av makrofiler för olika tillämpningar. För att lösa uppgifterna i detta häfte krävs fyra sådana: Control System Toolbox, System Identification Toolbox, Reglink Toolbox och Signal Toolbox. Du måste alltså skaffa dig dessa om du tänker lösa några av uppgifterna hemma. 2 INTRODUKTION TILL MATLAB MATLAB arbetar huvudsakligen med matriser, som matas in enligt nedan. En matris avgränsas med hakparentes och raderna avdelas med semikolon eller return. Exempel 2.: Matrisen skapas genom att skriva A 2 3 4 A[ 2;3 4] Varje gång en variabeltilldelning sker, skrivs resultatet ut på skärmen. Om utskrift ej önskas, avslutas kommandoraden med semikolon (;). Ett bekvämt sätt att skapa t.ex. vektorer, är med s.k. kolon-notation. Exempel 2.2: En vektor t med elementen 0, 0., 0.2,..., 9.9, 0 skapas genom att skriva t[0:0.:0] Med de variabler man definierat kan man sedan utföra beräkningar genom att använda de vanliga operationerna, -, *, / eller en mängd kommandon för matrisoperationer. Exempel 2.3: Produkten C av matriserna A och B beräknas genom att skriva I MATLAB finns en mängd funktioner. CA*B Exempel 2.4: Funktionsvärdet av sin(t) i tidpunkter givna av vektorn t ges av ysin(t)
Det finns också många möjligheter att presentera resultat grafiskt. Exempel 2.5: Resultatet av beräkningen i exempel 2.4 kan presenteras genom kommandot plot(y,t) vilket anger att man vill rita y som funktion av t. Alla definierade variabler finns kvar i minnet tills man raderar dem med kommandot clear variabelnamn, eller tills man lämnar MATLAB med exit eller quit. För att få reda på vilka variabler som finns i minnet använder man who (ger endast variabelnamn) eller whos (ger även storlek och typ). Variabler kan sparas på fil (tillåtet endast på egen diskett!) genom att skriva save filnamn, och hämtas tillbaka med load filnamn. Filer av denna typ får extension.mat. Om man ofta utför en viss följd av kommandon, kan man göra en makrofil av dessa. I laborationen kommer vi huvudsakligen att använda makrofiler, och om man vill se hur en sådan ser ut, kan man få den utskriven genom att skriva type makronamn. Makrofilerna har extension.m, och kallas därför också m-filer. Med kommandot dir listas samtliga filer i det bibliotek där man arbetar. Kommandot help är också användbart, och genom att skriva help kommandonamn får man information om detta kommando. Uppgift 2.: Använd tio minuter till att bekanta dig med MATLAB och testa de olika kommandona ovan. 3 STESVAR OCH ÅTERKOPPLIN 3. Inmatning av system I denna kurs studerar vi dynamiska system som beskrivs med linjära differentialekvationer på formen n d y a d n y a y b d m u n n... n 0 m... bmu (3.) dt dt dt där n m. enom att Laplacetransformera differentialekvationen fås systemets överföringsfunktion (samtliga begynnelsevärden antas vara noll) ( s) m b0 s... bm (3.2) n n s a s... a n I datorövningarna kommer system att representeras som matriser av dimension 2 x (n), där raderna i matrisen innehåller koefficienterna hos överföringsfunktionens täljare resp. nämnare. Denna matris skapas med kommandot syst(num,den) där num och den är radvektorer som innehåller täljarens resp. nämnarens koefficienter. En radvektor avgränsas av hakparentes, och elementen separeras med blanktecken. 2
Exempel 3.: En likströmsmotor har överföringsfunktionen ( s) s( s ) (3.3) Med kommandot gdcsyst([],[ 0]) skapar vi överföringsfunktionen för DC-motorn och döper den till gdc Uppgift 3.: Mata in följande system gdc 0 0 0 ( s ) A 2 s 2s (3.4) ( s ) B 2 (3.5) s 0. 2s ( s ) C 2 s 20s (3.6) OBS! "amla" kommandon kan återkallas med piltangenterna, varefter de kan ändras och användas på nytt. Mycket praktiskt och arbetsbesparande! 3.2 Stegsvar Ett sätt att studera egenskaperna hos ett dynamiskt system är att beräkna dess utsignal y(t), d.v.s. att lösa systemets differentialekvation numeriskt för någon lämplig insignal u(t). Detta brukar kallas att simulera systemet, och genom att simulera då insignalen är ett steg erhåller man systemets stegsvar. U (s) Y Stegsvaret då u(t) fås med kommandot Figur 3. ystepsim(g,time) där g och time betecknar överföringsfunktionen resp. simuleringens längd. Om rutinen anropas med endast ett argument sätts time till 0. Resultatet av simuleringen, här tilldelat namnet y, är en matris där de tre kolumnerna innehåller tid samt in- resp. utsignal. Resultatet kan studeras genom att ge kommandot simplot(y) varvid signalerna ritas upp som funktion av tiden. Man kan plotta flera simuleringsresultat samtidigt genom att låta y vara en radvektor av utdatavariabler, t.ex. [y y2 y3]. 3
Uppgift 3.2: Studera stegsvaren för systemen A (s), B (s) resp. C (s). Simulera tillräckligt länge, så att svaren hinner nå sina slutvärden! Beskriv stegsvarens utseende: A (s): B (s): C (s): 3.3 Specifikationer Stegsvar beskrivs ofta med avseende på snabbhet och svängighet med begreppen stigtid T s, insvängningstid T δ och översläng M (se sid. 22 i läroboken). OBS! MATLAB använder andra beteckningar. Om man ritar upp ett stegsvar med kommandot simplot, som beskrevs ovan, skrivs T s, T δ, M och ylim för stegsvaret ut. ylim betecknar utsignalens slutvärde, d.v.s. värdet vid simuleringens sluttidpunkt, och T s, T δ och M beräknas i förhållande till detta. Simulera alltså stegsvaren tillräckligt länge så att de hinner stabilisera sig, annars får du felaktiga värden. Uppgift 3.3: Ange stigtid, insvängningstid och översläng för stegsvaren i uppgift 3.2. A (s): T s T δ M B (s): T s T δ M C (s): T s T δ M Tips: enom att använda kommandot grid kan man få ett rutnät utlagt över senast gjorda plot, vilket underlättar om man vill läsa av i diagrammet. 3.4 Poler Många intressanta egenskaper hos dynamiska system kan studeras genom att beräkna systemets poler, d.v.s. rötterna till nämnaren i överföringsfunktionen, den s.k. karakteristiska ekvationen. Rötterna till ett polynom kan beräknas med kommandot roots(poly) där poly är en radvektor som innehåller polynomets koefficienter. Eftersom vi representerar ett system i form av en matris, vill vi använda kommandot roots med en rad i matrisen som argument. I MATLABs notation plockar man ut rad i ur matrisen A genom att skriva A(i,:). Exempel 3.2: Likströmsmotorns poler fås genom kommandot roots(gdc(2,:)). 4
Uppgift 3.4: Beräkna polerna till systemen A (s), B (s) och C (s) och beskriv hur stegsvarens utseende beror av polernas lägen. A (s): poler i stegsvaret är B (s): poler i stegsvaret är C (s): poler i stegsvaret är 3.5 Återkoppling Vi skall nu gå in på begreppet återkoppling, och se hur man kan styra dynamiska processer med hjälp av denna. De huvudsakliga skälen till att använda återkoppling är att man därigenom kan minska inverkan av störningar, minska inverkan av fel i den matematiska modellen samt stabilisera instabila processer. Vid återkoppling och konstruktion av regulatorer måste man dock beakta ett antal viktiga faktorer, bl.a. att de modeller vi arbetar med är förenklade beskrivningar av verkligheten, och att en regulator som konstruerats utgående från en enkel modell kan fungera dåligt då den används på den verkliga processer. Låt oss utgå från processen Y ( s) ( s) U ( s) V ( s) (3.7) där V(s) betecknar en störning. Processen kan beskrivas med blockschemat i figur 3.2. U (s) V Y Figur 3.2 Hur ska vi nu styra denna process? Vi tittar först på en något generellare regulatorstruktur än ren seriereglering (användbar även senare i avsnittet digital reglering, se avsnitt 7.4). Låt styrssignalen U vara U ( s) F ( s) R( s) F ( s) Y( s) (3.8) r y vilket leder till ett blockschema enligt figur 3.3. R F r (s) - U (s) V Y F y (s) Figur 3.3 5
Denna regulator ger det återkopplade systemet Y ( s) ( s) R( s) ( s) V ( s) (3.9) ry där det slutna systemets överföringsfunktion mellan referensvärdet R och ärvärdet Y ges av vy ry ( s) Fr ( s) ( s) F ( s) ( s) y (3.0) och det slutna systemets överföringsfunktion mellan störningen V och ärvärdet Y ges av vy ( s) F ( s) ( s) y (3.) OBS! den identiska nämnaren i dessa två uttryck, som ju ger den karakteristiska ekvationen. Överföringsfunktionerna ry (s) och vy (s) för det slutna systemet från R till Y resp. från V till Y beräknas med kommandot resp. gry(g,fr,fy) gvy(g,fy) enom att nu välja F r (s) F y (s) F(s) får vi vår vanliga seriereglering med enkel återkoppling där felet E ges av U ( s) F( s) E( s) (3.2) E( s) R( s) Y( s) (3.3) och vi känner igen blockschemat i figur 3.4, där (s) är processen och F(s) är serieregulatorn R E - F(s) U (s) V Y Figur 3.4 Serieregleringen ger fortfarande det återkopplade systemet enligt (3.9), men nu är och F( s) ( s) ry( s) (3.4) F( s) ( s) s vy( ) F( s) ( s) (3.5) som vi känner igen från teorin för seriereglering. 6
Om gry anropas med endast två argument sätts f y f r f, och vi kan beräkna överföringsfunktionerna för det slutna, enkelt återkopplade, systemet från R till Y resp. från V till Y med kommandot resp. grysgry(g,f) gvysgvy(g,f) En regulators överföringsfunktion skrivs på vanligt sätt in med kommandot syst. Exempel 3.3: En PI-regulator med överföringsfunktionen s F( s) ( 5 ) 5 (3.4) s s fås med kommandot fsyst([5 ],[ 0]). Exempel 3.4: Överföringsfunktionen från referenssignal till utsignal, här betecknad grydc, då DC-motorn i exempel 3. regleras med en P-regulator med förstärkningen 5, beräknas med kommandot grydcgry(gdc,syst([5],[])). Vid konstruktion av reglersystem är det av intresse att se hur det återkopplade systemet uppför sig vid olika typer av referens- och störsignaler. Stegsvaren vid börvärdesändring resp. störning kan antingen, liksom vi gjorde tidigare i avsnitt 3.2, beräknas med kommandot yrstepsim(grys,time) resp. yvstepsim(gvys,time) eller också alternativt med kommandot resp. yrrstep(g,fr,fy,time) [vid enkel återkoppling yrrstep(g,f,time)] yvvstep(g,fy,time) [vid enkel återkoppling yvvstep(g,f,time)] De senare beräknar förutom referenssignal/störsignal och utsignal också styrsignalen u(t). Även här kan time utelämnas. Resultaten av dessa kommandon, här betecknat yr resp. yv, erhålls som en matris där kolumnerna innehåller tid, referenssignal/störsignal, ev. styrsignal resp. utsignal. Resultaten kan i samtliga fall studeras med simplot. Det återkopplade systemets snabbhet och svängighet brukar beskrivas med begreppen stigtid, insvängningstid och översläng, vilka introducerades ovan. Dessutom är man intresserad av systemets stationära fel, d.v.s. av utsignalens förmåga att i fortfarighet följa referenssignalen då denna är ett enhetssteg, en enhetsramp etc. Efter denna teorigenomgång ska vi nu studera återkoppling tillämpad på en enkel modell av en vattentank. Antag att systemet runt en arbetspunkt kan beskrivas av Y ( s) ( s) U ( s) V ( s) (3.5) där vattentankens överföringsfunktion (s) ges av ( s) C st (3.6) 7
och u(t), y(t) och v(t) betecknar inspänning till vattenpump, vattennivå resp. utflöde (som i detta sammanhang kan betraktas som en störning). Vi antar att processkonstanten C 5 och tidskonstanten T 2. Låt oss nu undersöka hur en P-regulator kan användas för att hålla nivån konstant trots stegvisa variationer i utflödet. Uppgift 3.5: Mata in systemet (3.6) och låt det styras av regulatorn F( s) K (3.7) där vi ska undersöka regleringen vid K-värdena, 0 resp. 00. För enkelhets skull sätter vi r(t) 0. Simulera med vstep det enkelt återkopplade systemets stegsvar vid en stegvis förändring i v(t) för de olika K-värdena. Hur relateras förmågan att reglera bort störningen till värdet på K?... Hur påverkas styrsignalens storlek av värdet på K?... Använd gvy för att beräkna det återkopplade systemets överföringsfunktion från v till y för de olika värdena på K. Använd därefter roots för att beräkna polerna till det återkopplade systemet för de olika K-värdena. Jämför och kommentera stegsvaren och polernas lägen. K : poler i stegsvaret är... K 0: poler i.. stegsvaret är K 00: poler i stegsvaret är Låt oss nu anta att även pumpen i tanksystemet har en viss dynamik, så att den verkliga överföringsfunktionen är C ( s) st sτ där τ 0.5 och C och T har samma värden som ovan. (3.8) Tips: överföringsfunktionen för två seriekopplade system fås med kommandot g3ser(g,g2) där g och g2 betecknar de två delsystemen och g3 betecknar seriekopplingen. 8
Beräkna som ovan överföringsfunktionen från v till y för K, 0 resp. 00. Vilka poler får det återkopplade systemet för de olika K-värdena då P- regulatorn används på detta system? Hur förändras polernas lägen då K ökas? Poler för K :...K 0:...K 00:...... Simulera därefter stegsvaret för systemet (3.8) med P-regulatorn och samma K-värden som ovan och studera utsignalen från det återkopplade systemet. Vilka egenskaper talar för resp. emot en regulator med hög förstärkning? För:... Emot:... 3.6 Nollställen Vi skall nu se hur ett systems nollställen i vissa fall kan påverka stegsvarets egenskaper. Låt oss utgå från systemet A (s) ovan, och modifiera det genom att introducera ett nollställe. Uppgift 3.6: Mata in systemen nedan. ( s) A 2 ( s) s A2 2 0. s s 2s s 2s 0s ( s) s 2s A3 2 (3.9) (3.20) (3.2) s A 4 ( s) 2 (3.22) s 2s Beräkna de olika systemens nollställen och studera systemens stegsvar. Hur påverkas stegsvaret av nollstället och dess olika placeringar? Nollställen A :... A2 :... A3 :... A4 :......... 9