MPD Skrypt cz2

background image

Materiały dydaktyczne zostały przygotowane w ramach Projektu

„Politechnika XXI wieku - Program rozwojowy Politechniki Krakowskiej – najwy

ż

szej

jako

ś

ci dydaktyka dla przyszłych polskich in

ż

ynierów”

współfinansowanego ze

ś

rodków Unii Europejskiej w ramach Europejskiego Funduszu

Społecznego. Umowa o dofinansowanie nr UDA-POKL.04.01.01-00-029/10-00

Niniejsza publikacja jest rozpowszechniana bezpłatnie

Spis treści

3. MODELE SIECIOWE PROCESÓW DYSKRETNYCH .................................... 4

3.1. Wprowadzenie............................................................................................................4

3.2 Podstawowe pojęcia ....................................................................................................5

3.3. Sieci znakowane .........................................................................................................8

3.4. Własności dynamiczne sieci.....................................................................................10

3.5 Czasowe sieci Petriego ..............................................................................................12

3.6. Przykłady sieciowego modelowania procesów dyskretnych ...................................13

3.7. Konstrukcja drzew i grafów pokrycia znakowań ....................................................18

3.8 Oprogramowanie narzędziowe ND. .........................................................................23

3.9. Edytor i symulator PIPE..........................................................................................29

4.1 Zastosowanie .............................................................................................................34

4.2 Język GPSS ...............................................................................................................36

4.2.1 Wprowadzenie ...................................................................................................36

4.2.2 Opis podstawowych elementów języka GPSS ver World .................................41

4.2.3 Przykłady programów........................................................................................50

4.3 Przykłady do ćwiczeń i tematy zadań........................................................................54

4.4 Obsługa pakietu GPSS World ..................................................................................57

5. PROGRAMOWANIE SYSTEMÓW DYSKRETNYCH................................... 67

5.1 Wprowadzenie...........................................................................................................67

5.2 Proces projektowania symulacji ................................................................................68

5.3. Elementy modelu symulacyjnego.............................................................................72

5.4 Metody symulacji dyskretnej.....................................................................................74

5.4.1. Metoda planowania zdarzeń. ............................................................................75

5.4.2. Metoda przeglądania działań. ...........................................................................77

5.4.3. Przegląd innych metod. ....................................................................................81

5.4.3. Przegląd innych metod. ....................................................................................82

background image

Modelowanie Procesów Dyskretnych

2

5.5. Sterowanie i monitoring procesów dyskretno-ciągłych............................................85

5.6 Systemy SCADA/HMI ..............................................................................................95


background image

Modelowanie Procesów Dyskretnych

3
















background image

Modelowanie Procesów Dyskretnych

4

3. MODELE SIECIOWE PROCESÓW DYSKRETNYCH

3.1. Wprowadzenie

Sieci Petriego (Petri nets) są narzędziem do modelowania, stosowanym w
wielu różnych dziedzinach nauki, w szczególności informatyki, automatyki
i robotyki. Charakteryzuje je intuicyjny graficzny język modelowania,
wspierany przez zaawansowane metody formalnej analizy ich własności.
Naturalnym zjawiskiem w sieciach Petriego jest współbieżność
wykonywanych akcji, dlatego też są one najczęściej postrzegane jako
narzędzie do modelowania dyskretnych procesów współbieżnych.
Sieci, których definicję rozbudowano o parametr czasu, mogą być
stosowane do modelowania systemów czasu rzeczywistego.
Typowe zastosowania sieci Petriego to:

1

Modelowanie obliczeń współbieżnych.

2.

Modelowananie procesów technologicznych i przemysłowych.

Sieci Petriego zostały zdefiniowane przez Carla Petriego, w jego pracy
doktorskiej na Politechnice Darmstadt. Teoria sieci Petriego rozwija się od
lat 60-tych, zapoczątkowana opublikowaniem pracy:
Petri C.A.: Kommunikation mit Automaten. University of Bonn 1962.
Petri C.A.:Communication with Automata. Technical report New York
1965.
W wyniku ponad czterdziestoletniego rozwoju tej teorii powstało wiele
różnych klas sieci i rozszerzonych zakresów zastosowań. W zależności od
potrzeb definicję sieci zmieniano i dostosowywano do rozwiązywanych
problemów. Dzięki różnorodności znanych obecnie klas sieci można
stosunkowo łatwo dobrać klasę najwłaściwszą dla danej dziedziny
zastosowań. Różnorodność ta jednak utrudnia opracowanie jednolitych
metod analizy różnych klas sieci.
Sieć Petriego jest przedstawiana jako graf dwudzielny. Może ona mieć
strukturą hierarchiczną, znacznie ułatwiającą modelowanie złożonych
systemów.
Możliwa jest symulacja pracy sieci (najczęściej wspomagana przez
odpowiednie narzędzia komputerowe), dzięki której model taki staje się
wirtualnym prototypem projektowanego systemu.

background image

Modelowanie Procesów Dyskretnych

5

Oprócz reprezentacji graficznej i możliwości symulacji pracy, na uwagę
zasługuje rozbudowana teoria. Różnorodność klas sieci powoduje, że
metody ich analizy znacznie się różnią. Dla sieci o najprostszej strukturze
istnieje najszerszy wachlarz tych metod i są one stosunkowo łatwe w użyciu.
W przypadku sieci bardziej rozbudowanych, możliwości formalnej analizy
są zazwyczaj uboższe lub trudniejsze do zastosowania.
Sieci Petriego są podstawowym językiem modelowania współbieżności i
synchronizacji dyskretnych procesów. Modelowanie z zastosowaniem sieci
Petriego pozwala na przedstawienie aspektów systemu, powiązanych ze
współbieżnością działania, współdzieleniem zasobów, komunikacją między
procesami oraz synchronizacją przebiegających procesów.
Sieci mają szczególne zastosowania w:

projektowaniu i specyfikacji systemów procesów dyskretnych,
systemów czasu rzeczywistego, systemów wbudowanych,

analizie poprawności oprogramowania (weryfikacja, walidacja),

ocenie wydajności i niezawodności systemów procesów dyskretnych.

W celu oceny wydajności systemów, sieci Petriego są wzbogacane o
czynnik czasu. W swojej pierwotnej formie sieci miały ograniczone
możliwości.
Różnorodność istniejących klas sieci Petriego, a także narzędzi
programowych spowodowała, że nie istnieje jednolita notacja ich opisu.
Notacje graficzne sieci różnią się w zależności od wybranego
oprogramowania, ale różnice te nie są zbyt zasadnicze. Sytuacja wygląda
inaczej, w przypadku formalnego opisu sieci, gdyż nawet w obrębie jednej
klasy stosuje się różne notacje.

3.2 Podstawowe pojęcia

Jedną z zasadniczych cech sieci Petriego jest ich stosunkowo prosta i
intuicyjna reprezentacja graficzna, wspólna dla wszystkich klas sieci. Sieci
Petriego są przedstawiane w postaci grafów skierowanych, zawierających
dwa rodzaje węzłów (grafy dwudzielne) nazywanych miejscami i
przejściami. Tych dwóch rodzajów węzłów używa się odpowiednio do
reprezentowania stanów i aktywności modelowanego systemu.

Grafem skierowan

y

m (g

r

afem)

n

azywa

m

y

up

o

r

dk

owa

n

ą

t

jk

ę

po

s

t

ac

i

G

=

(V

,

A

,

γ

)

, p

rzy czy

m:

V je

s

t

z

bi

o

r

e

m

z

ł

ów g

r

a

fu

.

background image

Modelowanie Procesów Dyskretnych

6

A jest z

bi

o

r

e

m

łukó

w

(k

r

aw

ę

d

z

i

)

gr

a

f

u

,

t

ak

im

ż

e V

A =

.

γ

: A

V

×

V

j

e

st

f

u

n

k

c

z

ac

z

ep

i

en

i

a

,

któ

ra

ka

ż

d

e

mu łuk

owi

pr

zy

pi

s

u

je

up

o

r

dk

owa

n

ą

p

arę węzłów

.

Graf

s

kiero

wa

n

y

(

G

=

(V

,

A,

γ

)

,

naz

yw

am

y g

r

afe

m

et

y

ki

etow

an

y

m nad

z

bior

e

m

e

t

y

ki

et L (label)

,

j

eże

li łu

k

i

g

r

af

u G

ma

j

ą

pr

zy

p

isa

n

e ety

ki

e

t

y ze z

b

ior

u L

.

background image

Modelowanie Procesów Dyskretnych

7

Graf skierowany

G

=

(V

,

A

,

γ

)

nazywamy grafem dwudzielnym, jeżeli zbiór

V

jest sumą dwóch rozłącznych zbiorów

V

1

,

V

2

i dowolny łuk grafu G łączy

węzły należące do rożnych zbiorów, tzn.

Węzły różnych typów oznaczono odmiennymi kolorami.

Łuki

w gra

f

ie

s

iec

i

mogą łączyć

t

y

l

ko węz

ł

y

r

óż

n

yc

h t

ypów

. Z

e wzglę

du n

a c

h

a

-

ra

kt

e

r t

yc

h poł

ą

c

ze

ń

d

e

finiu

je się s

i

e

ci o ro

z

m

a

it

y

ch

w

ł

a

s

n

c

iac

h

s

tru

k

tu

ra

ln

yc

h

,

m

.

in.

:

s

i

ec

i

czys

t

e

,

siec

i pr

os

t

e, s

i

ec

i

swo

b

o

dn

ego wy

b

o

ru

,

grafy

s

y

n

c

h

ro

n

izacj

i

,

m

aszy

n

y s

t

a

no

we

it

d

.

Sieci Petriego są przedstawiane jako grafy dwudzielne, w których własności
dynamiczne są modelowane poprzez przepływ tzw. znaczników (markers).









Sieć Petri (PN) jest uporządkowaną czwórką PN= (P,T,F,W),

gdzie:
P=(p

1

,p

2

,...,p

n

) – zbiór (skończony) miejsc (places),

P

≠

0,

T=(t

1

,t

2

,...,t

m

) - zbiór (skończony) przejść (transitions),

T

≠

0,

F

( PxT)

(TxP) - zbiór łuków,

W: F

N\{0} – funkcja krotności (waga) łuku, N-zbiór liczb naturalnych.

3.2. Konwencja graficzna dla sieci Petriego

p

3

t

1

t

2

p

2

p

1

P = (p

1

, p

2

)

T = (t

1

, t

2

)

F = {(p

1

, t

1

), (p

1

, t

2

), (p

2

, t

2

), (t

1

,

p

1

), (t

2

,

p

3

)}

W

1

a

A:

γ

(a)

(

V

1

×

V

2

)

(

V

2

×

V

1

)

3.1. Graf dwudzielny

3

5

1

2

x

1

x

2

x

4

x

3

background image

Modelowanie Procesów Dyskretnych

8

S

ieć Petriego jako graf dwudzielny, w którym wyróżnia się dwa rozłączne

podzbiory wierzchołków: zbiór miejsc i zbiór przejść.
W reprezentacji graficznej, miejsca przedstawiane są w postaci kółek,
natomiast przejścia w postaci kresek. Łukami mogą łączyć się wyłącznie
elementy należące do różnych podzbiorów. Łuki mogą być wielokrotne.
Jeżeli krotność łuku f

F spełnia zależność W(f)>1, to łuk obciążony jest

liczbą W(f). Jeśli W(f)=1, to symbol 1 jest pomijany.

Powyższa definicja sieci pozwala scharakteryzować strukturę sieci, ale nie daje
możliwości opisu jej zachowania. Aby można było w pełni modelować systemy
współbieżne musimy rozszerzyć tę definicję o znakowanie, które reprezentuje stan
modelowanego systemu i ulega zmianie w trakcie symulacji pracy sieci.

3.3. Sieci znakowane

W celu modelowania systemów współbieżnych, należy rozszerzyć te
definicję o znakowanie, które reprezentuje stan modelowanego systemu i
ulega zmianie w trakcie symulacji pracy sieci. Znakowanie sieci umożliwia
opis własności dynamicznych, które są modelowane przez przepływ
znaczników powodowany drożnością, wzbudzeniem (firing) przejść sieci.
Znakowanie PN jest funkcją M: P

N. Wartość M(p

i

) wyraża liczbę

znaczników w miejscu p

i

. Liczba znaczników jest oznaczana na przez liczbę

kropek.
Znakowana sieć Petriego MPN (Marked Petri Net) jest parą:

MPN =(PN, M

0

)

gdzie: M

0

– jest znakowaniem początkowym (initial marking) sieci

M

0

: P

N funkcja znakowania początkowego.


Zbiory Int(t) ={p

P: <p, t>

F} oraz Out(t) ={p

P: <t, p>

F} jest zbiorem

miejsc wejściowych oraz wyjściowych przejścia t.
W podobny sposób są zdefiniowane zbiory Int(p), Out(p) przejść
wejściowych (wyjściowych) miejsca p.
Dowolne miejsce p nazywa się miejscem wejściowym dla przejścia t, jeśli
istnieje łuk łączący, skierowany od tego miejsca do przejścia t. Wykonanie
dowolnego przejścia (palenia się tranzycji) w sieci polega na pobraniu
znaczników z miejsc wejściowych danego przejścia i wstawienia
znaczników do miejsc wyjściowych. Ilość znaczników pobieranych jest
określona przez wagi przypisane do odpowiednich łuków.

background image

Modelowanie Procesów Dyskretnych

9

Przejście t

j

jest przygotowane do wzbudzenia (firing), jeśli w każdym

miejscu poprzedzającym znajduje się co najmniej W(<p

i

, tj>) znaczników.

Jeśli przejście jest przygotowane do wzbudzenia, to może nastąpić jego
wzbudzenie. Gdy przejście t

j

jest wzbudzone, wówczas W(<p

i

, t

j

>)

znaczników jest usuwanych z każdego miejsca p

i

Int(t) oraz W(<t

j

, p

k

>)

znaczników jest dodawanych do każdego miejsca p

k

Out(t).

background image

Modelowanie Procesów Dyskretnych

10



















3.4. Własności dynamiczne sieci

Analiza zachowania sieci jest związana z badaniem własności kolejnych jej
stanów, w tym przypadku znakowań osiągalnych z znakowania
początkowego. Problem osiągalności określonego znakowania (stanu) jest
więc podstawowym przy analizie sieci.

Jeżeli w wyniku wzbudzenia przejścia t

i

następuje zmiana znakowania z M

i

na M

i+1

to stosujemy oznaczenie:



Sekwencją wzbudzenia nazywamy taką sekwencję przejść

σ

= t

i1

, ..., t

is

, dla

której istnieją znakowania M

p

, M

p+1

, ..., M

p+s

spełniające warunek:







Znakowanie M

p+s

nazywamy znakowaniem osiągalnym ze znakowania M

p

.

Możliwość

przesyłania

większej

liczby

znaczników

przy

wzbudzeniu

pojedynczego przejścia ma wpływ na aktywność danego przejścia oraz zmianę
poszczególnych znakowań sieci.

Rys 3.3. Realizacja przejścia (firing of transition)

2

2

t

1

p

1

p

2

•••

p

3

p

4

p

5

M

i

M

i+1

[t

i

]

[t

i1

]

M

p

M

p+1

,

[t

is

]

M

p+s-1

M

p+s

2

2

t

1

p

1

p

2

p

3

p

4

p

5

•••

M

p

M

p+s

[

σ

]

background image

Modelowanie Procesów Dyskretnych

11

Przejście t

T jest aktywne przy znakowaniu M (jest M-aktywne), jeżeli każde z

jego miejsc wejściowych zawiera co najmniej tyle znaczników, ile wynosi waga
łuku prowadzącego od tego miejsca do przejścia t.
Jeżeli przejście t jest M-aktywne, to nowe znakowanie M' uzyskane w wyniku
wykonania przejścia t jest określone w sposób następujący:

Rozważmy przykład sieci przedstawionej na Rys. 3.4. Przy znakowaniu
początkowym M

0

= (1, 2, 0, 1, 2, 1) aktywne są przejścia t

1

, t

2

, t

4

, t

5

. Wykonanie

sekwencji przejść

σ

= t

1

, t

2

, t

4

, t

6

,

prowadzi odpowiednio do znakowań:

M

1

= (1, 3, 0, 2, 1),

M

2

= (1, 1, 1, 2,1),

M

4

= (1, 1, 1, 1, 2),

M

6

= (1, 0, 3, 1, 1).

M(p) – W(p,t)

gdy p

In(t) – Out(t)

M(p) + W(t,p)

gdy p

Out(t) – In(t)

M`(p) =

M(p) - W(p,t) + W(t,p) gdy p

In(t)

Out(t)


M(p)

w pozostałych przypadkach

Rys. 3.4. Sieć znakowana

2

2

p

5

t

3

p

4

t

4

t

5

p

1

p

3

t

2

p

2

t

1

••

t

6

••

background image

Modelowanie Procesów Dyskretnych

12

Znakowana sieć MPN jest żywą (liveness), jeśli dla każdego znakowania M
osiągalnego ze znakowania początkowego M

0

i dla każdego przejścia t

T,

istnieje sekwencja palenia umożliwiająca palenie przejścia t.
Zagadnienie żywotności jest niezwykle istotne w analizie własności
systemów współbieżnych. Klasycznie żywotność jest kojarzona z ciągłością
działania, np. system czasu rzeczywistego powinien być zawsze gotowy do
obsługi zdarzeń zachodzących w jego otoczeniu.
Znakowana sieć MPN jest k- ograniczona (k-bounded), jeśli przy dowolnym
osiągalnym znakowaniu, w każdym miejscu ilość znaczników nie
przekracza liczby k.
Znakowana sieć MPN jest bezpieczna (safed), jeśli jest 1-ograniczona.
Ograniczoność sieci wiążę się z pojęciem bezpieczeństwa systemów.
Definicja

bezpieczeństwa

oznacza

niemożliwość

wystąpienia

niepożądanych stanów podczas działania systemu. W przypadku sieci
Petriego niepożądane stany dotyczą najczęściej nieograniczonego wzrostu
liczby znaczników w pewnych miejscach sieci. Własność bezpieczeństwa
jest charakterystyczna dla pewnej klasy sieci zwanych sieciami warunkowo-
zdarzeniowymi C/E (Condition-Event). Wystąpienie znaczników we
wszystkich miejscach wejściowych odpowiada spełnieniu wszystkich
warunków wystąpienia zdarzenia. Fakt zaistnienia zdarzenia jest opisywany
przez wykonanie przejścia. W takim przypadku dla każdego miejsca
możliwe są tylko dwa oznakowania: brak znacznika (niespełnienie warunku)
i wystąpienie pojedynczego znacznika – spełnienie warunku.

3.5 Czasowe sieci Petriego

Definicja 3.12.

Czasowa znakowana sieć Petrego TMPN (Timed Marked Petri Net) jest
parą TMPN=(MPN,

τ

),

gdzie:

τ

: T

R

+

, (R

+

- jest zbiorem nieujemnych liczb wymiernych).

W chwili początkowej

τ

=0, znakowanie sieci TMPN jest znakowaniem

początkowym M

0

.

Dodanie parametru czasu do definicji sieci Petriego umożliwia ocenę wydajności
systemów. Istnieją dwa sposoby przypisania czasu elementom sieci Petriego do
przejść (tranzycji) lub miejsc.

background image

Modelowanie Procesów Dyskretnych

13

W literaturze dominuje przypisanie czasu przejściom. Gdy przejście t

i

jest

przygotowane do wzbudzenia, wówczas może nastąpić jego wzbudzenie. Faza
palenia przejścia t

i

trwa przez czas

τ

(t

i

).














3.6. Przykłady sieciowego modelowania procesów dyskretnych

Sieci Petriego są uniwersalnym modelem szerokiej klasy procesów
dyskretnych, wobec tego miejsca i przejścia mogą być różnie
interpretowane, w zależności od modelowanego systemu. Najczęściej
spotykane interpretacje:



1

3.6. Czasowy diagram palenia tranzycji

2

3

4

5

6

7

t

1

t

2

t

3

t

4

t

5

t

6

p

2

p

3

t

1

t

2

p

5

t

4

t

3

p

4

3.5. Czasowa sieć Petriego.

t

1

=2;

t

2

=4;

t

4

=2;

t

3

=3;

background image

Modelowanie Procesów Dyskretnych

14

Miejsca wejściowe

Przejścia

Miejsca wyjściowe

Prewarunki

Zdarzenie

Postwarunki

Zasoby żądane

Operacja lub zadanie

Zasoby zwalniane

Dane wejściowe

Wykonanie obliczeń (akcji)

Wyniki

Warunki

Klauzula logiki

Konkluzje

Sygnały wejściowe

Przetwarzanie

Sygnały wyjściowe

Wymienione reprezentacje charakteryzują się różnym stopniem abstrakcji,
co może decydować o różnych wymaganiach względem własności sieci.
Przykładowo przy rozważaniu systemu rozdziału zasobów, znaczniki mogą
reprezentować jednostki zasobu określonego typu i w związku z tym będą
interpretowane jako elementy, których ogólna ilość jest stała.
Z kolei w sieciach warunkowo-zdarzeniowe prewarunek poprzedza
zdarzenie i jest przesłanką wystąpienia zdarzenia. Wystąpienie zdarzenia
kończy obowiązywanie prewarunku i zaczyna obowiązywać postwarunek.

Przykład (Rys.3.7) modelu automatu w postaci sieci Petriego, akceptującego
monety 5 i 10 zł. i sprzedającego dwa rodzaje produktów w cenie o 15 i 20
zł.
Sygnały wejściowe z otoczenia są specyfikowane poprzez strzałki
swobodne do odpowiednich przejść. Etykiety tych strzałek oznaczają rodzaj
monety wrzucanej w odpowiednich stanach do otworu automatu. Napisy
przy miejscach wskazują kwotę przyjętą przez automat.
Automat początkowo znajduje się w stanie

Wait

, później w zależności od

wrzucanej monety przechodzi do stanu 5 lub 10. Czynności te są
kontynuowane aż do osiągnięcia żądanej kwoty. Wprowadzono dodatkową
parę sygnałów wejściowych, która jest używana do akceptacji kupna

OK

lub odrzucenia

NOK

i zwrotu pieniędzy.















background image

Modelowanie Procesów Dyskretnych

15






































Przykład (Rys.3.8) modelu sieciowego dwóch procesów współbieżnych.

Po wykonaniu przejścia t

0

, tranzycja

Begin

inicjuje dwa procesy

współbieżne przez umieszczenie znaczników w miejscach p

1

i p

2

. W takiej

sytuacji tranzycje t

1

oraz t

2

są wzbudzone niezależnie.









background image

Modelowanie Procesów Dyskretnych

16


























Zakończenie współbieżnych procesów jest synchronizowane przez tranzycję
t

3

(

ParEnd

), gdyż do wzbudzenia tegj tranzycji konieczne jest zakończenie

dwóch procesów sekwencyjnych (znaczniki w miejscach p

3

i p

4

).


Przykład (Rys.3.9) modelu procesów komunikujących się poprzez ograniczony
bufor.

Własność ograniczoności sieci nie dopuszcza do nieograniczonego wzrostu ilości
znaczników w dowolnym miejscu sieci. Jest to istotne wymaganie, w
szczególności uniemożliwiające nieskończone wykonywanie wyłącznie pewnych
fragmentów sieci.

Proces nadawcy może wykonywać się ściśle określoną liczbę razy i
przesyłać znaczniki do miejsca p. Dodatkowe miejsce p

z k znacznikami

(przy znakowaniu początkowym M

0

) powoduje ograniczenie ilości

znaczników zawartych w miejscu p. Dla każdego oznakowania M

s

osiągalnego z M

0

jest spełniona zależność:

M

s

(p) + M

s

(p

) = k

Ilość znaczników w sieci nie przekracza wartości k. Taki sposób
poprawiania struktury powinien być zastosowany w kontekście wszystkich
miejsc, w których może wystąpić nieograniczony wzrost ilości znaczników.

ParEnd

p

2

t

0

Rys. 3.8. Model procesów współbieżnych

ParBegin

t

1

p

1

p

3

p

4

t

2

p

0

background image

Modelowanie Procesów Dyskretnych

17

.












Przykład (Rys. 3.10) modelu synchronizacji procesów.

Miejsce p

0

w sieci pełni funkcje synchronizujące, nie dopuszczając, aby

dwa procesy znalazły się w stanie M

s

takim, że M

s

(p

2

) = M

s

(p

4

) = 1, co

modeluje wzajemne wykluczanie dostępu do obszaru krytycznego. W
dowolnym stanie M

s

spełniony jest bowiem warunek M

s

(p

2

) + M

s

(p

4

)

1.

















Rys 3.10. Synchronizowany dostęp do obszaru krytycznego

p

1

p

0

p

3

t

2

t

1

p

2

p

4

t

4

t

3

Rys. 3.9

.

Procesy komunikujące się poprzez k-ograniczony bufor

p

Sender

Receiver

k

p`

background image

Modelowanie Procesów Dyskretnych

18

Przykład (Rys. 3.11) sieci z możliwym stanem blokady.






















W sieci na powyższym rysunku może wystąpić stan zakleszczenia (brak
ż

ywotności). Stan taki jest określony jako M(p

2

)= M(p

5

)=1 oraz M(p

i

)=0 dla

pozostałych miejsc p

i

. Stan ten jest osiągany przez wykonanie przejść t

1

oraz t

4

w dowolnej kolejności.

Z drugiej strony, sieć może wykonywać się nieograniczenie, jeśli tylko w
każdym procesie będziemy wykonywać dwa kolejne przejścia <t

1

, t

2

> albo

<t

4

, t

5

>

. Tego typu sekwencje wykonania będą nieskończone.

3.7. Konstrukcja drzew i grafów pokrycia znakowań

Znakowanie M sieci MPN nazywamy pokrywalnym, jeżeli istnieje
znakowanie M`

R(M

0

), takie że dla każdego miejsca p

P jest spełniony

warunek M`(p)

M(p).

Konstrukcja drzewa pokrycia (coverability tree) znakowań polega na
utworzeniu drzewa pokrywającego wszystkie znakowania osiągalne ze

q

p

p

3

p

2

p

1

Rys 3.11. Sieć z możliwością zakleszczenia

t

3

t

2

t

1

p

6

p

5

p

4

t

5

t

4

t

6

background image

Modelowanie Procesów Dyskretnych

19

stanu początkowego. Wykonanie dowolnej sieci jest w ogólności (i
najczęściej) reprezentowane przez nieskończone sekwencje realizacji
odpowiednich przejść sieci. Konstrukcja drzewa o skończonej ilości
wierzchołków wymagać więc będzie wprowadzenia pewnych uproszczeń.
W ogólnym przypadku możemy mówić o dwóch przyczynach
powodujących generację nieskończonych sekwencji stanów osiągalnych:
powtarzające się sekwencje wykonań pewnych przejść oraz nieograniczony
wzrost ilości znaczników w pewnych miejscach.











W przypadku a) mamy do czynienia z nieskończoną sekwencją wykonań:

Wykonanie drugiej sieci b) polega na generacji kolejnych znakowań w myśl
sekwencji:

W przypadku powtarzających się sekwencji możemy zakończyć generację w
momencie osiągnięcia stanu powtórzonego <1,

ω

>. Wprowadza się symbol

nieskończoności

ω

taki, że dla dowolnej skończonej liczby całkowitej n spełnione są

zależności

ω

>n,

ω

+n=

ω

. Kolejne stany będą pochłaniane przez oznakowanie

<1,

ω

>. Drzewo pokrycia będzie budowane z wykorzystaniem powyższych dwóch

mechanizmów. Algorytm konstrukcji drzewa będzie posługiwać się następującą
klasyfikacją węzłów drzewa:

- węzły nowe, czyli takie które nie były jeszcze przetwarzane,

- węzły powtórzone, które pojawiły się już na danej ścieżce budowania drzewa,
- węzły końcowe, dla których nie ma znakowania następnego.

Znakowanie początkowe M

0

stanowi korzeń drzewa i zarazem nowy węzeł.

t

1

t

2

t

2

p

1

p

2

a)

p

2

p

1

t

1

b)

Rys. 3.12. Źródła generacji nieskończonej sekwencji znakowań


<

1, 0>

<0, 1>

<1, 0>

<0, 1>

. . .

t

1

t

2

t

1

t

2

. . .

<1, i >

<1, i+1 > . . .

t

1

background image

Modelowanie Procesów Dyskretnych

20

















Na powyższym rysunku, wprowadzenie symbolu

ω

jest realizowane już

przy pierwszym wykonaniu przejścia t

1

. Wykonanie przejścia t

1

powoduje

zmianę stanu, czyli wzrost ilości znaczników w miejscu p

2

przy

niezmienionych wartościach w miejscach pozostałych. Tym samym
spełnione są warunki wstawienia symbolu

ω

na pozycję odpowiadające

miejscu p

2

.

Drzewo pokrycia znakowań składa się ze skończonej ilości węzłów, co
umożliwia badanie własności dynamicznych, w szczególności można podać
następujące:

Sieć PN jest ograniczona, gdy symbol

ω

nie występuje w drzewie pokrycia.

Wówczas drzewo stanów osiągalnych jest skończone.

Sieć PN jest bezpieczna, gdy w węzłach drzewa występują znakowania
składające się wyłącznie z zer i jedynek,

Przejście t jest martwe, jeśli w drzewie pokrycia nie występuje łuk etykietowany
przez t.

Znakowanie M

i

jest osiągalne ze znakowania początkowego M

0

, jeśli w drzewie

pokrycia istnieje węzeł M

i

oraz ścieżka prowadząca z M

0

do M

i

.

Wyżej wymienione własności mogą być analizowane przez przeglądanie
drzewa pokrycia. Dynamiczne własności sieci Petriego mogą być również
opisywane przez równania macierzowe.

t

3

t

3

t

1

t

2

t

2

t

1

1,0,0

1,

ω

,0

0,1,1

1,

ω

,0

0,

ω

,1

0,0,1

0,

ω

,1

p

p

p

t

1

t

2

t

3

Rys.3.13. Konstrukcja drzewa pokrycia dla sieci Petriego

background image

Modelowanie Procesów Dyskretnych

21

Podstawowe

redukcje

sieci

zachowujące

własność:

ż

ywotności,

ograniczoności i bezpieczeństwa. Oznacza to, że jeśli sieć przed
transformacją miała, którąkolwiek z tych własności, to sieć uzyskana w
wyniku zastosowania transformacji zachowuje również odpowiednie
własności.

background image

Modelowanie Procesów Dyskretnych

22
















































t

2

t

1

t

2

p

1

p

2

t

4

p

4

t

3

p

3

t

1

t

2

t

2

p

1

p

2

t

4

p

3

t

2

p

1

t

4

p

3

Łączenie sekwencji miejsc

Eliminacja pętli miejsca

Eliminacja pętli przejścia

Łączenie sekwencji przejść

Rys. 3.14. Wybrane przypadki redukcji sieci.

background image

Modelowanie Procesów Dyskretnych

23

3.8 Oprogramowanie narzędziowe ND.

Program ND (Net Draw) jest jednym z narzędzi pakietu TINA (Timed

Integrated Net Analyzer). Przeznaczony jest do edycji i symulacji sieci Petriego
zarówno deterministycznej jak i stochastycznej. Edytor pozwala na graficzną i
tekstową prezentację sieci, natomiast symulator umożliwia realizację trybu pracy
krokowej oraz automatycznej symulacji. Dodatkowo program zapewnia analizę
wybranych właściwości sieci [1] [2][3].
Dane wejściowe programu są zapisane w pliku tekstowym z rozszerzeniem, które
kojarzy go z wybranym modelem sieci i sposobem prezentacji (widokiem).

model / widok

graficzny

tekstowy

Sieć Petriego

*.ndr

*.net

Graf automatu

*.adr

*.aut


















I. Tryb edycji.

Edytor uruchamia się poleceniem

nd.exe

.

1. Skrócony zapis działania klawiszem myszy.

LK

- lewy klik

,

PK

- prawy klik,

SK

- środkowy klik

.

Rys. 3.17. Ekran główny programy ND

background image

Modelowanie Procesów Dyskretnych

24

2. Elementy sieci.

Węzły:






Krawędzie:
prostoliniowa

krzywoliniowa krawędź z wagą (waga>1)










3. Modyfikacja elementów graficznych.

Położenie węzłów i opisów:

LK

, przesunięcie.

Usuwanie węzła i krawędzi:

LK

, [

Delete

] lub

LK

, [

Ctrl+X

] lub

LK

,

PK

,

LK

na wybór

Cut.


Kopiowanie i wstawienie:

LK

, [

Ctlr

+

C

] [

Ctlr

+

V

].

Edycja krawędzi:

LK

, przesunięcie znaczników

promienia krzywizny
(edges rays).


p0

- miejsce (place)

p

0

= 1

t0

- tranzycja t

0

(transition)

dla TPN

0

< ϖ

<

praktycznie 0

< τ

0

<

100

7

p1

p

1

= 7

t1

- tranzycja t

1

(transition)

dla TPN

4

< τ

1

<

7

[4 -7]

background image

Modelowanie Procesów Dyskretnych

25

4. Ustawienie ogólnego sposobu aktualizowania krawędzi poprzez menu:

View

/

redraw edges

auto

- zachowuje bieżący tryb,

straight

- tryb prostoliniowy,

keep rays

- tryb krzywoliniowy z zachowaniem kierunków

5. Operacje grupujące.

N

a grupie elementów można wykonać wszystkie w/w operacje (z

wyłączeniem edycji

krzywizn

y

krawędzi

).

Grupowanie elementów –

LK,

zaznaczenie prostokątnej ramki.

Dodawanie do grupy i usuwanie z grupy - [

Ctlr

]+LK na wybranym elemencie.

6. Dodawanie nowych elementów.

Wprowadzanie nowych elementów realizowane jest poprzez kliknięcie

na

wybranej pozycji środkowym klawiszem myszy [

SK

] odpowiednio dla:

miejsca

-

SK

,

tranzycji - [

Ctlr

]+

SK

,

krawędzi - naciśnięcie środkowym klawiszem myszy na wybranym węźle

początkowym, oraz przesunięcie i puszczenie klawisza na węźle
końcowym.

Rys 3.19. Przykład edycji czasu tranzycji

t0

background image

Modelowanie Procesów Dyskretnych

26

7. Modyfikacja parametrów.

Parametry (attributes) elementów sieci można modyfikować w odpowiednim
oknie dialogowym, otwieranym poprzez kliknięcie prawym klawiszem myszy
[

PK

] na wybranym elemencie.

Waga (weight)

- [

PK

] na krawędzi.

Identyfikator (name) - obligatoryjny i nadawany automatycznie (możliwy do

edycji) unikalny ciąg znaków alfanumerycznych (uży-
wany w raportach wynikowych).

Etykieta (label)

- opcjonalny unikalny ciąg znaków alfanumerycznych

Czas (interval)

- czas palenia się tranzycji

τ

i

R

+

dla sieci czasowych

(deterministycznych) należy ustawić na jednakowej
wartości zakresu losowania wybierając pierwszy na liście
przypadek oznaczony symbolem [-

, -].

Program ND pozwala na symulację również czasowych sieci stochastycznych dla
wielu różnych specyficznych sposobów generowania czasu palenia się tranzycji
(Rys 3.19).



















Rys 3.20. Przykład edycji argumentów miejsca

p2

background image

Modelowanie Procesów Dyskretnych

27

Uwagi ogólne:

-

edycja położenia węzła modyfikuje także przyległe krawędzie,

-

liczba znaczników jest dodatnią liczbą całkowitą domyślnie równa zero,

-

wagi krawędzi domyślnie ustawione są na wartość równą 1,

-

położenie parametrów można zmienić w zakresie 8 ustalonych pozycji
wokół symbolu graficznego (dla tranzycji także wnętrze symbolu),

-

identyfikatory węzłów

p

i,

t

j

są automatycznie numerowane od zera, ale

można je zmieniać z zachowaniem unikalności,

-

w edycji graficznej ważne jest dokonywanie właściwego, wyboru elementu
np. krawędzi lub bliskiej okolicy a nie opisu np. tranzycji.

II.

Tryb symulacji.

Przebieg symulacji można śledzić, zapisywać i odtwarzać zarówno w trybie

ręcznym jak i automatycznym przechodząc wzajemnie z jednego trybu do
drugiego w trakcie symulacji.

1.

Z trybu edycji przechodzi się do trybu symulacji przez menu:

Tools

stepper simulator

a wraca automatycznie przez:
- zamknięcie okna symulacji:

[

Alt+F4

],

[

Ctrl+q

] lub

menu:

File

return to edytor [Ctrl+q]

2. W automatycznym trybie symulacji można wprowadzić opóźnienie zwalniające

szybkość jej wizualizacji przez zaznaczenie w menu :

Mode

firing duration (ms).

na poziome

0, 1, 10, 1000

3. Aktywacja zapisu do pliku namefile.

scn

przez zaznaczenie w menu:

Mode

record history

4. Odtworzenie zapisanej symulacji w menu:

File

open history

wybór

pliku

namefile.

scn

5. Symulacja może być przeprowadzona w trybie sieci czasowej (TPN)

Mode

timed

lub zwykłej (PN)

Mode

untimed

background image

Modelowanie Procesów Dyskretnych

28

6. Inicjalizacja trybu automatycznej symulacji:

- uruchomienie: przycisk [

Rand],

- zatrzymanie:

przycisk [

Stop].

7. Nawigacja:

- przejście na początek [

|<

] zapisanej historii stanów,

- na koniec [

|>

] zapisanej historii stanów,

- przejście do poprzedniego [

<

] następnego

[

>

]

stanu,

- wybrane, istotne stany można zapamiętać wybierając przycisk [

M

]

- zapamiętane stany można

odtworzyć wybierając przyciskiem

[

>>

]

następny zapamiętany stan

lub przyciskiem [

<<

] poprzedni zapamiętany stan.

6. Ręczne sterowanie symulacją.

Jeżeli w trybie zwykłym jest co najmniej jedna przygotowana do przejścia
tranzycja (oznaczona czerwonym tłem ( np:

t0

na Rys 3.21) to można:

- nacisnąć lewy klawisz na aktywnej tranzycji (przygotowanej do przejścia)

wprowadzając chwilowy stan przejściowy, zachodzi zmiana (zmniejszenie)
stanu markowania w miejscach wejściowych aktywnej tranzycji i oznaczenie
jej czerwoną ramką z białym tłem,

- następnie po zwolnieniu klawisza występuje zmiana markowania na wyjściu

oznaczająca osiągnięcie nowego stanu markowania.


W trybie czasowej sieci Petriego dodatkowo występuje ręczne sterowanie
czasem symulacji. Jeżeli nie ma przygotowanej do przejścia tranzycji a
występują tranzycje oznaczone szarym tłem to można przesunąć znacznik czasu
(delay) w sposób skokowy

±±±±

1 lub ciągły do chwili uaktywnienia co najmniej

jednej tranzycji. Czas do momentu uaktywnienia się tranzycji (zmiany stanu)
jest na bieżąco wizualizowany.

background image

Modelowanie Procesów Dyskretnych

29

3.9. Edytor i symulator PIPE

Opisany w poprzednim podrozdziale program ND z pakietu TINA posiada

ciekawe rozwiązania w zakresie śledzenia symulacji szczególnie dla
stochastycznych sieci Petriego, ale ma także wiele ograniczeń np: brak możliwości
ograniczenia ilości znaczników (pojemności miejsc), symulacji sieci kolorowanych
oraz graficznej reprezentacji wyników z analizy sieci.

Drugą propozycją w zakresie symulacji sieci Petriego jest program PIPE

(Platform Independent Petri Net Editor), posiadający bardziej rozbudowaną
funkcjonalność. Program PIPE Rys. 3.22) jest niezależnym od platformy
narzędziem do tworzenia i analizy sieci Petriego a ponadto:

- należy do otwartego oprogramowania (open source),
- posiada przyjazny w użyciu interfejs np.: skalowalną grafikę,
- zawiera wiele modułów do analiz: metody inwariantów, symulacji, przestrzeni

stanów, klasyfikacji, porównań, macierzy incydencji i wektora markowania,

- umożliwia generowanie grafu osiągalności (

coverability tree) -

pokrycia

znakowań pkt 3.7 i Rys. 3.23,

- zapewnia możliwość

symulacji sieci kolorowanych,

- umożliwia eksportowanie sieci Petriego w formacie graficznym.





















Rys 3.22 Ekran programu

pipe

w trybie animacji (bieżącej symulacji)

background image

Modelowanie Procesów Dyskretnych

30


Podstawowy ekran programu w trybie animacji przedstawia Rys 3.22 a wyniki
analiz tej sieci przedstawione są w kolejnych w tabelach.

1. Zbior stabilnych stanów markowania:

Set of Tangible States

P0

P1

P2

P3

P4

P5

P6

P7

M0

0

0

1

0

0

1

0

3

M1

0

0

1

1

0

0

0

3

M2

0

0

1

0

0

1

1

2

M3

0

0

1

0

0

1

2

1

M4

0

0

1

0

0

1

3

0

M5

1

0

0

0

0

1

3

0


2. Średnia liczba i rozkład gęstości znaczników:

Average Number of
Tokens on a Place

Token Probability Density

Place

Number of
Tokens

µ=0

µ=1

µ=2

µ=3

P0

0,1667

P0

0,8333

0,1667

0

0

P1

0

P1

1

0

0

0

P2

0,8333

P2

0,1667

0,8333

0

0

P3

0,1667

P3

0,8333

0,1667

0

0

P4

0

P4

1

0

0

0

P5

0,8333

P5

0,1667

0,8333

0

0

P6

1,5

P6

0,3333

0,1667

0,1667

0,3333

P7

1,5

P7

0,3333

0,1667

0,1667

0,3333


3. Czas trwania i rozkład stabilnych stanów oraz przepustowość czasowa tranzycji

Sojourn times for
Tangible States

Steady State Distribution
of Tangible States

Throughput of Timed
Transitions

Mark Value

Marking Value

Trans

Throughput

M0

0,5

M0

0,1667

T4

0,8333

M1

1

M1

0,1667

T5

0,8333

M2

0,5

M2

0,1667

M3

0,5

M3

0,1667

M4

0,5

M4

0,1667

M5

1

M5

0,1667

background image

Modelowanie Procesów Dyskretnych

31


4. Ogólne parametry czasowe symulacji

State space exploration took 0,304s
Solving the steady state distribution took 0,116s
Total time was 0,504s


Wszystkie wyniki można zapisać w formacie html a analizę sieciową można
rozszerzyć na sieć kolorowaną Rys 3.24





Rys 3.23. Przykładowy graf osiągalności

background image

Modelowanie Procesów Dyskretnych

32


Literatura do rozdz. 3.

1.

Berthomieu B., Vernadat F., The tool TINA. Construction of Abstract State
Spaces for Petri Nets and Time Petri Nets. International Journal of Production
Research, Vol. 42, No 14, July 2004.

2.

Berthomieu B., Diaz M., Modeling and verification of time dependent systems
using time Petri nets. IEEE Transactions on Software Engineering, 17(3),
1991.

3.

Berthomieu B., Vernadat F., State class constructions for branching analysis
of Time Petri nets. Springer Verlag, LNCS, 2003.

4.

Mur

a

t

a

T.,

P

e

tri N

e

t

s

:

pr

ope

rtie

s

, a

n

a

l

y

s

i

s

a

nd a

p

p

li

cat

i

o

n

s

.

Pr

oceed

in

g

s

of t

he

I

EEE

,

1

9

89

,

v

o

l

.

77

.

5.

R

eisig

W

: Sieci

P

e

triego.

WN

T 1

988

Rys 3.24. Kolorowana Sieć Petriego

background image

Modelowanie Procesów Dyskretnych

33

6.

Ross K., Wright C., Matematyka dyskretna. PWN 1996.

7.

Szpyrka M.,Sieci Petriego w modelowaniu i analizie systemów współbieżnych.
WNT, 2008.

8.

Wilson R.,Wprowadzenie do teorii grafów. PWN 1998.


Strona internetowa.

http://pipe2.sourceforge.net/

-

Platform Independent Petri net Editor 2




background image

Modelowanie Procesów Dyskretnych

34

4. JĘZYKI SYMULACYJNE SYSTEMÓW DYSKRETNYCH

4.1 Zastosowanie

Symulacja dyskretna często dotyczy systemów z kolejkowaniem zadań, takich

jak np. kasy w supermarketach czy linie produkcyjne w fabrykach. Symulacja
umożliwia natychmiastowe sprawdzanie nowych konstrukcji maszyn, automatów i
robotów w warunkach ich pracy, łącznie z ich programami sterującymi (tzw.
wirtualne uruchomienie produkcji). Dzięki takiej symulacji możemy dowolnie
testować kolejne zmiany w systemie np. nowe wymiary elementów, parametry czy
procedury pracy i do tego nie zakłócając produkcji rzeczywistych urządzeń. Nowy
program sterujący zostaje przesłany do sterownika rzeczywistego urządzenia
dopiero po jego gruntownym przetestowaniu i przy dziesiątkach tysięcy różnych
parametrów manualne poszukiwanie właściwej konfiguracji systemu może być
bardzo uciążliwe.

Zakres zastosowań jest bardzo szeroki i obejmuje np.: procesy obliczeniowe i

transmisję danych systemach informatycznych, ogólną produkcję i specjalizowane
linie produkcyjne, automatykę i robotykę, logistykę, magazyny, w tym transport
surowców, produktów i towarów, obsługę stanowisk np.: w szpitalach, bankach i
urzędach oraz w innych punktach usługowych a także złożoną sieć linii
komunikacyjnych.

Poprzez wczesne testowanie nowych rozwiązań można zaoszczędzić czas i

pieniądze uzyskując odpowiedź na wiele istotnych pytań: co produkować, gdzie i
kiedy, jak minimalizować koszty prowadzenia działalności z zachowaniem
odpowiedniej jakości i odpowiedniego stopnia zadowolenia klientów lub w jaki
sposób określić najlepsze rozplanowanie środków transportu i personelu - czy
można to samo wykonać np. z mniejszą liczbą maszyn?.

Symulacja pozwala na przetestowanie nowych rozwiązań dotyczących

ulepszenia programów sterujących i optymalizujących tj. zmniejszających ilość
przestojów oraz zwiększających wydajność systemów produkcyjnych, magazynu
czy całego systemu logistycznego. Z punktu widzenia optymalizacji opisana
problematyka często sprowadza się do likwidacji tzw. wąskich gardeł oraz
właściwego rozwiązania ogólnie pojętego problemu obsługi kolejek zadań.

Przykładem może być obsługa kolejki w aplikacji służącej do komunikacji w

firmie, której zadaniem jest usprawnienie telefonicznej obsługi klientów
(http://www.ipfon.pl/callcenter.htm)). Taka usługa pozwala między innymi na tym,
ż

e wielu pracowników - w tym także rozproszonych po całym świecie - może

obsługiwać jedną wspólną linię telefoniczną. Istotne jest w tym przypadku

background image

Modelowanie Procesów Dyskretnych

35

zapewnienie inteligentnego kształtowania obciążenia konsultantów przejawiające
się między innymi w tym, że klienci nigdy nie usłyszą sygnału zajętości a w
zamian za to zostaną wprowadzeni do kolejki i poinformowani o ilości osób
oczekujących na połączenie z konsultantem (agentem) wraz szacowanym czasem
oczekiwania na to połączenie a okres oczekiwania zostanie umilony odsłuchaniem
muzyki. Z drugiej strony konsultant odbierający połączenia może być infor-
mowany o tym, że aktualne połączenie pochodzi z kolejki wraz z podanym czasem
oczekiwania klienta a ponadto może na bieżąco w przeglądarce internetowej
ś

ledzić stan kolejki i decydować o skróceniu czasu rozmowy lub przełączeniu

klienta na innego konsultanta (specjalisty).

Inny przykład kolejkowania dotyczy aplikacji realizującej kopiowanie plików z

serwerów hostujących w warunkach pozwalających na efektywniejsze wyko-
rzystanie internetu przy ograniczonej szybkości transmisji, minimalizacji kosztów i
czasu. Oczywiście ustawianie w kolejce plików oczekujących na skopiowanie nie
przyśpieszy prędkości, która nadal zależeć będzie od lokalnego dostawcy internetu,
ale jednak można oszacować koszty związane z płatnym kontem, ograniczeniem
prędkości, czasem oczekiwania na przyjęcie kolejnego zlecenia i maksymalną
ilością plików ustawionych przez administratora strony dla darmowych kont a
także własnych strat czasu związanych z oczekiwaniem na kolejne pliki i
zatrzymaniem obsługi.

Omawiane przykłady możliwe do symulacji dotyczą ogólnej problematyki

problemów decyzyjnych i szeregowania zadań. Przykładem może być kolejne
opracowanie (http://www.jstor.org/pss/2629693), którego celem jest określenie i
ocena poziomu wykorzystania w szpitalu sal operacyjnych i zaplecza (gabinetów
lekarskich, sal operacyjnych, laboratoriów, pomieszczeń zabiegowych) a także sal
chorych pod różnymi względami mającymi na celu dobro pacjenta. Kryteria oceny
biorą pod uwagę ograniczenia, dotyczące konkretnego szpitala, z którego uzyskano
dane empiryczne, jednak model i podejście zostały zaprojektowane z myślą o
ogólnych zastosowaniach. Model został zaprogramowany w GPSS, w badaniach
symulacyjnych przyjęto losowe wartości parametrów modelu ograniczone otrzy-
manymi z pomiarów zakresami i kryteria optymalizacji, pochodzące z aktywnej
działalności szpitala "w świecie rzeczywistym". Uzyskane wyniki zostały
zastosowane i potwierdziły, że efektywność wykorzystania zasobów może być
uzyskana przy jednoczesnym spełnieniu ograniczeń podyktowanych normalną
działalnością szpitala i koniecznością obniżenia kosztów.

W momencie, podejmowania decyzji, bardzo często nie wiemy, czy ta decyzja

jest optymalna. Dopiero po pewnym czasie, czyli po uzyskaniu większej ilości
informacji, dowiadujemy się o trafności naszego wyboru. Celem może być taka
strategia decydowania, aby zminimalizować straty w pesymistycznym przebiegu
przyszłych wydarzeń.

Tematyka problemów decyzyjnych jest ściśle powiązana ze sferami technologii

informatycznych, ekonomii i zarządzania, dotyczy zagadnień związanych z

background image

Modelowanie Procesów Dyskretnych

36

pozyskiwaniem danych i ich obiektywną analizą, która pozwala na podejmowanie
optymalnych decyzji.

W sferze technologii informatycznych przykładem jest problem kolejkowania

zadań w maszynie wieloprocesorowej. System w momencie uzyskania nowego
zadania do zrealizowania, musi przydzielić mu procesor, który będzie go w stanie
efektywnie zrealizować. Problem polega na tym, że podjęta decyzja może być
nieoptymalna w stosunku do danych nadchodzących w przyszłości, których nie
znamy. W takiej sytuacji, standardowe rozwiązania są nieadekwatne. Potrzebne
jest stworzenie mechanizmów, które dawałyby natychmiastową odpowiedź, nawet
przy niepełnej informacji i minimalizowałyby one straty spowodowane przyszłym,
niekorzystnym scenariuszem wydarzeń. Celem w tym przypadku byłaby minima-
lizacja ilości potrzebnych procesorów oraz optymalizacja czasu i efektywności
systemu. Przykładem z zakresu ekonomii i zarządzania może być problem
zarządzania przepływem produktów w firmie, dopasowania produkcji do potrzeb
rynku, zarządzanie transportem, środkami produkcji, czy też zasobami ludzkimi.
Nieznajomość przyszłych potrzeb rynku, pociąga za sobą brak wiedzy, o tym jak
powinniśmy modyfikować ofertę, a tym samym utratę sprawności i zwiększenie
kosztów w takich czynnościach wewnątrz firmy jak przepływ pracowników,
danych, półproduktów i środków produkcji.

Poza tym utrudnia planowanie w doszkalaniu pracowników i zakupu nowych

urządzeń. Problemy te na ogół są rozwiązywane przez ludzi opierających się na
doświadczeniu i intuicji. To niestety z powodu braku wsparcia oprogramowaniem
opartym na solidnych podstawach teoretycznych prowadzi do utraty optymalności
stosowanych dotychczasowych rozwiązań.

Opracowanie odpowiedniego programu z wykorzystaniem języka symulacyj-

nego może posłużyć w realizacji praktycznych celów. Bazując na nich zaistnieje
możliwość tworzenia oprogramowania wspomagającego mechanizmy decydowa-
nia w firmach i innych organizacjach. Poza tym będą przydatne w komputerowych
systemach wieloprocesorowych usprawniając i zmniejszając koszty działania
systemu.

4.2 Język GPSS

4.2.1 Wprowadzenie

GPSS (ang. General Purpose Simulation Software - pierwotnie Gordon's

Programmable Simulation System) jest językiem programowania stosowanym do
symulacji komputerowej procesów w szczególności procesów dyskretnych. Język
został stworzony w latach 60-tych przez Geoffreya Gordona. Pierwotna nazwa
została zmieniona, gdy zdecydowano się wydać język, jako produkt komercyjny.
Aktualnie są dostępne pełne funkcjonalnie darmowe wersje edukacyjne jedynie o

background image

Modelowanie Procesów Dyskretnych

37

ograniczonej pojemności modelu. Język w jego obecnym kształcie jest wynikiem
ponad kilkudziesięciu lat ewolucji. Podczas gdy GPSS ma swoje korzenie w
początkach systemów typu mainframe, to jego podstawowe idee okazały się
odpowiednie do wykorzystania we współczesnych problemach z wykorzystaniem
nowoczesnych środowisk informatycznych. Popularność GPSS wynika w części, z
dużej mocy wyrażania rzeczywistości (język, reguły składni i semantyki);. Aby
osiągnąć podobny cel krótki i łatwy do zrozumienia model GPSS, wymagałby
wielu stron kodowania w języku algorytmicznym (C, Pascal, Fortran). Użytkownik
pakietu symulacyjnego GPSS może skoncentrować się na istotnych zagadnieniach
dotyczących modelu, ponieważ elementy samego języka zbierają statystyki,
generują tabele wyników i wykonują wiele żmudnych i złożonych zadań.

Język posiada wiele realizacji (GPSS/PC, GPSS/W, GPSS/H), pomiędzy

którymi występują nieznaczne różnice – jednak podstawowe zasady są wspólne.

Symulacja z zastosowaniem języka GPSS, opiera się na metodzie interakcji

procesów, w którym połączono zalety metody planowania z metodą przeglądu i
wyboru zdarzeń zapewniając efektywne obliczenia zarówno dla dużej ilości zadań i
zdarzeń (patrz rozdz. 5). Ogólnie symulacja polega na grupowaniu działań w
procesy wykonywane na pojedynczych dynamicznych obiektach (transakcjach),
które po wprowadzane do systemu, są przekazywane przez kolejne bloki z
rejestrowaniem ich stanu od chwili pojawienia się w systemie aż do chwili zaniku.

Na wstępie omówione zostaną ogólne własności języka i przedstawione

niektóre podstawowe pojęcia, umożliwiające wstępne zrozumienie szerokiego
zakresu zastosowań, mocy i obsługi tego języka w symulacji.

GPSS dostarcza zestaw abstrakcyjnych elementów różnych typów i zestaw

operacji, określanych jako bloki, które wykonują określone czynności dla tych
elementów. Transakcja jest takim elementem, który przechodzi przez ciąg bloków,
wprowadzonych do modelu badanego systemu. Stan elementu modelu określa
szczegóły sposobu działania bloku danego typu. Na przykład blok, który daje
możliwość dla pewnej transakcji na przejęcie kontroli nad wybranym sprzętem nie
pozwoli tego dokonać, jeżeli ten sprzęt jest już w stanie maksymalnej zajętości.

GPSS udostępnia wiele różnych rodzajów obiektów. Obiekt reprezentujący

wyposażenie lub urządzenie (ang. facilities np.: maszyna, procesor, pojazd), może
być w danej chwili używany (zajęty) przez co najwyżej jedną transakcję. Z kolei
obiekt cechujący się pewną ograniczoną pojemnością może reprezentować
magazyn (ang. storage), ale także np.: pamięć, ładowność pojazdu, czyli obiekty,
których pojemność określona jest wymaganiami projektowanego systemu.
Wreszcie, przełącznik logiczny jest prostym elementem (on/off), który może być
ustawiany i testowany w celu dokonania zmiany ścieżki przepływu transakcji
poprzez bloki modelu.

Należy podkreślić, że wszystkie omówione obiekty są abstrakcyjne. W

symulacji konkretnego modelu np. funkcjonowania fabryki, transakcje mogą
stanowić montowane jednostki, urządzenia mogą reprezentować spawającego

background image

Modelowanie Procesów Dyskretnych

38

robota a przełączniki logiczne mogą być wykorzystane do symulacji awarii
maszyny lub do jej sterowania.

W przypadku modelowania sieci szybkiej komunikacji, transakcjami mogą być

przesyłane wiadomości, urządzeniami linie przesyłowe a z kolei magazyny
stanowić bufory pamięci. Niezależnie od zastosowań, obiekty GPSS stanowią
naturalne równolegle działające modele elementów i procesów badanego lub
projektowanego systemu w świecie rzeczywistym.

W trakcie przemieszczania się transakcji poprzez bloki, realizacja określonych

działań na obiektach, jest zapamiętywana w postaci wielu rodzajów statystyk
dostępnych w trakcie symulacji jak i włączanych automatycznie do generowanego
raportu w chwili zakończenia symulacji (np.: średnia ilościowa, średni czas
obecności, wartość maksymalna itp.). Dodatkowe wyniki i raporty są tworzone
przez procesy kolejkowe, które generują odpowiednie raporty statystyczne, takie
jak: maksymalna i średnia długość kolejki, średnie opóźnienie, odsetek transakcji,
które zostały opóźnione lub natychmiast obsłużone. Wyniki są gromadzone w
postaci wartości próbek w tabeli częstotliwości wystąpień (histogramie).

GPSS zapewnia zasadniczy mechanizm kontroli, który gwarantuje, że

współzawodnictwo pomiędzy transakcjami (na przykład za korzystanie z obiektu)
jest arbitralnie rozstrzygane i w ten sposób transakcje są przenoszone przez bloki
modelu w sposób uporządkowany i efektywny. Ten mechanizm kontroli jest
zarządzany także przez zegar GPSS’a, który stanowi podstawę czasu symulacji
modelu

Zegar GPSS’a jest także abstrakcyjny, mierząc czas w umownych jednostkach

zegarowych, interpretowanych odpowiednio przez projektanta. W modelu
procesów produkcyjnych jednostka zegarowa może odpowiadać sekundzie lub
minucie, podczas gdy w sieci komunikacyjnej bardziej odpowiednia może być
wyższa rozdzielczość np. rzędu milisekund. Z kolei w systemie logistycznego
zaopatrzenia będzie wymagana bardzo niska rozdzielczość rzędu godziny lub doby.

Zdefiniowane funkcje wspomagają realizacje różnych relacji w obliczeniach

numerycznych. Mogą one być wykorzystywane do generowania zmiennych
losowych z teoretycznych lub empirycznych rozkładów prawdopodobieństwa.
Zmienne losowe można wykorzystać do zmiany zachowania transakcji w
zależności od zachowania się całego systemu, wybranych obiektów lub atrybutów
transakcji.

Wartości zmienne są używane do wykonywania obliczeń arytmetycznych we

wszystkich implementacjach GPSS, przy czym charakteryzują się one
zróżnicowaną elastycznością w różnych w wersjach języka GPSS. GPSS/W,
GPSS/VX i GPSS/C pozwala na używanie wyrażeń arytmetycznych wszędzie tam,
gdzie jest dozwolone używanie wartości stałych.

Niektóre przypadki modelowanych sytuacji mogą skorzystać z koncepcji

zawartych w grupach jednostek jednakowego typu a w innych sytuacjach korzystne
będzie użycie bloków operujących na pojedynczych elementach.

background image

Modelowanie Procesów Dyskretnych

39

Transakcja ma własny zestaw atrybutów numerycznych oraz prywatną nazwę

parametru, którą można wykorzystać do przechowywania różnych informacji
wymaganych przez użytkownika, takich jak numer identyfikacyjny części, rozmiar
lub waga przedmiotu reprezentowanego przez transakcję.

Szeroki zestaw standardowych atrybutów numerycznych (SNA) zapewnia

wygodny dostępu do automatycznego zapisu składników modelu, które mogą być
używane wszędzie tam gdzie jest dopuszczone użycie wartości numerycznych.
Przykładowo, jeżeli zmienna

Q$OBS

reprezentuje długość kolejki to może być

użyta w prostej sytuacji podjęcia decyzji o wyborze kolejki w bloku testującym

TEST L Q$OBS, FN$DOP, WYJSCIE

Przykładowe parametry bloku TEST pozwalają transakcji na przejście jeśli

aktualna długość kolejki o nazwie OBS jest mniejsza niż wartość zwracana przez
funkcję DOP lub w przeciwnym wypadku przekierowywuje ją do bloku WYJSCIE.
Z kolei funkcja DOP może zwrócić wartość zmiennej losowej o dowolnym
rozkładzie prawdopodobieństwa, wartość zmiennej z pory dnia czasu symulacyj-
nego lub wartość zależną od aktualnego parametru innych urządzeń np pojemności
(reprezentowanej przez parametr transakcji). Pierwszy znak wraz ze znakiem
dolara oznacza odniesienie się do predefiniowanych nazw systemowych SNA.

GPSS zapewnia możliwość interaktywnego śledzenia przebiegu symulacji,

które pozwala na ustawianie pułapek w modelu oraz obserwację parametrów
obiektów modelu podczas krokowego przebiegu symulacji. Każda kolejna wersja
pakietu symulacyjnego opartego na języku GPSS, wprowadza dodatkowe
innowacyjne narzędzia przeznaczone do debugowania i śledzenia symulacji w
sposób coraz bardziej efektywny. Uwarunkowane pułapki i animowane prezentacje
pozwalają na optymalizację procesu projektowania a dla gotowego modelu na
skrócenie rzeczywistego czasu badań symulacyjnych.

Wstępny, prosty przykład pozwoli na zapoznanie się z elementarnymi zasadami

programowania i podstawowymi blokami języka GPSS World. Program modeluje
obsługę sprzedaży biletów dla klientów oczekujących w indywidualnych kolejkach
do trzech kas. Założono że obiekty reprezentują kasjerów biletowych obsługu-
jących transakcje klientów.

Przykład nr 1

01 SIMULATE

02 TSObs EQU 30 ;

sredni czas obsługi

03 DTWej FUNCTION RN1,C3 ;

rozkład równomierny(RN) i ciągły

04 0,4/.5,2/1,1 ;

z 3-ma odcinkami liniowymi(C3)

05 GENERATE 10,FN$DTWej ;

zgłaszanie się klientów

06 QUEUE Kolejka ;

z ustawieniem na koncu

07 SEIZE Kasa ;

zajęcie stanowiska kasowego

08 DEPART Kolejka ;

z opuszczeniem kolejki

09 ADVANCE UNIFORM(2,TSObs-2,TSObs+2) ;

czas obsługi

background image

Modelowanie Procesów Dyskretnych

40

10. RELEASE Kasa ;

zwolnienie kasy

11. TERMINATE 1 ;

zwolnienie jednej transakcji

12. START 100

W kolejnych wierszach modelu o numerach:
0

1.

SIMULATE

- opcjonalna instrukcja oznaczającą początek symulacji,

02.

TSObs EQU

- wartość

TSObs

= 30 to średnia czasu obsługi w kasie biletowej,

03,04. - linie definiują funkcję, która generuje przekształcenie ciągłej zmiennej

losowej z przedziału [0, 1) z pierwszego strumienia rozkładu normalnego
równomiernego (

RN1

), do zależności wg wartości zadanych punktów (z

interpolacją wartości pośrednich),

05. klienci przybywają średnio co 10 jednostek czasu z odchyleniem określonym

przez funkcje w liniach 03 i 04,

06. ustawienie się klienta na końcu kolejki,
07. kiedy kasa jest dostępna

następuje jej zajęcie oraz

0

8. opuszczenie kolejki, z zapisem czasu w statystykach kolejki,

09. zachodzi opóźnienie średnio o

TSObs

jednostek z odchyleniem o 2 jednostki

w obu kierunkach, związane z czasem obsługi klienta w kasie.

10. zwolnienie kasy i z umożliwieniem zajęcia jej przez kolejnego klienta.
11. zakończenie jednego cyklu obsługi klienta.
12. uruchomienie symulacji dla 100 klientów do momentu aż wszyscy zostaną

usunięci z procesu osiągając kolejno blok

TERMINATE

.

W linii 09 okres czasu w którym kasa jest zajęta jest losowo wybrany z

jednakowym prawdopodobieństwem (wg rozkładu równomiernego) z przedziału
od 28 do 32 jednostek a liczba określająca aktualny czas opóźnienia jest pobierana
z drugiego strumienia liczb losowych, a więc w stosunku do czasów wejścia,
czasy opóźnień są statystycznie niezależne.

Standardowy raport zawiera nagłówek, listę nazw stałych przypisanymi wartoś-

ciami i zmiennych z identyfikatorami numerycznymi oraz szereg danych statys-
tycznych z przebiegu symulacji np: ENTRY COUNT – liczba wejść do każdego
bloku, nazwa kolejki (QUEUE) i maksymalna jej długość.

GPSS World Simulation Report - s0bilet

Saturday, October 15, 2010 01:19:58

START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 2998.582 7 1 0

NAME VALUE
DTWEJ 10001.000
KASA 10003.000
KOLEJKA 10002.000
TSOBS 30.000

background image

Modelowanie Procesów Dyskretnych

41


LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 136 0 0
2 QUEUE 136 35 0
3 SEIZE 101 1 0
4 DEPART 100 0 0
5 ADVANCE 100 0 0
6 RELEASE 100 0 0
7 TERMINATE 100 0 0

FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
KASA 101 0.997 29.589 1 101 0 0 0 35

QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
KOLEJKA 36 36 136 1 18.097 399.009 401.965 0

W modelu może być wiele równolegle przebiegających procesów w odrębnych

segmentach, ale pomiędzy nimi mogą występować wzajemne interakcje a o tym
który proces decyduje o zakończeniu symulacji określa sposób usuwania transakcji
w bloku

TERMINATE.

Ponadto w przypadku konieczności wyboru decyzji o

pierwszeństwie wykonania operacji można określić jej priorytet. Omówione
problemy wyjaśnia prosty przykład:
Przykład nr 2;

;

proces 1 który decyduje o zakonczeniu symulacji

;

gdy inny nie zmienia swojego licznika

01 GENERATE 10,0 ;

wprowadza co 10 jedn. z priorytet domyslny 0

02 TERMINATE 1 ;

zmienia (dekrementuje) licznik tranzycji

;

proces 2 – równoległy

03 GENERATE 20,0,,,-1 ;

priorytet niższy = -1 wprowadzi 49 transakcji

;

LUB po zmianie priorytetu

;

GENERATE 20,0,,,1

;

priorytet wyższy =1 wprowadzi 50 transakcji

05 TERMINATE ;

bez zmainy licznika - proces 1 decyduje o końcu symulacji

06 START 100 ;

zakonczenie symulacji po 1000= 100x10 jedn. czasu


Zakończenie symulacji następuje po upływie 1000 jedn. czasu ponieważ decyduje
o tym obsłużenie 100 transakcji procesu 1 w odstępach 10 jednostek czasu.

4.2.2 Opis podstawowych elementów języka GPSS ver World

Pełny opis języka zawiera ponad kilkadziesiąt instrukcji, z których większość

ma od 2 do 7 parametrów. Jest to wiedza, która może być wykorzystana tylko po
jej bardzo dobrym opanowaniu i będzie użyteczna w przypadku modelowania
złożonych i skomplikowanych procesów - wymaga sporego niekiedy długotrwa-
łego procesu szkolenia i praktycznego doświadczenia. Poniżej przedstawione

background image

Modelowanie Procesów Dyskretnych

42

zostały tylko najbardziej podstawowe i najczęściej używane elementy języka oraz
ogólne zasady jego używania, których zastosowanie będzie wystarczające do
rozwiązania załączonych zadań. Pełny opis parametrów wraz z przykładami
załączono w pkt 6. Z kolei kompletny opis języka, można znaleźć w bogatej
dokumentacji dołączonej do pakietu GPSS World.

Transakcje (ang. Transaction)


Transakcja jest dynamicznym obiektem o ściśle określonym zbiorze atrybutów

(w GPSS Parameters). Transakcje są tworzone pojedynczo lub w zestawach w
bloku GENERATE a następnie podzas symulacji przechodzią przez kolejne bloki
niekiedy wraz z innymi jednostkami GPSS. W zestawie transakcja może się
składać z wielu identycznych elementów np: kilka towarów transportowanych
przez pojazd.

Sposobem na identyfikację transakcji w systemie (procesie) rzeczywistym i tym

samym na jej reprezentację po wprowadzeniu do modelu GPSS jest jej słowny
sposób opisu. Opis takie zawiera często użycie z czasownika np. jak: "wejście do
czegoś”, „przejście przez coś”, „zgłosić się do czegoś”, itp”. Ten czasownik może
reprezentować typ bloku w GPSS jak np w zdaniu, „Transakcja zajęła urządzenie”
(ang. Transaction SEIZE’s Facility), która bezpośrednio reprezentuje operację na
typie bloku SEIZE. Każda transakcja aktualnie podczas symulacji może być w
dokładnie jednym bloku, ale większość bloków może zawierać wiele transakcji.
Każda transakcja zajmuje jeden blok, potem następny i tak dalej, aż do jej
usunięcia (ang. TERMINATE) lub zakończenia symulacji. Transakcje czasami są
w stanie oczekiwania przed blokiem, aż odpowiednie korzystne warunki zostaną
spełnione uprawniające do jego zajęcia. Bloki zapisane w kolejnych liniach
programu GPSS przepuszczają kolejne transakcje, pod warunkiem, że nie natrafią
one na blok TRANSFER, który może ją przesłać do innego bloku nie będącego w
aktualnej sekwencji.


Systemowe atrybuty numeryczne (SNA)

Systemowe atrybuty numeryczne (SNA - System Numerical Attribute) są pre-

definiowanymi zmiennymi opisującymi ogólny stan symulacji (np.: symulowany
czas) a także związanymi z większością bloków (np. długością kolejki w bloku
QUEUE). Zmienne SNA udostępniają wartości numeryczne lub łańcuchowe i
mogą być stosowane w instrukcjach i wyrażeniach GPSS. Są one ściśle związane z
obiektami więc ich znaczenie najlepiej poznawać równocześnie z opisem tych
obiektów.

background image

Modelowanie Procesów Dyskretnych

43

Obiekty blokowe

Obiekt blokowy (ang. Block entity) jest podstawowym elementem

strukturalnym programu symulacyjnego. Określenie to jest związane z możli-
wością przedstawienia programu symulacyjnego w postaci schematu blokowego
(patrz rozdz. 4.5). Bloki są identyfikowane poprzez nazwy, które sugerują ich
zastosowanie w realizacji pewnych akcji np: generowanie, zajęcie lub zakończenie
zwykle napisane dużymi literami odnoszą się odpowiednio do bloków
GENERATE, SEIZE i TERMINATE. Każdy z bloków ma listę argumentów
oddzielonych przecinkami. Kolejność pozycji argumentów będzie oznaczony
dużymi literami alfabetu w zwykłym porządku alfabetycznym. Bloki mogą mieć
opcjonalnie unikalne etykiety, których nazwy można wykorzystać w sugerowaniu
wykorzystania tego bloku w procesie rzeczywistym. Składnia bloku.

etykieta

TYPBLOKU A, B, C, ...

;

komentarz po średniku

Argumenty, które mogą być pominięte przyjmują domyślne wartości ale ich

pozycje muszą być zaznaczone przez przecinki. Wyjątkiem jest możliwość
pomijania argumentów domyślnych od końca listy np w przykładzie nr 2 linia 03.
Oznacz to, że gdy wszystkie argumenty końcowe są nieistotne lub domyślne to
mogą być pominięte wraz z przecinkami.

Lista i opis podstawowych (najczęściej używanych bloków)


GENERATE
- blok tworzący transakcje, będą się pojawiały w symulacji w
określonym odstępie czasowym, ilości i z określonym priorytetem (w nawiasach
podano domyślne wartości).

GENERATE A,B,C,D,E

A – czas pomiędzy dwoma kolejnymi transakcjami (odstęp), (A=0)
B – rozrzut, (odchylenie, tolerancja) dla wartoći A, która jest wartością średnią

równomiernego rozkładu prawdopodobieństwa (B=0)

C – opóźnienie dla pierwszej transakcji,
D – maksymalna liczba ograniczająca liczbę wprowadzonych transakcji, (D =

)

E – priorytet transakcji (E = 0 do 9)
Przykłady
GENERATE 50

;

transakcja jest generowana w odstępie co 50 jedn. czasu

GENERATE 20, 2.5 ;

odstęp czasu losowy o rozkładzie równomiernym w

;

przedziale [17.5, 22.5] lub 20

±

2.5

GENERATE (EXPONENTIAL(nr,

λ

,

β

)) ;

z parametrami rozkładu ekspotencjal-

;

nego

f(x) = 1/

β

exp(- (x-

λ

) /

β

)

GENERATE , , , 1

;

wygenerowanie pojedynczej transakcji

background image

Modelowanie Procesów Dyskretnych

44

ASSIGN – blok przypisujący lub modyfikujący wartość parametru transakcji, -
jeżeli parametr nie istnieje to jest on tworzony:
ASSIGN A, B, C

A - numer parametru lub nazwa aktywnej transakcji opcjonalnie zakończona

znakiem + lub -, znak +/- oznacza, że wartość argumentu B należy
odpowiednio dodać do / odjąć od oryginalnej wartości parametru A.

B - wymagany argument (nazwa, numer, string, wyrażenie w nawiasach lub SNA)
C - opcjonalna nazwa funkcji, której wartość będzie mnożona przez B.

Przykłady

ASSIGN Licz+, 1

;

inkrementacja licznika Licz o 1

ASSIGN P1, 10

;

pierwszemu parametru transakcji przypisano wartosc 10


Stanowisko obsługi jednokanałowej - FACILITY

Stanowisko obsługi jest obiektem, posiadającym kilka cech, z których

najważniejszym jest własność zajętości. Stanowisko jest tworzone automatycznie
gdy pierwsza transakcja osiągnęła blok, który korzysta z tego stanowiska.
Stanowiska nie muszą być deklarowane i definiowane przez instrukcje sterujące.
GPSS posiada kilka bloków, które używają i wykonują akcje dotyczące stanowisk:

SEIZE A

- zajęcie stanowiska jednokanałowego A;

RELEASE A

- zwolnienie stanowiska jednokanałowego A.

A - nazwa lub numer stanowiska,urządzenia lub wyposażenia

Przykłady:

SEIZE Kasa

;

ustawienie się przy okienku o nazwie Kasa

RELEASE Kasa

;

odejście od okienka o nazwie Kasa

FAVAIL A - udostępnienie urządzenia jednokanałowego A (Facility AVAILable).
Przykład:

FAVAIL Kasa1 ;

ustawienie dostępności do stanowiska Kasa1.


FUNAVAIL (F
acility UNAVAILable) ustawianie

niedostępności

(blokada)

urządzenia jednokanałowego i określenie dalszego losu tak zatrzymanej
transakcji.

FUNAVAIL A,B,C,D,E,F,G,H - zablokowanie stanowiska jednokanałowego

A – nazwa urządzania, stanowiska jednokanałowego
B – tryb traktowania transakcji: usunięcie (RE), kontynuacja (CO),
C – nr bloku dla przerwanej transakcji,
D – nr parametru przechowującego czas pobytu (gdy RE),
E – tryb traktowania dla wywłaszczonych transakcji (RE, CO),
F – nr bloku dla wywłaszczonej transakcji,
G – tryb traktowania dla transakcji opóźnionej,
H – numer bloku dla transakcji opóźnionej

background image

Modelowanie Procesów Dyskretnych

45


Przykłady:

A B C D E F G H

FUNAVAIL Kasa1, RE, Kasa2, 30, RE, Rez, CO

Ustawienie niedostępności do stanowiska Kasa1.

C = Kasa2 - transakcja z Kasa1 jest przesyłana do bloku Kasa2,
D = 30 – parametr który przechowuje czas pobytu transakcji,
F = Rez - transakcje wywłaszczone wcześniej są przesyłane do bloku Rez

FUNAVAIL Kasa ; ustanowienie niedostępności stanowiska Kasa

Standardowe Atrybuty Numeryczne (SNA) – dla stanowiska jednokanałowego

FNrObiektu - zwraca stan zajętości stanowiska
FnrObiektu - zwraca wartość 1 gdy stanowisko jest aktualnie zajęte

oraz wartość 0 w przeciwnym wypadku

NrObiektu - symbol oznaczajacy liczbę/ nazwę obiektu.

Stanowisko wielokanałowe (grupa urządzeń) - STORAGE

Stanowisko wielokanałowe jest złożone z wielu nierozróżnialnych i równo-

uprawnionych jednostek pozwalających na obsługę wielu transakcji. Stanowisko
musi być jawnie zadeklarowane z podaniem rozmiaru przez instrukcję:
Nazwa STORAGE A

Nazwa - obowiązkowa etykieta reprezentująca identyfikator stanowiska
A – wymagany rozmiar (pojemność, ilość stanowisk, liczba jednostek składo-

wania itp., dostępnych dla transakcji).

Bloki GPSS, które mogą obsługiwać stanowiska wielokanałowe:

ENTER
A,B uwarunkowane wejście i zajęcie stanowiska wielokanałowego
A - nazwa (identyfikator) stanowiska wielokanałowego

B - zajęcie B jednostek (domyślnie 1) ;
Warunki zajęcia to wolne B jednostek stanowiska i jego dostępność stanowiska A


LEAVE
A,B - zwolnienie stanowiska wielokanałowego

A - nazwa (identyfikator) stanowiska wielokanałowego
B - zwolnienie B jednostek (domyślnie B=1) ;


SUNAVAIL
A - blokuje stanowisko wielokanałowe (jest niedostępne)

A - nazwa (identyfikator) stanowiska wielokanałowego


SAVAIL
A - odblokowanie stanowisko wielokanałowego ( jest udostępnione)

A - nazwa (identyfikator) stanowiska wielokanałowego


Ogólnie bloki ENTER i LEAVE maja po dwa argumenty, z których pierwszy

jest wymagany i wskazuje stanowisko wielokanałowe, które jest odpowiednio

background image

Modelowanie Procesów Dyskretnych

46

zajmowane i zwalniane, natomiast drugi to liczba zajmowanych i zwalnianych
przez transakcję kanałów. Jeżeli tylko jeden kanał ma być zajęty lub zwolniony to
drugi argument można pominąć.

Bloki SAVAIL i SUNAVAIL wymagają tylko jednego argumentu, który repre-

zentuje blokowane i udostępniane stanowisko wielokanałowe. Gdy transakcja
pojawi się na wejściu do stanowiska wielokanałowego wykorzystuje (zajmuje)
jeden lub więcej kanałów określonych przez argument B. Transakcja może mieć
zakazane wejście do bloku ENTER jeśli on nie spełnia warunków obsługi.
Transakcja jest zatrzymana i oczekuje do czasu aż inne transakcje zwolnią kanały
przez wejście do bloku LEAVE.

Praktycznie bloki ENTER i LEAVE są używane do aktualizacji statystyk

związanych z obsługą stanowisk wielokanałowych, szereg zmiennych SNA służy
do ich zapamiętania np są to:
RNrObiektu – pozostała do wykorzystania (Rest) przez transakcje ilość kanałów
na stanowisku wielokanałowym NrObiektu,
SNrObiektu – użyta (zmagazynowana – Store) aktualnie ilość kanałów przez

transakcje na stanowisku wielokanałowym NrObiektu,

SANrObiektu – średnia użyta (zmagazynowana – Store Average) aktualnie ilość

kanałów przez transakcje na stan. wielokanałowym NrObiektu,

SCNrObiektu – ilość użytych kanałów (Store Count) na stanowisku

wielokanałowym NrObiektu,

SENrObiektu – sprawdza niedostępność stanowiska (Store Empty) przyjmując

wartość równą 1 jeśli stanowisko wielokanałowe NrObiektu jest całkowicie
niewykorzystane a wartość 0 w przeciwnym przypadku,

SFNrObiekt – sprawdza dostępność stanowiska (Store Full) przyjmując wartość

równą 1 jeśli stanowisko wielokanałowe NrObiektu jest całkowicie
wykorzystane a wartość 0 w przeciwnym przypadku,

SRNrObiekt – stopień wykorzystania (Utilization) stanowiska wielokanałowego

NrObiekt określający stosunek średniego czasu w którym stanowisko było
zajęte do całkowitego czasu symulacji wyrażona w postaci ułamka tysięcznego

SMNrObiekt - Maksymalna ilość kanałów używana na stanowisku

wielokanałowym NrObiektu,

STNrObiektu - Średni czas zajętości dla pojedynczego kanału używanego na

stanowisku wielokanałowym NrObiektu,

SVNrObiekt - Sprawdza dostępność stanowiska (Store Full) przyjmując wartość

równą 1 jeśli stanowisko wielokanałowe NrObiektu jest dostępne a wartość 0
w przeciwnym przypadku.


Kolejki i bloki kolejek

Kolejki są używane głównie do zbierania danych statystycznych, takich jak

aktualna długość, ilość wejść, średni czas pobytu i inne. Śledzą one także
transakcje, które są zablokowane przed wejściem na zajęte stanowisko

background image

Modelowanie Procesów Dyskretnych

47

jednokanałowe i pełne stanowisko wielokanałowe. Analogicznie jak stanowisko
jednokanałowe kolejka jest tworzona gdy pierwszy obiekt transakcji osiągnie blok,
który używa kolejki. Kolejkę obsługuje dwuargumentowy blok QUEUE, w którym
zachodzi wzrost zawartości obiektów oraz DEPART, w którym, zachodzi
zmniejszenie zawartości obiektów w kolejce.

QUEUE

A,B – wejście do kolejki

A - nazwa lub numer z kolejki
B - opcjonalna liczba obiektów (domyślnie 1) wchodząca do kolejki A

DEPART A,B

A - nazwa lub numer z kolejki
B - opcjonalna liczba obiektów (domyślnie 1) wychodząca z kolejki A

Bloki z obsługą kolejki są ściśle jest związane z blokami obsługi stanowisk i ich
operacje są naprzemienne tj. SEIZE lub ENTER pomiędzy QUEUE i DEPART a
następnie RELEASE lub LEAVE. W w/w przykładzie nr 1 dotyczącym obsługi w
kasie biletowej osoba w kolejce (linia 08) opuszcza ją dopiero po pomyślnym
podejściu do kasy (linia 07).

Z obsługą kolejek związanych jest szereg zmiennych SNA, które są używane do
generowania danych statystycznych.
Przykładowo są to:

QNrObiektu - aktualna długość kolejki NrObiektu określona przez licznik ilości

transakcji

QANrObiektu - średnia ważona w czasie długość
QCNrObiektu - suma wszystkich wejść do kolejki NrObiektu.
QMNrObiektu - maksymalna długość kolejki NrObiektu
QTNrObiektu - średni czas pobytu transakcji w kolejce NrObiektu z

uwzględnieniem wszystkich transakcji.


QTABLE
- deklaracja i inicjalizaja parametrów dla danych statystycznych
gromadzonych w postaci rozkładów częstotliwości
Nazwa QTABLE A, B, C, D

A - nazwa bloku kolejki
B - górna granica zapisu pierwszego zakresu częstotliwości.
C - rozmiar zakresu częstotliwości.
D – ilość zakresów częstotliwości.


ADVANCE
Blok ADVANCE jest jedynym blokiem, który jest ściśle związany z postępem
czasu. Gdy transakcja dochodzi do bloku ADVANCE jest ona opóźniana o
określoną ilość czasu symulacyjnego a następnie przechodzi do następnego bloku.
Składnia bloku jest następująca:

background image

Modelowanie Procesów Dyskretnych

48

ADVANCE A, B

A - wymagany średni przyrost czasu.
B - opcjonalnie rozrzut, odchylenie, tolerancja dla wartości A która jest
wartością średnią rozkładu równomiernego, (B=0)

Przyrost czasu można określić na kilka sposobów. Jeśli jest tylko argument A to
określa on deterministyczny przyrost czasu. Jeśli są oba argumenty A i B a B nie
jest funkcją to przyrost czasu jest liczbą losową z przedziału A - B i A + B
włącznie. Jeśli B jest funkcją to jej wartość po pomnożeniu przez argument A
określa przyrost czasu, który może być zależny od innych zmiennych w symulacji.


FUNCTION
Funkcje GPSS funkcji są używane do określenia wartości na podstawie innych
argumentów np. liczb losowych i wartości systemowych SNA. Funkcja jest
określona przez linię nagłówka z poleceniem FUNCTION z parametrami i
ewentualnym komentarzem oraz w kolejno następujących po sobie liniach
specyfikację danych w postaci pary wartości x, f(x) oddzielonych znakiem / .
Nazwa FUNCTION A, B

; komentarz

x1,y1 / x2,y2 ...

... xn,yn

A – argument (zmienna niezależna - wejściowa)
B – oznacza typ funkcji i liczba par, która pojawią się w specyfikacji danych
będących liczbami stałymi, nazwami lub zmiennymi SNA.
Istnieje 5 różnych typów argumentów funkcji, z których najczęściej ma
zastosowanie typ C gdzie funkcja jest ciągła z interpolowanymi liniowo
wartościami pośrednimi lub typ D dla dyskretnych wartości funkcji gdzie każda
wartość argumentu lub gęstości prawdopodobieństwa ma przypisaną osobną
wartość.
Dla typu C jeśli argument zawarty jest w określonym segmencie linii, to jest
wykonywana interpolacja liniowa. Na przykład dla funkcji

Output FUNCTION V$Input,C5
1.1,10.1/20.5,98.7/33.3,889.2
93.5,2003/200.4,8743
jeśli V$Input wynosi 25, to FN$Output zwraca wynik obliczenia:

98,7 + (889.2-98.7) * (25-20.5) / (33.3-20.5).


Sterowanie kolejnością przepływu transakcji.
TRANSFER
Blok TRANSFER A,B,C umożliwia przeskok transakcji do innego bloku nie
będącego w sekwencji. Może on być: bezwarunkowy, warunkowy lub
probabilistyczny. Ogólnie tryb działania pracy dotyczący transferu określa
parametr A a B i C to numery bloków lub ich lokalizacje.
Tryb bezwarunkowy:

background image

Modelowanie Procesów Dyskretnych

49

Parametr A – jest pusty a aktywna transakcja zawsze przechodzi do bloku B -
transakcja nigdy uzyskuje odmowy wejścia do bloku TRANSFER ale jeśli
dostaje odmowę wejścia do bloku docelowego B to pozostaje w bloku
TRANSFER.

Tryb losowy:

Parametr A określa prawdopodobieństwo (0–1) przy którym aktywna transakcja
przechodzi do bloku określonego argumentem C oraz z prawdopodobieństwem
1–A do bloku określonego przez operand B. Jeśli parametr B jest pusty to
transakcja przechodzi do następnego bloku sekwencyjnego (NSB) - jest to
najczęstsze zastosowanie bloku TRANSFER.

Tryb warunkowy:

Gdy parametr A jest równy BOTH to blok określony przez parametr B jest
testowany i gdy są warunki na przyjęcie aktualnej transakcji to następuje jej
przejście do tego bloku W przeciwnym wypadku testowany jest blok C i on
przejmuje transakcję. Kiedy żaden ze wskazanych bloków nie może przejąć
transakcji, czeka ona w bloku TRANSFER na spełnieni któregokolwiek warunku

Składnia:
TRANSFER A,B,C

A – brak parametru oznacza przejście bezwarunkowe do etykiety w parametrze B

albo słowo BOTH (przejście warunkowe) albo wartość prawdopodobieństwa
przejścia np wartość p,

B – etykieta przejścia bezwarunkowego albo pierwsza etykieta dla przejścia

warunkowego albo etykieta przejścia o prawdopodobieństwie 1-p dla transakcji,

C – druga etykieta przejścia (przejście warunkowe) albo etykieta przejścia o

prawdopodobieństwie p

Przykłady
TRANSFER , Wyjscie ; przejście bezwarunkowe do bloku z etykietą Wyjscie
TRANSFER BOTH, S1,S2 ;przejście warunkowe – w pierwszej kolejności

; do bloku z etykietą S1, a gdy jest niemożliwe do bloku z etykietą S2

TRANSFER .35, S1, S2 ; przejście losowe z prawdopodobieństwem 0.65
; do bloku z etykietą S1 i z prawdopodobieństwem 0.35 do bloku z etykietą S2

TEST
Blok TEST porównuje wartości, zwykle zmienne SNA i steruje przejściem
transakcji na podstawie wyników porównania z użyciem zwykłych operatorów
relacyjnych. Jest to kolejny sposób, aby umożliwić niesekwencyjne działania
symulacji. Składnia bloku testującego ma postać:
TEST O A, B, C - sterowanie przejściem transakcji z badaniem warunku;

O – operator warunkowy, typ relacji (G, GE, E, NE, LE, L),

Oznaczenia:
G – większe; GE – większe lub równe; E – równe; NE – nierówne;
LE – mniejsze lub równe; L – mniejsze

background image

Modelowanie Procesów Dyskretnych

50

A – pierwszy argument relacji (nazwa/numer obiektu, wartość wyrażenia),
B – drugi argument relacji (nazwa/numer obiektu, wartość wyrażenia),
C - etykieta (numer) bloku dla przypadku False.

Przykłady:
TEST LE Q$S1,4,KONIEC

;

zajęcie stan. S1, gdy kolejka przed nim jest nie

większa od 4; w przeciwnym przyp. przejście do bloku z etykietą KONIEC

TEST E Steruj, 3, Transport

;

gdy kod sterowania Steruj jest równy 3 to

transakcja przechodzi dalej, jeżeli nie, to idzie do bloku Transport


GATE
Blok GATE podobnie jak TEST steruje przejściem transakcji ale na podstawie
stanu urządzeń jest to następny sposób, na niesekwencyjne działanie symulacji.
Składnia bloku testującego ma postać:
GATE O A,B Sterowanie przepuszczeniem transakcji z badaniem warunku;
O – operator warunkowy, kodowanie stanu urządzenia
(FNV, FV, I, LS, LR, M, NI, NM, NU, SE, SF, SNE, SNF, SNV, SV, U),
A – nazwa lub numer obiektu testowanego,
B – etykieta (numer) bloku dla przypadku nieprawdy . Oznaczenia:
Stanowisko Facility:
FNV/FV– (nie)dostępne; NI/I – (nie)jest w przerwaniu; NU/U – (nie)jest w użyciu
Przełącznik Logic switch: LS / LR – ustawienie/ zerowanie
Blok MATCH: NM /M– (nie) posiada powiązaną(ej) transakcję(i)
Stanowisko Storage:

SE/SF –jest puste/pełne; SNE/SNF – nie jest puste/pełne ;

SNV/ SV –(nie)jest dostępne; (nie to samo co pełne/puste);

Przykłady
GATE SNF Susz ;Zajęcie stanowiska Susz, gdy jest ono puste (Storage Not Full)
GATE NU Kasa1,Kasa2 ; Przejście do Kasa1, gdy jest wolna (NotUsed) , a w
przeciwnym przypadku przejście do stanowiska Kasa2
4.2.3 Przykłady programów

Przykład nr 3.
Prosty przykład harmonogramu produkcji częsci przedstawia Rys. 4.1. Surowiec
do produkcji z magazynu wejściowego jest podawany kolejno na transporter co 9
min. Następnie jest on po uchwyceniu przez robota, obrabiany mechanicznie i
malowany przez okres 12 min po czym robot jest zwalniany poprzez pozostawienie
części do wysuszenia na wolnym stanowisku w suszarce na okres 27 min. W celu
zwiększenia przepustowości suszarka może pomieścić równocześnie 2 części.
Gotowe części są wyprowadzane do magazynu wyrobów gotowych. Należy
napisać program modelujący opisany proces w języku GPSS zakładając, że
1. suszenie będzie modelowane blokiem 2-kanałowym w przeciwieństwie do 1-
kanałowej obróbki.
2. symulacja będzie przeprowadzona dla czterech 4 identycznych części

background image

Modelowanie Procesów Dyskretnych

51

3. długość kolejki na transporterze będzie zarejestrowana na wykresie do 20 min
4. proces rozpoczyna się w pierwszej minucie czasu symulacji.

















Rys 4.1 Przykład harmonogramu produkcji

Rozwiązanie - program

; Produkcja (kolejka, stanowiska jedno i wielokanałowe)

Susz STORAGE

2

;

2 stanowiska do suszenia

GENERATE

9,,1,4

;

co 9 min, od 1 min, 4 zadania

QUEUE

Transp

;

zajęcie miejsca na transporterze

SEIZE

Obrab

;

zajęcie obrabiarki

DEPART

Transp

;

zwolnienie miejsca na transporterze

ADVANCE

12

;

obróbka w czasie 12 min.

ENTER

Susz

;

zajęcie suszarki

RELEASE

Obrab

;

zwolnienie obrabiarki

ADVANCE

27

;

malowanie i suszenie (27 min.)

LEAVE

Susz

;

zwolnienie suszarki

TERMINATE 1

;

zakończenie zadania

START

4

;

uruchomienie symulacji dla 4 zadań

z1

z2

z3

z4

Kolejka
transporter

z1

z2

z3

z4

1

13

25

40

z1

z2

z4

Obróbka mechaniczna
1 obrabiarka

52

13

25

40

52

67

79

z1

z2

z3

z4

0

z1

z2

z3

z3

1

10

19

28

45

75

60

90

malowanie i
suszenie
2 stanowiska

Otoczenie
magazyn
produktów

Otoczenie systemu
magazyn cz

ęś

ci

z4

czas

?

background image

Modelowanie Procesów Dyskretnych

52

Standardowy raport z symulacji

GPSS World Simulation Report – Prod3.12.1 Tue, Oct 18, 2010 00:18:21

START TIME END TIME BLOCKS FACILITIES STORAGES

0.000 79.000 10 1 1

NAME VALUE

OBRAB 10002.000

SUSZ 10000.000

TRANSP 10001.000

LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

1 GENERATE

4

0

0

2 QUEUE

4

0

0

3 SEIZE

4

0

0

4 DEPART

4

0

0

5 ADVANCE

4

0

0

6 ENTER

4

0

0

7 RELEASE

4

0

0

8 ADVANCE

4

0

0

9 LEAVE 4

0

0

10 TERMINATE

4

0

0

FACILITY ENTR UTIL. AVE. T.AVAIL. OWNER PEND INTER RETRY DELAY

OBRAB 4 0.646 12.750 1 0 0 0 0 0

QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY

TRANSP 1 0 4 1 0.266 5.250 7.000 0

STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY

SUSZ 2 2 0 2 4 1 1.367 0.684 0 0



Na Rys 4.2 przedstawiono graficzne wyniki symulacji przykładu 3.

background image

Modelowanie Procesów Dyskretnych

53

Pozostałe przykłady objaśniające inne bloki a w szczególności dotyczące bloków
sterujących są zawarte i dostępne w plikach źródłowych na serwerze w katalogu do
ć

wiczeń oraz opisane w rozdz. 4.3. Ponadto należy skorzystać z dostępnego na

serwerze szczegółowego podręcznika i pomocy do wersji GPSS World.

Złożoność języka GPSS, konieczność pamiętania składni kilkudziesięciu bloków, z
których większość posiada wiele parametrów, powoduje że język ten traci na
popularności. Z drugiej jednak strony konieczność symulacji procesów
dyskretnych a szczególności procesów obsługi masowej jest coraz powszechniejsza.
Obserwuje się zatem pojawianie się na rynku coraz większej ilości aplikacji o
bardziej przyjaznej obsłudze, korzystającej z graficznego środowiska 3D
prowadzonej z powodzeniem przez osoby nie pracujące bezpośrednio w branży IT
(np. Flexim

http://www.flexsim.com/flexsim

),.


Rys 4.2 Wyniki symulacji - zajętość transportera w przykładzie nr 3

background image

Modelowanie Procesów Dyskretnych

54

4.3 Przykłady do ćwiczeń i tematy zadań

Zadania powinny być wykonywane kolejno a wyniki zapisywane w plikach
ź

ródłowych z numerami zadań w postaci

zad

nr

.gps

i w raportach

zad

nr

.gpr

1. Obsługa stanowiska jednokanałowego z zadaną ilością zakończonych zadań

Problem: Ile wynosi czas obsługi i maksymalna długość kolejki w myjni
samochodowej dla 100 klientów napływających w sposób równomierny w
przedziale od 2 do 12 minut. Czas mycia samochodu (z manewrowaniem) wynosi
3 - 9 min. Rozwiązanie - Przykład programu w pliku Myjnia01

Zad 1.0 Napisz program symulujący pracę drukarki dla 20 plików jako urządzenia

jednokanałowego pobierającego pliki do drukowania z kolejki FIFO na
serwerze wydruku. Kolejka ma nieograniczoną pojemność, wydruki nadchodzą
w przedziale czasu od 5 do 10 min, a czas wydruku wynosi od 10 do 20 min

2. Obsługa z zadanym czasem stanowiska jednokanałowego

Zad 2.0 Napisz program symulujący 10 godz. pracę obsługi drukarki (w tym

20+60+20 min przerw) jako urządzenia jednokanałowego pobierającego pliki
do drukowania z kolejki FIFO zorganizowanej na serwerze wydruku. Kolejka
ma nieograniczoną pojemność, wydruki nadchodzą w przedziale czasu od 5 do
10 min, a czas wydruku wynosi od 10 do 20 min
Wskazówka - zastosować bloki z przykładu Myjnia01
Zdefiniować proces symulacji czasu złożony z jednego zadania o odpowiednim
czasie trwania i priorytecie 5

Zad 2.1 Modyfikacja Zad 2.0 - Zmiana (uproszczenie) generacji czasu symulacji -

uprościć usuwając blok opóźniający, pozostawić pozostałe parametry bez
zmian


Zad 2.2 Modyfikacja Zad 2.1 - Zwiększenie dokładności pomiaru czasu - zmiana

jednostki czasu na 0.1 min


Zad 2.3 Modyfikacja Zad 2.2 - Dwukrotne zwolnienie (w stosunku do zad 2.2)

zmniejszenie ilości nadchodzących zadań w jednostce czasu,


Zad 2.4 Modyfikacja. Zad 2.3 Dwukrotne przyspieszenie (w stosunku do zad 2.2)

zwiększenie częstości (ilości jw. porównać wyniki )


background image

Modelowanie Procesów Dyskretnych

55

3. Obsługa stanowiska wielokanałowego (o identycznych parametrach )

Przykład obsługi myjni na jednym z wielu identycznych stanowisk Myjnia03)

Zad 3.0 Modyfikacja Zad 2.4 symulacja 8 godz. pracy urządzeń wielokanałowych

zespołu 3 drukarek DRUK Symulacja wydruku zadań na jednej pierwszej
wolnej drukarce wybranej z zespołu 3 identycznych drukarek

Wskazówka - zastos: STORAGE, ENTER, LEAVE (patrz Myjnia03.gps)
Zad 3.1 Modyfikacja Zad 3.0 - uszkodzenie (brak) jednej drukarki w zespole
Zad 3.2 Modyfikacja Zad 3.0 - uszkodzenie (brak) dwóch drukarek (porównać

wynik z Zad 2 o tych samych parametrach )

Zad 3.3 Modyfikacja Zad 3.0 - wszystkie drukarki po pierwszym wydruku

zatrzymują się

Zad 3.4 Modyfikacja Zad 3.0 - wprowadzenie nowego procesu obsługi dla zadań

uprzywilejowanych

Zadania uprzywilejowane do wydruku nadchodzą rzadziej, ale mają dłuższy czas

wydruku np co 10 min oraz mają najwyższy priorytet (uwaga szef profesor
może wyrzucić z roboty !!! )

4. Obsługa 2 stanowisk jednokanałowych z określeniem warunków wyboru

Przykład: Myjnia04.gpr (myjnia ręczna i automatyczna) zastosowanie bloku
TRANSFER do zmiany kolejności przemieszczania się zadań - mycie na dwóch
stanowiskach do których są indywidualne kolejki, wybór kolejki stanowiska
przypadkowy z określonym prawdopodobieństwem - samochody nie mogą
zmieniać stanowiska po wybraniu kolejki (Przykład)
Zad 4.0 Wprowadzenie dwóch drukarek DR1 i DR2 wraz z indywidualnymi

serwerami. Wybór sprzętu dla nadchodzących zadań jest uwarunkowany
jednakowym prawdopodobieństwem dla jednakowych drukarek jak w Zad 2.0)

Zad 4.1 Modyfikacja (4.0) poprzez zmianę prawdopodobieństwa i czasu obsługi.

Dobrać prawdopodobieństwo dla przypadku gdy drukarka DR1 przyspieszyła
dwukrotnie wydruk

Zad 4.2 Modyfikacja (4.0) poprzez usuniecie warunku prawdopodobieństwa i

czasu obsługi drukarki

Zad 4.3 Modyfikacja (4.0) z jednym serwerem wydruku wprowadzić wybór

bezwarunkowy ( warunek BOTH A, B określa wybór A a gdy zajęte B )


5. Obsługa 2 stanowisk jednokanałowych z określeniem warunków wyboru
dobranym wg aktualnego stanu obsługi (parametrów)

Przykład Myjnia05 (myjnia ręczna i automatyczna) zastosowanie bloku TEST
Zad 5.0 Obsługa sterowania zadaniami na 2-ch stanowiskach jednokanałowych

background image

Modelowanie Procesów Dyskretnych

56


6. Porównanie obsługi zadań wg zasady FIFO i SPT

Symulacja pracy narzędziowni

Pewien pracownik pracuje w narzędziowni a jego zadaniem jest sprawdzenie,

konserwacja i przyjmowanie/wydawanie narzędzi, uzywanych przez mechaników
naprawiających maszyny. Narzędzia te są zbyt kosztowne i jest ich równocześnie
zbyt wiele, by każdy mechanik posiadał je w swoim podręcznym wyposażeniu
naprawczym. Czas pomiędzy dwoma kolejnymi zapotrzebowaniami na wydanie
tych narzędzi oraz czas potrzebny na przygotowanie i wydanie potrzebnego
narzędzia

(czas

obsługi

mechanika)

zależą

od

mechanika.

Rozkłady

prawdopodobieństw i ich parametry dla czasów pomiędzy zapotrzebowaniami oraz
obsługi dwóch typów mechanika są następujące:
Zad 6.0 Pracownik narzędziowni stosuje regulamin obsługi FCFS (pierwszy

przyszedł, pierwszy obsłużony: First Come, First Served). Jednakże jest także
propozycja zastosowania SPT (najkrótszy czas obsługi: Shortest Processing
Time), ponieważ prawdopodobne jest zmniejszenie wtedy średniej liczby
mechaników oczekujących na obsługę przez pracownika narzędziowni. Może to
wtedy spowodować oszczędności, ponieważ: (1) zmniejszony zostanie czas
oczekiwania w narzędziowni, (2) zmniejszony zostanie czas naprawy psujących
się maszyn. Zbuduj model 8-godzinnego dnia pracy narzędziowni dla dwóch
wariantów regulaminu obsługi mechaników. Czy regulamin SPT spowoduje
zmniejszenie liczby mechaników oczekujących na obsługę?.

Wskazówka: Wykorzystać priorytety obsługi zadań

background image

Modelowanie Procesów Dyskretnych

57

4.4 Obsługa pakietu GPSS World

Zapoznanie się z obsługą pakietu symulacyjnego GPSS World Student
przeprowadzone będzie na przykładzie programu

prod3.gps

omówionego w

rozdz. 4.2.2.

1.

W katalogu path

/cw4/GPSS/

uruchomić

GPSSws.exe






















2. Otworzyć plik

prod3.gps

w katalogu path/cw4/

File -> Open


3. Zapoznać się z treścią programu w oknie edytora

4. Uruchomić symulacje (Rys 4.3)

Command -> Create Simulation

W wyniku przeprowadzonej pomyślnie symulacji uzyskano dodatkowe okna
standardowy raport (REPORT) oraz w oknie JOURNAL tzw. dziennika

Rys. 4.3 Okno główne

background image

Modelowanie Procesów Dyskretnych

58

zawierającego ślad symulacji przedstawiający w czasie rzeczywistym komunikaty
o wybranych zdarzeniach i ich parametrach.
Zawartość okien można zapisać, wydrukować i wykorzystać w szczegółowej
analizie procesu
- w dzienniku można zapisać wyniki śledzenia TRACE / UNTRACE).
- wyniki śledzenia obserwujemy także na bieżąco w trybie pracy krokowej

5. Symulacja krokowa.
Eliminujemy automatyczny START wprowadzając

komentarz w ostatniej linii .

; START

Następnie kompilujemy

Command -> Create Simulation

Powtarzamy wielokrotnie

Command -> Step 1

Wyniki obserwujemy

w oknie dziennika(Rys 4.4)

lub w oknie obiektów blokowych (BLOCK ENTITIES ) (Rys 4.5)

Okno z obiektami blokowymi włączamy jednorazowo przez

Command -> Window ->

Simulation Window -> Block Window

Rys 4.4 Podstawowe okna po uruchomeniu przykładu

background image

Modelowanie Procesów Dyskretnych

59

W bieżącym oknie bloku pracę krokowa można kontynuować przy pomocy ikony
STEP


6. Generowanie wykresów

Wykresy przedstawione będą w szerszym horyzoncie czasowym
W tym celu :

Usuń ograniczenie na ilość zadań - pozostaw

GENERATE 9

Zapisz program pod nowa nazwą

Prod30

Otwórz okno wykresu

Simulation Window -> Plot Window


Wprowadź (Rys 4.5 ) etykietę wykresu , wyrażenie i tytuł okna
(w uproszczeniu wspólną nazwę) oznaczająca długość kolejki

Q$Transp

Zakres czasu

t

max

= 1500 min domyślnie od t

min

= 0

Zakres osi pionowej

[0, 100]


Uruchom

START 100

Rys 4.5 Komunikaty w trybie pracy krokowej i w blokach obiektów

background image

Modelowanie Procesów Dyskretnych

60

Wynik na Rys 4.6


Rys 4.5 Edycja parametrów wykresu

Rys 4.6 Wynik symulacji w oknie wykresu – długość kolejki

background image

Modelowanie Procesów Dyskretnych

61

7. Skalowanie


Szczegóły wykresu zobaczymy po zmianie skali Rys 4.8
Parametry wykresu można zmodyfikować (Rys 4.7) przez

Edit -> Plot Window


Wprowadzamy

Zakres czasu

t

max

= 200 min ,

Zakres osi pionowej

[0, 20]

























Rys 4.7 Modyfikacja parametrów wykresu

background image

Modelowanie Procesów Dyskretnych

62





















Rys 4.8 Wynik symulacji w oknie wykresu – wg nowej skali

background image

Modelowanie Procesów Dyskretnych

63

4.5 Inne wersje pakietów GPSS


GPSS jako język wszedł do niektórych pakietów symulacyjnych także dla układów
ciągłych. Przykładem może być implementacja w pakiecie SIMULA (Rys 4.9, 4.10,
4.11) gdzie wprowadzono graficzną realizację programu przy pomocy symboli
blokowych.

W wersji internetowej WebGPSS budowę programu można też zrealizować
przy pomocy elementów schematu blokowego (Rys 4.12) - przykład takiej
realizacji przedstawia Rys 4.13.



Rys. 4.9 SIMULA Okna: schematu blokowego, symboli bloków i ich parametrów oraz

wyników wykreślnych i raportu statystycznego

background image

Modelowanie Procesów Dyskretnych

64





































Rys. 4.11 SIMULA - Okna symulacji

Rys. 4.10 SIMULA Okno raportu statystycznego

background image

Modelowanie Procesów Dyskretnych

65





































Rys 4.12 Symbole schematu blokowego GPSS Web

Rys. 4.13 Przykład schematu blokowego modelu procesów

background image

Modelowanie Procesów Dyskretnych

66


Przykład zastosowania schematu blokowego przedstawia Rys 4.14. Jest to
fragment schematu blokowego GPSS, który został zastosowany do praktycznego
rozwiązanego pewnego złożonego problemu. Szczegóły tego schematu są
niedostępne, ze względu na prawa autorskie, ale złożoność ogólnej struktury
przekonuje nas o aktualności problematyki i o stosowanych narzędziach
symulacyjnych. Rozwiązany problem dotyczy budowy modelu procesu
logistycznego - organizacji transportu i produkcji na Dalekim Wschodzie w tzw.
łańcuchu dostaw. Szczegółowy opis procesu jest dostępny w artykule
"

http://www.elogmar-m.org/misc/simulationELogisticsSupplyChain.doc

"

Literatura do rozdz. 4

http://www.minutemansoftware.com/

http://www.webgpss.com/

Extract from

a Time- and

Cost-based

GPSS

Model of an

Intermodal

Supply Chain

from the

Far-East to

NW-Europe

Extract from

a Time- and

Cost-based

GPSS

Model of an

Intermodal

Supply Chain

from the

Far-East to

NW-Europe

Rys. 4.14 Model blokowy GPSS złożonego problemu logistycznego

ź

ródło:

http://www.elogmar-m.org/misc/simulationELogisticsSupplyChain.doc

background image

Modelowanie Procesów Dyskretnych

67

5. PROGRAMOWANIE SYSTEMÓW DYSKRETNYCH

5.1 Wprowadzenie

Programowanie systemów dyskretnych, w głównej mierze opiera się na

tworzeniu oprogramowania do symulacji komputerowej dyskretnych procesów
zachodzących w modelach systemów rzeczywistych. Symulacja komputerowa jest
metodą,

która

w

pewnym

zakresie

używając

odpowiednich

modeli

matematycznych pozwala na odtwarzanie zjawisk zachodzących w świecie
rzeczywistym (niekiedy uzyskujemy jedynie ocenę niektórych parametrów i
właściwości symulowanego systemu rzeczywistego). Istotne jest w tym przypadku
modelowanie przy użyciu programów komputerowych i praktyczna realizacja
symulacji z wykorzystaniem sprzętu komputerowego. Symulacja umożliwia
uzyskanie informacji o procesach, dla których bezpośrednia obserwacja jest
niemożliwa lub zbyt kosztowna.

Symulacja procesów dyskretnych - dotyczy procesów, których stan zmienia się

tylko w dyskretnych punktach czasu i zależy od zmian stanów systemu.


Do istotnych zalet symulacji komputerowych należy możliwość przetestowania

procesu w sposób oszczędny i bezpieczny, z jednej strony unikając błędów i
kosztów związanych z testami i poprawkami dla układu rzeczywistego a z drugiej
także wczesnego wykrywania błędów i świadomego symulowania sytuacji
awaryjnych. Modelowanie czasu w systemie pozwala na jego skalowanie i w
efekcie skrócenie czasu przeprowadzenia wielu badań symulacyjnych i znalezienia
najlepszych rozwiązań możliwych do zastosowania w rzeczywistości. Z symulacji
może skorzystać zarówno projektant jak i przyszły użytkownik, którzy wspólnie
mając do dyspozycji środki wizualizacyjne, mogą poznać ograniczenia, lepiej
zrozumieć proces i wspólnie skonsultować najlepsze rozwiązania.

Symulacja jest tylko pewnym przybliżeniem rzeczywistości i stąd wynikają

także jej wady oraz ograniczenia w uzyskaniu zadawalających rezultatów.
Konieczne jest w tym przypadku duże doświadczenie projektanta, ażeby
adekwatnie do założonego celu symulacji uwzględnić w modelu wszystkie jego
aspekty. W przypadku złożonych problemów symulacyjnych istotne mogą być
także koszty samego oprogramowania symulacyjnego, przeprowadzanych testów,
generowania wyników symulacyjnych a także konieczność zaangażowania w
projekcie grona specjalistów w celu interpretacji złożonych wyników.
Z reguły koszty symulacji są pomijalne i warto ją przeprowadzać, ale należy
jednak przeanalizować jej zastosowanie biorąc pod uwagę dalsze prognozowanie
kosztów.

background image

Modelowanie Procesów Dyskretnych

68

5.2 Proces projektowania symulacji

W rozdziale tym przedstawiony zostanie ogólny plan etapów symulacji,

opracowany na podstawie [Branks, Carson, Nelson and Nicol „Discrete Event
System Simulation”] i omówiony pod kątem symulacji jako pewnego
przedsięwzięcia projektowego. Rysunek 5.1 przedstawia ogólną postać takiego
przedsięwzięcia, złożonego z szeregu etapów.

1. Problem, Cel

i Harmonogram

2. Model

Abstrakcyjny

3. Zbior

Danych

4. Model

Symulacyjny

5.Weryfika-

cja Modelu

6. Badania

Symulacyjne

Rys 5.1 Plan etapów projektu symulacji

background image

Modelowanie Procesów Dyskretnych

69

Etap 1: Sformułowanie problemu. Cel i harmonogram.

Symulowana rzeczywistość i występujące zjawiska powinny być dobrze
sprecyzowane. Programista lub analityk w przypadku wieloosobowego
zespołu projektowego sporządza specyfikację wymagań. Na tym etapie
powinien być jasno sformułowany cel symulacji. Są to istotne założenia, które
powinny być w postaci dokumentu uzgodnione z ewentualnym klientem lub
zespołem kontrolno-nadzorczym. Istotne jest też na tym etapie określenie i
uzgodnienie ogólnego harmonogramu, przydziału zasobów i oszacowanie
kosztów.

Etap 2: Model Abstrakcyjny.

Zbudowanie modelu, w którym rzeczywistość zostaje zastąpiona przez
abstrakcyjne modele matematyczne. Formalizm reguł matematycznych
wspomaga dalsze zrozumienie procesu i uściśla wstępne założenia. Na tym
etapie wymagane są niekiedy konsultacje specjalistyczne z zakresu dziedziny
symulowanej rzeczywistości.

Etap 3: Zbiór Danych.

Zebranie danych wejściowych jest konieczne do skonkretyzowania badanego
procesu i do weryfikacji adekwatności przyjętego modelu abstrakcyjnego. Na
tym etapie powinien być opracowywany plan testów jakości. Z uwagi na
efektywność czasową etap te można wykonać równolegle w stosunku do 2-go
etapu.

Etap 4: Model symulacyjny.

Zaprogramowanie symulacji jest najważniejszym etapem, w którym następuje
zastosowanie narzędzi symulacyjnych, języków oraz procedur bibliotecznych
do realizacji programu modelu, jego wstępne uruchomienie i przetestowanie.
Na tym etapie wymagana jest przede wszystkim specjalistyczna wiedza
programisty.

Etap 5: Weryfikacja modelu.

Weryfikacja modelu pozwala na wychwycenie błędów projektowania, które
wymuszają konieczność powrotu do wcześniejszego etapu. Zasadniczą
poprawność modelu należy zweryfikować wg opracowanych na etapie 3 testów
jakości.

Etap 6: Badana symulacyjne.

Przeprowadzenie badań symulacyjnych jest zasadniczym celem projektu. Na
tym etapie należy zadbać o dobrą dokumentację, która będzie pomocna nie

background image

Modelowanie Procesów Dyskretnych

70

tylko w realizacji praktycznej rzeczywistego układu ale także stanowiła istotny
element w realizacji przyszłych projektów.

Omówiony proces projektowania jest tylko pewnym szablonem i powinien być
skonkretyzowany w zależności od szczególnych okoliczności projektu.
Zasadniczym kryterium są tutaj nie tylko cele projektowania, ale także
wykorzystywane środki programistyczne. Zawężając problematykę do zakresu
symulacji komputerowej należy sprecyzować podstawowy cel projektu, a przede
wszystkim wykorzystywane narzędzia programistyczne.

Cel projektu może być:

C1: Ogólny - narzędzia, pakiet symulacyjny z ewentualnym uszczegółowieniem

na system dyskretny, ciągły i współbieżny.

C2: Szczegółowy – aplikacja dla ściśle sprecyzowanego zagadnienia lub ich

pewnej klasy wynikającej z założonego obszaru zastosowań branżowych.

W zakresie środków programistycznych można zastosować:

P1: Pakiet symulacyjny - gotowe dostępne na rynku narzędzie oparte często na

określonym języku symulacyjnym wyższego poziomu dopasowane do
bardziej lub mniej ogólnych zastosowań i o zróżnicowanej funkcjonalności.

P2. Język programowania poziomu niższego (proceduralny lub obiektowy)

wraz pakietem wspomagającym projektowanie aplikacji i niekiedy
wyposażony w dodatkowe biblioteki pozwalające na realizacje wybranych
podproblemów symulacyjnych.

Biorąc pod uwagę w/w wymienione podziały najbardziej złożonym projektem

jest kombinacja (C1, P2) wymagająca bardzo dobrego przygotowania teore-
tycznego w aspekcie teorii systemów, a także praktycznego w zakresie
wykorzystania narzędzi informatycznych. Decyzja o zastosowaniu tej kombinacji
ma też sens w przypadku przewidywanego wielokrotnego profesjonalnego
wykorzystania. Często zaczątkiem tego rozwiązania może być wieloletnia praktyka
w realizacji pozostałych kombinacji (C2, P1) i (C2, P2) oraz (C2, P2). Z uwagi na
szeroką dostępność pakietów, rozwiązanie (C2, P1) jest stosowane dosyć często,
chociaż wymaga ono niekiedy dość dużego wstępnego nakładu pracy.
Atrakcyjność tego rozwiązania polega też na mniejszym zaangażowaniu
przyszłych użytkowników przeprowadzających badania symulacyjne w zakresie
wiedzy IT.

Złożone i poważniejsze problemy powinny też być rozwiązywane na bardziej

szczegółowym poziomie weryfikacji, w którym symulacja jest pewnym istotnym
etapem, ale nie zasadniczym celem. Taki model przedstawia sieć działań na Rys
5.2, w którym dodatkowo należy zweryfikować prawidłowy wybór koncepcji
rozwiązania i określenie modelu analitycznego, a także ocenić wyniki badań
symulacyjnych, które potwierdzą decyzję o wdrożeniu realizacji układu fizycznego.

background image

Modelowanie Procesów Dyskretnych

71

1 Problem / Cel

2. Model

Koncepcyjny

Analityczny

4. Program

Symulacyjny

5.Weryfikacja

Programu

6. Badania

Symulacyjne

Rys 5.2 Plan etapów złozonego projektu z zastosoaniem

symulacji komputerowej

3.Weryfika-

cja Modelu

7.Weryfikacja

Badań

Przerwanie

8 Budowa. Wdrożenie

układu rzeczywistego

Symulacyjne

NO

OK

OK

OK

NO

NO

background image

Modelowanie Procesów Dyskretnych

72


Często na podstawie wyników symulacji określa się kryteria jakości i w tym

przypadku symulacja może być elementem automatycznie działającego programu
optymalizacyjnego

wybierające

najlepsze

rozwiązania.

Przykład

tak

postawionego problemu ilustruje rys 5.6

5.3. Elementy modelu symulacyjnego

Zawężając rozważania do zakresu metod symulacji dyskretnej należy wyróżnić

wiele elementów modelu, ale do podstawowych należą: zdarzenia, działania i
procesy. Są one składnikami każdego schematu organizującego przebieg obliczeń
symulacyjnych, chociaż w szczegółowych opisach pakietów i algorytmów
symulacyjnych mogą być używane inne równoważne i dodatkowe określenia np:
obiekty i ich atrybuty, uwarunkowane zgłoszenia, transakcje, operacje, czynności,
stany itp.

Podane elementy wynikają także z podstawowej definicji symulacji procesu

dyskretnego podanej przez R. E. Shanon’a i zmodyfikowanej przez J. B. Evans’a:

Obiekty opisane atrybutami po spełnieniu określonych warunków kreują w

ramach działań sekwencje zdarzeń zmieniających stan systemu.

Rozpoczynając budowę modelu należy jednoznacznie opisać problem, który

będzie rozwiązany metodami symulacyjnymi. Istotna w opisie jest identyfikacja
zdarzeń i działań, które występując zmieniają stan obiektów. Mimo, że zdarzenie
jest „nieuchwytną migawką” tzn. nie jest związane z upływem czasu to jednak jest
ono bardzo często od niego uzależnione, występując w określonej chwili
(wymuszone czasem zdarzenie synchroniczne) lub uwarunkowane wystąpieniem
innych zdarzeń. Czasami wiele zdarzeń może wystąpić w tej samej chwili czasu,
ale w sekwencji przyczynowo-skutkowej ale także niestety w nieokreślonej. W tym
przypadku możemy wybrnąć z kłopotu przez ustalenie priorytetu, który może
jednak podnieść nam złożoność modelu. Z uwagi na istotną rolę zdarzeń
wymagamy w opisie słownym nawet pewnej nadmiarowości, w rodzaju „początek
czegoś” i koniec „czegoś” gdzie to „coś” jest logicznie związane z określonym
działaniem.

Reasumując, zdarzenie w określonym chwilowym czasie wiąże się ze zmianą

stanu obiektów reprezentowanych w systemie poprzez zmianę ich atrybutów, ale
także poprzez wprowadzanie nowych i usuwanie istniejących obiektów.

Z kolei działanie, przyjmując odpowiednią szczegółowość modelu może się

składać z jednej lub wielu niepodzielnych operacji, które mogą wpływać na zmianę
stanu systemu. Czasami działania określane są też mianem czynności.

Ciąg uporządkowanych w czasie zdarzeń związanych z każdym pojedynczym

obiektem jest określony mianem procesu, który przebiega od chwili wejścia
obiektu do systemu aż do chwili jego wyjścia. W ten sposób też działania na

background image

Modelowanie Procesów Dyskretnych

73

obiektach określone są poprzez chronologiczne zdarzenia wchodzące w skład
procesu. Zdarzenia mogą zachodzić w sposób:

- bezwarunkowy, który jest bezpośrednio zależny od czasu,
- warunkowy, który jest pośrednio zależny od czasu poprzez zmiany stanu

systemu, uzależnione z kolei od innych z czasem związanych zdarzeń.


Omówione pojęcia ilustruje Rys. 5.3, przedstawiający historię zdarzeń związaną z
powtarzającym się prostym procesem produkcyjnym.



























Często używanymi pojęciami w opisywaniu procesów dyskretnych jest pojęcie

transakcji, które przyjęło się z angielskiego odpowiednika transaction spotykanego
w dokumentacji pakietów symulacyjnych. Transakcje opisują przemieszczanie się
obiektu oraz zmiany jego stanu.
Budując model symulacyjny systemu dyskretnego należy w nim wyróżnić
następujące elementy:

Działanie

Obróbka e1

0

Zdarzenie
Poczatek
obróbki e1

Zdarzenie
Nadejscie
e2

Działanie

Czekanie e2

Zdarzenie
Poczatek
obróbki e2

Zdarzenie
Nadejscie
e1

Działanie

Obróbka e2

Działanie

Malowanie e1

Zdarzenie
Koniec
obróbki e1

Działanie

Malowanie e2

Proces

Produkcja e1

Zdarzenie
Koniec
malowanie e1

Zdarzenie
Koniec
malowania e2

Proces

Produkcja e2

czas

Rys 5.3. Ilustracja pojęć: zdarzenie, działanie i proces

background image

Modelowanie Procesów Dyskretnych

74

- zegar systemowy - rejestruje czas modelowanego systemu rzeczywistego,
- kalendarz systemowy - sterowany zegarem systemowym, to zbiór informacji

o zdarzeniach (typ zdarzeń i parametry zdarzeń),

- transakcje, obiekty mobilne pojawiające się w systemie jako zdarzenia,

(zgłoszenia), które posiadają argumenty przemieszczają się, zmieniają zasoby
systemu (obiekty stacjonarne) i tym samym mają wpływ na zmianę stanu
systemu,

- zasoby mogą być pojedyncze lub złożone, w odróżnieniu do pozostałych

obiektów są obiektami statycznymi systemu, określane są jako jednokanałowe
i wielokanałowe stanowiska obsługi.

5.4 Metody symulacji dyskretnej

Omawiając w sposób bardziej ścisły metody symulacji dyskretnej należy także

omówić szczególne przypadki symulacji, dla których jest ona przeprowadzana w
warunkach zależnych od zewnętrznych sygnałów (czynników). Można zapewnić
możliwość interakcji użytkownika z programem symulacyjnym w trakcie
prowadzenia obliczeń w tym śledzenia realizacji symulacji z otrzymywaniem
bieżących wyników oraz wprowadzania zmian do modelu w trakcie działania
programu symulacyjnego. Istotna jest możliwość zawieszenia wykonywanej
symulacji np: w celu przejęcia sterowania procesem, zmiany parametrów a nawet
struktury modelu. W tak prowadzonej symulacji często jednak trzeba zapewnić
odpowiednią szybkość przeprowadzanych obliczeń dostosowaną do operatora,
która nie może być zbyt duża ze względu na ograniczoną szybkość jego reakcji
oraz także zbyt małą biorąc pod uwagę sensowny czas symulacji. Bardzo ważne
jest rozróżnienie pojęcia czasu symulowanego i czasu rzeczywistego obliczeń
symulacyjnych. W przypadku, gdy te czasy pokrywają się można przyjąć, że mamy
do czynienia z tzw. symulacją w czasie rzeczywistym w przeciwnym przypadku
zapewniając stały współczynnik proporcjonalności łatwo określamy symulację z
uwzględnieniem skali czasu.

Biorąc pod uwagę rzeczywiste uwarunkowania czasowe i dodatkowo

połączenie ze wspomnianą wcześniej symulacją interaktywną uzyskuje się
symulator o specyficznych zastosowaniach uwzględniający także procesy ciągłe np.
w celach treningowych lub edukacyjnych. Systemy symulacyjne o takim
charakterze są częściowo omówione w rozdz. 5.5.

W kolejnych rozdziałach omówione będą dwie podstawowe metody symulacji

dyskretnej ze szczególnym uwzględnieniem zastosowanej algorytmizacji.

background image

Modelowanie Procesów Dyskretnych

75

5.4.1. Metoda planowania zdarzeń.

Metoda planowania zdarzeń (event oriented discrete simulation) oparta jest na

kalendarzu zdarzeń, specjalnej struktury będącej zbiorem opisanych zdarzeń.
Zastosowany kalendarz zdarzeń definiuje kolejność zdarzeń bezwarunkowych
wraz ze szczegółową specyfikacją czynności, które powinny być zrealizowane po
tym zdarzeniu. Jest to zbiór zawierający dane o typie, atrybutach i czasie
wystąpienia zdarzenia zorganizowany w postaci listy lub kopca. Aktualny czas
wyznacza zawsze pierwsze zdarzenie na liście a uporządkowanie (planowanie)
ustala się na podstawie atrybutów czasów pozostałych zdarzeń. W szczególności
należy:

- zapewnić ogólne sterowanie przebiegiem symulacji w oparciu o dynamiczny

kalendarz zdarzeń,

- zapamiętać w kalendarza tylko zdarzenia bezpośrednio zależne od czasu

(bezwarunkowe),

- zaplanować kolejne zdarzenia bezwarunkowe dla działań, które zostały

określone dla wcześniejszego zdarzenia,

- wprowadzić działania związane z zaistnieniem zdarzenia warunkowego do

czynności dotyczących zdarzeń bezwarunkowych, które będą rozpatrywane
tylko przy okazji działań bezwarunkowych.

Wprowadzanie zdarzeń w systemie ma charakter planowania czasów oraz typów i
parametrów zdarzeń bezwarunkowych, które będą zachodzić w systemie.
Wystąpienie zdarzenia bezwarunkowego w symulacji dyskretnej wg metody
planowania zdarzeń, pociąga za sobą wykonanie sekwencji czynności związanych
z wystąpieniem tego zdarzenia, w tym dotyczących zdarzeń warunkowych.

Przykładowo po zakończeniu obróbki należy zwolnić obrabiarkę, sprawdzić

kolejkę następnych zgłoszonych części do obróbki, a następnie zgodnie z
regulaminem kolejki wprowadzić do obróbki kolejną część. Charakterystyczne w
tej metodzie jest planowanie sposobu generowania następstwa zdarzeń
bezwarunkowych.

Rysunek 5.4 przedstawia szkic algorytmu symulacyjnego omawianej metody

planowania zdarzeń. Algorytm rozpoczyna się ustaleniem stanu początkowego i
parametrami modelu symulacyjnego a także przyjęciem wartości czasu
symulacyjnego, odpowiadającej wartości początkowej czasu rozpoczęcia
pierwszego zdarzenia występującego w kalendarzu. Kolejno należy wykonać
działania związane z obsługą tego zdarzenia. Jest to najbardziej złożona część
algorytmu, ponieważ wśród wykonywanych czynności może zachodzić zdarzenie
bezwarunkowe, czynności zdarzeń warunkowych oraz zaplanowanie poprzez wpis
do kalendarza następnych zdarzeń. W kolejnym etapie należy zaprogramować
usunięcie zrealizowanego zadania z kalendarza i zaktualizować czas symulacji

background image

Modelowanie Procesów Dyskretnych

76

Warunki

początkowe

Czy Koniec ?

t

P

= t

N

Usunięcie 1-go

Zdarzenia

T

N

Aktualizacja

czasu

Rys. 5.4 Algorytm planowania zdarzeń.

Działanie 1-go

Zdarzenia

zgodnie z wystąpieniem następnego zdarzenia bezwarunkowego. Omówione etapy
algorytmu będą cyklicznie powtórzone z badaniem warunku zakończenia symulacji.



































Analizę szczegółowa algorytmu przeprowadzimy na prostym modelu obróbki

na wielu identycznych obrabiarkach. Założymy, że bezwarunkowo następuje
pojawienie się części do obróbki oraz biorąc pod uwagę zadany czas obróbki także
bezwarunkowe jest zdarzenie dotyczące zakończenia obróbki. Natomiast zdarzenie
dotyczące rozpoczęcia obróbki, jest zdarzeniem warunkowym, ponieważ ta

background image

Modelowanie Procesów Dyskretnych

77

czynność zależy od istnienia, co najmniej jednej wolnej obrabiarki i części do
obróbki.
Zgodnie z ogólnym schematem symulacyjnym Rys 5.4 w pętli głównej istotne jest
określenie opisujące jedynie procedurę związaną z obsługą pierwszego zadania na
liście zadań czasowych bezwarunkowych natomiast złożoność symulacji kryje się
w wykonaniu procedur opisujących realizację tych zadań i ich planowaniu z
uwzględnieniem zadań warunkowych.
Procedury te dotyczą:
- nadejścia części do obróbki: zaplanowanie przyjęcia następnej części,

sprawdzenie dostępności obrabiarki i odpowiednio zajęcie jej i zaplanowanie
zakończenia obróbki lub w przeciwnym wypadku wstawienie na końcu kolejki.

- zakończenia obróbki: jeżeli jest w kolejce część do obróbki to należy ją usunąć z

kolejki i zaplanować zakończenie jej obróbki a w przeciwnym wypadku
obrabiarka powinna być zwolniona.

Reasumując metoda opiera się na szeregowaniu zdarzeń czasowych i realizacji

zdarzeń warunkowych w ramach procedur czasowych. W złożonych problemach w
porządkowaniu zdarzeń oprócz omówionego typowego wstawiania nowych zadań
oraz ich usuwania mogą również zachodzić zdarzenia związane z odwołaniem
zdarzeń lub ich realokacją związaną ze zmianą czasu ich wystąpienia.

Ponadto powiększeniu może ulec także ilością zdarzeń i wtedy istotne może być

zastosowanie odpowiednich struktur danych i algorytmów które zapewnią
optymalna złożoność obliczeniową w realizacji opisanych operacji.

5.4.2. Metoda przeglądania działań.

Algorytm metody przeglądu i wyboru działań (activity scanning approach)

polega na wyborze działań, które z nich z chwilą zajścia określonego zdarzenia
powinny być rozpoczęte, a które zakończone. Wyboru dokonuje się przeglądając
wszystkie zadania zależne od czasu jak i od stanu systemu i wybór działań polega
na rozpatrywaniu wszystkich działań systemu celem określenia, które z nich z
chwilą zajścia określonego zdarzenia powinny być rozpoczęte, a które zakończone.
Atrybuty czasowe obiektów mogą określać chwilę symulowanego czasu (charakter
bezwzględny) lub czas pozostający do pojawienia się zdarzenia (charakter
względny). Wynikają stąd dwa przypadki algorytmu aktualizacji czasu, które
przebiegają następująco:
I. Czas względny

1. wybieranie najmniejszego dodatniego atrybutu czasu t

min

2. zmniejszenie wszystkich atrybutów czasy o t

min

3. dodanie t

min

do czasu systemowego.

background image

Modelowanie Procesów Dyskretnych

78

II Czas bezwzględny

1. wybieranie najmniejszego dodatniego atrybutu czasu t

min

większego od

czasu systemowego,

2. przyjęcie t

min

jako czas systemowy


Oznacza to:

-

wprowadzenie do kalendarza zdarzeń bezwarunkowych, bezpośrednio
zależnych od czasu oraz zdarzeń warunkowych,

-

rozpatrywanie czynności związanych ze zdarzeniami warunkowymi
niezależnie od wystąpienia zdarzeń bezwarunkowych,

-

sterowanie przebiegiem symulacji w oparciu o listę warunków, jakie
powinny być spełnione by zaszło w systemie określone zdarzenie.

Wprowadzanie zdarzeń w systemie odbywa się poprzez cykliczne sprawdzanie
listy warunków, które powinny być spełniane przy zachodzeniu zdarzeń.

Algorytm przebiegu symulacji modelu zbudowanego w oparciu o metodę

przeglądu i wyboru działań przedstawia rysunek 5.5. Po ustaleniu warunków
początkowych systemu (stan początkowy systemu, parametry systemu) należy
wykonać badanie listy warunków wystąpienia zdarzeń dla chwili czasu systemu, w
której zajdzie najbliższe zdarzenie (t

min

). Jeżeli dla określonego zdarzenia spełnione

są warunki jego zajścia, to oznacza to, że doszło do zajścia tego zdarzenia (zmiany
stanu systemu) i należy wtedy przesunąć czas systemu do chwili t

min

wystąpienia

tego zdarzenia i wykonać procedurę czynności związanych z tym zdarzeniem
(obsługi zdarzenia). Powyższe czynności ulegają powtórzeniu z badaniem warunku
zakończenia obliczeń symulacyjnych.

Rozpatrzmy przykładową symulację wielokanałowego, otwartego systemu

obsługi. Konstrukcja modelu symulacyjnego opisującego ten system przy
zastosowaniu metody przeglądu i wyboru działań oparta jest na analizie warunków
zajścia wszystkich zdarzeń systemu, bezwarunkowych i warunkowych. Algorytm
symulacji funkcjonowania tego systemu obsługi jest następujący:


1.

Ustalenie warunków początkowych.

2.

Sprawdzenie, czy spełniony jest jakikolwiek warunek końca symulacji i
gdy jest spełniony, to zakończenie obliczeń symulacyjnych, w przeciwnym
przypadku przejdź do kroku 3.

3.

Skasowanie flagi zmiany stanu (będzie ustawiana w chwili zmiany stanu)

4.

Sprawdzenie dla wszystkich zdarzeń warunków ich zajścia i jeżeli warunek
ten jest spełniony, to wykonanie czynności obsługi tego zdarzenia i
ustawienie flagi zmiany stanu.

5.

Jeżeli flaga zmiany stanu jest ustawiona to powrót do pkt 3

6.

Zwiększenie czasu systemowego i przejście do kroku 2.

background image

Modelowanie Procesów Dyskretnych

79


Inny przypadek zastosowania algorytmu przeglądu przedstawiono na Rys 5.6,.

Jest to specjalistyczny algorytm programu realizujący symulację sieci Petriego
wraz optymalizacją i z generacją wykresów Gantta Rys 5.7.





































Warunki

początkowe

Czy Koniec ?

T

N

aktualizacja

czasu

Rys. 5.5. Algorytm przebiegu symulacji dyskretnej

w metodzie przeglądu działań.

Obsługa zdarzeń

Warunki zajścia zdarzeń

z ustawieniem flagi

zmianu stanu

flaga zmiany ?

skasuj flage zmiany stanu

T

background image

Modelowanie Procesów Dyskretnych

80










































Rys 5.6 Algorytm symulatora sieci Petriego

background image

Modelowanie Procesów Dyskretnych

81






















Opis podstawowych procedur algorytmu z rys 5.6

Input_Net_Data - dane wejściowe struktura i stałe parametry sieci,

Init_Place_Vec - dane inicjujące wartości znakowania początkowego,

Init_Simul_Data - warunki początkowe symulacji (np globalny czas),

End_Simulation - warunki zakończenia symulacji (odtwarzanie stanów),

Fire_Off

- zakończenie wzbudzenia tranzycji,

Mark_Move

- określenie nowego znakowania osiągalnego,

Freon

- uwarunkowane wzbudzenie tranzycji,

No_Time_Fire

- zmiana stanu dla tranzycji o zerowym czasie wzbudzenia,

Tracing_Output - zapamiętanie bieżącego stanu z ewentualną wizualizacją,

Next_Global_Time - obliczenie następnej chwili zmiany znakowania,

Act_Local_Times - obliczenie i aktualizacja lokalnych czasów (zegarów)

Histogram

- histogramowa analiza wyników symulacji,

Find_Cycle

- określenie czasu cyklu pracy systemu,

Simul_Reports

- obliczenie i zapamiętanie wskaźników jakości,

EndSearch

- warunki zakończenia przeglądu,

Statistic_Acc

- obróbka statystyczna dopuszczalnych rozwiązań

Rys 5.7 Przykładowe wyniki z symulatora sieci Petriego

background image

Modelowanie Procesów Dyskretnych

82

5.4.3. Przegląd innych metod.

W rozdziale zostały przedstawione jedynie wybrane podstawowe algorytmy

symulacji dyskretnej. Wraz z rozwojem zarówno ogólnych pakietów symulacyj-
nych a także specjalistycznych pojawiają się także nowe metody symulacji.
Budowane są także biblioteki procedur, które można wykorzystać w modelowaniu
wykorzystując ogólno dostępne języki programowania. Bardzo często nowe
metody powstają na bazie innych metod i są one oparte na opisanych metodach
łącząc zalety metody planowania i przeglądu. Do takich metod należy metoda ABC
łącząca omówione metody. Z metody planowania przyjęty jest czas pierwszego
zdarzenia (Advance of simulation time), wybór jego obsługi (Bounded event) i
usuniecie z kolejki. Z kolei metoda przeglądu wprowadza uwzględnienie zdarzeń
warunkowych (Conditional events) ich wybór i wykonanie. włączając w algorytm
kontrolę flagi zmiany stanu. Powstają także pewne modyfikacje gdzie przykładem
może być metoda przeglądu i wyboru działań, która z kolei w połączeniu z metodą
planowania określana jest jako metoda interakcji procesów (process interaction
approach).
W tych rozwiązaniach stosuje się metody aktywowania, zawieszania i
opóźniania procesów.

W efektywnym projektowaniu programu w szczególności dla złożonych

problemów, konieczny jest podział funkcjonalny i strukturalny. Taki podział
pozwala też na implementacje gotowych do wykorzystania uniwersalnych bibliotek
procedur W związku z tym przedstawiona zostanie koncepcja tzw. podejścia
trójwarstwowego [Fishman, George S „Concepts and methods in discrete event
digital simulation”] Zakłada ona występowanie trzech warstw
- poziom koordynatora (Executive), który przejmuje rolę zarządzającą przebiegi

symulacji (aktualizacja czasu sterowanie wykonywaniem procedur i
zakończeniem symulacji.

- poziom procedur (Operations) zasadnicze funkcje programu, które mogą być

zgrupowane jako moduły i przyporządkowane do danych obiektów, mogą też
być różnymi blokami procedur, które są wykonane przez obiekty.

- poziom pomocniczy (Detailed routines) będący zbiorem procedur wspomagają-

cych warstwę procedur (np. generatory liczb losowych, generatory statystyk i
ich wykresów, procedury kontroli błędów itp.)

Wyróżnione są cztery typy koordynatorów:
- Zdarzeniowy (Event)
- Działaniowy (Activity)
- Procesowy (Process)
- Podejście trójfazowe (The three-phase approach)

Szczegółowy opis można znaleźć w literaturze [Micheal Pidd "Computer

Simulation in Management Science] i na stronach internetowych.

background image

Modelowanie Procesów Dyskretnych

83

W opisach bardzo często zachodzi duże podobieństwo, które trudno ściśle

sprecyzować w przypadku ich ogólnego charakteru. Stąd często nie ma różnicy de
facto a wynika ona jedynie z zastosowanego nazewnictwa. W związku z
powstaniem nowych języków lub raczej rozbudowy ich dotychczasowych wersji
np. przez wprowadzenie elementów programowania obiektowego powstają nowe
metody symulacyjne, które bazując na podstawowych algorytmach wykorzystują
elementy programowania obiektowego. W wyniku takich działań powstaje szereg
bibliotek dla różnych języków np. dla języka Java.

Wśród programistów zajmujących się budowaniem modeli symulacyjnych

pewną popularność uzyskał oparty na Javie obiektowy Framework Desmo-J

http://desmoj.sourceforge.net/home.html

http://asiwww.informatik.unihamburg.de/themen/sim/forschung/Simulation/Desmo-J/


Skrót „DESMO-J" pochodzi od słów "Discrete Event Simulation and MOdelling in
Java" i sama już nazwa wskazuje na dwie istotne właściwości:
Desmo-J wspiera paradygmat symulacji dyskretnych zdarzeń spełniając

wszystkie wymagania symulacji zdarzeń występujących w dyskretnych
punktach czasu.

Desmo-J jest zaimplementowana w powszechnie uzywanym przez programistów
języku Java.

Framework DESMO-J posiada wiele cech, które znacznie ułatwiają projektowanie
symulacji w postaci:

- zestawu komponentów takich jak: kolejki, generatory liczb pseudolosowych i

kolekcje danych określające zachowanie modeli, bytów, wydarzeń czy
procesów i abstrakcyjne klasy, które zmuszają programistę do projektowania
zgodnie z przyjętymi zasadami.

- infrastrukturę symulacji tzn.: środowisko planowania, listę wydarzeń i zegar

czasu symulacji

- automatyczne generatory raportów z przebiegu symulacji na podstawie

informacji pobieranej z każdego symulowanego obiektu



DESMO-J jest zbudowana z wielu pakietów:







background image

Modelowanie Procesów Dyskretnych

84




desmoj.core.simulator

- zawiera klasy rdzenia, wykorzystywane

do zbudowania modelu i rozpoczęcia eksperymentu

desmoj.core.dist

– jest źródłem metod generujących liczby

pseudolosowe

desmoj.core.exception

zawiera klasy dla wewnętrznego

obsługiwania wyjątków i może bezpiecznie zostać zignorowany przez
programistów.

desmoj.core.report

- automatyczne generowanie raportów w wielu

formatach, najczęściej w formacie XML.

desmoj.core.statistic

– wspiera opracowanie wyników

statycznych generowanych po zakończonej symulacji – obejmują funkcje:
max, min, średnia, odchylenie standardowe, histogram, suma.

desmoj.core.advancedModellingFeatures

– posiada

mechanizmy zapewniające zaawansowaną na poziomie abstrakcyjnym
synchronizację przebiegu symulacji.

desmoj.extension.

zawiera składniki,ułatwiające budowanie

modelu w domenach aplikacji np logistyka i produkcja.

desmoj.extension experimentation

- podstawowy graficzny

interfejs użytkownika ułatwiający prowadzenie eksperymentu i prezentacje
wyników w technologich 2d i 3d

ź

ródłó

http://desmoj.sourceforge.net/basic_features.html

background image

Modelowanie Procesów Dyskretnych

85

5.5. Sterowanie i monitoring procesów dyskretno-ciągłych

Systemy monitoringu i sterowanie procesami technologicznymi z obsługą
przerwań czasowych i sprzętowych z reguły zapewniają:
1.

Odbiór danych sygnałów ciągłych i dyskretnych: analogowe, impulsowe,
binarne i stany obiektów.

2.

Wysyłanie danych lokalnych i retransmisja odebranych do stacji nadrzędnych.

3.

Rejestracja danych z obiektów technologicznych w tablicach systemowych.

4.

Wizualizacja znakowa pomiarów i stanu obiektów na ekranach synoptycznych
a także z uwzględnieniem animacji graficznej stanu i pomiarów dla
wybranych procesów.

5.

Rejestrowanie i archiwizacja stanów awaryjnych.

6.

Sygnalizacja wizualna i dźwiękowa zdarzeń i sytuacji awaryjnych.

7.

Obsługa na ekranie zestawu o zaistniałych zdarzeniach i sytuacjach
awaryjnych i z podaniem aktualnego ich statusu.

8.

Raportowanie danych w zadanym zakresie czasu i poziomie dyskretyzacji i
wyników zagregowanych w określonych przedziałach czasowych.

9.

Monitorowanie stanu transmisji w sieciowej strukturze sterowników.

10.

Wysyłanie i odbiór poczty komputerowej.

11.

Przygotowanie danych (kompresja) dla tablicy synoptycznej).

12.

Zestawienie komend i poleceń sterujących, pomoc.

13.

Obsługa menu systemowego (GUI) użytkownika.

14.

Obsługa konserwatorska i testująca stany pracy sytemu.


Zadania i wyposażenie na poziomach hierarchicznego rozproszonego systemu
(Rys.5.8)

1.

Poziom Centralny(CentrCtr) - konsola operatorska, synoptyka graficzna,
raporty, archiwizacja, badanie trendów, transmisja globalna, retransmisja.

2.

Regionalny (RegCtr) - konsola operatorska, ekran tryb graficzny, agregacja
danych, raporty, archiwizacja, transmisja, obsługa tablicy synoptycznej.

3.

Lokalny (LocCtr) - konsola operatorska, ekran tekstowo-semigraficzny,
transmisja globalna, agregacja, skalowanie, obsługa komend sterowania
zdalnego.

4.

Obiektowy (ObjCtr) - brak stałej konsoli, obsługa mikroprocesorowa: odczyt z
układów AKP, obsługa sterownia, algorytmy regulacji bezpośredniej,
transmisja lokalna

.

5.

Obiekty (Obj n) Automatyki Kontrolno Pomiarowej (AKP): układy pomiarowe,
czujniki, przetworniki A/C i C/A, liczniki, rejestry, inne układy i bramki
logiczne, specjalizowane układy mikroprocesorowe.

background image

Modelowanie Procesów Dyskretnych

86

6.

Obiekty Procesu Technologicznego - (urządzenia i media technologiczne)
napędy maszyn roboczych, materiały, surowce, układy: transportowe, zasilające,
kontrolujące i sterujące.

































CentrCtr

Adr 000

ObjCtr

Adr 111

RegCtr

Adr 100

RegCtr

Adr 200

LocCtr

Adr 110

LocCtr

Adr 120

LocCtr

Adr 210

ObjCtr

Adr TSN

TSN

Obj A

TSN

Obj B

Obj C

Obj F

Obj E

Obj D

obiekty poza sytemowe,
tylko wizualizacja brak
pomiarów i sterowania.

retransmisja

ObjCtrAd

r

211

tablica
synoptyczn
a

Rys. 5.8. Wyposażenie poziomów hierarchicznego systemu

background image

Modelowanie Procesów Dyskretnych

87



Realizacja tak złożonych zadań wymaga ścisłej klasyfikacji wszystkich
projektowanych funkcji i zgrupowania ich w funkcjonalnych modułach. Na
rysunku (Rys 5.9) przedstawiono pewien przykładowy ogólny podział na takie
moduły. Z założonej funkcjonalności wynika także, opracowanie odpowiednich
struktur danych i związków zachodzących między nimi, które zapewnią efektywny
do nich dostęp i ich obsługę. Rozwiązanie tego problemu będzie przedmiotem
ć

wiczeń.



























Prog. Główny

stzuw

110

Dane Systemu

Obsł. Konsoli

console

Obsługa

Ekranów

display

Obsługa

Transmisji

obstra

Transmisja

transm

Archiwizacja

archiv

Obsł. przerw.

czasowych

timedate

Inicjalizacja

Konfiguracja

conf

110

Raporty

reports

Disk

Printer

Sie

ć

monitor

Keybord

obiekty ekran

synopt

ekr

110

??

strumienie

danych

wywoływanie

funkcji

obsługa
przerwań

Rys. 5.9. Schemat związków międzymodułowych

background image

Modelowanie Procesów Dyskretnych

88

5.5.2. Przykłady aplikacji monitoringu procesów technologicznych.


Ć

wiczenia

Przedstawione w pkt. 5.5.1 założenia doczekały się praktycznej realizacji, w
postaci dwóch aplikacji. Ze względu na ich historyczny charakter (lata 1989-92 i
1994-97) posiadają one dość rygorystyczne ograniczenia w zakresie interakcji z
użytkownikiem wynikające z limitowanego w tamtych czasach dostępu do
wielkości i jakości sprzętu a także oprogramowania. Warto jednak poznać te
rozwiązania ponieważ one dalej obowiązują tylko, że są ukryte w złożonych
procedurach i dostępne na najniższym poziomie w profesjonalnych rozwiązaniach.
Uwaga:

path/

oznacza indywidualną ścieżkę do przekopiowanych z serwera

materiałów do ćwiczeń


A. Uruchomienie aplikacji RPW (Rys 5.10)
1. Zmień rozdzielczość ekranu na 800x600 i włącz autoukrywanie paska zadań w

menu Start

2. W katalogu path

/

cw5/RPW

uruchomić s.bat

3. Przejść na ekrany ZUW, KP3, Nastawn, wykonać sterowanie wybraną zasuwą.
4. Prześledzić opis stanu obiektów i pomiarów na ekranie Legenda, wysłać pocztę

i zakończyć program



















Rys. 5.10. Ekran główny RPW

background image

Modelowanie Procesów Dyskretnych

89






































Rys. 5.11. Ekran KP4 – sterowanie zasuwą

Rys. 5.12. Ekran ZUW

background image

Modelowanie Procesów Dyskretnych

90















B. Aplikacji konsolowa na platformie systemu Win XP – Rys. 5.13
1. W katalogu

path

/

cw5

/zuw/

uruchomić s.bat.

2. Przejść klawiszami strzałek na ekran Zbiorniki RII )

3. Włączyć CapsLock (symulacja awarii transmisji) i po pewnym czasie

wyłączyć (ok ½ minuty) zaobserwować i zinterpretować efekt migotania
danych na ekranach.

4. Przejść na ekran Awarie (Rys 5.14) – wykonać strzałkami przewijanie ekranu.
5. Podjąć próbę odbioru poczty (menu główne) – obsłużyć komunikat.
6. Napisać i wysłać pocztę ( menu główne – nadrzędne)

Rys 1.2







Rys. 5.14. Ekran awarii

Rys. 5.13. Ekran Zbiorniki

background image

Modelowanie Procesów Dyskretnych

91


C. Opracowanie algorytmu programu testującego przerwanie i projektu
podstawowej obsługi.

Na tym etapie zostanie uruchomiony i przetestowany przykład programu

będący niewielkim ale podstawowym fragmentem z zaprezentowanych w punktach
A i B złożonych funkcjonalnie aplikacji. Fragment ten dotyczy między innymi
dyskretnego synchronicznego w czasie procesu wyświetlania danych pomiarowych
na ekranie. Należy podkreślić że większość zdarzeń w omawianych systemach jest
czasowo uwarunkowana (np: animacje, dźwięki, synchroniczna transmisja,
timeout’y określające czasy reakcji użytkownika na wybrane zdarzenia itp.).
Ponadto istotnym założeniem jest bezpośrednie wykorzystanie obsługi przerwania
czasowego sterowanego impulsami zegara czasu rzeczywistego pozwalające na
bardzo szybką i niezawodną obsługę zdarzeń. Szybkość i niezawodność obsługi
jest często bardzo istotnym warunkiem realizacji sterowania procesami
szybkozmiennymi i ważnymi z punktu widzenia bezpiecznego ich przebiegu.
Zadanie dotyczy uruchomienia aplikacji konsolowej.

1. W katalogu path

/

cw6/

uruchomic

ztint1.exe.

(zad. time interrupt)

2. Zaobserwować na ekranie (Rys 5.15) zmiany czasu, animację mijających

sekund oraz wydruk wartości z 1 sekundowym time'outem.

3. W katalogu path

/

cw6/

uruchomić ztint

2.exe.

4. Wykonać polecenia z klawiatury: wpisz tekst i steruj strzałkami.
5. Uruchomić jeszcze np 2 razy aplikacje ztint

1.exe

i zaobserwować

równoległą realizację wszystkich procesów obliczeniowych (obserwowana
współbieżność była prawidłowo zrealizowana dopiero od wersji. Windows
NT )

6. Wybrać wersję kompilatora TC2 lub MC4, wchodząc do odpowiedniego

katalogu i zapoznać się z funkcjami obsługi przerwania czasowego testując
wskazany program źródłowy:. zmodyfikować wydruk, wygenerować sygnał
dźwiękowy.

a) wer. TC2. plik

path

/

cw

6/tc2/c

tintc.c

:

zapoznać się z funkcjami

w programie oraz edytorem

tc

, kompilacją i wykonaniem

Ctrl+F9

b) wer. MC4 plik

path

/

cw

6/ctint

.c

:

zapoznać się z funkcjami w

programie z edytorem -

mec

, kompilacją -

ct

, linkowaniem -

lkt

i

wykonaniem

ctint

7. Opracować algorytm obsługi wydruku i następnie pozostałych operacji

odwołując się do obsługi przerwań z zegara i z klawiatury i wzorując się na
działaniu

ztint1.exe

, Na podstawie opracowanego algorytmu napisać

background image

Modelowanie Procesów Dyskretnych

92

program

zad5.c

. Uwaga w zadaniu wykorzystać wstępnie przygotowany

program z procedurami obsługi przerwań plik

ctintc.c

8. Opracować własny projekt programu modelującego układ rzeczywisty.

Wzorując się na działaniu

ztint2.exe

, rozszerzyć obsługę zdarzeń i

procesów dyskretnych wzbogacając program o własne pomysły. Opracować i
załączyć do projektu strukturę danych, przeprowadzić symulację testującą
































Rys. 5.15. Ekrany dla programów

zad1mtime

i

zad2mtime

background image

Modelowanie Procesów Dyskretnych

93



program

ż

ródłowy ctintc.c

/**************************************************************************
* *
* PROGRAM CTINTC.C *
* *
* Test procedur zarzadzajacych obsluga przerwania czasowego *
* *
**************************************************************************/

#define MAIN
#include <conio.h>

/* int getch(void); int kbhit(void); */

#include <stdio.h>

/* sprintf(tekst,wzorzec, par,...), puts(tekst),

int cprintf(*char),int putch(int),int ungetch(int);*/

#include <dos.h>

/* getvect(INT), setvect(INT, Funkcja ) */

#include <time.h>

/* time_t czas; time( &czas );

tt = *localtime( &czas ); struct tm tt; */

#define INT 0x1C

/* numer dla przerwania czasowego 18 razy na sek */

/* Prototypy funkcji wlasnych modulu */

void Intr_Init( void );
void interrupt far Intr_Obsluga( void );
void Intr_Close( void );

static void (interrupt far * intr_old )();

/* poprzednie przerwanie */

/*-----------------------------------------------------------------------
| PROCEDURA Intr_Init
| CEL: Procedura inicjalizuje obsług

ę

- przerwania czasowego kod 1C.

| PARAMETRY: brak.
| ODWOLANIA:
| -----------------------------------------------------------------------*/

void Intr_Init( void ) {
intr_old = getvect( INT );

/*zapamietaj aktualna obsługe*/

setvect( INT, Intr_Obsluga);

/* ustaw now

ą

obsług

ę

*/

}

/*--------------------------------------------------------------------------
| PROCEDURA Intr_Close
| CEL: Procedura odtwarza obsług

ę

przerwania czasowego

| PARAMETRY: brak.
| ODWOLANIA:
-------------------------------------------------------------------------*/

void Intr_Close( void ) {
setvect(INT, intr_old);

/*odtworzenie obsługi przerwania*/

}

/*--------------------------------------------------------------------------
| PROCEDURA Intr_Obsluga( void ){
| CEL: Procedura obsługiwana przez przerwanie czasowe
| PARAMETRY: brak.
| ODWOLANIA:
-------------------------------------------------------------------------*/

background image

Modelowanie Procesów Dyskretnych

94


void interrupt far Intr_Obsluga( void ){

/* ????????????
tutaj napisz kod funkcji zgodny z
opracowanym na

ć

wiczeniach algorytmem symulacji . */

};

/*--------------------------------------------------------------------------
| PROCEDURA MAIN
| CEL: Koordynuje i obsługuje podstawowe zadania systemu ...
| PARAMETRY: brak.
| ODWOLANIA:
-------------------------------------------------------------------------*/

int main()
{

// PROGRAM testujacy

int i=15000;

char buf1[80];
clrscr();

// MS4 system("cls");

Intr_Init();
gotoxy(40,10);

// MS4 _settextposition(10,40);

sprintf(buf1,"%10d",i);
cprintf(buf1);

// MS4 _outtext(buf1)

Intr_Close();
gotoxy(25,20);
getch();
return 0;
}



background image

Modelowanie Procesów Dyskretnych

95

5.6 Systemy SCADA/HMI

Systemy pozyskiwania danych procesowych z graficzną wizualizacją

SCADA/HMI (Supervisory Control And Data Acquisition/Human Machine
Interface).

I. Uruchomienie przykładowego projektu (Rys 5.16).

1. Wykonać kopię katalogu

cw7

w

"

C:\Documents and Settings\

swoj_login

2. Otworzyć okno poleceń (konsolę) w katalogu

"

C:\Documents and Settings\

swoj_login

\cw7

3. Uruchomić

log

swoj_login

(mapowanie katalogu na dysk K:)

4. Uruchomić programy do komunikacji DDE, np

Excel Zeszyt1.xls

Histdata,

tymczasowo zatrzymać aktualizację łącza, ustawić dla

uwikłanych formuł:

Narzędzia/Opcje/Przeliczanie – Iteracje = Tak ,
Maksymalna liczba iteracji = 1

5. Uruchomić w trybie wykonywalnym (Viewer - runtime)

intouch

wskazać

K:\newapp\example

i kliknąć prawą ikonę,

zignorować brak klucza i potwierdzić wybór

okno2

dokończyć aktualizację łącza

DDE np.Excel Zeszyt1.xls

6. Uruchomić w trybie projektowania okien (Window Maker)

intouch

wybrać projekt

K:\newapp\example\

i kliknąć lewą ikonę) a następnie zignorować brak klucza i potwierdzić
wybór okno

2


II. Wizualizacja i sterowanie w przykładowym modelu układu.

7. Obsłużyć kolejno:

- przycisk lub przełącznik lub tekst [Wyłączony/Załączony] lub Ctrl+Shift+S,
-

zaobserwować linię czasu na wykresie,

- zmienić Ciśnienie i Force
- zaobserwować pojawianie się i odwoływanie alarmów i oraz zmiany na

wykresie,

- nacisnąć przycisk, moto 10[On/Off],
- zaobserwować wyniki na przyrządzie wskazówkowym oraz w opisach

tekstowych nacisnąć przycisk Otwórz Okno o1,

- zmodyfikować okres trendu historycznego zmienić parametr i zamknąć okno
8. Powrót na ekran projektowania i przegląd elementów modelu układu.

background image

Modelowanie Procesów Dyskretnych

96

9. Słownik zmiennych systemowych (ze znakiem $) oraz użytkownika menu

Special/ Tagname Dictionary/ Select

.

10. Skrypty i właściwości wyzwalające zdarzenia wg pkt 7 ( Double Click)
- ogólne aplikacji - menu Special/ Scripts/ Application Scripts/ On Startup
- obiektów – np podwójne kliknięcie przycisku moto / Action / On Key Down
- tekst Zal/Wył., obsługa okna Sterowanie Message i przycisków On /Off i

klawisza Ctrl+Shift+S

- tekst Alarm, obsługa kolorów i migotania Sterowanie Message
- Force, realizacja Next Links dla opcji

User Inputs = Analog Text Color = Analog zaobserwować zmianę kolorów

11. Realizacja pozostałych elementów - kliknij na wykres oraz wybrane obiekty
- zinterpretuj parametry modelu układu

12. Realizacja połączenia DDE np. Intouch => Excel

Zeszyt1.A4 = VIEW|TAGNAME ! t0

Zeszyt1.A1 = VIEW | TAGNAME ! Cisnienie

Zeszyt1.B1= 25 los()=> Zakłocenie Cisnienia(ZmDDE)

5.16a Przykładowe okno aplikacji

background image

Modelowanie Procesów Dyskretnych

97








































5.16b Przykładowa konfiguracja kanału DDE obiekt


5.16 c Przykładowa konfiguracja kanału DDE system

background image

Modelowanie Procesów Dyskretnych

98


















Realizacja prostego projektu - na dowolnie wybrany temat


Opracowanie projektu prostej aplikacji - wizualizacja i sterowanie wybranym
układem z wykorzystać połączenie dwukierunkowego DDE
- wykorzystać narzędzia (Rys 5.17) do zamodelowania ekranów synoptycznych
własnego projektu)

















Przykładowy ekran projektu przedstawia Rys 5.18

5.16 d. Przykładowa konfiguracja kanału DDE system cd

Real-Time
Trend

Button

Wizard

Rys 5.17 Narzędzia do projektowania okien

background image

Modelowanie Procesów Dyskretnych

99



Intouch ver 10.0

Aktualnie firma Wonderware udostępnia wersję Demo w wersji 10.0,

której wybrane ekrany Rys 19, … Rys 21- przedstawiają aplikację w stanie
edycji modelu a Rys 22. w stanie symulacji Na ćwiczeniach należy
zapoznać się z rozszerzona funkcjonalnością tej wersji.

Rys 5.18 Przykładowy ekran projektu

background image

Modelowanie Procesów Dyskretnych

100

Rys 5.20 Lista zmiennych systemowych i procesowych

Rys 5.19 Edycja zmiennych - Windows/Tagname Directory/Select Tag

background image

Modelowanie Procesów Dyskretnych

101

Rys. 5.21. Program skryptu

.

Rys 3.22 Ekran symulacji procesu

background image

Modelowanie Procesów Dyskretnych

102

Literatura (do rozdz. 5.).

1. Kondratowicz L., Modelowanie symulacyjne systemów. WN-T, 1978.

2. Perkowski P.: Technika symulacji cyfrowej, WN-T, Warszawa 1980.

3. Tyszer J., Symulacja cyfrowa, WN-T, Warszawa 1990.

4. Raczynski S. ""Modelling and Simulation”, Wiley; 2006

5. Winiecki W., Jacek Nowak J., Stanik S., Graficzne zintegrowane środowiska

programowe do projektowania komputerowych systemów pomiarowo-
kontrolnych. Wydawnictwo MIKOM, 2001.

6. Woolfson M.M., Pert G.J. ""An introduction to computer simulation"", Oxford

University Press, USA, 1999

7. Evans J.B, Structures of discrete event simulation: an introduction to the

engagement strategy"", Prentice Hall, 1988

Strony internetowe.

1.

http://warp.cpsc.ucalgary.ca/

2.

http://www.dcs.ed.ac.uk/home/hase/simjava/

3.

http://jist.ece.cornell.edu/jist-user/

4.

http://asi-www.informatik.uni-

hamburg.de/themen/sim/forschung/Simulation/Desmo-J/

5.

www.astor.com.pl/www/Produkty_i_technologie/

6.

http://www.wonderware.com.pl/www/index.php/wizualizacja-hmi/wonderware-
intouch.html


Wyszukiwarka

Podobne podstrony:
Kłoczowski - Miedzy samotnością a wspólnotą - skrypt cz2, RELIGIOZNAWSTWO, Filozofia REligii
MPD Skrypt
SKrypt rolne 12 cz2
Kloczowski Miedzy samotnoscia a wspolnota skrypt cz1 i cz2 (polaczone)
Zakażenia grzybicze skóry cz2
06 pamięć proceduralna schematy, skrypty, ramyid 6150 ppt
parafunkcje cz2
podziały złamań cz2 1sd
8(45) Diagramy klas cz2
charakterystyka dochodow samorzadu terytorialnego (cz2
Style kierowania cz2
Wykład I Grafika inżynierska cz2
geodezja satelitarna skrypt 2 ppt
Mój skrypt 2011
Mechanika Techniczna I Skrypt 2 4 Kinematyka
MNK skrypt

więcej podobnych podstron