Harjoitus 5: Simulink Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1
Harjoituksen aiheita Tutustuminen Simulinkiin Differentiaaliyhtälöiden ja differentiaaliyhtälösysteemeiden mallintaminen Simulinkilla Mat-2.2107 Sovelletun matematiikan tietokonetyöt 2
Simulink Simulink on Matlabin graafinen simulointiympäristö. Komentorivisyötteiden ja m-filejen sijaan järjestelmiä kuvataan Simulink-lohkojen (blocks) avulla. Monimutkaisten järjestelmien mallintaminen helppoa Simulinkillä. - Graafisuus helpottaa riippuvuussuhteiden hahmottamista. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 3
Simulinkin käynnistäminen Simulinkin voi käynnistää Matlabista komennolla simulink tai vaihtoehtoisesti valikossa olevan ikonin kautta. Uusi malli saadaan luotua Simulink Library Browser -valikosta: File New Model. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 4
Simulink-kirjastot Simulink-malli kootaan käyttäen hyväksi Simulink Librarysta löytyviä lohkoja. Käynnistettäessä Simulink tulee esiin Library Browser, josta löytyy Simulink-lohkoja jaoteltuina aihealueittain. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 5
Lohkojen lisääminen malliin Lohkoja voidaan lisätä malliin vetämällä ne Library Browser - ikkunasta (drag & drop). Mat-2.2107 Sovelletun matematiikan tietokonetyöt 6
Sources ja Sinks - lohkot Simulink-mallin signaalit lähtevät liikeelle sources-lohkoista. Esim: Huom! Jos käytetään takaisinkytkentää, ulkoista signaalilähdettä ei välttämättä tarvita. Simulointitulokset voidaan ohjata Library Browserin Sinks-lohkoihin tarkastelua varten. Esim: Mat-2.2107 Sovelletun matematiikan tietokonetyöt 7
Simulink-mallin rakentaminen - esimerkki 1 Muodostetaan siniaalto, jonka amplitudi on 5. (Amplitudin olisi myös voinut muuttaa siniaallon parametreista.) Mat-2.2107 Sovelletun matematiikan tietokonetyöt 8
Simulink-mallin rakentaminen - esimerkki 2 Lisätään malliin mukaan häiriösignaali. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 9
Lohkojen käsittelyä Lohko valitaan klikkaamalla sitä hiirellä. Useampi lohko voidaan valita painamalla Shift-nappia tai hiirellä maalaamalla. Tuplaklikkaamalla lohkoa päästään muuttamaan lohkon parametreja. Lohko voidaan monistaa vetämällä hiiren oikealla napilla (tai vasemmalla napilla Ctrl-nappi painettuna). - Monistetuilla lohkoilla on samat parametrien arvot kuin alkuperäisillä lohkoilla. Lohkon suuntaa voi muuttaa valikosta Format Flip Block ja Format Rotate Block. Lohkojen kokoa voidaan muuttaa lohkon kulmista vetämällä. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 10
Lohkojen yhdistäminen Kaksi lohkoa voidaan yhdistää kahdella tavalla: - Valitaan ensin yksi lohko (lohko, josta signaali lähtee) ja klikkaamalla toista lohkoa Ctrl-nappi painettuna. - Vedetään nuoli käsin lohkon reunasta toiseen lohkoon asti. Nuolet lohkojen välillä voidaan jakaa useammaksi haaraksi vetämällä nuolesta hiiren oikea näppäin painettuna. - Sama signaali molemmassa haarassa. Lohkoja ja nuolia voi poistaa delete-näppäimellä. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 11
Simuloinnin asetukset Simuloinnin asetuksia voidaan muuttaa valikosta Simulation Configuration Parameters... Mat-2.2107 Sovelletun matematiikan tietokonetyöt 12
Simuloinnin ajaminen Simulointi voidaan joko ajaa Simulinkista käsin: (Yllä olevassa kuvassa 10.0 on simulointiaika) TAI Matlabin komentoriviltä komennolla sim. >> help sim SIM Simulate a Simulink model SIM( model ) will simulate your Simulink model using all simulation parameter dialog settings including Workspace I/O options. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 13
Vektorimuotoiset signaalit Kaksi signaalia voidaan yhdistää vektorimuotoiseksi signaaliksi mux-lohkolla. Vektorimuotoinen signaali voidaan jakaa takaisin komponentteihinsa demux-lohkolla. Vinkki: Useampi signaali saadaan samaan scopeen muxin avulla. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 14
Itse määritelty funktiolohko Fcn-lohkoon voidaan itse määritellä haluttu funktio. - Funktion sisäänmenona on muuttuja u. - Usean muuttujan funktiolle u on vektori, jonka komponenteille käytetään notaatiota u(1), u(2),... Mat-2.2107 Sovelletun matematiikan tietokonetyöt 15
Differentiaaliyhtälöiden simulointi Simulinkilla voidaan kätevästi simuloida differentiaaliyhtälöitä ja differentiaaliyhtälösysteemeitä. Esim. Olkoon differentiaaliyhtälö: dx dt = 0.9x(t), x(0) = 10 - Integraattorin sisäänmeno: dx dt Muodostetaan differentiaaliyhtälön perusteella. - Integraattorin ulostulo: x Mat-2.2107 Sovelletun matematiikan tietokonetyöt 16
Integrator-lohko Alkuarvo x(0) = 10 asetetaan integrator-lohkon parametrejä muuttamalla (tuplaklikkaamalla integrator-lohkoa). Mat-2.2107 Sovelletun matematiikan tietokonetyöt 17
Diffenrentiaaliyhtälösysteemin simulointi Olkoon differentiaaliyhtälösysteemi: dx dt = 0.9x 0.2y, dy dt = 0.6y 0.1x Mat-2.2107 Sovelletun matematiikan tietokonetyöt 18
Sisäänmeno, ulostulo ja häiriöt Mallin muuttujia: - Ulostulot (output): y(t) = [y 1 (t),...,y p (t)] T - Sisäänmenot (input, ohjaus): u(t) = [u 1 (t),...,u m (t)] T, voidaan valita. - Häiriöt: w(t) = [w 1 (t),...,w r (t)] T, ei voida valita. Sisäänmenoja ja häiriöitä kutsutaan ulkoisiksi muuttujiksi, muita mallin muuttujia sisäisiksi. Dynaamisessa järjestelmässä y(t) riippuu paitsi u(t):stä ja w(t):sta myös kaikista u(s), s < t. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 19
Input-output -kuvaus ja tilayhtälömalli Yleinen jatkuvan ajan input-output-kuvaus on muotoa g(y (n) (t), y (n 1) (t),...,y(t), u (n) (t), u (n 1) (t),...,u(t)) = 0 missä (n) viittaa n:nteen derivaattaan ja g on jokin epälineaarinen funktio (SISO). Muunnetaan 1. kertaluvun differentiaaliyhtälösysteemiksi asettamalla x i (t) = y (i) (t), i = 1,...,n Saadaan tilayhtälömalli ẋ(t) = f(x(t), u(t)) y(t) = h(x(t), u(t)) jossa dim x(t) = n, dim u(t) = m, dim y(t) = p x(t) on mallin tila, n on mallin kertaluku. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 20
Tila Aiemmin todettiin, että systeemin ulostuloon y(t) vaikuttavat u(s) ja w(s), s < t - Olisi kovin kömpelöä tallentaa u(s) ja w(s) kokonaisuudessaan. Systeemin (tai mallin) tila x(t) on sellainen informaatio, jonka tunteminen yhdessä u(t):n ja w(t):n kanssa mahdollistaa systeemin ulostulon y(τ) laskemisen jollekin τ > t. Käytännössä tilalla on tärkeä merkitys esim. simuloinnissa: se on suoraan kullakin aika-askeleella tallennettava informaatio. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 21
Joitakin ongelmatilanteita Simulointitulokset eivät ole oikean kaltaisia: Tarkista Integrator-lohkojen alkuarvot (initial condition). Simulointitulokset eivät näy XY Graphissa: Akselit on asetettava käsin tuplaklikkaamalla XY Graphia. Plottaaminen Matlabin puolella ei onnistu To Workspace -lohkon kanssa: Vaihda To Workspace -lohkon tallennusformaatiksi Array (EI Structure). Simulointitulokset ovat karkeita: Muuta Solverin max step size pienempään arvoon kuin auto, esim. 0.01. (Simulation Configuration parameters) Mat-2.2107 Sovelletun matematiikan tietokonetyöt 22
Kysymyksiä 1. Miten differentiaaliyhtälösysteemin tasapainotiloja haetaan? 2. Mitä tarkoitetaan termillä takaisinkytkentä? 3. Miten dynaaminen järjestelmä eroaa staattisesta järjestelmästä? 4. Mikä on oleellinen ero systeemin sisäänmenojen ja häiriöiden välillä? 5. Miten tilayhtälömalli muodostetaan kun systeemiä kuvaava differentiaaliyhtälö tunnetaan? 6. Mitä tarkoitetaan systeemiteoriassa käsitteellä tila? Mat-2.2107 Sovelletun matematiikan tietokonetyöt 23