Simulink

Simulink

Avtor: Nina Šetar

Uvod

Simulink (Simulation and Link)je razširitev programskega paketa Matlab. Deluje skupaj z Matlabom, s katerim ponujata modeliranje, simulacijo in analizo dinamičnih sistemov v GUI (graphical user interface - grafični vmesnik) okolju.
Zaženemo ga tako, da v Matlabu napišemo ukaz .
Konstrukcija modela je poenostavljena z operacijami na miški, klikni-in-povleci. Posledica tega je, da ni potrebno podrobno poznavanje Matlab ukazov. Seveda pa Simulink ne nudi vseh možnosti, ki so na razpolago v osnovnem Matlabu. Nekaj primerov uporabe si lahko ogledate v Demo oknu (ukaz Demo vpišete v delovno okno).

Simulink ima bločno knjižnico, ki vsebuje orodja za linearno in nelinearno analizo. Ker je program sestavni del Matlaba, lahko med procesom analize enostavno preklopite nazaj na Matlab. Tako lahko uporabnik v celoti izkoristi funkcije, ki so na voljo v obeh okoljih.

(SimulinkLibrabyBrowser.jpg)
Osnovno okno oz. knjižnica Simulinka

Posamezni poddirektorij odpremo s klikom nanj.

Gradnja modela

Da lahko začnemo s Simulnikom, najprej potrebujemo Matlab.
Nato iz Matlab-ovega ukaznega okna vpišemo:

ali pa le kliknete na Simulinkovo ikono, ki je locirana v orodni vrstici:

(zagonPrograma.png)


Pojavi se brskalnik oziroma knjižnica, ki vsebuje set blokov za gradnjo modela.
Nov model izgradimo tako, da v Matlab ali Simulink oknu:

  1. pritisnemo File->New->Model
  2. pritisnemo kombinacijo tipk CTRL+N.

    Odpre se okno z naslovom 'untitled', za katerega je najbolje, da ga shranimo pod nekim imenom.
    Datoteka se samodejno shrani s končnico *.mdl, kar označuje Simulink model.
    V prazno okno potrebne bloke zložimo tako, da jih v odprtem oknu knjižnice primemo z levo tipko miške, jih držimo in na primernem mestu spustimo.
    Povezave med bloki narišemo z miško.

Filmček

Za seštevanje/odštevanje in prikaz rezultata potrebujemo najmanj:

  1. 2 konstanti
  2. Blok Sum, ki konstanti odšteva/sešteva
  3. Blok Display, ki prikaže rezultat

    V filmčku odspodaj, boste videli kako preprosto je zgraditi model, ki v mojem primeru odšteva 2 konstanti:

Preprost model, Filmček

Da se spoznaš s strukturami v okolju, si primoran raziskati orodja in njihovo vsebino, ter seveda delati z njimi.

Primer:

Kako narisati graf funkcije sinus, kako povečati njegovo amplitudo in frekvenco.

Filmček:

Preprost model, 1. korak

1. korak: Ustvarjanje blokov.

Izmed različnih kategorij v knjižnici, pritisnite znak '+' zraven skupine Simulink, da razširite vsebino in izberite (kliknite na) Sources.

(ustvarjanjeBlokov.png)

Pojavi se skupina blokov. Kliknite na blok Sine Wave in ga povlecite v delovno okno, v katerem rišemo modele.
Sedaj ste svojemu modelu vzpostavili vir.
Model je pametno shraniti sproti, kar pa lahko naredimo na več načinov:

  1. kliknemo na disketi podobno ikono

    (ikona.png)


  2. iz menuja FILE izberemo Save
  3. kombinacija CTRL+S
    Vse datoteke modelov imajo končnico ".mdl", katere tudi Simulink prepozna kot modele (podobno Matlab prepozna datoteke s končnico ".m" kot MDatoteke).

Preprost model, 1.korak, nadaljevanje

Z gradnjo modela nadaljujemo tako, da dodajamo komponente (bloke) v okno modela. Dodali bomo še blok Scope iz knjižnice Sinks.
Opomba: Če ne veste kje se blok nahaja, njegovo ime vtipkate v iskalno okno:

(iskanjeBloka.png)


Blok premikamo tako, da kliknemo nanj in ga povlečemo.
Odstranimo ali izbrišemo pa ga tako, da kliknemo nanj in pritisnemo tipko DELETE ali kombinacijo tipk CTRL+X.

Preprost model, 2. korak

2. korak: Ustvarjanje povezav

Da vzpostavimo zvezo med bloki, prestavimo miško na izhod, ki je predstavljen z znakom ">". Ko smo enkrat že na izhodu, se bo kazalec miške spremenil v križ "+", ki omogoča, da ustvarimo povezave.
Na miški kliknemo levi gumb in povlečemo do želenega bloka, do vhoda, ki je prav tako označen z znakom ">".
Model, ki je že povezan, je prikazan na spodnji sliki:

(primerSineWave.png)


Sinusni signal se generira v Sine Wave bloku, ki je vir, prikazan pa je z blokom Scope, kateri izriše graf.

Preprost model, 3. korak

3. korak: Zagon sistema

Sedaj lahko zaženete simulacijo na različne načine:

  1. izberete podmenu Start
  2. kombinacija tipk CRTL+T
  3. stisnete gumb Play:

    (play.png)

    Dvojni klik na blok Scope prikaže njegov graf:

    (primerSineWaveScope.png)

    Za ogled in urejevanje parametrov 2-krat kliknemo na želen blok.

Preprost model 2, Filmček

Na tem filmčku je prikazan primer generatorja sinus Sine Wave, ki je povezan na blok Scope (za grafični prikaz simulacije) in blok To Workspace (za prenos podatkov v delovni prostor Matlaba). S pomočjo bloka To Workspace bomo lahko graf narisali v delovnem prostoru Matlaba, in sicer z ukazom .

Zbirka Continuous

Zbirka Continuous:

Iz te zbirke opisujem dva bloka, in sicer "Integrator" in "Transfer Function".

(BlokIntegrator.png)
Blok integrator

Blok "Integrator" izračuna podan integral. Najpomembnejši parameter integratorja je začetni pogoj časa. Lahko ga neposredno vpišemo ali uporabimo zunanjega - tega ustvarimo z novim blokom "Clock". V tem primeru dobi blok integrator še en vhod.

(BlokPrenosnaFunkcija.png)
Blok Prenosna funkcija (Transfer Fcn)

V blok "Transfer function" običajno pišemo racionalne funkcije. Nastavimo vrednosti števca in imenovalca. Vpis poteka po padajočih potencah in v obliki vektorja. Red števca mora biti manjši ali enak redu imenovalca.

Zbirka Functions & Tables

Zbirka Functions & Tables:

Iz te zbirke opisuje dva bloka, in sicer "Function" in "Matlab Function".

(BlokFunkcija.png)
Blok Funkcija (Fcn)


V bloku "Function" vpisujemo poljubne matematične izraze. Z u je označen vhod, ki je lahko tudi vektor. V tem primeru se na njegove člene sklicujemo enako kot v Matlabovem delovnem prostoru. Pri zapletenih izrazih bodite pozorni na oklepaje in zaklepaje.

(BlokMatlabFunkcija.png)
Blok Matlab funkcija (Matlab Fcn)


Ta blok omogoča enostavno uporabo Matlab-ovih funkcij kot so cos, sin, exp. Je enostavnejša oblika prejšnejga bloka. Prav tako omogoča uporabo uporabniško definiranih funkcij, in sicer tako, da vpišemo kar ime datoteke, kjer je funkcija definirana. Funkcija mora biti definirana v m-datoteki in imeti določeno obliko. Pogledate si jo lahko z ukazom help function. Ta možnost je zelo uporabna pri bolj zapletenih modelih, saj bi bila shema preobsežna in nepregledna.

Zbirka Math

Zbirka Math:

Iz te zbirke opisujem štiri bloke, in sicer "Gain", "Product", "Math Function" in "Sum".

(BlokOjacanje.png)
Blok Ojačanje (Gain)

Z blokom "Gain" lahko ojačamo drug blok - ga pomnožimo s skalarjem.

(BlokProdukt.png)
Blok Produkt (Product)

Blok "Product" ima nastavljivo število vhodov. Vhodi so lahko ali skalarji ali matrike. Če so vhodi matrike je možno običajno matrično množenje (ali množenje istoležečih členov), če so pa vhodi skalarji, jih enostavno pomnoži.

(BlokMatematicnaFunkcija.png)
Blok Matematična funkcija (Math Function)

Ta blok vsebuje različne funkcije kot so eksponentna funkcija, logaritem, koren, transponiranje,...

(BlokVsota.png)
Blok Vsota (Sum)

Blok "Sum" sešteva ali odšteva poljubna števila. Lahko ima tudi več vhodov. Predznaki se vpisujejo po vrsti, kot jih želimo na bloku. Blok je lahko okrogle ali pravokotne oblike, kar je bolj praktično pri večjem številu vhodov.

Zbirka Sinks

Zbirka Sinks (Ponori):

V tej zbirki opisujem 2 bloka, in sicer "To Workspace" in "XY Scope".

(BlokVDelovniProstor.png)
Blok V delovni prostor (To Workspace)

Blok " To Workplace " prenese podatke v delovni prostor Matlaba. Podatki se shranijo pod spremenljivko s privzetim imenom simout v podanem formatu (struktura, struktura s časom, polje). V delovnem prostoru jih lahko tako nadalje obdelamo ali izrišemo grafe. Če uporabite za ime spremenljivke simout in jo shranite kot strukturo s časom, lahko časovni potek spremenljivke v delovnem prostoru izrišete z ukazom plot(simout.time, simout.signals, values).

(BlokXYOsciloskop.png)
Blok XY osciloskop (XY Scope)

Izriše signal na vhodu bloka v XY obliki - oblika grafa. Če je na X osi kot vhod podan čas, deluje enako kot blok Scope. Primeren je za sprotno opazovanje rezultatov.

Zbirka Sources

Zbirka Sources (Izvori):

V tej zbirki opisujem štiri bloke, in sicer "Digital Clock", "From Workspace", "Signal Generator" in "Step".

(BlokDigitalnaUra.png)
Blok Digitalna ura (Digital clock)


Digitalna ura je potrebna za bloke, ki kot vhod potrebujejo določen čas. Uporabno tudi za spremljanje hitrosti simulacije.

(BlokIzDelovnegaProstora.png)
Blok Iz delovnega prostora (From Workspace)


Prenese vrednosti spremenljivke z imenom simin iz delovnega prostora v Simulink model. Spremenljivka mora biti v delovnem prostoru definirana bodisi kot tabela - matrika (v prvem stolpcu mora biti čas), bodisi kot struktura s časom - 2D prostori.

(BlokSignalniGenerator.png)
Blok Signalni generator (Signal generator)


Generira signale želene amplitude in frekvence, sinusne, pravokotne ali žagaste oblike.

(BlokStopnica.png)
Blok Stopnica (Step)


Blok "Step" ustvari korak v simulaciji, kjer definiramo dve ravni simulacije, npr. s časom in . Če je čas simulacije krajši od koraka, se vrednost izpiše v "Initial value", če je pa večji ali enak času koraka, se vrednost izpiše v "Final value".

Primer, Nariši graf funkcije

Hočemo narisati graf težje funkcije:
,
kjer je premik -a funkcija časa , frekvence , faznim zamikom in amplitudo A.
V tem primeru so vrednosti teh parametrov naslednje:
*
*
*


  1. Iz Simulinkove knjižnice povlečemo naslednje bloke:

    (tabela.png)



  2. Naslednji korak je, da smiselno povežemo te bloke, kakor nam veli enačba:

    (primerEnacba.png)


    Nastavitve parametrov vseh blokov uredimo z dvojnim klikom nanj.
    Ko uredimo celoten model, pritisnemo ikono Run, za prikaz grafa, pa še 2-krat kliknemo na Scope:

    (primerEnacbaScope.png)



    In kako narišemo graf funkcije v Matlabu?

    (primerEnacbaVMatlabu.png)


    Dobimo rezultat:

    (primerEnacbaVMatlabuPlot.png)
0%
0%