Technická zpráva k projektu do předmětu IMS Okruh 3: SHO Výrobní linka 5. prosince 2013 Autoři: Karel Popelka, xpopel15@stud.fit.vutbr.cz Vojtěch Přikryl, xprikr28@stud.fit.vutbr.cz Fakulta informačních Technologií Vysoké Učení Technické v Brně
Obsah 1 Úvod 3 1.1 Řešitelé projektu a zdroje informací.................. 3 1.2 Ověření validity modelu........................ 3 2 Rozbor tématu a použitých metod/technologií 4 2.1 Použité postupy pro vytvoření modelu................ 4 3 Koncepce modelu 5 3.1 Návrh konceptuálního modelu..................... 5 3.2 Forma konceptuálního modelu..................... 5 4 Architektura simulačního modelu 6 4.1 Parametry programu a překlad.................... 7 5 Podstata simulačních experimentů a jejich průběh 8 5.1 Experiment č.1............................. 8 5.2 Experiment č.2............................. 9 5.3 Experiment č.3............................. 10 5.4 Experiment č.4............................. 11 6 Závěr 12 Referenční zdroje 13 2
1. Úvod Tato technická zpráva byla vytvořena jako součást projektu do předmětu Modelování a simulace. Zpráva se zabývá simulací(viz [5], slajd 8) modelu(viz [5], slajd 7) systému hromadné obsluhy(viz [5], slajd 136, dále SHO) výrobní linky. Při výběru konkrétního příkladu výrobní linky byla zvolena linka na výrobu keramických nožů. Na základě vytvořeného modelu a na něm provedené sérii experimentů bude znázorněno chování systému(viz [5], slajd 7) za různých podmínek. 1.1 Řešitelé projektu a zdroje informací Řešitely projektu jsou studenti Karel Popelka a Vojtěch Přikryl. Kromě těchto dvou osob nebyl do projektu přímo zainteresován žádný další člověk. Jako zdroj informací sloužil pořad televizního kanálu Discovery Channel How It s Made - Ceramic Knife[1]. Bohužel se projekt nepodařilo zkonzultovat přímo s odborným konzultantem, který by byl autoritou v daném oboru. Z toho důvodu byl vytvořen částečně realistický model, který je značným zjednodušením reálné výrobní linky. 1.2 Ověření validity modelu Validita modelu(viz [5], slajd 37) byla experimentálně ověřována. Výsledky simulace ve formě histogramů(viz [5], slajd 81) a dalších statistik se jevily jako přijatelné pro navržený SHO, který je popsán v následující kapitole. Toto experimentování vedlo zejména k nalezení vyhovujících parametrů systému, které nebylo možno dohledat z relevantních zdrojů. Při tvorbě reálné zakázky se předpokládá, že by tato data byla poskytnuta zadavatelem a bylo by navíc možno je prodiskutovat s odborným konzultantem a tudíž by byl model zcela validní. 3
2. Rozbor tématu a použitých metod/technologií Pro modelování a simulaci SHO je nutné perfektně znát jeho reálný chod, parametry jednotlivých strojů, počet obsluhujících lidí a také způsob zadávání práce vzhledem k přijatým zakázkám. Tyto informace bohužel nebylo možno zjistit (z důvodů výrobního tajemství, zachování know-how, aj.), proto se autoři rozhodli v rámci projektu navrhnout takový SHO, který bude schopen vyprodukovat zhruba čtvrt milionů výrobků ročně. Vycházeli z dostupných informací o metodice výroby keramických nožů a tyto informace mají potvrzeny z věrohodných zdrojů(viz [1], [2]). Výroba keramických nožů se dělí do několika separátních částí. Materiálem pro výrobu je prášek oxidu zirkoničitého, který je složitými postupy vyráběn ze zrnek písku zirkonu. Tento materiál je poté přepraven do továrny na výrobu nožů. Další částí je výroba čepele a rukojeti, což jsou činnosti, které nejsou vzájemně ovlivněné a je možno jejich výrobní proces paralelizovat. Výroba čepele probíhá ve dvou fázích. Nejdříve se materiál lisuje ve formě pod vysokým tlakem. Poté takový výlisek putuje dále do pece ke spečení, přičemž samotné spékání trvá 48 hodin(viz [1]). Výroba čepele spočívá v roztavení plastového polotovaru a vylisování výsledného tvaru pomocí formy. Při těchto procesech uvažujeme možnost zmetkovitosti každého dílčího mezivýrobku. Dalším postupem je broušení nožů, které provádí ručně jeden z brousičů. Poté lze výrobek zkompletovat - tudíž zasadit čepel do rukojeti, laserově vypálit do čepele logo firmy, aj. - a tím je nůž připraven k expedici. Předpokládáme třísměnný provoz, což znamená, že zaměstnanci mají ranní, odpolední a noční směnu a výrobní linka tedy pracuje 24 hodin denně. 2.1 Použité postupy pro vytvoření modelu Autoři zvolili použití jazyku C++ a to zejména pro možnost použití knihovny SIMLIB(viz [6]). Tato knihovna poskytuje k použití třídy, které jsou při vytváření simulačního modelu velice dobře využitelné. Výstupem je tedy program, který lze zkompilovat do nativního kódu a tím pádem je možno jej považovat za velmi rychlý, co se týče doby běhu programu. Vysvětlení použitých konstrukcí lze najít zejména ve slajdech druhého demonstračního cvičení(viz [4]) k předmětu IMS. 4
3. Koncepce modelu 3.1 Návrh konceptuálního modelu Při návrhu konceptuálního modelu došlo k několika zjednodušním oproti realitě. Není řešena těžba materiálu a jeho přeprava do továrny, jelikož to není součástí samotného SHO a s výrobou nožů na výrobní lince víceméně nesouvisí. Zjednodušení se pak týká zejména postupu výroby rukojeti, kdy není tato výrobní linka modelována do detailů, ale je abstrahována jedním zařízením. Jelikož jde o sériovou linku, kde nelze úkony provádět paralelně, je tato abstrakce přínosná, jelikož výsledný model zjednodušuje. Dále bylo zjednodušení použito u broušení a kompletaci výsledného výrobku. Zdůvodnění je stejné jako u výroby rukojeti. Po zjednodušení modelu bylo určeno 5 typů procesů - Lisování čepele, Spékání čepele, Výroba rukojeti, Broušení a Expedice. První dva jmenované procesy jsou v systému vždy pouze jedenkrát - na výrobní lince je pouze jeden lis na čepele a jedna výrobna čepelí. Ostatní procesy se objevují vícekrát - U spékání a broušení je počet závislý na počtu pecí, resp. brousičů. Vstupem simulace je zakázka na 150 300 kusů (normální rozdělení s parametry µ = 225, σ = 5), jenž do systému přichází s exponencionálním rozložením. Tato žádost vytváří proces expedice. 3.2 Forma konceptuálního modelu Jako formu konceptuálního modelu jsme zvolili Petriho sít (viz [5], slajd 123). Tato forma je výhodná vzhledem ke své názornosti a možnosti rychle se zorientovat v popisovaném systému. Zároveň se jedná o matematickou reprezentaci, která je jednoznačná. Vzhledem ke skutečnosti, že vstup simulace zároveň generuje náhodný počet kusů, což v Petriho síti nelze simulovat, označili jsme některé hrany nečíselným označením počet kusů. Implementace této odchylky od standardní formální sémantiky Petriho sítě je dále probírána v následující kapitole. Obrázek 3.1: Petriho sít reprezentující konceptuální model. 5
4. Architektura simulačního modelu V implementaci je generování zakázek uskutečněno za pomocí instance třídy Generator, která dědí z třídy Event(viz [5], slajd 169). Tento generátor je spuštěn v momentě započnutí simulace, a poté se aktivuje znovu za čas daný exponencionálním rozložením se středem 8 hodin. Dále byla použita třída Facility(viz [5], slajd 180), a to pro modelování obsluhy jednotlivých strojů, statusu prováděné expedice a obsluhy fronty expedice. Procesy byly modelovány jako objekty třídy dědící z třídy Process(viz [5], slajd 121). Vytvořené třídy v simulačním modelu přesně odpovídají procesům popsaných konceptuálním modelem. Tyto vztahy mezi konceptuálním a simulačním modelem jsou popsány následující tabulkou: Konceptuální model Výroba rukojeti Lis čepele Pec na zapečení čepele Brousič Expedice Třída v simulačním modelu FormaRukojeti() LisCepele() Pec() Brousic() ExpediceZbozi(pocetKusu) Vysvětlení parametru pocetkusu u třídy ExpediceZbozi - jak již bylo uvedeno v kapitole 3.1, při generování příchozí zakázky se generuje náhodný počet kusů, který tato zakázka požaduje vyrobit. Implementačně to je vyřešeno tak, že generátor při aktivaci vygeneruje náhodný počet kusů, který odpovídá normálnímu rozložení. Dále vytvoří požadavek na expedici tohoto počtu kusů zboží a to vytvořením instance třídy ExpediceZbozi a předání počtu kusů zboží právě pomocí parametru pocetkusu. Pro výstup simulace v podobě histogramů byla využita třída Histogram a zaznamenává se pomocí ní doba objednávky v systému. Pro výstup statistik byla použita třída Stat pro monitorování sdílených proměnných. 6
4.1 Parametry programu a překlad Vytvořený program, který reprezentuje simulační model, je možno spouštět s náledujícími parametry:./vyrobnilinka [-t][-m int][-p int][-b int][-s string][-n int] parametr vysvětlení bez parametrů nastavení výchozích hodnot výroby -t změna počátečního stavu kongruentního generátoru -m int záměna pecí za jiné pece o velikosti m -p int změna počtů pecí -b int změna počtů brousičů -s string výpis do výstupního souboru -n int počet naskladněných nožů Překlad programu lze automatizovat pomocí příkazu make s následujícími parametry: Příkaz make make run make run-exp make clean-all Popis příkazu Provede překlad projektu Spustí přeložený projekt Provede sadu experimentů Uvede složku do původního stavu po rozbalení archivu. 7
5. Podstata simulačních experimentů a jejich průběh Experimenty probíhají formou opakovaného spouštění simulace s různými parametry. Jako implicitní vstupní podmínky jsou: VARKA PEC = 200 (lze vyměnit pece za pece o jiné kapacitě) POCET PECI = 8 (každá pec o kapacitě VARKA PEC) POCET BROUSICU = 5 vyrobenonozu = 0 (firma nemá naskladněné žádné nože) Tyto parametry jsou během experimentů měněny a je pozorována změna chování systému. Na základě těchto výsledků jsou sestaveny statistiky a odvozeno doporučení pro výrobní linku. 5.1 Experiment č.1 V prvním experimentu se sledují doby objednávek strávené v systému od jejich přijetí, až po jejich expedici. Cílem je zjistit jak rychle je schopný podnik expedovat objednávky do určitého dne a jaká je průměrně strávená doba objednávky v systému. 5.1.1 Vstupní parametry experimentu Výchozí nastavení modelu. 8
5.1.2 Výstupní informace Histogram času objednávek v systému: počet objednávek 400 200 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 počet dní objednávky v systému Maximální počet dní strávený v systému = 12.646 Celkový počet objednávek v systému = 1087 Průměrná doba objednávky v systému ve dnech = 3.896 5.1.3 Závěr experimentu Tímto experimentem bylo zjištěno, že průměrná doba objednávky jsou necelé 4 dny. Dále bylo zjištěno, že téměř 40% objednávek je expedováno během třetího dne od zadání zakázky. 5.2 Experiment č.2 Druhým experimentem se pozoruje, jak se změní odezva systému v případě zaměstnání jednoho brusiče navíc. Cílem experimentu je porovnat schopnost expedice a počet vyrobených čepelí čekajících na nabroušení. 5.2.1 Vstupní parametry experimentu POCET BROUSICU = 6 9
5.2.2 Výstupní informace Normální stav Brusič navíc Rozdíl Maximálních počet čekajících čepelí 3085 2202 873 Průměrný počet čekajících čepelí 386.71 287.09 99.62 Průměrná doba objednávky [dny] 3.896 3.682 0.214 Maximální doba objednávky [dny] 12.647 9.846 2.801 5.2.3 Závěr experimentu Tímto experimentem bylo zjištěno, že přidáním jednoho brusiče lze mírně zlepšit odezvu systému. Průměrná doba průchodu objednávky se tímto snížila jen o cca. 5 hodin, nicméně maximální doba objednávky se snížila razantně a to o téměř 3 dny. Také počet čepelí čekajících na nabroušení se zásadním způsobem snížil a to o 25%. 5.3 Experiment č.3 Třetí experiment zkoumá výhodu záměn pecí za pece s jinou kapacitou při zachování konstantní sumy kapacit pecí. Experiment pozoruje jak se změní počet čepelí na vložení do pece a celkovou schopnost expedice díky této záměně. 5.3.1 Vstupní parametry experimentu POCET PECI VARKA PEC Normální stav 8 200 Experiment 3.1 2 800 Experiment 3.2 4 400 Experiment 3.3 10 160 5.3.2 Výstupní informace Normal. Exp. 3.1 Exp. 3.2 Exp. 3.3 Maximálních počet čekajících čepelí 4651 4106 3293 2191 Průměrný počet čekajících čepelí 656.257 966.154 737.037 439.418 Průměrná doba objednávky [dny] 3.896 4.301 3.809 3.779 5.3.3 Závěr experimentu Tímto experimentem bylo zjištěno zajímavé pozorování. S rostoucím počtem pecí (a tedy snižujícím se počtem jejich kapacit) se sice razantně snížily fronty 10
před pecí (o 50 i více procent), ovšem na výsledný čas objednávky v systému to nemělo téměř žádný vliv. Závěr tohoto experimentu je tedy ten, že se nevyplatí investovat do varianty s více menšími pecemi. 5.4 Experiment č.4 Experiment č.4 sleduje, jak je výhodé pro výrobní podnik předvyrobit určitý počet nožů a tuto hodnotu se snažit udržovat na skladě. Jako vstup experimentu je udržování skladu o velikostí 1000 nožů. 5.4.1 Vstupní parametry experimentu vyrobenonozu = 1000 5.4.2 Výstupní informace Histogram času objednávek v systému: počet objednávek 400 200 0 Bez naskladnění Naskladnění 1000 nožů 0 1 2 3 4 5 6 7 8 9 10 11 12 počet dní objednávky v systému Průměrná doba objednávky [dny]: Normální stav Naskladněno 1000 nožů Rozdíl 3.896 2.423 1.473 5.4.3 Závěr experimentu Tímto experimentem bylo zjištěno, že při udržování 1000 kompletně vyrobených nožů na skladě se výrazně zmenší doba objednávky v systému a to o téměř jeden a půl dne. 11
6. Závěr Z výsledků experimentů vyplývá několik doporučení pro zvýšení efektivity realné výrobní linky. Zejména lze doporučit provést naskladnění alespoň 1000 zhotovených nožů a tento počet se snažit udržovat na skladě. Dále bylo zjištěno, že v období objemnějších zakázek se vyplatí najmout dodatečného brusiče. Na druhou stranu nelze doporučit výměnu pecí za pece jiné kapacity, jelikož tato investice by se na době odbavení zakázek téměř nepromítla. 12
Referenční zdroje [1] Discovery Channel, How It s Made - Ceramic Knives [Online] http://www.youtube.com/watch?v=jmiheei5wj4. [2] Blog ceramic-cut.blogspot.cz, Výroba keramických nožů [Online] http://ceramic-cut.blogspot.cz/2012/10/vyroba-keramickych-nozu. html. [3] HRUBÝ M., IMS democvičení #1 [cit. 2013-12-05][Online] http://perchta.fit.vutbr.cz/vyuka-ims/uploads/1/ims-demo1.pdf. [4] HRUBÝ M., IMS democvičení #2 [cit. 2013-12-05][Online] http://perchta.fit.vutbr.cz/vyuka-ims/uploads/1/diskr2-2011.pdf. [5] PERINGER P., Slajdy k přednáškám IMS, Verze 2013-09-24 [cit. 2013-12- 05][Online] https://wis.fit.vutbr.cz/fit/st/course-files-st.php/course/ IMS-IT/lectures/IMS.pdf. [6] PERINGER P., SIMulation LIBrary for C++, 2011 [Online] http://www.fit.vutbr.cz/~peringer/simlib/. 13