ENSO IKONEN PYOSYS 1 SÄÄTÖJÄRJESTELMIEN SUUNNITTELU Eno Ikonen profeori äätö- ja yteemitekniikka http://cc.oulu.fi/~iko Oulun yliopito Teknillinen tiedekunta Älykkäät koneet ja järjetelmät - yteemitekniikka http://www.oulu.fi/pyoy/ Jan 2019
ENSO IKONEN PYOSYS 2 Säätöjärjetelmien uunnittelu SäSu 2019 Kurin www-ivut: http://cc.oulu.fi/~iko/sasu.htm http://cc.oulu.fi/~iko/sasu.htm IMS/yteemitekniikka: Eno Ikonen, prof. (Jukka Hiltunen, lehtori) aikataulu ti 10-12 (PR105) ke 10-12 (PR104/105) to 12-14 (PR104) luentomateriaali Ikonen (2013) Säätöjärjetelmien uunnittelu, n. 100. pdf, alaana äu harjoituten materiaali täydentyy harjoitukia eitiedot Säätöjärjetelmien analyyi (477621A) differentiaaliyhtälöt integraalimuunnoket; Matlab; proeidynamiikan mallinnu; kurin iällöt: lti-peruteet (1-3) PID-äätö (4-5) taajuutaon uunnittelu (7-9) dikreetit järjetelmät ja identifiointi (6, 10) Matlab omalle läppärille! tentti välikokein 7.2.2019 & 28.2.2019 (2x2h) tai loppukokeena Akvaarioa (3h)
ENSO IKONEN PYOSYS 3 Säätöjärjetelmien uunnittelu Kaikille proeitekniikan opikelijoille (3.vk) klaien äätöteorian peruelementit automaatiotekniikan o. automaatio mittau & väylät äätö & ohjau automaatiojärjetelmät optimointi & euranta kunnoapito, jne äätötekniikka äädön ja en uunnittelun peruteet & menetelmät proce control monitorointi, äätö, optimointi menetelmät & laitteet proeit vaativat automaatiojärjetelmän toimiakeen turvalliuu tehokkuu joutavuu teolliuu/toimialariippumaton ellu&paperi, voimalaito, veilaito, kaivo, tilau, terä, metalli,... kone- ja tuotantoautomaatio, robotiikka, dynaamiten järjetelmien hallinnan menetelmät ovat geneeriiä
ENSO IKONEN PYOSYS 4 Miki ihmeeä?..proei-ininöörin kannattaa olla kiinnotunut yteemien dynamiikata? Ajatellaan maataetta (eim.) V dc dt t Wt Qct kvct vact Wt Kct 1 C K W V 1 jolla on 1.krtluvun dynamiikka: Dynamiikan käittely ei ole ongelma. Mutta! jo näitä oayteemejä on arjaa ja/tai rinnan (eim., äiliöitä, järviä,..): korkean kertaluvun järjetelmät! Mutta! jo oayteemien välillä on kuljetuta/kulkeutumita (eim., putkito, joki,...): viiveet! Mutta! jo haluat ohjata yteemiä muuttamalla en iäänmenoja (eim. venttiili, yläjuokun pato,...): takaiinkytkentä! Nämä, (ja moni muu...) tuottavat komplekita dynamiiikkaa, jonka hallinta ei enää ole triviaalia, vaan vaatii omat työkaluna. K
ENSO IKONEN PYOSYS 5 Luku 1: Oppimitavoitteet Opikelija... käittää Laplace-muunnoken integraalimuunnokena, ja näkee en merkityken uunnittelua helpottavana työkaluna. kykenee itenäieti Laplace-muuntamaan ode-eityken, ratkaiemaan en Laplace-taoa, ja palaamaan takaiin aikataoon oamurtoja käyttäen. ymmärtää iirtofunktion käitteen (konvoluutiointegraalina Laplace-taoa), ja oaa itenäieti muodotaa yhtälöitä lohkokaaviodiagrammita. Opikelija oaa määritellä iirtofunktioita Matlabiin (ltiobjektit), ja tarkitaa iirtofunktioiden perulakutoimituten tulokia Matlabilla.
ENSO IKONEN PYOSYS 6 1 Säätöuunnittelun työkalut 1.2 LTI-järjetelmät & Laplace-muunno (45min+harj) 1.3 Siirtofunktiot & Lohkokaaviot (45min+harj) 1.4 Lakuharjoitukia + Matlabin lti-objektit (2x45min harjoituket) 1.2 LTI-järjetelmät ode Laplace-muunno Laplacekäänteimuunno Oamurtokehitelmät Z-muunno
ENSO IKONEN PYOSYS 7 1.2.1 ODE Ordinary differential equation Funktion f(x) derivaatta piteeä x=c on raja-arvo: ODE iältää funktioita vain yhdetä riippumattomata muuttujata erotukena p.d.e. tä Yleenä f on ajan funktio, f(t), f(kh) dynamiikka: yteemin iäänmenon muutoken eteneminen ajan funktiona (yteemin vate) Monelaita merkintätapaa df dx f ' c df dt lim h0 n d y a0 n dt m d u b0 m dt f x h f x h 2 d f dt xc c t tc, f '' c t xc 2 t f t n c y n d f n dt t b m u t t tc
ENSO IKONEN PYOSYS 8 1.2.2 Laplace-muunno integraalimuunno Ode n derivaatta voidaan korvata komplekimuuttujalla => algebrallinen laue Tulkinta operaattorina L t f t f t e dt F t 0 0 e -t 3 2.5 2 1.5 =1 =0 =0.1 =1 =-0.1 d dt 1 0.5 0 0 1 2 3 4 5 6 7 8 9 10 t Yhtälö, funktio tai laueke on algebrallinen, jo e on eitetty pelkkien numeroiden, muuttujien ja aritmeettiten operaattoreiden avulla: yhteenlaku, vähennylaku, kertolaku ja jakolaku.
ENSO IKONEN PYOSYS 9 1.2.2 Laplace-muunno integraalimuunno Ode n derivaatta voidaan korvata komplekimuuttujalla => algebrallinen laue Tulkinta operaattorina 0 f L fg f ' f ' g L fg' t f t f t e dt F t t t e f ' t e dt f t 0 t 0 b a 0 e f 0e Lf ' t Lf t f ' t Lf t f 0 fg 0 b a 0 f ' g e b a t fg' dt =0
ENSO IKONEN PYOSYS 10 M X X 1.2.2 Laplace-muunno integraalimuunno Ode n derivaatta voidaan korvata komplekimuuttujalla => algebrallinen laue Tulkinta operaattorina M d dt 2 2 x 2 L t K t K xt f t K X K X F M 2 d d 1 K dx dt d K Example : F t f t f t e dt F 0
ENSO IKONEN PYOSYS 11 1.2.2 Laplace-muunno Laplace-muunnotaulukot Ode n derivaatta voidaan korvata komplekimuuttujalla => algebrallinen laue Tulkinta operaattorina L t f t f t e dt F 0 d dt
ENSO IKONEN PYOSYS 12 1.2.2 Laplace-muunno Laplace-muunnotaulukot: ykikköakel L u t f t t0 t e t dt t u e dt t0 t 0 e t dt 1 1 / 0 e t 1 0 1 e e 0 1 1/
ENSO IKONEN PYOSYS 13 1.2.4 Laplace-muunno Laplace-muunnotaulukot ja käänteimuunno Ode n derivaatta voidaan korvata komplekimuuttujalla => algebrallinen laue Tulkinta operaattorina L t f t f t e dt F 0 Lineaarinen operattori L{af(t)+bg(t)}=aF()+bG() http://en.wikipedia.org/wiki/laplace_tranform Voidaan käyttää ode n ratkaiemieen Laplace käänteimuunnoken kautta taulukot funktiopareille:f(t) v.f()
Eimerkki Laplace-käänteimuunno ENSO IKONEN PYOSYS 14
Eimerkki Laplace-käänteimuunno ENSO IKONEN PYOSYS 15
Eimerkki jatkuu Laplace-käänteimuunno & oamurtokehitelmät ENSO IKONEN PYOSYS 16
Eimerkki jatkuu Laplace-käänteimuunno & oamurtokehitelmät ENSO IKONEN PYOSYS 17
ENSO IKONEN PYOSYS 18 Harjoitu Laplace-muunno ja käänteimuunno Järjetelmää kuvaa: a) Laplace-muunna ode b) ratkaie c out Mikä on järjetelmän vate kun iäänmenoon c in tehdään kolmen ykikön uuruinen akel hetkellä t=0? c) tee Laplacekäänteimuunno Mikä on järjetelmän aikavakio?
Harjoitu Laplace-muunno ja käänteimuunno ENSO IKONEN PYOSYS 19
Harjoitu Laplace-muunno ja käänteimuunno ENSO IKONEN PYOSYS 20
ENSO IKONEN PYOSYS 21 Laplace-käänteimuunno L{f(t)g(t)} L{f(t)}L{g(t)} Laplace-muunno on integraalimuunno, jolle L{f(t)g(t)} L{f(t)}L{g(t)} I{g}+I{f}=8 I{g+f}=8 I{g(t})=2 L -1 {F()G()} L -1 {F()}L -1 {G()} I{f(t)}=6 mutta lineaariuuden anioita L -1 {F()+G()} = L -1 {F()}+L -1 {G()} 2x6 6 f(t)g(t) I{f(t)g(t)}=6
ENSO IKONEN PYOSYS 22 Lakueimerkkejä Mikä on vakioignaalin f(t)=c Laplacemuunno? Mikä on ekponentiaalieti vaimenevan ignaalin f(t)=c*exp(-at) Laplacemuunno? Mikä on ignaalin - 2 -+5 F() = -------------- ( 2 +3+2) loppuarvo? Muunna aikataoon 1 Y() = ----------? ( 2 +1)
ENSO IKONEN PYOSYS 23 1.3 Lohkokaaviot Siirtofunktiot konvoluutiointegraali Lohkokaavioalgebra arjaa rinnan takaiinkytkentä
ENSO IKONEN PYOSYS 24 1.3.1 Siirtofunktiot LTI-dynamiikka (linear time-invariant) Perutyökalu LTIyteemien eittämieen ulotulon y uhde iäänmenoon u: G U Y U b b Y a U b U b Y Y a t u b t dt d b t y t y dt d a m m n m m n m m m n n 0 0 0 0 0 0 1 1 0 0 n m m a b b U Y G
ENSO IKONEN PYOSYS 25 1.3.1 Siirtofunktiot enimmäien ja toien kertaluvun proeit Enimmäien kertaluvun viivellinen proei vahvitu aikavakio viive Toien kertaluvun viivellinen proei kaki aikavakiota aikavakiot voivat olla komplekiia (reaali+imaginäärioat) Y U k e 1 1Y ke U d dt Y U Y R y t yt kut k 1 1 Eimerkki : 2 M 1 2 1 b k e
ENSO IKONEN PYOSYS 26 1.3.1 Siirtofunktiot navat, nollat ja vahvitu (ja viive) Siirtofunktio voidaan kirjoittaa ooittajan ja nimittäjän polynomien juurien avulla num()=0 => nollat den()=0 => navat Napojen p i ijainti määrää yteemin dynaamien käyttäytymien vahvitu k on yteemin (vahvitu)kerroin G k num den m b0 a z 1 z2 zm p p p 1 2 0 n b 1 n m
ENSO IKONEN PYOSYS 27 1.3.1 Konvoluutiointegraali Y() = G()U() Käitellään dikreettiä vatinetta Kirjoitetaan ennuteet p=0,1,2,... y p p gp ku k y y y k 0 0 g0u 0 1 g1 u 0 g0u 1 2 g2u 0 g1 u 1 g0u 2 T. painofunktio g(x) kertoo kuinka x akelta itten tapahtunut iäänmeno vaikuttaa proein tämänhetkieen ulotuloon y(x). - Jo u(0)=1 ja muutoin u=0, niin g on järjetelmän impulivate: y(0)=g(0), y(1)=g(1), y(2)=g(2),... Toditaminen ivuutetaan, kt. luentomateriaali
ENSO IKONEN PYOSYS 28 1.3.2-4 Lohkokaaviot monimutkaiten yteemien eittäminen Eittävät ignaaleja joita muutetaan (iirtofunktioiden avulla) toiiki ignaaleiki lohkot = iirtofunktiot, ykinkertaiet algebralliet operaatiot Y arjaa : U Y rinnan : U Y W takaiin - : kytkentä N i1 N i1 F i F i KG KG 1
ENSO IKONEN PYOSYS 29 Harjoitu (5min) Negatiivinen ykikkötakaiinkytkentä Ooita, että ykikkötakaiinkytketylle järjetelmälle on voimaa: feedback : Y erie : U Y parallel : U Y W N F i i1 N F i i1 KG 1 KG. Y KG E E W Y Y (1 KG) Y Y W KG( W Y ) KGW KG 1 KG Y GU U KE E W Y
ENSO IKONEN PYOSYS 30 Harjoitu (10min) tankkiyteemin lohkokaavio Laplace-muunnetaan: AH() H ( ) Q 1 1 A in Q () Q in out () () kh() Q in 1 + kh A k 1 H
ENSO IKONEN PYOSYS 31 Harjoitu (10min) Johda aetuarvon akelvate aikataoa, kun P-äädöllä takaiinkytkettyä proeia kuvaa k G() = --------. T + 1 Ohje: muodota uljetun piirin iirtofunktio muodota L-muunnettu akelvateignaali tee oamurtohajotelma koota aikataon vate hajotelman Laplacekäänteimuunnokita. (luku 1.2.5)
ENSO IKONEN PYOSYS 32 Harjoitu (N2.25) (10 min) Ooita että kuvan lohkokaaviot kuvaavat identtitä toimintaa. Ohje: Johda kullekin lohkokaaviolle iirtofunktio y/y r
ENSO IKONEN PYOSYS 33 Oppimitavoitteet Opikelija... käittää Laplace-muunnoken integraalimuunnokena, ja näkee en merkityken uunnittelua helpottavana työkaluna. kykenee itenäieti Laplace-muuntamaan ode-eityken, ratkaiemaan en Laplace-taoa, ja palaamaan takaiin aikataoon oamurtoja käyttäen. ymmärtää iirtofunktion käitteen konvoluutiointegraalina Laplace-taoa, ja oaa itenäieti muodotaa yhtälöitä lohkokaaviodiagrammita. Opikelija oaa määritellä iirtofunktioita Matlabiin (ltiobjektit), ja tarkitaa iirtofunktioiden perulakutoimitukien tulokia Matlabilla.
ENSO IKONEN PYOSYS 34 Matlab äätötekniikan työkaluna Matlabin peruteet (45min) Matlab-ohjelman käynnitäminen Äärimmäien lyhyt intro Harjoitu: Säädetyn proein imulointi Mitä liäinfoa / yhden ivun komentokokoelma Matlabin Control Sytem Toolbox / ltiobjektit (45min)
Matlab ohjelmointityökaluna Matlab matriiialgebra (MATrix LABoratory) geneerinen ohjelmointiympäritö paljon eri alojen kirjatoja (toolbox) Matlabin käynnity Komentoikkuna >> käyttötapoja: kirjoittamalla komennot komentoikkunaan kirjoittamalla komennot kriptiin Simulink, Toolboxien käyttöliittymät, Muuttujat ja peruoperaatiot >>aa=55 % kalaari >>bb=[1 2;3 4] % matriii >>cc=[5 6] % vektori ja tranpooi >>dd=bb*cc % matriiialgebra >>bb(2,1) % elementin luku >>bb(2,1)=9 % ijoitu Hakemito ja kripti >>mkdir omahakemito % hakemiton luominen >>cd omahakemito % hakemitoon iirtyminen Skripti, luuppi ja piirtäminen >>edit omaimu % omaimu.m for i=1:10, % i aa arvot 1,2,3,,10 i % lakenta luupia.. end plot(bb) % käyrän piirtäminen xlabel( aika ) % akelien tektit ylabel( bb ) >>omaimu % kriptin uorittaminen
Demo: P-äädetun piirin imulointi (ilman en kummempia työkaluja, onnituu kaikilla ohjelmointikielillä amaan tapaan..) % P-äädetyn piirin imulointikripti >> omaimu k_p=5, tau=10, h=3 % vakioita kt. eimerkki a=exp(-h/tau) % dikretointi luvua 1.4.1 b=(1-exp(-h/tau))*k_p K_P = tau/(k_p*h) % äätimen vahvitu % aetuarvoekveni: w = [0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1-2 -2-2 -2-2 -2-2 -2-2] y(1) = 0 % alkuarvo for k=1:length(w) e = w(k)-y(k) % erouure u(k) = K_P*e % äädin y(k+1) = a*y(k)+b*u(k) % proei end plot(y) % piirto G()= 5 / (10+1) P-äätö
Getting tarted with Matlab Matlab i an interactive program for numerical computation and data viualization. Univ Oulu licence allow the tudent alo to intall the program on a home computer. Software Ditribution Service: http://www.oulu.fi/ict/node/15 835 http://e.mathwork.com/help /matlab/getting-tarted-withmatlab.html Dektop Baic Matrice and Array Array Indexing Calling Function Programming and Script http://e.mathwork.com/help /matlab/function.html
Matlab in one page Dektop baic >> workpace command window = a = 1, b=2, c=a+b () d= co(a) ; c=a*b; clc, clear cd, path cd Matrice and array [] ; A=[1 2 3;4 5 6;7 8 9] zero, one, eye create matrice uing function A+1, in(a), randn matrix operation A inv inv(a)*a. A.*A ^ A^3, A.^3 [A A] B=[A A] i 3+2i Array indexing A(r,c) A(2,3) A(i) A(8) : A(1:2,3), A(:,3), b=[1:2:10] end A(2:end,3) length, ize ize(a) Workpace variable who ave ave tmp load load tmp Text and char mytext = Hello, world printf T=36.5; mytext = printf( Temp = %gc,t) Calling function () [oarg1,oarg2] = fun(iarg1,iarg2) help help max Plotting plot x=[0:pi/100:2*pi]; y=in(x); plot(x,y) axi axi([-1 2*pi+1-2 2]) xlabel, ylabel xlabel( x ), ylabel( in(x) ) title title( inifunktio ) tyle plot(x,y, r: ) ubplot ubplot(211); plot(x,y); ubplot(212); plot(xy,co(x)); tair tair(x,y) Programming edit edit tmpfun - ave >> tmpfun execute cript/function for - end for k=1:10, k, end if eleif ele end Function & cript mfile function b = myfunction(a) b = 2*a end Stored a a myfunction.m -file >> myfunction(pi) anonymou qr = @(x) x.^2; A function handle >> qr(5) integral(qr,0,1) Data type double default numeric type char c = Hello, world tring c = [ Hello, world, Hello, moon ] truct.field.a = 1.b = { A, B, C } cell C = {1,2,3, hello,rand(3,2)}
ENSO IKONEN PYOSYS 39 Matlabin CST/lti-objekteita iirtofunktion muodotaminen: >> G = tf(num,den) num ja den ovat polynomien kertoimet Eim. >> num=2, den=[5 1] >> G = tf(num,den) iirtofunktion ominaiuukia: >> dcgain(g), pole(g) >> get(g) >> minreal(g) imulointi: >> impule(g) >> tep(g) >> lim(g,u,t) polynomioperaatiota: - polynomin juuret (eli nollakohdat) >> root(den) - kahden polynomin tulo >> conv(den1,den2) Eim. (5+1)(2+1) = 10 2 +7+1 : >> den1= [5 1], den2=[2 1] >> den3 = conv(den1,den2) >> root(den3) eli (+1/2)(+1/5)=0 (2+1)(5+1)=0. - oamurtohajotelma: >> [R,P,K]=reidue(num,den) dikretointi: >> Gd = c2d(g,h)
ENSO IKONEN PYOSYS 40 Matlab CST harj./demo Määritä/yötä Matlabiin proei G, kun G()=2/(10+1)? >> G = tf(2,[10 1]) Mikä on P-äädöllä K P =1 uljetun piirin iirtofunktio T? >> KP=1; T = KP*G/(1+KP*G) Simuloi uljettua piiriä? >> tep(t); hg Vaihda äätimen parametriarvoki K P =100 ja imuloi? >> K=100; T = K*G/(1+K*G) >> tep(t); hg T:n navat/nollat, ivennä T? >> [num,den]=tfdata(t,'v') >> root(num), root(den), >> minreal(t) Dikretoi G? >> h = 0.1 >> Gd = c2d(g,h) Oamurtokehitelmä? >> help reidue >> [R,P,K]=reidue(num,den) Totea imuloimalla, että hajoitelma on oikein. >> tf1=tf(r(1),[1 -P(1)]) >> tf2=tf(r(2),[1 -P(2)]) >> tep(tf1+tf2,t)
ENSO IKONEN PYOSYS 41 Suljetun piirin imulointi Matlabin CST:llä (10min) (harjoitu) Simuloi P-äädettyä järjetelmää (akelvate aetuarvoa) Matlabin CST työkaluilla: Säädettävä proei: G() = 5/(10+1) = k p /(tau*+1) Sämpläyväli h=3 P-äätö, KP=tau/(k p *h) Piirrä proein ulotulo Ohje: ratkaie iirtofunktio Y/W ja imuloi limkomennolla Bonutehtävä: Miltä ohjauignaali näyttää? (Ratkaie U/W ja imuloi.) >> G = tf(5,[10 1]); >> h=3, Gd = c2d(g,h); >> T = KP*Gd/(1+KP*Gd); >> w = [zero(10,1);one(10,1);-2*one(10,1)]; >> lim(t,w); >> Z = KP/(1+KP*Gd) % Z=U/W >> lim(z,w)