Flervariabel reglering

Relevanta dokument
Flervariabel reglering

TENTAMEN I DYNAMISKA SYSTEM OCH REGLERING

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

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

Flervariabel reglering av tanksystem

TENTAMEN I REGLERTEKNIK

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

Reglerteori. Föreläsning 3. Torkel Glad

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

Industriell reglerteknik: Föreläsning 3

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

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

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

Flervariabel reglering av tanksystem

Reglerteori. Föreläsning 5. Torkel Glad

TENTAMEN I DYNAMISKA SYSTEM OCH REGLERING

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

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.

TENTAMEN I REGLERTEKNIK Y/D

TSRT91 Reglerteknik: Föreläsning 9

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

TENTAMEN I TSRT91 REGLERTEKNIK

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

Lösningsförslag TSRT09 Reglerteori

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

Figur 2: Bodediagrammets amplitudkurva i uppgift 1d

Reglerteknik AK. Tentamen 24 oktober 2016 kl 8-13

Reglerteori. Föreläsning 4. Torkel Glad

TENTAMEN I TSRT09 REGLERTEORI

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

TENTAMEN I REGLERTEKNIK I

TSRT91 Reglerteknik: Föreläsning 12

1RT490 Reglerteknik I 5hp Tentamen: Del B

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

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

Robust reglerdesign till JAS 39 Gripen

TSIU61: Reglerteknik

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

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

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örsättsblad till skriftlig tentamen vid Linköpings universitet

1RT490 Reglerteknik I 5hp Tentamen: Del B

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

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

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

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

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

TENTAMEN I REGLERTEKNIK TSRT03, TSRT19

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

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

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

övningstentamen I DYNAMISKA SYSTEM OCH REGLERING

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

TENTAMEN I TSRT07 INDUSTRIELL REGLERTEKNIK

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

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

REGLERTEKNIK Laboration 5

Lösningsförslag TSRT09 Reglerteori

Reglerteknik AK, FRT010

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

TSRT91 Reglerteknik: Föreläsning 11

AUTOMATIC CONTROL REGLERTEKNIK LINKÖPINGS UNIVERSITET. M. Enqvist TTIT62: Föreläsning 2. Här är

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

TSRT91 Reglerteknik: Föreläsning 2

TENTAMEN I REGLERTEKNIK Y/D

Processidentifiering och Polplacerad Reglering

1RT490 Reglerteknik I 5hp Tentamen: Del B

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 5

Lunds Tekniska Högskola Avdelningen för industriell elektroteknik och automation

TENTAMEN I TSRT91 REGLERTEKNIK

Stabilitetsanalys och reglering av olinjära system

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

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

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

TENTAMEN I DYNAMISKA SYSTEM OCH REGLERING

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

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

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

Industriell reglerteknik: Föreläsning 2

TENTAMEN I TSRT91 REGLERTEKNIK

Föreläsning 1 Reglerteknik AK

Tentamen i Systemteknik/Processreglering

1RT490 Reglerteknik I 5hp Tentamen: Del A Tid: Torsdag 15 december 2016, kl

Transkript:

Laboration i Reglerteori, TSRT09+TSRT06 Flervariabel reglering Denna version: 15 februari 2018 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 ervariabla system och konstruktion av regulatorer för ervariabla 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 nns 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 - gur 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 gur 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 (eller som en permutation av en diagonal matris) innebär att vi reglerar systemet som om det vore era parallella envariabla system utan någon koppling mellan systemen. Den koppling som verkligen nns mellan systemen betraktas 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 ervariabelt. 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 stramatriserna 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 reekterar 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 Kalmanlter ä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. Kalmanltret 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-ler med standardblockscheman nns 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. 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 nns på tillståndsform (As, Bs, Cs, Ds) i lerna sys1.mat och sys2.mat. Det medföljer även ett par Matlab-funktioner vars egenskap listas nedan. pid params.m, Matlab-script för att denera PID-parametrar. Uppdaterar regulatorn i pid xpc.mdl. 6

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 gur 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) För läge 2 blir systemets överföringsmatris: G(s) = 96 s(0.25s+1) 48 s(0.25s+1) ( 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.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. 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 = 7

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 Oset-justering av motorerna Varje DC-motor har en potentiometer för justering av oset. Innan experimenten startas är det viktigt att justera oset-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 5V. 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 gur 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 lerna ä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 lablerna. Öppna len xpcsetup.m i Matlab och följ stegen i len för att initiera kommunikationen mellan datorerna. Notera speciellt vad som först måste göras om det listas era 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-len pid xpc.mdl. Deniera PID-parametrar genom att editera och köra pid_params. Använd tills vidare enbart P - eller P D-reglering, dvs låt T I =. Vi kommer återkomma till integralverkan i regulatorn senare. 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-len 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 denieras i pid_params är K(1 + 1 + T s T I s d ). Vi struntar s/w+1 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 11

man kompilera om). 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. Gradskivorna vrider sig ibland 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. För att se mät- och styrsignaler i realtid kan man trycka på knappen input på monitorn och byta till DSPns monitor, där signalerna visas. 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. Var ligger polerna för det slutna systemet? I pid params.m ser ni att två överföringsfunktioner F1 och F2 denieras. Använd dessa för att skapa er multivariabla regulator F. Tillståndsmatriser (As,Bs,Cs,Ds) för systemet G(s) laddade ni in tidigare. Använd dessa för att skapa en modell G. Det slutna systemet kan nu fås med hjälp av Matlab-kommandot feedback. Kommandot feedback(n,m) genererar (I + N(s)M(s)) 1 N(s). Slutna systemet erhålles sålunda med Gc = feedback(g*f,eye(2)); Hur många tillstånd bör det nnas 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 av numeriska skäl få en icke-minimal realisering. Problemet med för många tillstånd kan lösas med kommandot Gc = minreal( Gc ); Tag för vana att använda detta kommando vid kretsmanipuleringar. Polerna, som är desamma som egenvärdena till Gc.a i en minimal realisering, kan beräknas med pole(gc). Antalet beräknade poler skall stämma överrens med det antal ni uppgivit ovan. Vad kan du säga om era poler? Kan du nna 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. En grundläggande teknik för ervariabel 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 din variabel F. Prova nu att reglera det nya systemet med er omkopplade PID-regulator. Glöm inte att återställa PID-inställningarna till de ursprungliga värden som ni ansåg fungera väl. Kommentar:.......................................................... 13

Är modellen över slutna systemet stabil? Kontrollera polernas lägen. Kan vi uppnå frikoppling med denna typ av regulator? Kommentera svaret. Ledning: förberedelseuppgift I.2. Titta på singulära värden på kretsförstärkningen G(s)F (s) samt slutna systemet (I + G(s)F (s)) 1 G(s)F (s) med hjälp av kommandot sigma. Vilka typiska egenskaper ser ni i kretsförstärkningen (lågfrekvensegenskaper, brytpunkter, tecken på multivariabelt/korskopplat)? Kan ni koppla brytpunkter till poler och nollställen i systemet och regulatorn. 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? Med ett fåtal in- och utsignaler kan man även titta på förstärkningar på enskilda kanaler. Använd bodemag för att studera de individuella förstärkningarna på det slutna systemet. Hur ser du korskopplingar här? Vi skall nu studera hur känsligt systemet är för störningar på insignalen. Praktiskt kan vi testa detta på uppställningarna genom att vi vrider på zero-oset. Genom att justera denna så kan en additativ, för regulatorn 14

okänd, spänning läggas på motorerna. Börja med att stänga av regulatorn, och justera zero-oset på båda motorer tills att de står helt stilla. Detta motsvarar fallet att vi inte har någon insignalsstörning. Slå nu på regulatorn igen, och växla monitor så att ni ser era signaler. Ändra läget på zero-oset så att ni ser ordentliga förändringar. Stannar motorerna (dvs blir den totala pålagda spänningen 0)? Går reglerfelet mot 0? För att analysera hur systemet påverkas av en insignalsstörning (som vi kallar w u ) så kan vi studera insignalskänslighetsfunktionen S u (s) = (I + F (s)g(s)) 1 (överföringsfunktion från störning på den av regulatorn beräknade styrsignalen till den styrsignal som faktiskt appliceras på systemet) samt överföringsfunktionen från insignalsstörning till reglerade signalen y. Denna överföringsfunktion blir G wuy = G(I + F (s)g(s)) 1 vilket kan skrivas som (I + G(s)F (s)) 1 G(s) om så önskas. Alla dessa överföringsfunktioner kan denieras med feedback. Glöm inte bort att använda minreal. Rita ett blockschema med F, G, r, w u och y och markera tydligt vilka överföringsfunktioner vi beräknar. Börja med att titta på de singulära värdena för insignalskänslighetsfunktionen (I + F (s)g(s)) 1. Vad kommer den statiska inverkan på den faktiska styrsignalen vara då vi har en konstant insignalsstörning? Stämmer resultatet med det experimentella beteendet? 15

Titta nu på på de singulära värdena för överföringsfunktionen från insignalsstörning till reglerade signalen y. Stämmer resultatet med det experimentella beteendet? Styrsignalen som appliceras på systemet är W u (s) + F (s)(r(s) Y (s)). För att systemet skall kunna stå stilla så måste denna signal vara 0 stationärt om w u (t) är konstant. Kan reglerfelet r(t) y(t) vara 0 stationärt om F (s) är en P D-regulator? Ändra nu på er regulator så att den har integralverkan, och genomför samma experiment. Rita även om de singulära värdena. Vad händer nu? Justera tillbaka zero-oset till noll igen innan ni fortsätter (stäng av regulator och justera tills motorerna stannar). 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 nna en mer komplex regulatorstruktur som ger oss frikoppling. Modiera regulatorn i Simulink-len enligt din lösning av förberedelseuppgift 3. (Praktiskt så kan H i förberedelseuppgiften ses som den grå lådan, och G(s) är de två DC-motorerna.) Skriv simulink i Matlab för att få Simulink-block tillgängliga. Simulink-blocken Mux, Demux och Gain kan vara användbara för att implementera regulatorn i denna uppgift. Prova din nya regulator. Tänk på att ett alltför snabbt system kanske blir instabilt på grund av modellfel. Kontrollera polernas lägen. Var ligger polerna för det slutna systemet? 16

Titta på det öppna och slutna systemets med sigma och bodemag, och jämför med den tidigare regleringen. Kan man se några tecken på modellfel när man jämför det slutna systemets uppritade förstärkningar och det riktiga systemets uppförande? Titta slutligen även på insignalskänslighetsfunktionen. Extra uppgift Utför reglerdesignen ovan på det system som erhålles med omkopplaren i läge 2. Systemmatriserna för systemet nns i len 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 stramatriserna 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 nns i Simulink-schemana, men innan de kan användas 17

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 nns 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 stramatris för tillståndet, och Q 2 är stramatris för styrsignalen. Av symmetriskäl är det naturligt att välja lika stora stra för båda styrsignalerna, ( ) 1 0 Q 2 = 0 1 och bara variera Q 1 som designparameter (eftersom det är den relativa storleken mellan Q 1 och Q 2 som är viktig) 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å denitioner så att du förstår varför MATLAB-koden ovan denierar 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 framkopplingen ej påverkas (slutna systemets överföringsfunktion från r till y beror ej på observatören). 18

Börja med att göra en tillståndsåterkoppling som inte straar vinkelhastigheterna. Straa vinklarna lika mycket, skippa stra 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 len 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 straa 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 nns i len sys2.mat 19

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 teoridelen 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 Matlab eller en miniräknare till hjälp när uttrycken blir för stora!) 2. Betrakta systemet i gur 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. Visa att G(s) i ekvation 3.1 kan faktoriseras på följande form: ) (Ḡ1 G(s) = Ḡ(s)H = (s) 0 H 0 Ḡ 2 (s) 20

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 = ( ) F1 (s) 0. 0 F 2 (s) 4. Låt Y (s) = G(s)U(s) där, G(s) = ( 1 s+1 2s 2s+1 2s 2s+1 1 s+1 ) Räkna ut RGA för G(0) och G( ). Kan du göra en kvalicerad gissning, baserad på dina RGA-beräkningar, om det är enkelt eller svårt att reglera systemet med två en-variabla PID-regulatorer. 5. Ange gränser på systemets bandbredd när slutna systemets singulära värden ges av guren nedan. 0-2 -4-6 Singular Values db -8-10 -12-14 -16-18 -20 10 0 10 1 10 2 Frequency (rad/sec) 6. 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 guren 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? 21

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) 7. 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 ] ) Ett stegsvar för det återkopplade systemet visas i guren 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) 8. (Fortsättning på föregående fråga.) Med det enkla valet L = [ 1 0; 0 1] blir stegsvaret som i guren 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? 22

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) 23