SIMULINK 5

Zawartość

Wahadło – przypomnienie. 1

Używanie bloku MATLAB Function. 1

Efekt końcowy. 1

Do pobrania

 

Wahadło – przypomnienie

W pierwszej części kursu jednym z pierwszych modeli było wahadło matematyczne, gotowy schemat wyglądał tak:

Narzędzie, którego użyliśmy do wizualizacji wyniku, to blok Scope. Oczywiście taki sposób prezentacji danych jest wystarczająco jasny, ale często modelując układ mechaniczny chcielibyśmy zobaczyć końcowy efekt w postaci animacji. W tym celu stworzymy własny blok, który na podstawie przekazywanych wyników symulacji online będzie rysował ruszające się wahadło.

Używanie bloku MATLAB Function

Do rozwiązania naszego problemu posłuży nam blok MATLAB Function. Oprócz tego rozbudujemy trochę nasz model poprzez dodanie kilku dodatkowych elementów. Jednym z nich będzie długość nici L podana explicite. Do tej pory wpisywaliśmy tą wartość na stałe do bloku Gain, teraz będzie nam również potrzebna jako parametr wejściowy do naszej funkcji. Do modelu dodamy również aktualny czas symulacji, aby móc go wyświetlać podczas trwania animacji. Oprócz tytułowego bloku MATLAB Function, potrzebny jest nam jeszcze blok Divide, żeby podzielić nasze równanie w odpowiednim miejscu przez L oraz blok Mux, ponieważ nasza funkcja będzie miała jeden argument wejściowy w postaci trzyelementowego wektora. Nasz chce mat powinien wyglądać jak poniżej:

Podsystem calkowanie składa się z podwójnego całkowania.

Domyślnie blok MATLAB Function ma jedneo wejście i jedno wyjście. Nasza funkcja tylko rysuje i nie zwraca żadnych argumentów, dlatego też w preferencjach powinniśmy ustawić 0 jako wymiar argumentu wyjściowego:

A miejscu nazwy funkcji wpisujemy nazwę m-pliku, który będzie realizował to zadanie. W naszym przypadku jest to stworzona funkcja narysuj. Obowiązuje tu oczywiście taka sama zasada jak w matlabie dotycząca widoczności funkcji, tzn. plik z funkcją powinien znajdować się w tym samym katalogu co model lub też w jednej z lokalizacji dodanych wcześniej do pliku pathdef.m.

Funkcja rysująca wygląda następująco:

function narysuj(u)

% NARYSUJ - funkcja rysująca ruch wahadla matematycznego

% jej argumentem wejsciowym jest trzyelementowy wektor u zawierajacy

% aktualny czas symulacji, wartosc kata odpowiadającą temu czasowi, oraz

% dlugosc nici wahadla

% Autor: Grzegorz Knor

 

t = u(1);

teta = u(2);

l=u(3);

 

y=-l*cos(teta);

x=l*sin(teta);

 

cla

fill([-l/4 -l/4 l/4 l/4],[0.1 0 0 0.1],'r')

hold on

line([0 x],[0 y])

plot(x,y,'r.','MarkerSize',30)

xlim([-l l])

ylim([-l 0.1])

text(-l/4,0.05,['  T = ' num2str(t)])

hold off

axis off

 

drawnow

 

 

Animuje ona ruch wahadła i wyświetla aktualny czas symulacji.

Efekt końcowy

Efektem końcowym jest wykres przedstawiający ruch wahadła tak jak na poniższym rysunku:

wahadlo.gif

Do pobrania

·         Strona w formacie PDF

·         Model

 


Spis wszystkich lekcji.

2010 – Grzegorz Knor