Flervariabel reglering

Relevanta dokument
Flervariabel reglering

TSRT09 Reglerteori. Sammanfattning av föreläsning 5: RGA, IMC. Föreläsning 6. Sammanfattning av föreläsning 5: LQG. Föreläsning 6: LQ-reglering

Försättsblad till skriftlig tentamen vid Linköpings universitet

Lösningsförslag till tentamen i Reglerteknik fk M (TSRT06)

TENTAMEN I DYNAMISKA SYSTEM OCH REGLERING

Flervariabel reglering av tanksystem

Flervariabel reglering av tanksystem

Industriell reglerteknik: Föreläsning 3

Lösningsförslag TSRT09 Reglerteori

Välkomna till TSRT19 Reglerteknik Föreläsning 8. Sammanfattning av föreläsning 7 Framkoppling Den röda tråden!

Välkomna till TSRT15 Reglerteknik Föreläsning 12

TENTAMEN I DYNAMISKA SYSTEM OCH REGLERING

TENTAMEN I REGLERTEKNIK

TENTAMEN I REGLERTEKNIK Y TSRT12 för Y3 och D3. Lycka till!

REGLERTEKNIK KTH. REGLERTEKNIK AK EL1000/EL1110/EL1120 Tentamen , kl

TENTAMEN I TSRT91 REGLERTEKNIK

Reglerteori. Föreläsning 5. Torkel Glad

A. Stationära felet blir 0. B. Stationära felet blir 10 %. C. Man kan inte avgöra vad stationära felet blir enbart med hjälp av polerna.

TSRT91 Reglerteknik: Föreläsning 9

Reglerteori. Föreläsning 3. Torkel Glad

Figure 1: Blockdiagram. V (s) + G C (s)y ref (s) 1 + G O (s)

Välkomna till TSRT19 Reglerteknik Föreläsning 12

Välkomna till TSRT19 Reglerteknik M Föreläsning 9

TENTAMEN I TSRT09 REGLERTEORI

Försättsblad till skriftlig tentamen vid Linköpings universitet

TENTAMEN I REGLERTEKNIK Y/D

Lösningsförslag TSRT09 Reglerteori

TSRT91 Reglerteknik: Föreläsning 12

8.3 Variabeltransformationer Frånkoppling. Betrakta ett 2x2-system, som beskrivs med modellen (8.3.1)

Reglerteknik AK. Tentamen 24 oktober 2016 kl 8-13

Datorövning 2 Matlab/Simulink. Styr- och Reglerteknik för U3/EI2

Robust reglerdesign till JAS 39 Gripen

Välkomna till TSRT19 Reglerteknik Föreläsning 6. Sammanfattning av föreläsning 5 Lite mer om Bodediagram Den röda tråden!

Föreläsning 9. Reglerteknik AK. c Bo Wahlberg. 30 september Avdelningen för reglerteknik Skolan för elektro- och systemteknik

REGLERTEKNIK KTH. REGLERTEKNIK AK EL1000/EL1110/EL1120 Tentamen , kl

Försättsblad till skriftlig tentamen vid Linköpings universitet

Välkomna till TSRT19 Reglerteknik M Föreläsning 9

Lösningsförslag TSRT09 Reglerteori

TENTAMEN I REGLERTEKNIK I

Processidentifiering och Polplacerad Reglering

Reglerteknik AK, FRT010

TSIU61: Reglerteknik

Reglerteori. Föreläsning 4. Torkel Glad

G(s) = 5s + 1 s(10s + 1)

TENTAMEN I TSRT07 INDUSTRIELL REGLERTEKNIK

övningstentamen I DYNAMISKA SYSTEM OCH REGLERING

Reglerteori. Föreläsning 12. Torkel Glad

Försättsblad till skriftlig tentamen vid Linköpings universitet

Försättsblad till skriftlig tentamen vid Linköpings universitet

Figur 2: Bodediagrammets amplitudkurva i uppgift 1d

REGLERTEKNIK KTH. REGLERTEKNIK AK EL1000/EL1110/EL1120 Tentamen , kl

Välkomna till TSRT19 Reglerteknik Föreläsning 3. Sammanfattning av föreläsning 2 PID-reglering Blockschemaräkning Reglerdesign för svävande kula

TSRT91 Reglerteknik: Föreläsning 11

TENTAMEN I REGLERTEKNIK TSRT03, TSRT19

TENTAMEN I DYNAMISKA SYSTEM OCH REGLERING

Välkomna till TSRT19 Reglerteknik Föreläsning 10

1RT490 Reglerteknik I 5hp Tentamen: Del B

Reglerteknik I: F10. Tillståndsåterkoppling med observatörer. Dave Zachariah. Inst. Informationsteknologi, Avd. Systemteknik

Stabilitetsanalys och reglering av olinjära system

REGLERTEKNIK Laboration 5

TENTAMEN I TSRT91 REGLERTEKNIK

TSRT91 Reglerteknik: Föreläsning 5

TSIU61: Reglerteknik. Sammanfattning av föreläsning 8 (2/2) Andra reglerstrukturer. ˆ Sammanfattning av föreläsning 8 ˆ Framkoppling från störsignalen

TSIU61: Reglerteknik. Sammanfattning från föreläsning 3 (2/4) ˆ PID-reglering. ˆ Specifikationer. ˆ Sammanfattning av föreläsning 3.

1RT490 Reglerteknik I 5hp Tentamen: Del B

Reglerteknik AK, Period 2, 2013 Föreläsning 6. Jonas Mårtensson, kursansvarig

1RT490 Reglerteknik I 5hp Tentamen: Del B

TSIU61: Reglerteknik. PID-reglering Specifikationer. Gustaf Hendeby.

Försättsblad till skriftlig tentamen vid Linköpings universitet

Tentamen i Systemteknik/Processreglering

Lösningsförslag till tentamen i Reglerteknik (TSRT19)

TENTAMEN I REGLERTEKNIK Y/D

INLÄMNINGSUPPGIFT I. REGLERTEKNIK I för STS3 & X4

TSRT21 Dynamiska system och reglering Välkomna till Föreläsning 10

Introduktion till Control System Toolbox 5.0. This version: January 13, 2015

Försättsblad till skriftlig tentamen vid Linköpings universitet

TSRT91 Reglerteknik: Föreläsning 10

Lösningsförslag till tentamen i Reglerteknik Y/D (TSRT12)

TENTAMEN I TSRT09 REGLERTEORI

Försättsblad till skriftlig tentamen vid Linköpings universitet

Lösningar till tentamen i Industriell reglerteknik TSRT07 Tentamensdatum: Martin Enqvist

REGLERTEKNIK KTH. REGLERTEKNIK AK EL1000/EL1110/EL1120 Kortfattade lösningsförslag till tentamen , kl

Inställning och implementering av PID-regulatorer med framkoppling

Reglerteknik AK. Tentamen 27 oktober 2015 kl 8-13

Industriell reglerteknik: Föreläsning 2

Transkript:

Laboration i Reglerteori, TSRT09+TSRT06 Flervariabel reglering Denna version: 21 januari 2016 y 1 G 11 G 12 Σ u 1 u 2 Σ G 21 G 22 y 2 REGLERTEKNIK Namn: Personnr: AUTOMATIC LINKÖPING CONTROL Datum: Godkänd:

Kapitel 1 Inledning Syftet med laborationen är att ge en introduktion till flervariabla system och konstruktion av regulatorer för flervariabla system. Processen består av två sammankopplade DC-motorer. Vi kommer först att bekanta oss med systemet, sedan konstruera regulatorer av PID-typ, och slutligen använda oss av tillståndsteori för att bygga upp regulatorer med hjälp av observatör och tillståndsåterkoppling (LQ). I laborationen används Matlab och Simulink som bas för analys och konstruktion av regulatorer. De under laborationen framtagna regulatorerna implementeras med hjälp av hård- och mjukvara från National Instruments som gör att regulatorbeskrivningar i Simulink direkt kan användas för processtyrning i realtid. Datorn där regulatorerna i laborationen implementeras kallas i detta kompendium för xpc Target. I kapitel 2 ges en kort teoriöversikt tillsammans med en genomgång av regulatorstruktur och reglermål. Laborationsutrustningen beskrivs i kapitel 3. I kapitel 4 finns laborationsuppgifterna. Kapitel 5 innehåller förberedelseuppgifter. 1

Kapitel 2 Inledande teori I detta kapitel ges en kortfattad teoretisk beskrivning av lite olika aspekter som berörs under laborationen. För en mer omfattande behandling hänvisas till kursboken. 2.1 Kontinuerligt system - samplat system Eftersom vi använder en dator för att reglera systemet och därför använder samplade värden av en kontinuerlig process ska vi kort beskriva hur systemet påverkas av detta. Vi kan betrakta vårt system enligt figur 2.1. Här ser vi det samplade systemet med de samplade in- och utsignalerna u(t i ) respektive y(t i ). Blocket Regleralgoritm motsvarar en regulator som är implementerad i datorn. Samplat system System r(t i ) Regleralgoritm u(t i ) u(t) y(t) y(t i ) D/A G(s) A/D Figur 2.1: Ett samplat system. Om systemet samplas tillräckligt snabbt är de samplade utsignalerna en bra approximation till de kontinuerliga utsignalerna och ger en marginell försämring av robusthetsegenskaperna. En mycket kort samplingstid ger dock numeriska problem. Med ett bra val av samplingstid kan vi därför 2

använda en approximation (diskretisering) av en kontinuerlig regulator t ex med hjälp av Tustins approximationsformel, se kapitel 11 i grundkursboken. I laborationen kommer vi inte att undersöka egenskaper som uppkommer på grund av sampling av signaler och approximation av regulatorn, utan vi ser allt i denna laboration som ett tidskontinuerligt system med tidskontinuerliga regulatorer. 2.2 Regulatorstruktur Regulatorerna som vi använder i laborationen kan ses som två delar: en förkompenseringssdel F r (s) och en återkopplingsdel F y (s). Insignalen till systemet blir då u(t) = F r (p)r(t) F y (p)y(t) se figur 2.2. I PID-delen av laborationen kommer vi enbart att titta på regulatorer där F (s) = F r (s) = F y (s). Då fungerar regulatorn som en kompensering framför G(s) med insignal r(t) y(t). I LQ-delen när vi använder oss av tillståndsåterkoppling med observatör kommer dock F y (s) och F r (s) att vara olika. r(t) u(t) F r (s) + Σ G(s) w(t) + + Σ z(t) F y (s) y(t) + + v(t) Σ Figur 2.2: Blockschema för system och regulator. 2.3 Reglermål Syftet med regleringen är att skapa en regulator som ger oss möjlighet att från referenssignalerna r 1 och r 2 styra utsignalerna y 1 och y 2. Detta brukar kallas för servoproblemet. Helst vill vi att r 1 endast påverkar y 1 och inte y 2, samt att r 2 endast påverkar y 2. Denna egenskap kallas för frikoppling (eng. decoupling). Frikoppling för det slutna systemet G c (s) erhålles om vi ser till att kretsförstärkningen G(s)F y (s) är diagonal. För statisk frikoppling krävs att G(0)F y (0) är diagonal. 3

Regulatorn ska naturligtvis även vara robust mot modellfel, samt okänslig mot externa systemstörningar (t.ex utsignalsstörningar, se bild ovan) och mätbrus. 2.4 Teoridel Hur ska vi välja F (s)? I första delen av laborationen ska vi styra systemet med en diagonal regulator där diagonalelementen i F (s) är PIDregulatorer. Att välja F (s) diagonal innebär att vi reglerar systemet som om det vore flera parallella envariabla system utan någon koppling mellan systemen. Den koppling som verkligen finns mellan systemen betraktas då som störningar. I den senare delen av laborationen ska vi titta på regulatorer som utnyttjar alla frihetsgrader, dvs vi låter F (s) vara en fylld matris. Detta innebär att regulatorn uttnyttjar det faktum att systemet G(s) är flervariabelt. För att erhålla frikoppling kommer vi att använda regulatorer F (s) som approximerar G(s) 1. Vi kommer även att använda oss av LQ-design, och eftersom vi inte kan mäta tillstånden måste dessa skattas med hjälp av en observatör. Antag att systemet är givet på tillståndsformen ẋ(t) = Ax(t) + Bu(t) + Nv 1 (t) (2.1) y(t) = Cx(t) + Du(t) + v 2 (t) (2.2) z(t) = Mx(t) (2.3) där x(t) är en n-vektor och A är en n n-matris och v 1 (t) och v 2 (t) är enhetsstörningar (vitt brus) med intensitet R 1 respektive R 2 om inget annat nämnts. Korsspektrum mellan v 1 (t) och v 2 (t) antas vara R 12 = 0. Här är insignalen en m-vektor, utsignalen en p-vektor och z(t) är reglerstorheten (den utsignal vi vill minimera). Vi skall använda oss av tillståndsåterkopplingen u(t) = Lx(t). (2.4) Oftast är man intresserad av att vissa linjärkombinationer av tillstånden (z = Mx) snabbt ska avta mot noll efter en störning. Man har också vanligen begränsningar på styrsignalernas storlek. I linjärkvadratisk teori (LQ) väljer man de så kallade straffmatriserna Q 1 och Q 2 i kriteriet J(Q 1, Q 2 ) = 0 ( z T (t)q 1 z(t) + u T (t)q 2 u(t) ) dt. (2.5) 4

Matriserna Q 1 och Q 2 ovan reflekterar den önskade avvägningen mellan reglersnabbhet och insignalenergi. Den tillståndsåterkopplingsmatris L i (2.4) sådan att (2.5) minimeras kan beräknas med Matlab-kommandot L = lqr( A, B, M *Q1*M, Q2 ). (2.6) Eftersom vi inte kan mäta alla tillstånd för vårt system måste vi rekonstruera dem. En observatör som gör detta ges av ˆx(t) = Aˆx(t) + Bu(t) + K(y(t) C ˆx(t) Du(t)). (2.7) Styrsignalen beräknas sedan ur de rekonstruerade tillstånden, dvs u(t) = Lˆx(t). (2.8) Ett Kalmanfilter är en observatör där observatörsförstärkningen K väljs så att skattningsfelets kovariansmatris minimeras. Man får på så vis en optimal avvägning mellan snabbhet och bruskänslighet hos observatören. Kalmanfiltret ges sålunda av det K som minimerar där P = E [ x(t) x T (t) ], (2.9) x(t) = x(t) ˆx(t) (2.10) och ˆx(t) ges av (2.7). Den observatörsförstärkning K som löser minimeringsproblemet kan beräknas med Matlab-kommandot K = lqe( A, N, C, R1, R2 ). (2.11) Metoden att ta fram regulatorn genom att först skatta tillstånden med ˆx och sedan återkoppla från skattningen med tillståndsåterkopplingen u = Lˆx kallas för Linear Quadratic Gaussian (LQG). 5

Kapitel 3 Laborationsutrustningen 3.1 Dator och programvara Som hjälpmedel i laborationen används Windows-datorer med programvarorna Matlab och Simulink. I Matlab används standardkommandon samt kommandon från Control System Toolbox för design av regulatorer. Simulink används för analys, design och simulering av system och regulatorer. Ett antal Simulink-filer med standardblockscheman finns förberedda till varje laboration att utgå ifrån. pid xpc.mdl, Simulink-modell för PID-reglering av systemet genom xpc Target. lq xpc.mdl, Simulink-modell för LQ-reglering av systemet genom xpc Target. pid model.mdl, Simulink-modell över systemet reglerat med PIDregulatorer. Används för att studera öppna och slutna systemets egenskaper. lq model.mdl, Simulink-modell över systemet reglerat med LQregulator. Används för simulering. De två olika modeller för DC-motorerna som beskrivs i kapitel 3.2 finns på tillståndsform (As, Bs, Cs, Ds) i filerna sys1.mat och sys2.mat. Det medföljer även ett par Matlab-funktioner vars egenskap listas nedan. 6

pid params.m, Matlab-script för att ändra PID-parametrarna i både pid model.mdl och pid xpc.mdl. linmodss.m, Matlab-funktion för att linjärisera en Simulink-modell och returnera modellen som ett ss-objekt. discretize observer.m, Matlab-script för att beräkna en diskretiserad observatör som används i lq xpc.mdl. 3.2 Systemet Systemet som ska regleras i laborationen består av två DC-motorer som är sammankopplade med ett delsystem i form av en grå låda. Med hjälp av en trelägesomkopplare kan vi ändra dynamiken i den grå lådan och få olika uppförande hos systemet. I laborationerna kommer vi att arbeta med de system som erhålls när omkopplaren står i läge 1 och 2. Systemets utsignaler är de båda DC-motorernas vinkellägen medan insignalerna kopplas till den grå lådan. I figur 3.1 på sida 9 illustreras laborationsuppkopplingen. Systemet har överföringsmatrisen G(s) (approximativt): G(s) = när omkopplaren står i läge 1. ( 48 s(0.25s+1) 96 s(0.25s+1) 96 s(0.25s+1) 48 s(0.25s+1) ) (3.1) För läge 2 blir systemets överföringsmatris: G(s) = ( 48 s(0.25s+1) 96s+96 s(0.25s+1) 2 96s+96 s(0.25s+1) 2 48 s(0.25s+1) ) (3.2) Systemets tillståndsmodeller Under laborationerna kommer vi att arbeta med modeller på tillståndsform. Överföringsmatrisen G(s) har följande minimala realiseringar på tillståndsform. 7

Omkopplaren i läge 1: 0 1 0 0 A = 0 4 0 0 0 0 0 1 0 0 0 4 ( ) 1 0 0 0 C = 0 0 1 0 0 0 192 384 0 0 384 192 ( ) 0 0 D = 0 0 B = Omkopplaren i läge 2: 0 1 0 0 0 0 0 4 1 0 0 0 A = 0 0 4 0 0 0 0 0 0 0 1 0 0 0 0 0 4 1 0 0 0 0 0 4 ( ) 1 0 0 0 0 0 C = 0 0 0 1 0 0 0 0 192 1536 B = 0 4608 0 0 1536 192 4608 0 ( ) 0 0 D = 0 0 Offset-justering av motorerna Varje DC-motor har en potentiometer för justering av offset. Innan experimenten startas är det viktigt att justera offset-värdet så att motorerna står stilla när insignalen till systemet är noll. Begränsningar i styrsignalen Den ovanstående linjära modellen motsvarar naturligtvis inte systemet för alla typer av insignaler. Speciellt stämmer inte modellen om man låter insignalerna u 1 och u 2 överskrida 5. En regulator som ger ett snabbt system kräver mycket insignalenergi och därmed stor amplitud på insignalerna. Detta faktum ger oss en fysikalisk begränsning på det reglerade systemets snabbhet om vi endast vill använda systemet i de regioner där vi har en bra modell. Om vi går utanför denna region kan vi inte garantera stabilitet för det reglerade fysikaliska systemet även om regulatorn tillsammans med den linjära modellen är stabil. 8

connector 0 in 1 in 2 in 3 in 4 National Instruments out 1 out 2 u r Amp Power Motor y out 1 out 2 Spänning In A In B Ut A Ut B u r Amp Power Motor y in 1 in 2 in 3 in 4 Figur 3.1: Ihopkoppling av de två motorenheterna, den grå lådan och xpc Target via I/O-enheterna från National Instruments. Notera att Out1 och Out2 sitter i omvänd ordning på connector 0. 9

Kapitel 4 Uppgift Komma igång Kontrollera att utrustningen är kopplad enligt figur 3.1. Se till att strömmen är påslagen överallt (en stor röd knapp på brun låda, och två små gröna i anslutning till respektive motor). Notera att en gammal regulator kan vara nerladdad på DSPn, så det kan vara skönt att stänga av motorer igen tills ni laddat ner er kod. Välj Kör... ( Run... ) i Windows startmeny, skriv \\site\edu\rt\lab och kopiera katalogen multivar 1 2 till ert studentkonto. Det kan hända att de kopierade filerna är skrivskyddade. Höger-klicka på kopierade biblioteket, Välj Egenskaper, och se till att det inte är markerat som skrivskyddat Starta Matlab. Gå till biblioteket med de kopierade labfilerna. Öppna filen xpcsetup.m i Matlab och följ stegen i filen för att initiera kommunikationen mellan datorerna. Notera speciellt vad som först måste göras om det listas två stycken Targets. Kontrollera att omkopplaren på den grå lådan står i läge 1. Ladda in tillståndsmodellen, load sys1. 10

PID Öppna Simulink-filerna pid xpc.mdl och pid model.mdl. Definiera PIDparameterar genom att editera och köra pid_params. Kompilera till xpc Target med kommandot slbuild( pid_xpc ). Det kan hända att kompileringen krashar första gången ni kör kommandot, men om ni kör kommandot igen skall det fungera. Aktivera den kompilerade regulatorn med tg.load( pid_xpc ). Regulatorn kan nu startas och stoppas med kommandona tg.start respektive tg.stop. När ni ändrar PID-parametrar via pid_params uppdateras de värden som används i den kompilerade regulatorn som körs, förutsatt att man inte ändrar parametrar så att regulatorns struktur ändras (slår av/på integral- och derivataverkan) vilket kräver omkompilering. När man gör strukturella ändringar som omdragningar av linjer och nya block i blockschemat måste modellen alltid kompileras om och laddas in igen. Simulink-filen pid xpc.mdl är initialt inställt för öppen styrning. Studera Simulink-blockschemat och förvissa dig om att om du förstår varför det blir öppen styrning. Öppen styrning För att få en känsla för systemet ska vi börja med att styra systemet manuellt utan återkoppling, dvs öppen styrning. Kan man få båda motorerna att stå helt stilla? Kommentar:.......................................................... Styrning med diagonal regulator Slut den första kretsen med en PID-regulator. PID-regulatorn vars parametrar definieras i pid_params är F (s) = K(1 + 1 + T s T I s d ). Vi s/n+1 struntar helt i den andra kretsen för tillfället och låter den vara oreglerad (skicka in en nolla i Simulink-schemat). Kompilera och aktivera modellen till xpc Target igen (kom ihåg, efter varje ändring i blockschemat måste man kompilera om). 11

Kan man stabilisera och erhålla god referensföljning på första kretsen? Applicera enklast möjliga tumregler från grundkursen för att ställa in PID-regulatorn. Märk att gradskivorna ibland vrider sig vilket gör att vinkeln som man avläser kan skilja sig från den vinkel (mer precist motsvarande spänning) som faktiskt mäts av datorn. Om man vill se mät- och styrsignaler i realtid kan man trycka på knappen input på monitorn och byta till DSPns monitor, där signalerna visas. Resultat:............................................................. Slut nu den andra kretsen istället för den första. Ställ sedan in PIDregulatorn för den andra kretsen på samma sätt som den första. (Använd samma regulatorinställningar på båda kanalerna. Detta gör det enklare att tolka resultat senare.) Använd nu de två regulatorerna för att styra båda vinkellägena samtidigt. Resultat:............................................................. Var ligger polerna för det slutna systemet? Öppna Simulink-filen pid model.mdl. Ändra loopförstärkningarna så att de överensstämmer med dem i pid xpc.mdl. Har ni använt Matlab-scriptet pid params.m ska det redan vara samma parametervärden. En tillståndsmodell av det slutna systemet kan nu fås med hjälp av Matlab-kommandot Gc = linmodss( pid_model ); Funktionen linmodss beräknar en linjär modell från insignalportarna (from) till utsignalportarna (to) i Simulink. Eftersom from-portarna här kommer in motsvarande en referenssignal, och to är kopplad till den reglerade utsignalen, så blir modellen det slutna systemet från r(t) till y(t). Hur många tillstånd bör det finnas i modellen för det slutna systemet (Hur många tillstånd har det öppna systemet? Hur många tillstånd krävs för att implementera era två PID-regulatorer? Tänk på att antalet tillstånd som krävs i era regulatorer beror på vilka komponenter ni faktiskt använder i regulatorn) 12

I vissa fall kan man få en icke-minimal realisering. Problemet med för många tillstånd kan lösas med kommandot Gc = minreal( Gc ); Polerna, som är desamma som egenvärdena till Gc.a, kan beräknas med pole(gc). Antalet beräknade poler skall stämma överrens med det antal ni uppgivit ovan. Resultat:............................................................. Kan du finna en diagonal regulator som stabiliserar systemet? Prova några olika val av PID-inställningar. Undersök vilka in- och utsignaler som är hårdast kopplade, lämpligen med RGA-analys (se kapitel 8 i kursboken). Använd skalningsinvarians av RGA för att möjliggöra beräkning av RGA i frekvensen 0. Resultat:............................................................. En grundläggande teknik för flervariabel reglering är att parvis reglera de in-utsignalpar som är hårdast kopplade. Hur kan du ändra kopplingen mellan din regulator och systemet så att detta uppfylles? Koppla om systemet i pid xpc.mdl (inte fysiskt) och gör motsvarande ändringar i Simulink-filen pid model.mdl. Prova nu att reglera det nya systemet med en diagonal PID-regulator. Kommentar:.......................................................... 13

Är modellen stabil? Kontrollera polernas lägen. Kan vi uppnå frikoppling med denna typ av regulator? Kommentera svaret. Ledning: förberedelseuppgift I.2. Titta på kretsförstärkningen samt slutna systemets singulära värden med hjälp av kommandot sigma. För att få kretsförstärkningen med hjälp av linmodss( pid_model ) måste du stänga av återkopplingarna. Vilka typiska egenskaper ser ni i kretsförstärkningen (lågfrekvensegenskaper, brytpunkter, tecken på multivariabelt/korskopplat)? Ser det ut som ni förväntar er? Vilka egenskaper för det slutna systemet kan ni utläsa ur de singulära värdena? Har ni samma inställning på de två PID-regulatorerna syns en speciell egenskap tydligt. Vilken? Ni ska nu studera insignalkänslighetsfunktionen. För att göra detta kan ni t.ex bygga om modellen i pid model.mdl (spara under nytt namn). Insignalskänslighetsfunktionen definieras som överföringsfunktionen från en störning på insignalen till insignalen (dvs från en störning på den signal som regulatorn genererar, till den signal som faktiskt skickas in i systemet) Notera att störningen (dvs from) skall adderas in efter den omkoppling av insignalsparet som ni gjort (eftersom den omkopplingen är en del av er regulator). Figur 6.1 i kursboken visar en insignalsstörning och visar hur ni lämpligen bygger om Simulink-modellen, dvs var ni ska sätta insignalportarna from och utsignalportarna to. Ingången på 14

referenssignal dit from tidigare gick kan lämnas oinkopplad. Man vill gärna att känslighetsfunktionen är låg vid låga frekvenser. Uppfyller känslighetsfunktionen i ert system detta önskemål? Varför vill man ha det så? Mer komplexa regulatorer Låt oss nu titta lite närmare på det system vi försöker att reglera och se om vi kan finna en mer komplex regulatorstruktur som ger oss frikoppling. Börja med att visa att G(s) (dvs (3.1)) kan faktoriseras på följande form: ) (Ḡ1 G(s) = Ḡ(s)H = (s) 0 H 0 Ḡ 2 (s) där H är en matris oberoende av s. Hur kan vi välja en regulator F (s) så att G(s)F (s) blir diagonal, dvs så att frikoppling uppnås? Låt regulatorn F (s) innehålla den diagonala PID-regulatorn ( ) F diag PID1 0 = 0 PID 2 Modifiera regulatorn i Simulink-filen. Simulink-blocken Mux, Demux och Gain kan vara användbara för att implementera regulatorn i denna uppgift. Prova din nya regulator. Om regulatorn inte stabiliserar systemet, kontrollera polernas lägen. Simuleringsmodellen i Simulink-filen pid model.mdl uppdateras på samma sätt som regulatorblockschemat. Tänk på att ett alltför snabbt system kanske blir instabilt på grund av modellfel. Resultat:............................................................. Titta på det öppna och slutna systemets singulära värden och jämför med den tidigare regleringen. Titta även på insignalskänslighetsfunktionen. 15

Kontrollera systemets egenskaper via de singulära värdena. Kan man se några tecken på modellfel när man jämför det slutna systemets singulära värden och det riktiga systemets uppförande? Kommentar:.......................................................... Extra uppgift Utför reglerdesignen ovan på det system som erhålles med omkopplaren i läge 2. Systemmatriserna för systemet finns i filen sys2.mat. LQ Nu ska vi designa regulatorer med hjälp av LQG-teknik. Detta ger oss en enkel metod för att designa multivariabla regulatorer utan speciella knep för att ta hand om korskopplingar. Vi ska titta på system 1 och först utföra LQG-design på detta system genom att bestämma straffmatriserna Q 1 och Q 2 i ekvation (2.5) så att stegsvaren för det återkopplade systemet har de önskade egenskaperna. Eftersom alla tillstånd inte kan mätas skall vi också använda en observatör. När vi har erhållit en regulator som uppfyller våra krav skall vi använda den för att styra det verkliga systemet. Vårt mål är att erhålla ett slutet system med bandbredd på ungefär ω b = 2 rad/s. Vårt system kan skrivas på formen ẋ = A s x + B s u + N s v 1 y = C s x + v 2 (4.1) där v 1 och v 2 är vitt Gaussiskt brus med medelvärde noll och kovariansmatriser R 1 och R 2. Tyvärr känner vi inte R 1 och R 2. Eftersom inte alla tillstånd är mätbara behövs en observatör för att rekonstruera dessa innan vi kan göra en LQ-återkoppling. Strukturen för en observatör finns i Simulink-schemana, men innan de kan användas 16

måste observatörsförstärkningen K väljas. I Matlab görs detta med K = lqe( As, Ns, Cs, R1, R2 ) Eftersom vi inte känner R 1 och R 2 är en metod att gissa dessa utifrån vad man vet om storleks-förhållandet mellan mät- och processbrus. I den här applikationen kan en bra gissning vara att mätbruset är relativt sett större än processbruset, och följande kovariansmatriser föreslås: R 1 = 0.1 * eye( 2 ) R 2 = eye( 2 ) Strukturen för tillståndsåterkoppling från observatören finns också i Simulink-schemana, och allt som behövs är att välja återkopplingsmatrisen L. I Matlab: L = lqr( As, Bs, Q1, Q2 ) där Q 1 är straffmatris för tillståndet, och Q 2 är straffmatris för styrsignalen. Av symmetriskäl är det naturligt att välja lika stora straff för båda styrsignalerna, ( ) 1 0 Q 2 = 0 1 och bara variera Q 1 som designparameter. För att den statiska förstärkningen hos det återkopplade systemet ska bli identiteten måste referensen multipliceras med en framkopplingsmatris. Med u = L 0 r Lx ges det slutna systemets överföringsfunktion av Cs * feedback( Gux, L ) * L0 där Gux är det öppna systemet från u till alla tillstånd x Gux = ss( As, Bs, eye(size(as)), zeros(size(bs)) ) Rita upp blockscheman med dessa två definitioner så att du förstår varför MATLAB-koden ovan definierar det slutna systemet (då alla tillstånd kan mätas). För att erhålla ett slutet system med G c (0) = I ger uttrycken en ledning för hur L 0 kan beräknas. När vi sedan ersätter tillstånden x med dess estimat ˆx från observatören, så kommer argumentet ovan för att beräkna framkoplingen ej påverkas (slutna systemets överföringsfunktion från r till y beror ej på observatören). 17

Börja med att göra en tillståndsåterkoppling som inte straffar vinkelhastigheterna. Straffa vinklarna lika mycket, skippa straff utanför diagonalen, och välj alltså Q 1 på formen Q 1 = diag( [ qvinkel 0 qvinkel 0 ] ) Använd Simulink-schemat lq model.mdl för att simulera systemet för olika val av Q 1 och Q 2 tills det ser lovande ut. Använd sedan Simulinkschemat lq xpc.mdl för att testa regulatorn på det verkliga systemet. Glöm inte att köra filen discretize observer.m för att diskretisera den kontinuerliga observatören. Blev resultatet till belåtenhet? Titta på det slutna systemets poler, de ges till exempel av egenvärdena till A s B s L. Beskriv i grova drag skillnaden mot de poler som erhölls vid PID-reglering, och koppla detta till eventuella skillnader i prestanda. Prova nu att straffa hastigheterna också. Kan prestanda m.a.p. korskopplingar förbättras? Extra uppgift Utför reglerdesignen ovan på det system som erhålls med omkopplaren i läge 2. Systemmatriserna för systemet finns i filen sys2.mat 18

Kapitel 5 Förberedelseuppgifter Innan laborationen påbörjas ska du ha blivit godkänd på duggan. Duggan omfattar labbhäftet, teori i boken samt förberedelseuppgifterna. Notera att duggan genomförs ensam utan bok eller datorhjälp. För att bli godkänd på duggan krävs det att ni svarar rätt på 3 av 5 uppgifter. En förutsättning för att LQ-delen av laborationen ska gå att genomföra på rimlig tid är att kapitel 8.5 och 9 i kursboken samt teroridelen i laborationshäftet är väl genomlästa. 1. Låt Y (s) = G(s)U(s) där, G(s) = ( 1 s+1 1 s+1 5 s+2 5 s+1 ) Vilka poler och nollställen har systemet G(s)? Vilka singulära värden har systemet vid 3 rad/s? (De singulära värdena är lite jobbiga att räkna ut; ta en miniräknare till hjälp när uttrycken blir för stora!) 2. Betrakta systemet i figur 2.2 där F y (s) = F r (s) = F (s). Visa att frikoppling erhålles för det slutna systemet G c (s) om det öppna systemet G(s)F (s) är en diagonal matris. (En diagonal matris har bara element skiljda från noll i diagonalen). 3. Låt Y (s) = G(s)U(s) där, G(s) = ( 1 s+1 2s 2s+1 2s 2s+1 1 s+1 ) 19

Räkna ut RGA för G(0) och G( ). Kan du göra en kvalificerad gissning, baserad på dina RGA-beräkningar, om det är enkelt eller svårt att reglera systemet med två en-variabla PID-regulatorer. 4. Ange gränser på systemets bandbredd när slutna systemets singulära värden ges av figuren nedan. 0-2 -4-6 Singular Values db -8-10 -12-14 -16-18 -20 10 0 10 1 10 2 Frequency (rad/sec) 5. Ett reglersystem med återkoppling från rekonstruerade tillstånd har designats och ser lovande ut vid simulering. När lösningen testas på det verkliga systemet ser styrsignalen tyvärr ut som i figuren nedan. Det antas ha att göra med en dålig inställning av observatören. I vilken riktning ska brusmatriserna R 1 och R 2 ändras för att få en mjukare styrsignal? lqkalmanmodel 0.5 0.4 0.3 0.2 0.1 0 0.1 0.2 0.3 0.4 0.5 0 2 4 6 8 10 12 Time (Seconds) 6. Ett system regleras med tillståndsåterkoppling, där återkopplingen beräknats i Matlab med L = lqr( A, B, [ 2 4 ; 4 9 ], [ 1 0.9 ; 0.9 1 ] ) 20

Ett stegsvar för det återkopplade systemet visas i figuren nedan. Det ser inte så bra ut, men är trots allt optimalt i någon mening. Vilken? Step Response 1 From: In(1) From: In(2) To: Out(1) 0.5 0 Amplitude 0.5 1.5 To: Out(2) 1 0.5 0 0 2 4 6 8 0 2 4 6 8 Time (sec) 7. (Fortsättning på föregående fråga.) Med det enkla valet L = [ 1 0 0 ; 0 1 0 ] blir stegsvaret som i figuren nedan, vilket tilltalar mer än det som erhölls ovan med hjälp av LQ. Vilka är för- och nackdelarna med att välja L direkt och att välja L genom LQ? Step Response 1 From: In(1) From: In(2) 0.8 To: Out(1) 0.6 0.4 Amplitude 0.2 0 1 0.8 To: Out(2) 0.6 0.4 0.2 0 0 2 4 6 0 2 4 6 Time (sec) 21