Każdy sposób tworzenia modelu prowadzi do utworzenia S funkcji:
a) jeśli tworzymy model tekstowo (za pomocą edytora tekstowego) w języku MATLAB’a, C lub Fortranie (patrz rozdz. 4.7), od autora zależy jej postać, jednak zawsze pierwsza linia musi mieć postać:
function [sys,x0]=vdpol(t,x, u, flag)
b) lub, jeśli model tworzymy graficznie, w postaci schematu blokowego (za pomocą edytora graficznego - patrz rozdz. 4.3), wówczas dyskowy plik tekstowy powstaje automatycznie, bez udziału użytkownika, po wyko-naniu opcji Save i jego pierwsza linia ma postać:
function [ret,xO,str]=osc(t,x,u,flag);
W wariancie (b) w pliku zapisane są - oprócz wszystkich informacji
0 dynamice obiektu - także graficzna postać schematu blokowego.
S-funkcja może być zagnieżdżana [2, s.3-2].
S-funkcja jest używana do badania własności dynamicznych: przede wszystkim do całkowania (symulacji), linearyzacji (polecenie linmod) i do określania stanu ustalonego (polecenie trim). Używa się jej tak jak innych funkcji MATLAB’a.
Specyfika S-funkcji polega m.inn. na wariantowym wykorzystaniu: użytkownik może deklarować, jaka informacja ma zostać oddana. Zależy to od wartości czwartej zmiennej wejściowej, oznaczonej jako flag.
Można wyróżnić kilka sposobów wywołania S-funkcji: standardowe
1 skrócone.
Wywołanie standardowe ma następującą syntaktykę ,8: odpow=model(t,x,u,flag)
gdzie:
• o cipo w - informacja zwracana przez funkcję model;
• model jest nazwą pliku, czyli nazwą badanego modelu;
• t jest bieżącą (chwilową) wartością zmiennej niezależnej (typowo jest to czas);
• x jest bieżącą (chwilową) wartością wektora zmiennych stanu;
• u jest bieżącą (chwilową) wartością wektora sterowania;
• flag steruje argumentami wyjściowymi funkcji, tzn. użytkownik deklaruje jaka ma być odpowiedź odpow na wywołanie funkcji:
18 wprowadź polecenie: help sfunc i przeczytaj szczegółową informację
ii ig « inlpow:
^■0 ,,wymiary” modelu, (szczegóły patrz rozdział 8),
wektm pochodnych zmiennych stanu dx/dt,
■ wektor dyskretnych zmiennych stanu x(n+l), wektor zmiennych wyjściowych y,
I 'ł natępny czas próbkowania.
■Ili pi/ykład dla zmiennej ilag = 0, polecenie:
» odpow=lin_pn([],[],[],0)
■pi owadzi komunikat:
odpow =
10
0
1
2
0
0
1
W W powyższym przykładzie zmienne t, x i u nie zostały zdefiniowani' o nieistotne dla poszukiwanej informacji.
Mi ugi przykład: po zadeklarowaniu wartości wektora zmiennych stanu-
» x=[l 1]
■niecenie:
» dx=vdp(0,x,[ ] , 1)
■ u sprowadzi informację o wartości wektora pochodnych zmiennych stanu
dx =
1
-1
• Ilu i = 0 oraz dla pustego wektora wielkości sterujących w.
Wywołania skrócone (nie-standardowe) mają zróżnicowaną syntak-łykę: szczegóły patrz rozdział 8.