NTNU Norges teknisknaturvitenskapelige universitet Institutt for teknisk kybernetikk vårsemesteret 2004 TTK 4140 Reguleringsteknikk m/elektriske kretser Dataøving 1 Veiledning : Fiskelabben G-116/G-118 Uke 6: Onsdag 4. feb. kl. 16.00-20.00 Uke 7: Onsdag 11. feb. kl. 16.00-20.00 Uke 8: Onsdag 18. feb. kl. 16.00-20.00 Det er veiledning 17.00-20.00 Innlevering : Fredag 20. feb. kl. 14.30. Hvis dere viser tilstrekkelig forståelse, utregninger og plott, kan stud.ass godkjenne øvingen på datasalen også. Innledning I denne øvingen skal vi ta for oss en prosess som består av et varmluftsrør. Dette er beskrevet i teoridelen. Målet er å lage en regulator som holder temperaturen ved utgangen av røret ved en ønsket verdi. Praktisk gjennomførelse Fiskelabben finner dere bak EL5. Det vil være studasser tilstede for veiledning til dataøvingene i de oppsatte tidene. For å få utnyttet ressursene bedre, skal øvingene gjøres i grupper på 2-3 personer. Disse organiserer dere selv. Benytt gjerne samme gruppe i begge dataøvingene. Matlab Det er svært viktig at dere har satt dere litt inn i Matlab før dere begynner på øvingen. Ett godt utgangspunkt finner dere på ; http://www.itk.ntnu.no/fag//ttk4140/nyttig/matlab_lenker.pdf Help-funksjonen i Matlab er også nyttig. Videre er det lurt å lese gjennom oppgaven og gjøre litt av teorien i oppgave 2 på forhånd. side 1
Teori De første oppgavene går ut på å studere et temperaturreguleringssystem. Det er temperaturen i en fysisk modell av et varmluftsrør som skal reguleres. Beskrivelse av prosessen Figur 1 viser varmluftrøret. En vifte med konstant hastighet blåser luft gjennom røret. Spjeldåpningen kan varieres manuelt. Luften kan oppvarmes av et heteelement. Prosessens pådrag u er et speningssignal som styrer effekten tilført heteelementet. Effekten er tilnærmet proporsjonal med dette spenningssignalet. Figur 1: Illustrasjon av varmluftsrøret. Temperaturen måles ved hjelp av en termistor, som har en varmefølsomhet på 0,33 volt pr. 0 grad Celsius. Nullnivået for målespenningen kan justeres og er her satt til 20 [ C]. Temperaturen måles et stykke ut i røret, og derfor inneholder prosessen en tidsforsinkelse som vil avhenge av luftgjennomstrømningen. Som prosessens utgang betrakter vi temperaturen y[ ] i målepunktet. Prosessens forstyrrelse v er temperaturen i den inngående luften ( ute -luften). u, y og v er standardsymbolder for henholdsvis pådrag, utgang og forstyrrelse. 0 C side 2
Figur 2: Skjematisk modell av varmluftsrøret. For figur 2 gjelder følgende: v er lufttemperaturen før oppvarming (temperaturen i rommet) er støy inn på målingene ω 1 m3 q 2,0 10 4 ------ er luftgjennomstrømningen s c 1,24 10 3 ------------- J er spesifikk varmekapasitet (dvs. pr. volumenenhet) m 3 C Θ er lufttemperaturen ved varmeelementet etter oppvarming C E 0,34----- J er varmekapasiteten for varmeelementet C h 12-------- J er varmeovergangstallet mellom varmeelementet og luften s C L 0,196m er lengden av varmluftsrøret til målepunktet ( transportveien ) v l er lufthastigheten i røret. a 2,8751 10 4 m 2 er rørets tversnittsareal yt () Θt ( τ) er lufttemperaturmålingen i målepunktet ut () er pådrag P er tilført elektrisk effekt til varmeelementet. Denne kan skrives som: P K u u der K u 2 er forsterkningen. Tilstandsrommodell Nedenfor er differensialligningen for lufttemperaturen 1 Θ --------------------------- [ ( v Θ) + K u u] 1 C E -- + ----- 2 h Θ() t gitt: side 3
Dette er en 1. ordens differensialligning. På tilstandsromform (endimensjonalt romskalart system) kan vi sette opp: hvor: x Ax + Bu + Cv x A Θ --------------------------- C 1 E -- + ----- 2 h B K u C --------------------------- 1 C E -- + ----- 2 h Tidsforsinkelsen på målingen ( y Θ( t τ) + w ) gjør at vi ikke kan anvende tilstandsromform for denne i systemet sånn uten videre. Hvordan dette kan gjøres er ikke pensum i faget. w er tegnet for målestøy. Arbeidsppgaver Her følger en del oppgaver som skal løses. I starten er det bare enkle/utenomfaglige/datatekniske ting som man selvfølgelig bør få til før man tenker på selve reguleringsteknikken. Dersom man ikke blir ferdig i løpet av en enkelt øvingsdag, kan man bare kopiere alle filene fra arbeidskatalogen over på diskett og ta den med neste gang. Noen vil kanskje synes at man gjør det datatekniske litt mer krøkkete enn nødvendig i denne oppgaven. Det er forsåvidt sant nok, men det har en baktanke. På neste dataøving vil det bli mindre Simulink og mer Matlab, og forståelsen av programmene som oppnås gjennom denne øvingen vil være gull verdt da. Oppgave 1: Oppstart og initialisering Start Matlab ved å trykke på riktig ikon. Neste steg er å opprette en egen katalog for å lagre filer o.l. i. På de fleste maskiner skal dette være på stien: D:\user\<dittnavn> Still deg i Matlabvinduet og skriv: >> cd d:\user\<dittnavn> Dette gjør at alle m-filer (scripts) som du senere skal lagre der blir kjørt uten problemer. side 4
Neste steg er å lage en m-fil (script) som skal initialisere modellen vår. Dette er en vanlig tekstfil som skal ha et navn som slutter på (.m). For initialisering kan man f.eks. bruke (init.m). Denne lager man vha en vanlig teksteditor som f.eks. notepad, q, emacs el. lign. Det skal også gå an å skrive >> edit i matlabvinduet for å få opp Matlabs egne editor. Når editoren er startet kan man legge inn de faste parametrene for systemet slik at disse blir lagret en gang for alle. Legg følgende inn i editoren og lagre den som tekstfil (f.eks. init.m) på katalogen D:\user\<dittnavn> q2.0e-4; % m^3/s c1.24e3; % J/(m^3C) CE0.34; % J/C h12; % J/(sC) a2.8751e-4; % m^2 L0.196; % m Ku2; vlq/a; % m/s Legg merke til at alt som står etter %-tegnet er kommentarer. Et semikolon etter variabeldeklarasjonene medfører at det ikke blir skrevet noe til skjerm når filen kjøres. For å kjøre denne initialiseringen skriver du følgende i matlabvinduet (hvis filnavnet er init.m): >> init Konstantene er nå lagret i Matlab slik at de kan brukes direkte i beregninger senere. Dersom man bestemmer seg for å forandre en parameter kan dette gjøres direkte i m-filen senere. Da trenger man bare å kjøre den på nytt for å få forandringene til å gjelde. Det kan også lønne seg å foreta andre beregninger i en slik initialisering. La oss sette opp uttrykket for tidsforsinkelsen mellom målingen og lufttemperaturen ved heteelementet: τ --- L v l Denne kan legges til i m-filen slik: taul/vl; % s Hvis man nå forandrer på luftgjennomstrømningen eller avstanden til måleelementet vil tidsforsinkelsen (som vi senere skal se er essensiell) forandres automatisk. Oppgave 2: Åpen sløyfe. System uten regulering. I denne oppgaven antar vi at det ikke finnes en forstyrrelse. Det betyr at vi setter v0. a.) Hvilken orden har dette systemet? side 5
b.) Finn systemets statiske modell. Sett først opp det symbolske uttrykket og deretter regner du ut forsterkningen med tallverdier. Tips: Glem forstyrrelse og tidsforsinkelse, og betrakt systemet fra u til Θ. Systemet slik vi har det nå kan i Laplacetransformert form beskrives slik: v 1 u K --------------------------- u C 1 E -- + Θ ----- 1 -- Θ _ s t τ 2 h y Figur 3: Laplacetransformert system uten regulering. c.) Bruk regelen om negativ tilbakekobling (læreboka s. 122) for å skrive den interne sløyfa om til en enkelt transferfunksjon. Vi vil altså ha systemet på følgdende form, og du skal finne h(s): v u Θ K u h(s) t τ y d.) Anvend sluttverditeoremet (med sprang i pådraget med høyde1) for å se at forsterkningen som du fant fra den statiske modellen stemmer. Vi skal nå finne ut om denne verdien stemmer i praksis også. Start simulink ved å skrive: >> simulink i matlabvinduet. Deretter skal du velge ut komponenter fra følgende bokser: Sinks, Sources, side 6
Continuous og Math og tegne opp et diagram som ligner på dette; Dobbelklikk på blokka Gain og skriv Ku istedet for 1. Dobbelklikk på blokka med Transfer function og sett inn den h(s) som du fant i oppgave c). Denne skal oppgis på en litt spesiell måte. Telleren og nevneren skal oppgis separat. Eksempel: Du vil oppgi følgende transferfunksjon: hs ( ) ---------------------------- k as 3 + bs + c I vinduet for transferfunksjoner må du da skrive slik: Her oppgis koeffisientene foran hver potens av s som egne uttrykk med mellomrom som skilletegn. Det er vanlig å også bruke litt mer sammensatte uttrykk her (f.eks. systemets parametre.) Dette vil lønne seg for deres del. Bruk derfor samme variabler som dere definerte i filen init.m. Husk å lagre den og kjøre den før dere setter opp parametrene til h(s). Hvis du dobbelklikker på de andre blokkene kan du også stille inn parametre der. side 7
e.) Simuler systemet slik du har det nå uten regulering. Bruk enhetssprang i pådraget. Hva blir stasjonærverdien/forsterkningen til det åpne systemet? Stemmer dette overens med svarene fra oppgave b) og d)? Hvis ikke må du finne ut av feilene. Legg ved utskrift av utgangsverdien. Dobbelklikk på Scope for å se grafen. Klikk på kikkerten for å få riktig skalering. f.) Finn omtrentlig tidskonstant for systemet ved å se på grafen. Stemmer denne med den som kan finnes fra transferfunksjonen du beregnet i oppgave c)? Det kan hende at du må skrive om transferfunksjonen fra oppgave c) Oppgave 3: Regulert system For å kunne styre systemet må vi ha en ønsket verdi r (referanse), en regulator og en måling. Målingen har som vi vet en tidsforsinkelse τ. Du har sannsynligvis ikke lært noe om regulatorer ennå, men det betyr lite. Vi skal i denne oppgaven benytte noe som kalles en PIregulator (Se læreboka). Denne blir bare en ekstra transferfunksjon i blokkdiagrammet vårt, og kan skrives som: ( 1 + T i s) h r ( s) K p -------------------- T i s K p + K p T i s ------------------------------ T i s Nøyaktig hvordan dette virker skal vi ikke gå inn på her (det blir gjennomgått senere). Kort sagt kan man imidlertid si at dette er en regel for hvordan man skal variere effekten på varmeelementet når man har forskjellig forstyrrelse (omgivelsestemperatur), målestøy og ønsket verdi etter som tiden går slik at lufttemperaturen inne i røret blir mest mulig riktig. Systemet vårt kan nå skjematisk tegnes slik med regulering og forstyrrelser v w r e _ h r (s) u Θ Ku h(s) t τ y Figur 4: Totalt system med regulering, forstyrrelser og tidsforsinkelse. Vi skal nå simulere oppførselen til dette systemet under forskjellige betingelser. Tegn opp systemet i Simulink. For at du ikke skal slite altfor mye er vi så snille at vi legger ved en løsning; (Se neste side) side 8
side 9
Husk å lagre når du er ferdig med å tegne! Elementet Transport Delay finnes under boksen Nonlinear i Simulink. Her oppgir du transportforsinkelsen til å være null i første omgang. Senere skal du sette inn tau (den variabelen som du definerte i init.m-filen) her. Hvis du har problemer med å få trukket opp flere streker til samme punkt, kan det lønne seg å starte der hvor det evt. ikke finnes noen fra før. Spør studass om hjelp! I første omgang skal vi ikke ha med noen forstyrrelser av noen art. Derfor setter du Amplitude i Sine Wave -boksen lik null og Noise Power til hvitstøy-boksen lik null. Husk å forandre til et minustegn i den venstre summasjonsboksen. Regulatoren vår har fått parametre K p 0.2 og T i 0.3. Dette betyr at telleren i den transferfunksjonen skal oppgis som: [0.06 0.2] Nevneren blir: [0.3 0] Kan forøvrig nevne at dette ikke er noen god regulator for systemet, men det spiller ingen rolle her. Som du ser, ønsker vi å ha konstant temperatur lik 10 o C (r10). a.) Simuler systemet med disse parametrene. Klarer det å svinge seg inn til ønsket temperatur (10 o C)? b.) Kan du si noe om hvor polene til dette systemet ligger i det komplekse planet? Er det overdempet, underdempet eller kristisk dempet? TIPS: Se læreboka side 138-149. Sett inn verdien tau i tidsforsinkelsesblokka (husk å kjøre init.m). Simuler systemet på nytt. c.) Har tidsforsinkelse noen betydning for hvor raskt regulatoren klarer å stille inn ønsket temperatur? Vi tenker oss at vi måler temperaturen enda lenger ut i røret. Forandre parameteren L i init.m til 0.3. Lagre og kjør init.m på nytt slik at den nye tau blir beregnet. d.) Simuler systemet med målingen 0.3 meter ut i røret. Klarer denne regulatoren da å stille seg inn til riktig temperatur? Forandre tidsforsinkelsen tilbake til null i simulinkblokka igjen. I resten av oppgavene skal vi se bort fra denne. Vi skal nå istedet forsøke oss med litt målestøy. Dette er støy som kan oppstå ved elektroniske forstyrrelser eller turbulens i røret. e.) Sett inn verdien 0.005 til Noise power i hvitstøyblokka. Simuler systemet. Klarer regulatoren å holde ønsket verdi? Har målestøy noe å si for reguleringen? Sett målestøyen tilbake til null. Nå skal vi istedet se på virkningen av omgivelsestemperaturen. Vi antar at den varierer som en sinus med ±2 C rundt null grader med en frekvens på 1 rad/sek. Oppgi derfor Amplitude til 2 og Frequency til 1 i Sine Wave -blokka. side 10
f.) Simuler systemet med den oppgitte prosesstøyen (variasjonen i omgivelsestemperatur). Klarer regulatoren å stille seg inn? g.) Forandre temperatursvingningenes frekvens til 200 rad/sek. Klarer regulatoren å stille inn temperaturen bedre eller dårligere nå? Hvorfor? side 11