Úvod do simulace - 1

Podobné dokumenty
Úvod do simulace - 1

SDI. František Manlig. Technická univerzita v Liberci. Simulace diskrétních systémů TU v Liberci

Layout pracoviště a řízení Rozvrhování pracovníků

Úvod do systémů hromadné obsluhy. charakteristika SHO: systém, který poskytuje obsluhu určitého typu

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

IMOSI - MODELACE A SIMULACE LEARN 2013 správně možná špatně

Programovací jazyk Pascal

U Úvod do modelování a simulace systémů

Úvod do modelování a simulace. Ing. Michal Dorda, Ph.D.

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

ZÁKLADY AUTOMATICKÉHO ŘÍZENÍ

OSA. maximalizace minimalizace 1/22

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Grafové algoritmy. Programovací techniky

Algoritmizace. 1. Úvod. Algoritmus

Modelování a simulace Lukáš Otte

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

Řízení projektů Simulační projekt

Algoritmizace prostorových úloh

Informační systémy a plánování výroby 2.čast

Algoritmizace prostorových úloh

Grafové algoritmy. Programovací techniky

VSy II. Kapacitní propočty. František Manlig. Technická univerzita v Liberci. Výrobní systémy II TU v Liberci

Úloha 1: V městě A leží hromada 1000 tun písku. Zjistěte, za jak dlouho lze

Úvod do programovacích jazyků (Java)

Sada 1 - Základy programování

EXPERIMENTÁLNÍ MECHANIKA 1. Jan Krystek

Implementace seznamů do prostředí DELPHI pomocí lineárního seznamu

ŠVP Gymnázium Ostrava-Zábřeh Úvod do programování

Six Sigma - DMAIC. Jan Vavruška Technická univerzita v Liberci. TU v Liberci

Rozvrhování výroby. František Koblasa Technická univerzita v Liberci. TU v Liberci

Algoritmizace prostorových úloh

Učební pomůcka Simulace Witness

Informační systémy plánování výroby - pokročilé rozvrhování

DMAIC Definuj, Měř, Analyzuj, Inovuj, Kontroluj

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Činnost: 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.

NPRG030 Programování I RNDr.Tomáš Holan, Ph.D. 4.patro, č

Seřizování nástrojů na CNC Mazak Integrex IV

SIMULACE SPOLEHLIVOSTI SYSTÉMŮ HROMADNÉ OBSLUHY. Michal Dorda. VŠB - TU Ostrava, Fakulta strojní, Institut dopravy

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

O datových typech a jejich kontrole

Simulační software Witness. Ing. Michal Dorda, Ph.D.

alkoholu v organismu, jízdu výtahů s lidmi...).

Digitální továrna. František Manlig. Technická univerzita v Liberci. TU v Liberci

Střední odborné učiliště Domažlice, škola Stod, Plzeňská 322, Stod

Algoritmizace prostorových úloh

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

1. D Y N A M I C K É DAT O V É STRUKTUR Y

Počítačová simulace logistických procesů I. 11. přednáška Programování v SimTalk. ŠAVŠ, Fábry

ALGORITMIZACE A PROGRAMOVÁNÍ

3 Co je algoritmus? Trocha historie Definice algoritmu Vlastnosti algoritmu... 3

Řízení výroby na základě úzkého místa

Datové struktury. alg12 1

2 Strukturované datové typy Pole Záznam Množina... 4

Lekce 01 Úvod do algoritmizace

Šablony, kontejnery a iterátory

PODPROGRAMY PROCEDURY A FUNKCE

5 Vícerozměrná data - kontingenční tabulky, testy nezávislosti, regresní analýza

NPRG030 Programování I, 2018/19 1 / :03:07

Algoritmy a datové struktury

ZÁKLADY AUTOMATICKÉHO ŘÍZENÍ

Dynamické datové typy a struktury

Počítačová simulace logistických procesů I. - cvičení 04. ŠAVŠ, Štoček, Karpeta, Varjan

Úvod do programování - Java. Cvičení č.4

Šablony, kontejnery a iterátory

Úvod do teorie grafů

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Stromy, haldy, prioritní fronty

Dynamické datové struktury I.

Algoritmizace. Cíle předmětu

VISUAL BASIC. Přehled témat

Konstruktory a destruktory

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

4EK201 Matematické modelování. 8. Modely hromadné obsluhy

MODELOVÁNÍ UZAVŘENÝCH OBSLUŽNÝCH LOGISTICKÝCH SYSTÉMŮ PETRIHO SÍTĚMI

Poslední nenulová číslice faktoriálu

Programování v C++ 3, 3. cvičení

Základní pojmy; algoritmizace úlohy Osnova kurzu

Metoda SMED Rychlá výměna nástroje

KTE / ZPE Informační technologie

Implementace LL(1) překladů

Sada 1 - Základy programování

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

Programování v C++ 1, 1. cvičení

PARADIGMATA PROGRAMOVÁNÍ 2 PŘÍSLIBY A LÍNÉ VYHODNOCOVÁNÍ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Třídění dat. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_26 04

Způsob stanovení ceny tisku a lití ve vakuu

Analýza konstrukčního řešení

NPRG030 Programování I, 2017/18 1 / :22:16

Skripty - úvod. Linux - skripty 2

Úvod do programování

Algoritmizace řazení Bubble Sort

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Programování II. Návrh programu I 2018/19

Transkript:

Tento materiál vznikl jako součást projektu, který je spolufinancován Evropským sociálním fondem a státním rozpočtem ČR. Úvod do simulace - 1 Technická univerzita v Liberci Simulace výrobních systémů 19.10.2011 Technická univerzita v Liberci a partneři Preciosa, a.s. a TOS Varnsdorf a.s. 1 TU v Liberci

Motto Počítačová simulace je jedním z cílů složitého procesu poznání systému, modelování a vlastního simulačního experimentu Simulace obecně by měla být chápána jako alternativní "nouzové řešení" k reálným pokusům, či exaktním (analytickým) výpočtům 2

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Cíle přednáškového bloku Metodologie v oblasti modelování a simulace terminologie pro klíčová slova: systém, modelování, simulace Principy simulace diskrétně chápaných systémů simulační prostředky, demonstrační příklady 3

Systém můžeme definovat jako množinu prvků, které jsou z našeho pohledu dále nedělitelné, a které mají dané vlastnosti a mezi nimiž existují určité vazby. Systémy můžeme rozdělit na: otevřené - uzavřené (podle vzniku, resp. zániku prvků) dynamické - statické (podle závislosti okamžitého stavu na minulosti) deterministické - stochastické (podle výskytu neurčitosti) spojité - diskrétní (podle pohledu na způsob změny stavu) 4

Modelování můžeme popsat jako cílevědomou činnost, kdy pomocí jednoho systému originálu - vytvoříme jiný systém model, přičemž z výsledků chování modelu můžeme usuzovat na chování originálu. Aby toho bylo dosaženo, je nejprve nutné: provést separabilitu zkoumaného objektu stanovit rozlišovací úroveň prvků zajistit kauzalitu popsaných vztahů 5

Stavba modelu Při stavbě modelu pak musíme dodržet odpovídající složky vůči originálu: složku prvkovou - počet prvků modelu musí být stejný jako v originálu (je dána separibilitou a rozlišovací úrovení) složku časovou - sled událostí v originálu musí být stejný jako v modelu (odpovídá kauzalitě) složku relační - vlastnosti a vazby v originálu popisujeme v modelu pomocí atributů (např. smyslové vjemy jako je barva, pozice, apod. vyjadřujeme pomocí kvantifikovaných údajů -čísla, texty, výrazy, ordinální proměnné) 6

Stavba modelu Než-li přistoupíme k vlastnímu modelování, je dobré si zapamatovat dvě jednoduchá, ale o to důležitější pravidla: Při modelování postupujeme vždy od jednoduššího modelu ke složitějšímu umožní nám identifikovat případné chyby v modelu ve stádiu snadno opravitelných chyb. Verifikujeme - ověřujeme zpočátku základní principy chování systému. Model tvoříme především pro uživatele dílčí výsledky konzultujeme s uživatelem, resp. zadavatelem. Úzce souvisí s předchozí zásadou. Zadavatel se tak může včas rozhodnout, zda mu dosavadní výsledky vyhovují (odpovídají realitě) a zda bude financovat další práce na modelu. 7

Dále rozlišujeme dva nejčastěji používané přístupy k modelování: deduktivní - používáme, když známe vnitřní strukturu systému, můžeme pak aplikovat matematicko-fyzikální analýzu systém - matematický model - simulační model induktivní - používáme, když neznáme vnitřní strukturu systému, pokud výstupy systému můžeme měřit, jedná se o identifikaci systém - simulační model - matematický model 8

Simulace je pak vlastní experiment s modelem podle prostředků, které pro simulaci využíváme, můžeme hovořit o simulaci: identické (provádí se na reálném objektu) kvazi-identické (provádí se na reálném objektu, ale na některé výsledky sledovaných veličin se usuzuje nepřímo) laboratorní (fyzikální modely, simulační hry) počítačové - analogová (analogové počítače) - číslicová (číslicové počítače) - hybridní (propojení analogové a číslicové) 9

Diskrétně chápané systémy Systém můžeme již při jeho definici chápat jako sled diskrétních událostí (změn stavů), které se mění "skokem" Model je tak popsán jako uspořádaná posloupnost dvojic (událost, čas) Simulační model je pak možné realizovat pomocí tzv. kalendáře událostí, kdy jsou jednotlivé události zpracovávány (a plánovány) podle předem daného algoritmu. Pro číslicové pořítače jsou k dispozici jak komerčně dodávané produkty (Witness), tak je možné použít i za tím účelem vytvořených vývojových prostředků (PC-Simula). 10

Významnou aplikační oblastí jsou systémy hromadné obsluhy (SHO). V teorii SHO jsou pak důležité "předdefinované" objekty: Spojové seznamy jednocestné, dvoucestné, kruhové Procesy aktivní, suspendovaný, pasivní, ukončený Kalendář událostí realizuje plánování jednotlivých událostí - vytváření koprogramů 11

Děkuji za pozornost Prezentace byla inovována v rámci projektu CZ.1.07/2.2.00/15.0089 - Inovace studijních programů s ohledem na požadavky a potřeby průmyslové praxe zavedením inovativního vzdělávacího systému "Výukový podnik" 12

Tento materiál vznikl jako součást projektu, který je spolufinancován Evropským sociálním fondem a státním rozpočtem ČR. Úvod do simulace - 2 Technická univerzita v Liberci Simulace výrobních systémů 26.10.2011 Technická univerzita v Liberci a partneři Preciosa, a.s. a TOS Varnsdorf a.s. 13 TU v Liberci

Programové prostředky pro simulaci diskrétně chápaných systémů PC-Simula problémově objektově orientovaný jazyk, řadí se mezi vyšší programovací jazyky, tj. používá strukturovaných příkazů a strukturované datové typy. standardní třídy: BASICIO SET ULATION 14

PC-Simula standardní třída: BASICIO Zajišťuje vstupně-výstupní operace, je automaticky linkována k hlavnímu programu. Procedury: outint(i,w); outreal(r,n,w); outtext(t); outimage; Funkční procedury: inint; inreal; inchar; 15

PC-Simula standardní třída: SET Zajišťuje práci programu se spojovými seznamy (fronty). Zohledňuje strukturu kruhového spojového seznamu. Realizace pomocí dvou podtříd: Třída Head definuje hlavu spojového seznamu: procedura clear; funkční procedury first; last; empty; cardinal; Třída Link definuje prostředky pro práci s jednotlivými prvky seznamu: procedury into(s); follow(x); precede(x); out; funkční procedury suc; pred; Deklarace v programu: ref (Head) jmeno (definuje frontu s identifikátorem jmeno) Vlastní realizace fronty: jmeno:- new Head (vytvoří exemplář třídy Head) 16

PC-Simula standardní třída: ULATION Svými prostředky realizuje vlastní simulační výpočet v čase. Pomocí třídy Process definuje prostředky pro plánování v kalendáři událostí. Procedury activate P; aktivuje výpočet procesu P v daném čase výpočtu (stávající proces se stane suspendovaným), tj. zařadí jej jako aktivní do kalendáře událostí. hold(t); pozastaví simulační výpočet daného procesu (události), tj. naplánuje další výpočet tohoto procesu v kalendáři událostí na čas aktuální čas + t proces z kalendáře událostí. passivate; pozastaví výpočet daného procesu na neurčito, tj. vyřadí cancel; ukončí možnost plánování daného procesu, přičemž pokud je proces aktivní nebo suspendovaný, vyřadí jej z kalendáře událostí. Proces X je možné zrušit i mimo jeho příkazovou část tvarem cancel(x). 17

PC-Simula Stavba programu je použita bloková struktura se systémem prefixů na začátku každého bloku jsou deklarace (nezáleží na pořadí) každý proces je ukončen vyčerpáním příkazové části implicitně je prvním procesem v kalendáři událostí hlavní program (označen identifikátorem main ), ukončením příkazové části hlavního programu je tedy ukončen celý simulační experiment ukončené procesy nelze již plánovat v kalendáři událostí, dostupná je ale jejich datová část prázdný kalendář událostí je chápán jako rozpor s realitou!!! 18

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Ilustrativní příklad PC-Simula řešena problematika dopravní úlohy spolupráce více (tří) procesů ukončení simulace na danou podmínku (událost) Zadání úkolem je převést dané množství materiálu z jednoho místa na druhé pomocí několika aut s různou nosností, průměrnou rychlostí, dobou nakládání materiálu a dobou jeho vykládání. Dále je zadána vzdálenost mezi místem nakládání a vykládání (stejná pro oba směry jízdy). Problematika předjíždění a míjení aut se zanedbává. Simulace končí okamžikem, kdy je všechen materiál převezen (vyložen). 19

PC-Simula Ilustrativní příklad - rozbor úlohy Úloha vyžaduje definici tří procesů: Činnost pro uskutečnění nakládání a vykládání a jízdu automobilu: 1) proces NAKLAD uskuteční po dobu určenou parametrem automobilu nakládání materiálu, poté vyšle automobil na cestu k vykládce. Činnost opakuje, dokud je neprázdná fronta FN čekajících aut na nakládání. 2) proces VYKLAD uskuteční po dobu určenou parametrem automobilu vykládání materiálu, poté vyšle automobil na cestu k nakládce. Činnost opakuje, dokud je neprázdná fronta FV čekajících aut na vykládání. Kontroluje, zda je převezen a vyložen všechen materiál. Poté zajistí ukončení simulace (hlavního programu). 3) proces AUTO definuje parametry N-nosnost, R-průměrnou rychlost, DN-dobou nakládání materiálu a DV-dobou vykládání materiálu. Dále parametr I-pro identifikaci automobilu (pořadové číslo). Činnost procesu se opakuje ve smyčce, která zahrnuje zařazení auta do fronty před nakládáním/vykládáním, aktivaci nakladače/vykladače v případě jeho nečinnosti a jízdu mezi oběma místy (vzdálenost VZD). 20

PC-Simula Ilustrativní příklad - rozbor úlohy Dále je zadáno požadované množství materiálu PMAX a počet aut pro přepravu N. Pro ukončení simulace je třeba průběžně sledovat množství převezeného materiálu P a počet naložených aut na cestě PNA. Dále uvedený příklad je chápán jako výchozí návrh pro další modifikace úlohy (zjištění různých statistických údajů např. o počtu jízd, vytíženosti jednotlivých aut, průměrné resp. maximální/minimální velikosti front FN, FV ap.) Příklad je nutné odladit v prostředí PC-Simula (k dispozici freeware) a odzkoušet/verifikovat pro vhodně/libovolně zvolená data. Pro jeden automobil je úloha snadno řešitelná prostým kapacitním výpočtem. 21

Process Class NAKLAD; Begin ref (AUTO) Pom; while true do Begin if (FN.empty) then begin outtext("neni k dispozici zadne auto pro nalozeni"); outimage; if (P >= PMAX) then begin outtext( a neni uz co nakladat"); outimage; passivate; end else Begin POM:-FN.first; outtext("nakladam auto"); outint (POM.cislo,2); outimage; POM.out; hold(pom.dn); PNA:= PNA + 1; P:= P + POM.N; outtext("auto nalozeno"); outin(pom.cislo,2); outimage; activate POM; end; end; end; 22

Process Class Vyklad; Begin ref (AUTO) POM; while true do Begin if (FV.empty) then begin outtext("neni k dispozici zadne auto k vylozeni"); outimage; passivate; end else Begin POM:- FV.first; outtext("vykladam auto"); outint(pom.cislo,2); outimage; POM.out; hold(pom.dv); PNA:= PNA 1; outtext("vylozeno auto"); outint(pom.cislo,2); outimage; if (P >= PMAX) and (PNA = 0) then begin outimage; outtext( HOTOVO a prevezeno v case"); outreal(time,5,15); outimage; activate main; end; activate POM; end; end; end; 23

Process Class AUTO(N,R,DV,DN,cislo); real N,R,DV,DN; integer cislo; Begin while true do Begin into(fn); if NAKL.idle then activate NAKL; passivate; outtext("jedu s materialem - auto cislo: ); outint(cislo,2); outimage; hold(vzd/r); into(fv); if VYKL.idle then activate VYKL; passivate; outtext("jede prazdne auto cislo"); outint(cislo,2); outimage; hold(vzd/r); end; end; 24

ref (HEAD) FN, FV; real P, PMAX, VZD; integer PNA, N, I; ref (NAKLAD) NAKL; ref (VYKLAD) VYKL; FN:- new HEAD; FV:- new HEAD; NAKL:- new NAKLAD; VYKL:- new VYKLAD; outtext("pmax... velikost prehrady:"); outimage; PMAX:= inreal; outtext("vzd... vzdalenost:"); outimage; VZD = inreal; outtext("n... Pocet aut :"); outimage; N:= inint; for I:=1 step 1 until N do begin outtext ("auto "); outint(i,2); outtext(" N, R, DV, DN:"); outimage; activate new AUTO(inreal,inreal,inreal,inreal,I); end; passivate; outreal(time,5,15); outimage; outimage; End; 25

Děkuji za pozornost Prezentace byla inovována v rámci projektu CZ.1.07/2.2.00/15.0089 - Inovace studijních programů s ohledem na požadavky a potřeby průmyslové praxe zavedením inovativního vzdělávacího systému "Výukový podnik" 26