Dataøving 2 - Institutt for teknisk kybernetikk - NTNU
Dataøving 2 - Institutt for teknisk kybernetikk - NTNU
Dataøving 2 - Institutt for teknisk kybernetikk - NTNU
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