modsim symulacja

background image

Metody symulacyjne

Metody symulacyjne

Zaawansowane metody symulacji dyskretnej

background image

Elementy mechanizmu

Elementy mechanizmu

symulacyjnego w MODSIM II

symulacyjnego w MODSIM II





Kluczowymi elementami mechanizmu symulacji są:

Kluczowymi elementami mechanizmu symulacji są:





procedura upływu czasu

procedura upływu czasu





Pending

Pending List

List

czas symulacyjny

czas symulacyjny





czas symulacyjny

czas symulacyjny





metody i instrukcje umożliwiające upływ czasu

metody i instrukcje umożliwiające upływ czasu

symulacyjnego

symulacyjnego

background image

Procedura upływu czasu

Procedura upływu czasu

Start symulacji

Wykonaj metodę

planowanej

czynności

Czy koniec?

TAK

Wybierz obiekt

z najmniejszym

czasem planowanej

czynności tp

Ustaw ’ts’ na ’tp’

Zidentyfikuj

metodę

dla planowanej

czynności

Usuń czynność

z listy planowanych

aktywności obiektu

NIE

TAK

background image

Pending

Pending List

List





rozszerzona lista planowanych czynności

rozszerzona lista planowanych czynności





zestawiona z obiektów uporządkowanych rosnąco wg

zestawiona z obiektów uporządkowanych rosnąco wg

czasu najbliższej planowanej czynności

czasu najbliższej planowanej czynności





z każdym obiektem skojarzona kolejka uporządkowanych

z każdym obiektem skojarzona kolejka uporządkowanych





z każdym obiektem skojarzona kolejka uporządkowanych

z każdym obiektem skojarzona kolejka uporządkowanych

czynności (tzw. lista aktywności)

czynności (tzw. lista aktywności)

background image

Pending

Pending List

List





reorganizowana każdorazowo:

reorganizowana każdorazowo:





po zaplanowaniu

po zaplanowaniu nowej

nowej czynności

czynności





po rozpoczęciu/wznowieniu

po rozpoczęciu/wznowieniu wykonania dowolnej

wykonania dowolnej

czynności

czynności

czynności

czynności





po wstrzymaniu wykonywania

po wstrzymaniu wykonywania dowolnej czynności

dowolnej czynności





po zakończeniu wykonywania dowolnej czynności

po zakończeniu wykonywania dowolnej czynności





po przerwaniu dowolnej czynności

po przerwaniu dowolnej czynności





na

na zakończenie

zakończenie symulacji

symulacji

background image

Pending List

Ob. A

Ob. D

Ob. C

Ob. B

L

a
k

Przykład funkcjonowania

Przykład funkcjonowania

Akt. 1 - 5

Akt. 5 - 25

Akt. 3 - 120

Akt. 11 - 15

Akt. 4 - 45

Akt. 22 - 26

Akt. 30 - 35

Akt. 7 - 46

Akt. 40 - 100

L
i
s
t
a

k
t
y
w
n
o
ś
c
i

Akt. 1 - 5

Aktualny czas symulacji :

5

background image

Pending List

Ob. D

Ob. A

Ob. C

Ob. B

L

a
k

Przykład funkcjonowania

Przykład funkcjonowania

Akt. 5 - 25

Akt. 3 - 120

Akt. 11 - 15

Akt. 4 - 45

Akt. 22 - 26

Akt. 30 - 35

Akt. 7 - 46

Akt. 40 - 100

L
i
s
t
a

k
t
y
w
n
o
ś
c
i

Aktualny czas symulacji : 5

Akt. 11 - 15

Aktualny czas symulacji :

15

background image

Pending List

Ob. D

Ob. A

Ob. C

L

a
k

Przykład funkcjonowania

Przykład funkcjonowania

Ob. B

Akt. 4 - 45

Akt. 5 - 25

Akt. 3 - 120

Akt. 22 - 26

Akt. 30 - 35

Akt. 7 - 46

L
i
s
t
a

k
t
y
w
n
o
ś
c
i

Aktualny czas symulacji : 15

Aktualny czas symulacji :

25

Akt. 40 - 100

Akt. 5 - 25

background image

Czas symulacyjny

Czas symulacyjny





zazwyczaj różny od astronomicznego

zazwyczaj różny od astronomicznego





wewnętrzne sterowanie zegarem

wewnętrzne sterowanie zegarem





modyfikowanie wartości przez procedurę upływu czasu

modyfikowanie wartości przez procedurę upływu czasu





umowna (zależna od interpretacji) jednostka czasu

umowna (zależna od interpretacji) jednostka czasu





umowna (zależna od interpretacji) jednostka czasu

umowna (zależna od interpretacji) jednostka czasu





możliwość realizacji wielu czynności w jednej chwili

możliwość realizacji wielu czynności w jednej chwili





brak możliwości zmniejszania wartości czasu symulacji

brak możliwości zmniejszania wartości czasu symulacji

(nie ma powrotów do przeszłości

(nie ma powrotów do przeszłości))

background image

Procedury sterowania symulacją

Procedury sterowania symulacją





Uruchomienie upływu czasu (rozpoczęcie symulacji):

Uruchomienie upływu czasu (rozpoczęcie symulacji):

StartSimulation

StartSimulation;;





Wymuszenie zakończenia

Wymuszenie zakończenia symulacji:

symulacji:

StopSimulation

StopSimulation;;

StopSimulation

StopSimulation;;





Odczytanie aktualnej wartości czasu symulacyjnego:

Odczytanie aktualnej wartości czasu symulacyjnego:

SimTime

SimTime():

(): REAL;

REAL;





Ustalenie wartości początkowej czasu:

Ustalenie wartości początkowej czasu:

ResetSimTime

ResetSimTime (IN

(IN newTime

newTime: REAL);

: REAL);





Odczytanie liczby zaplanowanych czynności:

Odczytanie liczby zaplanowanych czynności:

NumActivities

NumActivities (IN

(IN object

object: ANYOBJ):

: ANYOBJ): INTEGER;

INTEGER;

background image

Procedury sterowania symulacją

Procedury sterowania symulacją





Odczytanie liczby obiektów w

Odczytanie liczby obiektów w Pending

Pending List:

List:

NumObjPending

NumObjPending() : INTEGER;

() : INTEGER;





Odczytanie liczby wszystkich zaplanowanych czynności w listach

Odczytanie liczby wszystkich zaplanowanych czynności w listach

aktywności obiektów

aktywności obiektów Pending

Pending List:

List:

NumActPending

NumActPending() : INTEGER;

() : INTEGER;

NumActPending

NumActPending() : INTEGER;

() : INTEGER;





Odczytanie liczby aktywności związanych z sekwencją WAIT

Odczytanie liczby aktywności związanych z sekwencją WAIT FOR …:

FOR …:

NumWAITFOR

NumWAITFOR() : INTEGER;

() : INTEGER;





Odczytanie zawartości

Odczytanie zawartości Pending

Pending List (opcjonalnie także list

List (opcjonalnie także list

aktywności obiektów):

aktywności obiektów):

PendingListDump

PendingListDump(IN

(IN DoActList

DoActList: BOOLEAN);

: BOOLEAN);





Zmienna

Zmienna

Timescale

Timescale : REAL

: REAL

(dostępna przez import) określająca

(dostępna przez import) określająca

liczbę rzeczywistych sekund / jednostkę czasu symulacji

liczbę rzeczywistych sekund / jednostkę czasu symulacji

background image

Realizacja upływu czasu

Realizacja upływu czasu





Asynchroniczne uruchomienie metody

Asynchroniczne uruchomienie metody

...

...

TELL obiekt TO metoda

TELL obiekt TO metoda (lista argumentów ’IN’)

(lista argumentów ’IN’) [[IN

IN czas]

czas]

kolejne instrukcje

kolejne instrukcje

...

...





W wyniku takiego wywołania następuje

W wyniku takiego wywołania następuje





wstawienie referencji do ’obiektu’ w

wstawienie referencji do ’obiektu’ w Pending

Pending List

List





wstawienie identyfikatora wywołanej metody do listy

wstawienie identyfikatora wywołanej metody do listy

aktywności ’obiektu’

aktywności ’obiektu’





bezzwłoczne przejście do kolejnych instrukcji kodu

bezzwłoczne przejście do kolejnych instrukcji kodu

programu

programu

(bez rozpoczęcia wykonywania metody)

(bez rozpoczęcia wykonywania metody)

background image

Realizacja upływu czasu

Realizacja upływu czasu





Wywołanie takie stosuje się:

Wywołanie takie stosuje się:





we wszystkich metodach (ASK, TELL i WAITFOR)

we wszystkich metodach (ASK, TELL i WAITFOR)





można

można podać tylko

podać tylko parametry wejściowe

parametry wejściowe IN

IN





Ciało metody TELL

Ciało metody TELL może zawierać

może zawierać sekwencję upływu czasu:

sekwencję upływu czasu:

WAIT DURATION czas

WAIT DURATION czas

{stan

{stan aktywności, płynie czas}

aktywności, płynie czas}

{po

{po „odczekaniu” czasu}

„odczekaniu” czasu}

sekwencja instrukcji

sekwencja instrukcji

ON INTERRUPT

ON INTERRUPT

{po przerwaniu oczekiwania}

{po przerwaniu oczekiwania}
sekwencja instrukcji

sekwencja instrukcji

END WAIT

END WAIT;;

background image

Realizacja upływu czasu

Realizacja upływu czasu



Instrukcje sterujące upływem czasu:

Instrukcje sterujące upływem czasu:

WAIT DURATION czas

WAIT DURATION czas

{stan aktywności, płynie czas}

{stan aktywności, płynie czas}

{po „odczekaniu” czasu}

{po „odczekaniu” czasu}

sekwencja instrukcji

sekwencja instrukcji

ON INTERRUPT

ON INTERRUPT

{po przerwaniu oczekiwania}

{po przerwaniu oczekiwania}

{po przerwaniu oczekiwania}

{po przerwaniu oczekiwania}

sekwencja instrukcji

sekwencja instrukcji

END WAIT;

END WAIT;

WAIT FOR obiekt TO metoda

WAIT FOR obiekt TO metoda

{stan

{stan aktywności, płynie czas}

aktywności, płynie czas}

{po

{po „normalnym” zakończeniu procesu}

„normalnym” zakończeniu procesu}

sekwencja instrukcji

sekwencja instrukcji

ON INTERRUPT

ON INTERRUPT

{po

{po wymuszeniu zakończenia procesu}

wymuszeniu zakończenia procesu}

sekwencja instrukcji

sekwencja instrukcji

END WAIT

END WAIT;;

background image

Realizacja upływu czasu

Realizacja upływu czasu





Synchroniczne wywołanie metody (procesu)

Synchroniczne wywołanie metody (procesu)





Gdy

Gdy dwie

dwie lub więcej

lub więcej aktywności

aktywności obiektu wzajemnie zależą od

obiektu wzajemnie zależą od

siebie, można je synchronizować poprzez sekwencję:

siebie, można je synchronizować poprzez sekwencję:

...

...

TELL obiekt TO metoda

TELL obiekt TO metoda (lista

(lista argumentów ’IN

argumentów ’IN’) [

’) [IN

IN czas]

czas]

TELL obiekt TO metoda

TELL obiekt TO metoda (lista

(lista argumentów ’IN

argumentów ’IN’) [

’) [IN

IN czas]

czas]

...

...

a w kodzie źródłowym metody umieszczenie bloku instrukcji:

a w kodzie źródłowym metody umieszczenie bloku instrukcji:

WAIT FOR obiekt2 TO metoda2

WAIT FOR obiekt2 TO metoda2 (lista

(lista argumentów ’IN

argumentów ’IN’)

’)

...instrukcje do wykonania po przejęciu sterowania

...instrukcje do wykonania po przejęciu sterowania

END WAIT;

END WAIT;

{’obiekt

{’obiekt’ oczekuje na wykonanie przez ’obiekt2’ ’metody2’

’ oczekuje na wykonanie przez ’obiekt2’ ’metody2’

następnie realizuje określone wewnątrz

następnie realizuje określone wewnątrz instrukcje}

instrukcje}

background image

Realizacja upływu czasu

Realizacja upływu czasu





Synchroniczne wywołanie metody (procesu) c.d.

Synchroniczne wywołanie metody (procesu) c.d.





Analogiczny efekt po wywołaniu w instrukcji

Analogiczny efekt po wywołaniu w instrukcji

WAIT FOR

WAIT FOR

metody typu WAITFOR:

metody typu WAITFOR:

Różnica

Różnica

-- ’WAITFOR’ można wywoływać tylko w powyższej

’WAITFOR’ można wywoływać tylko w powyższej

Różnica

Różnica

-- ’WAITFOR’ można wywoływać tylko w powyższej

’WAITFOR’ można wywoływać tylko w powyższej

sekwencji, natomiast ’TELL’ ma tylko parametry wejściowe IN

sekwencji, natomiast ’TELL’ ma tylko parametry wejściowe IN

background image

Sterowanie

Sterowanie procesami

procesami





Odwołania do metod

Odwołania do metod





każda wywołana metoda otrzymuje swój niepowtarzalny

każda wywołana metoda otrzymuje swój niepowtarzalny

identyfikator typu rekordowego

identyfikator typu rekordowego

ACTID

ACTID

VAR

VAR

actid

actid :

: ACTID

ACTID;;

actid

actid :

: ACTID

ACTID;;

...

...

BEGIN

BEGIN

actid

actid := TELL obiekt TO Metoda();

:= TELL obiekt TO Metoda();

...

...





wykorzystanie ACTID w bloku

wykorzystanie ACTID w bloku

WAIT FOR

WAIT FOR actid

actid .... END WAIT;

.... END WAIT;





wykorzystanie ACTID w sekwencji INTERRUPT

wykorzystanie ACTID w sekwencji INTERRUPT

background image

Sterowanie

Sterowanie procesami

procesami





Przerywanie aktywności (oczekiwania metod)

Przerywanie aktywności (oczekiwania metod)





Przerwanie wszystkich aktywności w obiekcie

Przerwanie wszystkich aktywności w obiekcie

object

object

::

InterruptAll

InterruptAll(IN

(IN object

object : ANYOBJ);

: ANYOBJ);





Przerwanie konkretnej aktywności o identyfikatorze

Przerwanie konkretnej aktywności o identyfikatorze

activity

activity::

InterruptMethod

InterruptMethod(IN

(IN activity

activity : ACTID);

: ACTID);

InterruptMethod

InterruptMethod(IN

(IN activity

activity : ACTID);

: ACTID);





Przerwanie pierwszej napotkanej w

Przerwanie pierwszej napotkanej w Pending

Pending List aktywności o

List aktywności o

nazwie

nazwie

methName

methName

w obiekcie

w obiekcie

object

object::

Interrupt

Interrupt(IN

(IN object

object : ANYOBJ; IN

: ANYOBJ; IN methName

methName : STRING);

: STRING);





Uwaga :

Uwaga :





próba przerwania nieistniejącej czynności nie powoduje błędu

próba przerwania nieistniejącej czynności nie powoduje błędu





’’runtime

runtime error

error’ generowany jest przy braku sekwencji ’ON

’ generowany jest przy braku sekwencji ’ON

INTERRUPT’ w przerywanej aktywności metody

INTERRUPT’ w przerywanej aktywności metody

background image

Sterowanie

Sterowanie procesami

procesami





Przykład

Przykład





TELL METHOD

TELL METHOD Ladowanie

Ladowanie;;

...

...

WAIT DURATION 10.0

WAIT DURATION 10.0

...

...

...

...

ON INTERRUPT

ON INTERRUPT

...

...

END WAIT;

END WAIT;

END METHOD;

END METHOD;





id := TELL

id := TELL samolot

samolot TO

TO Ladowanie

Ladowanie;;





InterruptMethod

InterruptMethod (id);

(id);

{przerwie dokładnie ’id’}

{przerwie dokładnie ’id’}





Interrupt

Interrupt (samolot,

(samolot, „„Ladowanie

Ladowanie”);

”); {przerwie pierwszą napotkaną}

{przerwie pierwszą napotkaną}

background image

Sterowanie

Sterowanie procesami

procesami





Synchronizacja procesów symulacyjnych

Synchronizacja procesów symulacyjnych





Klasa

Klasa TriggerObj

TriggerObj





Metody:

Metody:





WAITFOR METOD

WAITFOR METOD Fire

Fire()

()

ASK METHOD

ASK METHOD Release

Release()

()





ASK METHOD

ASK METHOD Release

Release()

()





ASK METHOD

ASK METHOD NumWaiting

NumWaiting():INTEGER

():INTEGER

// Proces 1

// Proces 1

WAITFOR

WAITFOR tr

tr TO

TO Fire

Fire

ON INTERRUPT

ON INTERRUPT

END WAIT;

END WAIT;

// Proces 2

// Proces 2

ASK

ASK tr

tr TO

TO Release

Release();

();

background image

Sterowanie metodami

Sterowanie metodami





Wymuszone wewnątrz metody zakończenie czynności

Wymuszone wewnątrz metody zakończenie czynności





Realizowane

Realizowane przez

przez instrukcję:

instrukcję:

Terminate

Terminate;;





Przykład:

Przykład:

IF

IF SimTime

SimTime() >

() > czasStop

czasStop

Terminate

Terminate;;

END IF

END IF;;


Wyszukiwarka

Podobne podstrony:
modsim symulacja
symulacja modsim grafika i animacja
symulacja modsim monitory
symulacja modsim grafika i animacja
Modsim Skladnia
SYMULACJA
mgr cw 2 symulacja zmian stanu zasobów 2010
prognozowanie i symulacje wyklad (25 str)
Nabici w kapsułę – bezsens treningów polskich pilotów na rosyjskich symulatorach
Środowisko programowe do symulacji zjawiska tunelowania
,Modelowanie i symulacja system Nieznany (3)
Uczenie się przez symulację, PEDAGOGIKA, Metodyka nauczania przedmiotów pedagogicznych
Program - PROGNOZOWANIE I SYMULACJA, STUDIA, prognozowanie
prognozowanie i symulacje
projekt symulacje pspice polak
SYMULACJA KOMPUTEROWA OBWODÓW ELEKTRYCZNYCH
M5 Modelowanie i symulacja silnika wrzecionowego SM

więcej podobnych podstron