09.03.2014 Views

Dataøving 2 - Institutt for teknisk kybernetikk - NTNU

Dataøving 2 - Institutt for teknisk kybernetikk - NTNU

Dataøving 2 - Institutt for teknisk kybernetikk - NTNU

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>NTNU</strong><br />

Norges <strong>teknisk</strong>naturvitenskapelige<br />

universitet<br />

<strong>Institutt</strong> <strong>for</strong> <strong>teknisk</strong> <strong>kybernetikk</strong><br />

vårsemesteret 2004<br />

TTK 4140 Reguleringsteknikk m/elektriske kretser<br />

Dataøving 2<br />

Fiskelabben G-116/G-118<br />

Uke 16: Onsdag 14. april kl. 16.00-20.00<br />

Uke 17: Onsdag 21. april kl. 16.00-20.00<br />

Uke 18: Onsdag 28. april kl. 16.00-20.00<br />

Det er veiledning 17.00-20.00<br />

Innlevering : Fredag 30. april kl. 14.30.<br />

Innledning<br />

I denne dataøvingen skal vi se nærmere på det samme systemet som ble behandlet i Dataøving<br />

1. Det vil ikke bli bruk <strong>for</strong> noe av det dere laget der, men vi skal istedet se på andre aspekter<br />

ved systemet. Frekvensanalyse og regulatordesign vil være sentralt<br />

Praktisk gjennomførelse<br />

Fiskelabben finner dere bak EL5.<br />

Det vil være studasser tilstede på labben i de oppsatte tidene. For å få utnyttet ressursene<br />

bedre, skal øvingene gjøres i grupper på 2-3 personer. Disse organiserer dere selv. Benytt<br />

gjerne samme gruppe som dataøving 1.<br />

Det er mulig at noen vil finne enkelte oppgaver ganske vanskelige, kanskje spesielt når det<br />

gjelder implementasjonen i Matlab. Ikke være redd <strong>for</strong> å spørre om hjelp! Hvis det likevel<br />

skulle bli alt<strong>for</strong> mye å gjøre bør det fremgå av rapporten hva som var vanskelig og hvor<strong>for</strong><br />

dere ikke har gjort det. Som en hovedregel vil besvarelser hvor mindre enn halvparten av oppgavene<br />

ikke er gjennomførte ikke bli godkjent.<br />

Dere skal levere én rapport pr. gruppe i innleveringsboksene i kjelleren, og aktuelle<br />

grafer skal legges ved. Dette betyr ikke at absolutt alle grafer skal skrives ut, men heller<br />

et representativt utvalg. Ingen krever at man skal gjøre all verden ut av rapporten, men<br />

den skal klart og tydelig vise at dere har <strong>for</strong>stått oppgavene. Husk å skrive navn, avdeling,<br />

årskurs, e-mail adresse (<strong>for</strong> alle gruppemedlemmer) på besvarelsen .<br />

side 1


Matlab<br />

Det er svært viktig at dere har satt dere litt inn i Matlab før dere begynner på øvingen. Ett godt<br />

utgangspunkt finner dere på ;<br />

http://www.itk.ntnu.no/fag//TTK4140/nyttig/Matlab_lenker.pdf<br />

Help-funksjonen i Matlab er også nyttig.<br />

Teori<br />

Som tidligere nevnt, er det varmluftsrøret fra dataøving 1 som representerer systemet vårt<br />

denne gangen også. I D1 fant vi at følgende <strong>for</strong>enklede blokkdiagram kunne representere systemet<br />

(hvis vi ser bort fra <strong>for</strong>styrrelsen):<br />

u<br />

h p (s)<br />

Θ<br />

e – τs y<br />

Figur 1: Systemet som transferfunksjon og tids<strong>for</strong>sinkelse<br />

Transferfunksjonen h p (s) skulle finnes på <strong>for</strong>rige øving. Skrevet ut med tallverdier blir det:<br />

h p<br />

( s)<br />

=<br />

-----------------------------------<br />

1<br />

0,177s + 0,248<br />

Denne skal vi anta kjent her. Tids<strong>for</strong>sinkelsen skulle være τ = 0,2818 , og denne skal tilnærmes<br />

med en Padèapproksimasjon av 2. orden i denne oppgaven. Systemet skal reguleres<br />

med en begrenset PID-regulator, og denne kan skrives som :<br />

( T<br />

h r<br />

( s) K i T f + T i T d )s 2 + ( T i + T f )s + 1<br />

= p<br />

---------------------------------------------------------------------------<br />

T i T f s 2 + T i s<br />

lign.(1)<br />

Oppgave 1: Ziegler-Nichols’ lukket-sløyfe-metode<br />

I denne oppgaven skal vi finne en god regulator <strong>for</strong> systemet vha. Ziegler-Nichols’ metode <strong>for</strong><br />

lukkede sløyfer (se 9.3.2 i læreboken). Følgende m-fil kan lagres som f.eks. init2.m på din<br />

egen katalog:<br />

side 2


init2.m<br />

% Initieringsfil til dataoeving 2 i fag TTK4140<br />

% Prosessens transferfunksjon funnet i dataoeving 1<br />

thp=1;<br />

% Teller hp<br />

nhp=[0.1770 0.2480]; % Nevner hp<br />

% Regulatorparametre<br />

Kp=0;<br />

Ti=1000000; % Satt stor i starten = Uendelig<br />

Td=0;<br />

% Regulatorens transferfunksjon<br />

Tf=Td/10; % Vanlig antakelse <strong>for</strong> begrensningen<br />

thr=Kp*[(Ti*Tf+Td*Ti) (Ti+Tf) 1]; % Teller hr<br />

nhr=[Ti*Tf Ti 0];<br />

% Nevner hr<br />

% Padeapproksjimasjon av tids<strong>for</strong>sinkelse<br />

tau=0.2818;<br />

[tpade,npade]=pade(tau,2); % 2.ordens tilnaermelse<br />

% Sloeyfetransferfunksjonen<br />

th0=conv(thr,thp);<br />

th0=conv(th0,tpade);<br />

nh0=conv(nhr,nhp);<br />

nh0=conv(nh0,npade);<br />

Her er transferfunksjonene representert ved tellere og nevnere, noe som er hensiktsmessig i<br />

Matlab. Denne filen bør som sagt ligge under din egen katalog, f.eks. D:\user\<br />

Se D1 <strong>for</strong> nærmere in<strong>for</strong>masjon.<br />

Husk at denne filen må lagres og kjøres <strong>for</strong> hver gang du <strong>for</strong>andrer noe i den. Til å begynne<br />

med er det kun regulatorparametrene som trengs å <strong>for</strong>andres.<br />

Det er også lurt å lage følgende modell i Simulink:<br />

side 3


Alle nødvendige byggeklosser skal finnes i bibliotekene. Merk spesielt bruken av “Workspace”<br />

og “Clock”. Disse sender variable direkte til Matlab. Legg også merke til at vi ikke har<br />

tatt med noen <strong>for</strong>styrrelse i systemet slik som <strong>for</strong>rige gang. Referansen (“Step”-boksen) kan<br />

settes til å starte på verdien 10 <strong>for</strong> så å sprette opp til verdien 12 etter 5 tidsenheter.<br />

For å se grafen kan man nå gå i Matlabvinduet og skrive:<br />

>> plot(t,y)<br />

Ellers kan det være nyttig å gjøre bruk av kommandoene:<br />

grid, xlabel, ylabel, title, axis og zoom.<br />

Skriv f.eks.:<br />

>> help zoom<br />

<strong>for</strong> å få mer hjelp.<br />

For å <strong>for</strong>andre aksene kan man benytte kommandoen:<br />

>> axis([ ])<br />

Flere grafer kan plottes i samme vindu hvis en benytter hold-kommandoen. Videre kan man<br />

få frem flere <strong>for</strong>skjellige figurvinduer ved å benytte:<br />

figure()<br />

Prøv dere frem og spør studass hvis det blir <strong>for</strong> vanskelig!<br />

side 4


a.) Neden<strong>for</strong> er gitt transferfunksjonen <strong>for</strong> en PID-regulator med begrenset derivatvirkning:<br />

u --------- ( s)<br />

e( s)<br />

K K K<br />

------ p p T d s<br />

= + + ----------------<br />

p T i s T f s + 1<br />

Vis at denne transferfunksjonen kan skrives som ligning (1).<br />

b.) Bruk Ziegler-Nichols metode til å finne en best mulig PID regulator <strong>for</strong> systemet. Simuler<br />

og se at regulatoren virker. Hvor<strong>for</strong> velger man som oftest en regulator med begrenset<br />

derivatvirkning ? Tips: La T i = ∞ og T d =0 (dvs. negliser integral og derivat leddene). Skru<br />

på regulator<strong>for</strong>sterkningen K p inntil vi får stående svingninger på utgangen. Noter denne<br />

K p -verdien, som kalles <strong>for</strong> den kritiske <strong>for</strong>sterkningen K p,k . Ut fra plottet, finn perioden T k<br />

<strong>for</strong> de stående svingningene. Beregn så regulatorparametrene ut fra tabellen i boken om<br />

Ziegler-Nichols.<br />

c.) Finn også regulatorparametre <strong>for</strong> PI og P-regulatorer. Implementer disse og se om det er<br />

noen <strong>for</strong>skjell i systemets tids<strong>for</strong>løp. Kommenter og <strong>for</strong>klar hvor<strong>for</strong> vi har statisk avvik når<br />

vi bruker P-regulator.<br />

d.) Hvis referansen hadde vært en rampefunksjon istedet <strong>for</strong> et sprang, ville PID-regulatoren<br />

fått statisk avvik? Forklar (simulering trengs ikke.).<br />

Oppgave 2: Regulatordesign<br />

I den vedlagte m-filen er det illustrert hvordan man kan finne teller og nevner til sløyfetransferfunksjonen<br />

h 0 (s). Når man har disse, kan MATLAB hjelpe oss med å analysere systemet. De<br />

fleste funksjoner som er tilgjengelige der kan kalles på følgende måte:<br />

>> funksjonsnavn(teller,nevner)<br />

Viktige funksjoner nå vil bl.a. være:<br />

bode og margin.<br />

a.) Tegn opp bodediagrammet til sløyfetransferfunksjonen h 0 (s). Hva er systemets båndbredde?<br />

b.) Finn <strong>for</strong>sterkningsmarginen og fasemerginen til systemet. Skru på K p slik at man oppnår<br />

6dB <strong>for</strong>sterkningsmargin. Hva blir den nye K p ? Hvor<strong>for</strong> ønsker man å spesifisere slike<br />

marginer når man designer en regulator <strong>for</strong> et system?<br />

c.) Simuler systemet med den nye K p . Blir innsvinget til stasjonærverdien raskere eller<br />

tregere? Hvor<strong>for</strong>?<br />

d.) Tegn opp det nye bodediagrammet og kommenter den nye båndbredden til systemet i <strong>for</strong>hold<br />

til den gamle. Hvilke motstridende ønsker møter vi på når båndbredden og <strong>for</strong>sterknings/<br />

fasemargin skal spesifiseres?<br />

e.) Tenk på frekvensinnholdet til den Fouriertrans<strong>for</strong>merte av et enhetssprang. Kan du ut fra<br />

side 5


dette si noe om sammenhengen mellom hastigheten til innsvingnings<strong>for</strong>løpet og båndbredden<br />

til systemet?<br />

Bruk den nye regulatoren i de videre oppgavene!<br />

Oppgave 3: Følge<strong>for</strong>hold og sensitivitet<br />

Vi skal nå se litt på følgeegenskaper og sensitivitet til systemet. For å implementere funksjonene<br />

T(s) og S(s)=1-T(s) vil det være lurt å skrive h 0 (s) som en brøk og herfra utlede<br />

uttrykk <strong>for</strong> disse. Når en så har funnet uttrykket vil det bli behov <strong>for</strong> å legge sammen tellervektoren<br />

og nevnervektoren til h 0 (s), men disse har sannsynligvis <strong>for</strong>skjellige lengde. For å utvide<br />

f.eks. tellervektoren med en null i starten (den har jo ingen innvirkning) kan man skrive følgende:<br />

>> th0=[0 th0]<br />

Det vil også være behov <strong>for</strong> å tegne opp følgende system i Simulink:<br />

Vi skal nå først konsentrere oss om følgenegenskapene, så amplituden til <strong>for</strong>styrrelsen kan settes<br />

til null (dobbelklikk på “Sine Wave”-boksen <strong>for</strong> å <strong>for</strong>andre).<br />

Poenget her er altså at vi av en eller annen grunn vil ha temperaturen i varmluftsrøret vårt til å<br />

<strong>for</strong>andre seg med en gitt hastighet. Den ønskede temperaturen er (som du sikkert skjønner)<br />

referansen. Vi skal nå benytte frekvensanalyse <strong>for</strong> å se hvor raskt vi kan <strong>for</strong>andre referansen<br />

samtidig som regulatoren klarer å <strong>for</strong>andre utgangen y.<br />

a.) Tegn opp et bodeplott av følge<strong>for</strong>holdet til systemet. For hvilke frekvenser har vi gode følgeegenskaper<br />

(husk at 0dB=1...)?<br />

Vi skal nå teste dette ut, og skrur litt på parametrene til referanse-sinusen. Sett ampituden til 1.<br />

side 6


Det kan også bli nødvendig å <strong>for</strong>andre sluttid <strong>for</strong> simuleringene. Denne kan <strong>for</strong>andres ved å gå<br />

inn i rullegardinmenyen “Simulation” og velge “Parameters”.<br />

For å plotte både referansen og utgangen i samme figur kan man f.eks. skrive:<br />

>> plot(t,y,’-’,t,r,’--’)<br />

Her vil utgangen være en heltrukken linje mens referansen er stiplet.<br />

b.) Sjekk om resultatet fra <strong>for</strong>rige deloppgave stemmer ved å prøve <strong>for</strong>skjellige frekvenser på<br />

referansesinusen. Husk at gode følgeegenskaper betyr at referansen og utgangen er like i<br />

tallverdi og uten tids- (fase-)<strong>for</strong>skyvning.<br />

Nå er det tid <strong>for</strong> å se på sensitiviteten <strong>for</strong> støy. Sett amplituden til referansen lik null, og amplituden<br />

til <strong>for</strong>styrrelsen lik 0.5. Her tenker vi oss at en støykilde (f.eks. en annen varmekilde)<br />

påvirker temperaturen i varmluftsrøret. Målet er å undersøke om vår regulator kan begrense<br />

innvirkningen av denne.<br />

c.) Tegn opp et bodeplott av sensitivitetsfunksjonen til systemet. For hvilke frekvenser på<br />

støykilden klarer regulatoren vår å undertrykke innvirkningen? (Husk at veldig negativ<br />

desibelverdi roots(nT)<br />

hvor nT er nevneren til T(s).<br />

Dette vil gi oss røttene til nevneren i transferfunksjonen fra referansen til utgangen, altså T(s).<br />

Dette er røttene til 1+h 0 (s), og disse vil som kjent være lik egenverdiene til A-matrisa når systemet<br />

er på tilstandsrom<strong>for</strong>m. 1+h 0 (s) er <strong>for</strong>øvrig et vedlig sentralt uttrykk når man undersøker<br />

stabilitet.<br />

a.) Finn polene til systemet. Systemets transferfunksjon, h p (s), er av 1. orden og regulatoren<br />

har bare 2. ordens s-ledd i nevneren, hvor<strong>for</strong> får du likevel fem poler?<br />

b.) Hvordan kan du ut fra polenes beliggenhet si at systemet er stabilt?<br />

side 7


Vi skal nå se på Nyquistkurven til systemet. Skriv følgende <strong>for</strong> å få den frem:<br />

>> w=logspace(-1,1,100);<br />

>> sys=tf(th0,nh0);<br />

>> nyquist(sys,w);<br />

Vær oppmerksom på at dette kun viser deler av kurven!<br />

c.) Argumenter ut fra Nyquists stabilitetskriterium at systemet er stabilt. TIPS: Se læreboken<br />

kapittel 8.4. Argumenter også ut fra bodeplottet til h 0 (s) at systemet er stabilt.<br />

La oss gjøre systemet ustabilt. Forandre <strong>for</strong>sterkningen K p i regulatorparametrene til en verdi<br />

som gjør at systemet aldri svinger seg inn. Prøv f.eks. K p =1.9. Hvis du vil plotte polenes<br />

beliggenhet kan du f.eks. skrive:<br />

>> plot(roots(nT),’x’),grid<br />

d.) Hva blir de nye polene? Simuler systemet med den første simulinkmodellen og verifiser at<br />

systemet ikke svinger seg inn til en stasjonærverdi.<br />

e.) Tegn opp Nyquistkurven til systemet nå. Argumenter ut fra denne at systemet er ustabilt.<br />

Forklar også ut fra bodeplottet til h 0 (s) at systemet har blitt ustabilt.<br />

Et delmål med øvingen har vært å demonstrere viktigheten og anvendeligheten til sløyfetransferfunksjonen<br />

h 0 (s). Tenk gjennom hvor mange deloppgaver denne har vært i bruk, og husk på<br />

alle disse bruksområdene når eksamen nærmer seg!<br />

side 8

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!