. Metody definicji odeli i syulacji. Rozwiązywanie równania różniczkowego odel graficzny Modele graficzne to aplikacje równania a + + c u ( u c) a Scheat z lokie całkujący i ieżącą prezentacją wykresów w oddzielnych oknach Na scheacie zastosowano loki Integrator oraz kilka loków Scope. (0) 0 u0 u0+du (0) 0 Rys. -. Wykresy w oddzielnych oknach (plik wzor.dl ) Na scheacie wykorzystano następujące zienne: a ; 8; c ; u0; du; %skok na wejściu 00; 00; %war.początkowe %oliczenie dowolnego stanu ustalonego u0; 0u0/c; 00; Na pasku tytułowy okna związanego z lokie Scope pojawia się etykieta loku (podpis przy loku). Doyślną etykietę ożna zienić (np. na nazwę/opis ziennej) i wykorzystać do identyfikacji wyświetlanych wykresów. Pewne właściwości okna wykresów ożna ustawić wyierając ikonę Properities (która otwiera okno właściwości loku). Prezentacja danych w loku Scope odywa się tylko wtedy, gdy okno wykresów zostało otwarte przez operatora. Jeśli ilość wyświetlanych wartości przekroczy pojeność ufora loku, to zawartość ufora zostanie przesunięta (widoczne ędą ostatnie wartości). Roziar ufora ożna ustawić w oknie właściwości loku (na zakładce Data history należy wyłączyć ograniczenie lu ustawić większą wartość). Scheat z lokie całkujący i ieżącą prezentacją wykresów we wspólny oknie Blok Scope a doyślnie jedno wejście ale ożna na nie skierować wektor sygnałów, tworzony za poocą loku Mu (Rys. -). Wykresy są rysowane w jedny układzie współrzędnych, różnyi kolorai (kolejno: y,, c, r, g, ) kierowanie wektora na oscyloskop Rys. -. Wykresy w jedny oknie ( plik wzor.dl ) Ay zienić ilość wejść loku Scope (Rys. -3) należy w oknie właściwości loku na zakładce General wpisać ilość osi (np. 3) każde wejście ędzie wyświetlane na oddzielny wykresie (analogicznie jak funkcja suplot). yellow, agenta, cyan, red, green, lue
Rys. -3. Oddzielne wykresy w jedny oknie ( plik wzor.dl ) 3 Scheat z lokie całkujący, ieżącą prezentacją wykresów i rejestracją danych Przeieg syulacji ożna zarejestrować a następnie odtworzyć go za poocą funkcji plot. Do rejestracji ożna wykorzystać lok To workspace (Rys. -4), w który należy zdefiniować nazwę ziennej i jej forat, np. struktura lu wektor. Stosowanie najprostszego foratu wektora danych (Matri) wyaga ay zarejestrować również wektor czasu na scheacie zastosowano w ty celu źródło Clock. Variale nae Save forat Matri plot(t, ); Variale nae t Save forat Matri Rys. -4. Bieżąca prezentacja wykresu i rejestracja danych (plik wzorc.dl ) Na scheacie zastosowano zarówno ieżące prezentację wyników jak i ich rejestrację. Rozwiązanie zawiera pewien nadiar, ponieważ lok Scope także uożliwia rejestrację danych jeśli w oknie właściwości loku na zakładce Data history zostanie włączona opcja Save data to workspace ), podana nazwa i forat ziennej.
3. Przykład rozwiązywania równania różniczkowego nieliniowego 0 ) ( + w w ) ( Wariant Wariant.3 Przykład rozwiązywania układów równań różniczkowych + + 0 0 ) ( ) (
.4 Rozwiązywanie równania różniczkowego odel graficzny i skrypt Model graficzny wzor.dl + skrypt dla rozwiązania + + c u eleent opcjonalny tytul 'Wpływ paraetru '; odel 'wzor'; opcje siget(odel); %opcjonalne (do ziany paraetrów) opcje siset('mastep',, 'RelTol', e-6); %opcjonalne (do ziany paraetrów) czas 000; %czas trwania syulacji (zaiast czasu z odelu) kolor 'rgcy'; c ; ta_ [ 3]; ia size(ta_, ); u0 0; du; 0 u0/c; %red,green,lue,cyan,agenta,yellows %talica paraetru %ilość paraetrów (do pętli) %paraetru skoku (w loku Step) %war.początkowy (0) w końcowy loku całkujący figfigure, hold on, grid on, ylael(strcat(tytul, ' - ')) figfigure, hold on, grid on, ylael(strcat(tytul, ' - ')) for i:ia for kolor(i); % forat linii ta_(i); % kolejna wartość paraetru [t] si(odel, czas, opcje); % [t] zaiast loku czas t figure(fig), plot(t,, for); % dane z loków To Workspace figure(fig), plot(t,, for); % jw end Ziana skali, np. połowa skali pionowej: figure(fig); osie ais; osie(4)osie(4)/ ais(osie); Wykres: całego przeiegu ziennej : plot(t,, ' r') ½ przeiegu: ile round(size(t)/), plot(t(:ile), (:ile), '') wartości stałej: plot(t,, '') wyrażenia: plot(t, +.*+c.*) 4
.5 Grupowanie i paraetryzowanie (lokowanie, askowanie) Model graficzny wzor.dl po wykonaniu operacji Edit/Create Susyste Podpisane porty In/Out i Susyste Paraetryzowanie ( Edit/Mask Susyste ) loku Susyste Układ II rzedu zienna wewnętrzna loku Susyste (paraetr) wartość paraetru (licza, zienna Matlaa, wyrażenie) W wer. 5.3: operacja Edit/Edit Mask ; zakładki w oknie edytora: Icon, Initialization (zawiera paraetry),docuentation 5
.6 Równania stanu i transitancje Modele graficzne: - syulacja od zerowego stanu ustalonego - syulacja od dowolnego stanu ustalonego Badania syulacjne w przykadach (Siulink) Realizacja zadania w skrypcie %odel: 'a*+*u %Badanie: odpowiedź na skok du a-; ; du; %Od stanu u00 (->00) skok o %Równania stanu: Aa, B, C, D0 A[a]; B[]; C[]; D0; ModelSSss(A,B,C,D); %transitancja: / (s-a) licz[]; ian[ -a]; ModelTFtf(licz, ian); step(modelss, 'r', ModelTF, 'g', 0) %skok od dowolnego stanu ustalonego: 0a*0+*u0 u03; %--------- 0-*u0/a; 6