Špeciálne jazykové prostriedky počítačov - SJPP

13. Simulink

Základnou podmienkou pre spustenie Simulinku je spustený MATLAB.

Spustenie Simulinku:

Spustením Simulinku sa zobrazí okno (obr. 1) s knižnicami v ľavom stĺpci a zoznamom vybranej knižnice v pravom stĺpci. Stručný popis vybraného prvku je v hornej časti okna.


Obr. 1. Okno prehliadača knižníc (Library Browser - Simulink v. 5.0)

Otvorenie existujúceho modelu Simulinku (existujúcej schémy - štandardná koncovka .mdl):

Otvorenie nového modelu Simulinku:

13.1. Vytvorenie modelu

13.1.1. Presun a kopírovanie blokov

Vlastný model sa vytvára výberom bloku(ov) z knižníc a ich presunom do okna modelu myšou. Okrem presunu z knižnice je možné bloky v okne modelu kopírovať štandardným spôsobom (Copy->Paste) alebo duplikovaním (Ctrl + Drag&Drop alebo PK + Drag&Drop).

13.1.2. Označovanie blokov

Označenie jedného objektu:

Označenie viacerých objektov:

Označenie všetkých objektov:

13.1.3. Pomenovanie blokov

Po presune, resp. kopírovaní blokov je možné zadať parametre týchto blokov. Názov nového bloku sa nastaví automaticky tak, aby bol v rámci okna modelu jednoznačný. Zmena názvu sa vykoná dvojklikom na názov bloku.

13.1.4. Prepojovanie blokov (kreslenie čiar)

Výstup z jedného bloku môže byť pripojený na ľubovoľný počet vstupov iných blokov. Spojenie sa vykoná tak, že kurzor myši sa umiestni na značku vstupu, resp. výstupu bloku a pri stisnutom ľavom tlačítku sa kurzor premiestni na výstup, resp. vstup iného bloku a tlačítko sa pustí (Drag&Drop). V prípade väčšieho počtu pravouhlých zalomení je možné čiaru ukončiť bez ukončujúceho pripojenia a z tohto miesta vytvárať ďalšiu čiaru.

Novinka v Simulinku: prepojenie jedného bloku s druhým môžeme vykonať aj nasledujúcim spôsobom: ĽK na blok, z ktorého vystupuje prepojenie, potom stlačením Ctrl a ĽK na blok, do ktorého vstupuje prepojenie.

Prepojenie je možné rozdeliť pomocou Ctrl + Drag&Drop. Shift + Drag&Drop pridá nový bod.

13.1.5. Ďalšie operácie s blokmi

Bloky je možné upravovať aj prostredníctvom menu Format:

Flip name
Premiestnenie názvu bloku na opačnú stranu
Hide/Show name
Skrytie/Zobrazenie názvu bloku
Flip blok
Zmena orientácie bloku na opačnú stranu (CTRL + I)
Rotate block
Rotácia bloku o 90° v smere hodinových ručičiek
Show/Hide drop shadow
Zobrazenie tienovania bloku
Foreground color
Farba popredia bloku a tienovania
Background color
Farba pozdia bloku
Screen color
Farba pozadia celého okna/modelu

13.1.6. Nastavenie parametrov blokov

Parametre blokov nastavujeme v dialógovom okne, ktoré sa otvorí dvojitým kliknutím (2׼K) na blok.

top

13.2. Spustenie modelu

Po vytvorení modelu sa obyčajne nastavujú základné parametre simulácie.

Parametre sa nastavujú prostredníctvom položky Simulation->Simulation parameters ... (alebo Ctrl + E) z hlavného menu okna modelu. Po otvorení tejto položky sa zobrazí okno (obr. 2.1, 2.2) so záložkami:


Obr. 2.1. Okno parametrov simulácie - Solver/Variable-step


Obr. 2.2. Okno parametrov simulácie - Solver/Fixed-step

13.2.1. Záložka Solver

V tejto záložke je možné:


Obr. 2.3. Priebeh stavu a oblasti

13.2.2. Záložka Workspace I/O

Nastavenia v tejto záložke sa týkajú možnosti napojenia na pracovný priestor MATLABu. Je možné predpísať,


Obr. 3. Okno parametrov simulácie - Workspace I/O

13.2.3. Záložka Diagnostics

Voľby pod záložkou Diagnostics (obr. 4) umožňujú nastaviť, ktoré z 17 kontrolovaných druhov chýb či udalostí majú vyvolať hlásenie a na akej úrovni. Možné úrovne hlásení sú


Obr. 4. Okno parametrov simulácie - Workspace I/O

13.2.4. Záložka Advanced

Pod touto záložkou (obr. 5) sa skrývajú nastavenia vzťahujúce sa k optimalizácii výpočtu.


Obr. 5. Okno parametrov simulácie - Workspace I/O

13.2.5. Záložka Real-Time Workshop

Pod touto záložkou (obr. 5) sa skrývajú nastavenia vzťahujúce sa k aplikáciám v reálnom čase. Táto záložka sa zobrazí iba v prípade, ak je nainštalovaný toolbox Real-Time Workshop.


Obr. 6. Okno parametrov simulácie - Real-Time Workshop

13.2.6. Spustenie simulácie modelu

Spustenie je možné:

Ukončenie je možné:

Prerušenie je možné:

13.2.7. Spustenie simulácie modelu z príkazového riadku

Spustenie simulácie modelu z príkazového riadku umožňuje príkaz/funkcia sim.

Syntax funkcie: sim('model')

Úplný zápis funkcie: [T,X,Y] = sim('model',TIMESPAN,OPTIONS,UT), kde

Ak bude argument (na pravej strane funkcie) nastavený ako prázdna matica ([]), potom bude použité predvolené nastavenie pre daný argument. Iba prvý parameter je nutný ('model').

Príklad 13.1: Súbor vdp.mdl
Model {
  Name                            "vdp"
  Version                         5.0
  SaveDefaultBlockParams          on
  SampleTimeColors                off
  LibraryLinkDisplay              "none"
  WideLines                       off
  ShowLineDimensions              off
  ShowPortDataTypes               off
  
  ...
  
  StartTime                       "0.0"
  StopTime                        "10.0"
  MaxOrder                        5
  MaxStep                         "auto"
  MinStep                         "auto"
  MaxNumMinSteps                  "-1"
  InitialStep                     "auto"
  FixedStep                       "auto"
  RelTol                          "1e-3"
  AbsTol                          "auto"
  OutputOption                    "RefineOutputTimes"
  OutputTimes                     "[]"
  Refine                          "1"
  LoadExternalInput               off

  ...

  OutputSaveName                  "yout"
  SaveFinalState                  off
  FinalStateName                  "xFinal"
  SaveFormat                      "Array"
  Decimation                      "1"
  LimitDataPoints                 off
  MaxDataPoints                   "1000"
  
  ...

}
Príklad 13.2:
% Model vdp.mdl
[t,x,y] = sim('vdp')
[t,x,y] = sim('vdp',[],simset('Decimation',2));
[t,x,y] = sim('vdp',1000,simset('FinalStateName','xState','MaxDataPoints',2000)); 
Príklad 13.3: Zistenie vlastností modelu 'schema.mdl'
>> simget('schema')
ans = 
             AbsTol: 'auto'
              Debug: 'off'
         Decimation: 5
       DstWorkspace: 'current'
     FinalStateName: 'xFinal'
          FixedStep: 'auto'
       InitialState: []
        InitialStep: 'auto'
           MaxOrder: 5
         SaveFormat: 'StructureWithTime'
      MaxDataPoints: 1000
            MaxStep: 'auto'
            MinStep: 'auto'
       OutputPoints: 'all'
    OutputVariables: 'txy'
             Refine: 1
             RelTol: 0.0010
             Solver: 'ode45'
       SrcWorkspace: 'base'
              Trace: ''
          ZeroCross: 'on'
top

13.3. Úlohy

  1. Vytvorte si model s názvom schema.mdl, ktorý obsahuje bloky:
    • Step
    • Transfer Fcn
    • To Workspace
  2. Nastavte prenos systému v tvare 1/(s2+2s+1), skokovú zmenu v čase 0 z hodnoty 0 na hodnotu 1. Názov premennej v bloku To Workspace nastavte na vystup.
  3. Vytvorte m-súbor subor.m, v ktorom postupne simulujte model pre časy 20, 40, 60, 80, 100.
  4. Výsledné priebehy zobrazte v samostatných suboknách v jednom okne
  5. Minimalizujte kód v m-súbore subor.m
top