Studie van een gemodifieerd bucket brigade concept op basis van parallel werkstations

Maat: px
Weergave met pagina beginnen:

Download "Studie van een gemodifieerd bucket brigade concept op basis van parallel werkstations"

Transcriptie

1 Studie van een gemodifieerd bucket brigade concept op basis van parallel werkstations Tom Van Steertegem Promotor: prof. dr. ir. Dirk Van Goubergen Begeleiders: ir. Joris April, Kurt De Cock Masterproef ingediend tot het behalen van de academische graad van Master in de ingenieurswetenschappen: computerwetenschappen Vakgroep Technische bedrijfsvoering Voorzitter: prof. dr. ir. Hendrik Van Landeghem Faculteit Ingenieurswetenschappen Academiejaar

2 Voorwoord In dit voorwoord zou ik graag van de gelegenheid gebruik willen maken om alle mensen te bedanken die, rechtstreeks of onrechtstreeks, hebben bijgedragen tot de voltooiing van deze masterproef. In het bijzonder wens ik Prof. Van Goubergen te bedanken voor het creëren van de mogelijkheid om een masterproef te voltooien in overeenstemming met mijn interesses. Daarnaast ben ik ook Joris erg dankbaar voor de opvolging van deze masterproef, en het bijsturen waar nodig; ook bedank ik Kurt voor zijn bijdrage aan deze masterproef. Niet het minst gaat mijn dank ook algemeen uit naar het bedrijf Van Hoecke voor de geboden opportuniteit, en specifiek naar mevr. Sophie Verhaert als zeer geapprecieerd aanspreekpunt binnen Van Hoecke. Ook de mensen rondom de Halux-productielijn wil ik graag bedanken voor hun hulp en uitleg, en in het bijzonder de operatoren Robby, Halise en Eli. Tom Van Steertegem, 20 augustus 2010 i

3 VOORWOORD ii If you do what you ve always done, you ll get what you ve always gotten. Tony Robbins

4 Toelating tot bruikleen De auteur en promotor geven GEEN toelating deze masterproef voor consultatie beschikbaar te stellen en/of delen ervan te kopiëren voor persoonlijk gebruik. Elk ander gebruik valt onder de beperkingen van het auteursrecht, in het bijzonder met betrekking tot de verplichting de bron uitdrukkelijk te vermelden bij het aanhalen van resultaten uit deze masterproef. The author and promoter DO NOT give the permission to use this thesis for consultation and/or to copy parts of it for personal use. Every other use is subject to the copyright laws, more specifically the source must be extensively specified when using results from this thesis. Tom Van Steertegem, 20 augustus 2010 iii

5 Studie van een gemodifieerd bucket brigade concept op basis van parallel werkstations door Tom Van Steertegem Promotor: prof. dr. ir. Dirk Van Goubergen Begeleiders: ir. Joris April, Kurt De Cock Masterproef ingediend tot het behalen van de academische graad van Master in de ingenieurswetenschappen: computerwetenschappen Vakgroep Technische bedrijfsvoering Voorzitter: prof. dr. ir. Hendrik Van Landeghem Faculteit Ingenieurswetenschappen Universiteit Gent, Academiejaar Samenvatting Bucket Brigade productielijnen zijn seriële productielijnen die op een bijzondere manier zijn georganiseerd: de werkers voltooien producten langsheen de verschillende werkstations en houden zich hierbij aan enkele eenvoudige regels. Een dergelijke opstelling blijkt vaak bijzonder doeltreffend in verschillende opzichten (productiesnelheid, flexibiliteit, work-inprocess,... ), en zal bovenal zonder externe tussenkomst zichzelf organiseren, totdat de meest optimale manier van werken (onder dit model) is bereikt. In deze masterproef wordt het concept uitgebreid tot productielijnen waarbij een deel van het werk in parallel kan gebeuren. Ook werd een softwarematig simulatiemodel ontworpen, waarmee de verschillende opstellingen en verwachte resultaten experimenteel kunnen worden geverifieerd. Tot slot zal dit simulatiemodel worden gebruikt om een aantal openstaande vragen over een real-life case te beantwoorden. Trefwoorden Bucket Brigade, parallelle werkstations, simulatie, productielijnen, werkverdeling

6 Study of a modified bucket brigade concept based on parallel workstations Tom Van Steertegem Supervisor(s): Dirk Van Goubergen, Joris April, Kurt De Cock Abstract Under bucket brigades, a production line is organised in a special manner; each worker follows some simple rules, and so the line becomes self-balancing and reaches good, possibly optimal, throughput. Mostly, a serial and well-defined order of stations is assumed. In this article, we extend the original concept of bucket brigades with parallel workstations. Our results will be checked with the help of our developed software model, capable of simulating almost any ideal and realistic situation. Keywords bucket brigade production, parallel workstations, simulation, production line, work sharing I. Introduction Bucket Brigade production lines have been introduced by Bartholdi and Eisenstein [1]. Along a production line, each worker continues work on his item (unless he is blocked), and follows 2 simple rules: Forward rule: Work forward at your item along the different workstations. If your work is taken by a successor (or when you reach the end of the line), leave the item behind and follow the backward rule. Backward rule: Walk back along the production line. When you encounter another worker (are at the begin of the line), take over his work (start a new product) and follow the forward rule. Under the condition that the workers are sequenced from slowest to fastest along the line (= convergence condition), and the assumption that walk-backs are instantaneous, the system converges without management intervention (it will be self-organising) and after a short period of convergence, to stable handover points and a stable production rate. When the work content of the stations is well chosen so that no workers block (waiting for a station) in steadystate, workers invest the same clock time in each item, and the production rate will be the best achievable. When the convergence condition isn t respected, the production rate may drop significantly, and leads to a system with no stability at all. The randomness of the line cycle time is shown in Fig. 1. II. Continuous workstation One assumption of the classic model of bucket brigades, is that at any station exactly one worker is required to complete the tasks at that station, and each station may be occupied by at most one worker. This may leave workers waiting for a station to become available. To avoid such blocking, we introduce a continuous workstation as an infinite sequence of infinitesimal workstations, with as sum of the infinitesimal work contents, the original work content Fig. 1. Random line cycle time when the convergence condition is not respected of the (ordinary) workstation it replaces. At such a continuous workstation, an arbitrary number of workers can work simultaneously. This can instinctively be seen as an assembly line where each manipulation is small enough. III. Parallel workstations While classic bucket brigade production lines assume that the stations are sequenced in a serial way, one can imagine the need to duplicate one or more stations to avoid blocking workers and so speeding up the production rate. We will denominate such a sequence of duplicated stations a parallel path Fig. 2. parallel path 1 p 1;1 p 1;2 p 2;1 parallel path 2 p 2;2... m Simple production line with parallel paths Under bucket brigade(-alike) working methods, workers have to handover work to a successive worker that has finished his work or has handed over his own work. Such a handover poses no problem when the line is simply serial, but will require clear rules on what station to visit next (working forward or walking backward) in case of parallellism. We assume the following rules: Working forward: If all paths are empty, make an arbitrary choice. If one or more workers are already working along a path, choose the path where the worker closest to the start of the line has the furthest progress. Walking backward: If all paths are empty, make an arbitrary choice. If one or more workers are already working along a path, choose the path where the worker closest to the end of the line has the furthest progress.

7 We notice that there are two options for handovers: Mutually between paths: workers break the idea of paths and (try to) handover with the previous (in order) furthest progressed worker along another path (see Fig. 3). wk 3 wk 4 0 wk 1 a wk 2 The simulation model uses discrete event simulation, and is programmed in Java [2]. It is developed to be able to simulate some ideal bucket brigade systems, as well as real life cases. Moreover, the program should be accessible enough to allow further development if needed. Again, bucket brigade production lines appear to be a very robust way of working in numerous settings. One assumption we can make, is that stations are separated by paths with a well-defined length, and workers have a finite walking speed along them. Our simulation model shows that the line cycle time again converges to a stable value (Fig. 6). Fig. 3. Handover mutually between paths 200 Along the paths: workers walk back following the paths and handover independently of workers on other parallel paths (see Fig. 4) a wk 1 wk 3 Fig. 4. wk 2 wk 4 Handover along the paths In the case of handovers mutually between paths, we find that the production line with parallel workstations simplifies to the parallel workstations being replaced by the previously introduced continuous station, with as many workers allowed as there are parallel paths. The same results as for the classic modeling apply; however, handovers mutually between paths may be difficult in practice (large distances, progresses may be unclear between production lines,... ). When handovers occur along the path, we find that the behaviour of the line (handoff points, line cycle time) is quasi-periodic after a convergence period: the same behaviour occurs every x cycles (see Fig. 5). When we calculate the moving average of the production rate, we again find that the line converges to a good throughput and in case no blocking occurs in steady-state, an optimal production rate Fig. 6. System convergence when using paths We achieve a spectacular result when we introduce fault detection along the stations: at a particular station one discovers that an error has been introduced at an earlier stage. This error leads to an additional processing time. We simulated a situation where (on average though randomly introduced) 1 per 25 products appeared erroneous, and led to a (deterministic) additional work penalty of 25s. In the graph below (Fig. 7), the fault detection is clearly visible, leading to a disturbance of the equilibrium, after which the system converges (exponentially fast) to a stable system Fig. 7. Line cycle time when introducing fault detection Fig. 5. Quasi-periodic (orange) line cycle time of a production line with parallel workstations. Moving average line cycle time converges after a convergence period (blue). IV. Simulation model V. Case study We applied the gained knowledge about bucket brigades (an specifically parallel workstations) to solve some management questions about a real-life bucket brigade production line of aluminium doorframes, where one step (assembly/packaging) occured in parallel due to the high cycle time. References [1] J.J. Bartholdi, III and D.D. Eisenstein, A production line that balances itself, Operations research, 44(1), (1996), [2]

8 Inhoudsopgave Voorwoord Toelating tot bruikleen Overzicht Extended abstract Inhoudsopgave i iii iv v vii 1 Inleiding 1 2 Bucket Brigades Algemeen Klassiek model Theorie Praktijk Simulatie Veralgemeend model Theorie Praktijk Simulatie Bucket Brigades met parallelle werkstations Inleiding Voorbeeld Algemeen Aanname van het klassieke model Keuze tussen parallelle paden Overdrachten tussen de paden onderling Overdrachten langsheen hetzelfde pad Andere variaties op Bucket Brigades Bucket Brigades met stochastische werktijden Bucket Brigades met niet-uniforme werksnelheden Bucket Brigades met leereffect bij werkers vii

9 INHOUDSOPGAVE viii Bucket Brigades in de natuur Simulatiemodel Model Werking Algemeen Configuratie Algemene instellingen Aantal runs Simulatieduur Model Klokfrequentie Loglevel Onderdelen Instellingen van items Batchgrootte Productmix Onderdelen Paden Stations Stations met terugwandelsnelheid Verdelers Verdelers volgens label Machines Buffers Werkers Werksnelheid Wandelsnelheid Andere bouwblokken van het model Distributies Package help Uitvoeren simulatie Nauwkeurigheid Uitbreidingen, verbeteringen Enkele simulaties in de praktijk Stations gescheiden door paden, eindige wandelsnelheid Stations met stochastische werkinhoud Stations met overdrachtstijden Items met verschillend padverloop Items met rework Vergelijking overdrachten bij parallelle paden

10 INHOUDSOPGAVE ix 5 Case study Inleiding Situatieschets Tijdsmetingen De Cauchy-verdeling Post 1: Voorraad aluminium Post 2 (2a + 2b): zagen Post 3: Frees Post 4: Dichtingen Post 5: Boor Post 6: assemblage Post 7: Verpakken Abstractie voor simulatie Simulatie standaardopstelling Instellingen Simulatie Werkverdeling Bufferbezetting Gemiddelde werkinhouden Bespreking Vraagstelling Bespreking Is dit optimaal? Is er verbetering mogelijk? Beste manier van overdragen aan assemblage? Beste manier om rework op te vangen? Wat is de impact van niet werken volgens werksnelheid? Hoe kan post verpakken best worden ingepast? A Configuratiedetails 102 B Details simulaties 115 Bibliografie 124

11 Hoofdstuk 1 Inleiding Bucket Brigade productielijnen zijn zeer aantrekkelijk als productiesysteem, door de inherente flexibiliteit om zich aan te passen aan veranderende omstandigheden, en dit op een spontane, niet-centraal gecoördineerde manier. Ook is men zeker dat wanneer men zich aan enkele eenvoudige voorwaarden onderwerpt, het systeem exponentieel snel naar een stabiele toestand evolueert, en dat dit de meest snelle manier zal zijn om een welbepaald product te produceren met x aantal werkers. Klassieke Bucket Brigade productielijnen zullen in de praktijk echter zelden tot nooit voorkomen, door de ideale manier waarop ze min of meer kunstmatig zijn geconstrueerd. Zo betekent elke niet-deterministische werkinhoud van een station, een flinke afwijking van het klassieke model. Elke dergelijke afwijking maakt een zuiver mathematische voorspelling van het systeemgedrag moeilijk, zoniet onmogelijk. Realistische productielijnen die zijn geïnspireerd op het Bucket Brigade-principe, lenen zich echter uitstekend tot simulaties op computer. Dit zal toelaten om verschillende opstellingen op een handige manier onderling te vergelijken, en hiermee een afdoende, zoniet optimale oplossing te vinden. Deze masterproef behelst een studie van het klassieke model van Bucket Brigades, alsook het creëren van een stuk software om meer algemene Bucket Brigade productielijnen te gaan simuleren, in het bijzonder productielijnen met een werkgedeelte in parallel. De modellen worden getoetst aan de resultaten bekomen met de software; zo kan zowel de juistheid van de modellen experimenteel worden bevestigd, als de software worden geverifieerd op correctheid. Dit werk bestaat uit 4 belangrijke delen. Vooreerst wordt het concept Bucket Brigades theoretisch-praktisch benaderd in zijn verschillende modellen. Vervolgens zal het softwarematige simulatiemodel worden overlopen en besproken. Hierna simuleren we enkele systemen, en tot slot zal de case worden toegelicht en opgelost. 1

12 Hoofdstuk 2 Bucket Brigades 2.1 Algemeen Een Bucket Brigade, soms vertaald als emmerbrigade, is in oorsprong een menselijke ketting met de bedoeling items te transporteren langsheen een ketting van stationair geplaatste mensen. Een klassiek voorbeeld hiervan is het blussen van een brand, door een menselijke ketting te vormen tussen water en de brand. Langsheen de ketting worden volle emmers als bluswater aangevoerd, en lege emmers afgevoerd om opnieuw te vullen. Hier zullen Bucket Brigade productielijnen worden beschreven. Langsheen dergelijke productielijnen zullen werkers een of meerdere items (orders, producten,...) voltooien over verschillende stations (voorraadrekken, machines,...), zonder daarbij noodzakelijkerwijs gebonden te zijn tot welbepaalde zones of stations. In dit hoofdstuk zullen hoofdzakelijk de 3 bucket brigade modelleringen worden besproken (in logische volgorde) die een praktisch belang zullen hebben in deze masterproef: het klassieke model, het veralgemeende model en het zelf geformaliseerde model met parallelle werkstations. Telkens zullen de modellen in theorie worden benaderd, zal de toepassing in de praktijk worden overschouwd en zullen de modellen (en omgekeerd de software) worden geverifieerd door simulatie. Het hoofdstuk wordt afgesloten met een korte samenvatting van variaties op bucket brigades die werden bestudeerd, doch hier van minder belang zijn. Het ontwikkelde softwarematige simulatiemodel zal in dit hoofdstuk worden geïntroduceerd zonder meer; enkel de resultaten zullen worden gebruikt en besproken, hoewel de configuratiedetails zullen worden opgenomen in bijlage. Voor een uitgebreide bespreking van het simulatiemodel en bijbehorende instellingen wordt verwezen naar Hoofdstuk 3. 2

13 HOOFDSTUK 2. BUCKET BRIGADES Klassiek model Theorie Het klassieke model, ook wel normatief model genoemd, van Bucket Brigade productielijnen werd beschreven in de paper A production line that balances itself [1] door John J. Bartholdi en Donald D. Eisenstein. Er wordt vertrokken van een seriële productielijn waar n werkers bewegen langsheen m vast geordende werkstations, met n < m m Figuur 2.1: Eenvoudige seriële productielijn bestaande uit m stations Onder een seriële productielijn wordt een productielijn verstaan waar alle stations eenduidig in serie 1 zijn geplaatst. Een voorbeeld van een seriële productielijn met m stations wordt getoond in Figuur 2.1. Er is geen gecentraliseerd management nodig over de lijn: elke werker werkt onafhankelijk en transparant volgens 2 uiterst eenvoudige regels: Voorwaartse regel (Eng.: forward rule) Werk aan eenzelfde product (item) over verschillende werkstations. Als je product wordt overgenomen door een volgende werker (of wanneer het is voltooid), laat het achter en volg de achterwaartse regel. Achterwaartse regel (Eng.: backward rule) Wandel terug langsheen de productielijn. Wanneer je een vorige werker tegenkomt (of wanneer je aan het begin van de productielijn bent aangekomen), neem zijn product over (start een nieuw product) en volg de voorwaartse regel. In het klassieke model zullen de werkers elkaar nooit inhalen; dit betekent dat hun volgorde wordt vastgelegd bij het begin, en daaropvolgend niet zal wijzigen. Wanneer een werker aan het einde van de productielijn komt, laat hij zijn afgewerkte product achter en wandelt hij terug om het werk van zijn voorligger over te nemen, die op zijn beurt het werk van zijn voorligger overneemt enzoverder, tot de eerste werker een nieuw product begint; op een dergelijk ogenblik reset de lijn zich. Elke werker i langsheen de lijn wordt gekenmerkt door zijn werksnelheid v i en zijn positie x i (volgorde). De positie x i is het percentage voltooide werk t.o.v. de totale werkinhoud 1 Analoog de serieschakeling bij elektronische configuraties, of eenvoudigweg na elkaar

14 HOOFDSTUK 2. BUCKET BRIGADES 4 van een item. De werkers worden tevens verondersteld oneindig snel (terug) te wandelen. Dit laatste betekent dat elke werker voortdurend ook effectief werkt, tenzij hij geblokkeerd wordt (station onbeschikbaar, geblokkeerd door een voorligger,... ). Wanneer de positie van werkers aan een productielijn grafisch dient te worden weergegeven, zal dat in wat volgt gebeuren zoals in Figuur 2.2. De totale werkinhoud a van een item 2 wordt voorgesteld als het lijnsegment tussen 0 en a, en zal worden onderverdeeld in intervallen die corresponderen met de werkinhoud van de stations s i langs deze productielijn. De positie van de werkers wordt voorgesteld als x i. s 1 s 2 s m 0 x 1 x 2 x n a Figuur 2.2: Grafische weergave van de positie van werkers De werksnelheid v i van een werker is eenheidsloos, omdat ze is gedefinieerd relatief t.o.v. 1. Een werker met snelheid 1 zal even lang werken aan een station dan de werkinhoud van dat station aangeeft; een werker met snelheid 2 zal dubbel zo snel klaar zijn aan datzelfde station dan de werker met snelheid 1. Om deze reden wordt voortaan nergens meer het begrip cyclustijd van een station gebruikt: deze cyclustijd (om de hoeveel tijd een station een voor hem afgewerkt product produceert) is immers afhankelijk van de werker aan het station werkt. We spreken dan ook over de standaard werkinhoud, of kortweg de werkinhoud van een station. Er wordt in het klassieke model bovendien aangenomen dat: Aan elk station slechts één werker tegelijk kan werken, het werk aan een station exact één werker vereist, en er meer stations zijn dan werkers (zoniet zullen er steeds werkers geblokkeerd zijn). Het werk aan een station kan worden overgenomen (afgebroken) zonder tijdsverlies. De werksnelheid v i constant is langsheen de productielijn, en is bovendien niet bijzonder (oneindig) klein of bijzonder groot. De volgende convergentievoorwaarde wordt vooropgesteld: Iedere werker langsheen de productielijn wordt gerangschikt volgens zijn werksnelheid v i, waarbij de traagste werker als eerste aan de lijn plaatsneemt, en de snelste werker als laatste: v 1 < v 2 <... < v n 1 < v n 2 Meestal zou de totale werkinhoud worden genormaliseerd tot 1 voor de eenvoud van voorstellen, en dus zou a = 1. Voor de eenvoud van simulatie, en om redenen van eenduidigheid t.o.v. de realistische case study, zal in deze masterproef consequent van deze normalisatie worden afgeweken; de eigenlijke werkinhoud van de stations (cyclustijden) worden gebruikt.

15 HOOFDSTUK 2. BUCKET BRIGADES 5 Onder de gemaakte aannames en mits respecteren van de convergentievoorwaarde, blijkt: 1. dat er unieke posities x i bestaan waar telkens de overdracht gebeurt aan een station wanneer de lijn reset, na een zekere inlooptijd met overgangsverschijnselen. 2. wanneer er geen werkers blokkeren, convergeert de lijn exponentieel snel naar deze unieke overdrachtsposities (anders geformuleerd: de overgangsverschijnselen sterven exponentieel snel uit). 3. bij vaste overdrachtsposities en wanneer er geen werkers blokkeren, zal de productiesnelheid de hoogst haalbare zijn, en worden gegeven door, met v = n v tijdseenheid i=1 v i. Er worden dan v producten per tijdseenheid 3 afgewerkt. Het is zeer belangrijk op te merken dat het klassieke model geen uitspraken doet over de voorwaarden waaronder er geen werkers zullen blokkeren. Er wordt enkel gezegd dat de overdrachtspunten uniek zijn (dit geldt immers ook bij blokkerende werkers, zij zullen bij elke cyclus gedurende dezelfde periode en op dezelfde plaats blokkeren), en dat wanneer er géén blokkeringen zijn, de overgangsverschijnselen exponentieel snel zullen uitsterven en de productiesnelheid optimaal zal zijn. Blokkeringen Een werker zal in het klassieke model blokkeren, wanneer het station waaraan hij wil starten met werken nog in gebruik is door een volgende werker. Beschouw als voorbeeld Figuur 2.3. Deze figuur stelt een productielijn voor met 2 werkers (wk 1, wk 2 ) en 3 stations (s 1, s 2, s 3 ). De werksnelheid v 1 van wk 1 zal kleiner zijn dan de werksnelheid v 2 van wk 2. Deze productielijn zal dus convergeren naar (o.a.) een vast overdrachtspunt, dat we hier aanduiden als o 1;2. s 1 s 2 s 3 0 o 1;2 a Figuur 2.3: Voorbeeld van een productielijn met 2 werkers en 3 stations In stabiele toestand zal wk 1 telkens opnieuw werken in het interval [0; o 1;2 ], en werker wk 2 in [o 1;2 ; a]. Het is gemakkelijk in te zien dat wk 1 na elke reset van de lijn een tijdje zal blokkeren: bij een reset wandelt wk 2 (oneindig snel) terug en zal wk 1 ontmoeten ter hoogte van o 1;2. Op dat moment zal wk 1 zijn product afstaan en (oneindig snel) terugwandelen naar positie 0 om een nieuw product te beginnen. Station s 1 zal echter niet beschikbaar zijn voor wk 1, zolang wk 2 zich binnen het interval [o 1;2 ; s1] bevindt (of dus werkt aan station 3 = de totale werkinhoud van alle stations

16 HOOFDSTUK 2. BUCKET BRIGADES 6 s 1 ). Werker wk 1 zal zolang aan het begin van de lijn blokkeren, als de tijd die wk 2 nodig heeft aan station s 1. Het zal dus belangrijk zijn om blokkeringen zoveel mogelijk te vermijden, zeker in stabiele toestand. Dat kan door de werkinhoud van de stations goed te kiezen, of een voldoende aantal stations te kiezen. s 1 s 2 s 3 0 o 1;2 a (a) Goed gekozen werkinhouden s 1 s 2 s 3 s 4 0 o 1;2 a (b) Kiezen van een voldoende aantal stations Figuur 2.4: Voorbeeld van een productielijn met 2 werkers en 3 stations In Figuur 2.4 worden de aangehaalde oplossingen voor het vermijden van blokkeringen grafisch weergegeven. In beide gevallen zal wk 1 bij een reset van de lijn nu onmiddellijk kunnen beginnen werken aan station s 1. Merk op dat het kiezen van een goede oplossing niet altijd even rechttoe rechtaan is. Bij het opheffen van een blokkering in een praktisch geval zullen ook de overdrachtspunten opschuiven. In de nieuwe evenwichtssituatie zal wk 1 immers meer werk verrichten, en zou het punt o 1;2 dus verder opschuiven naar rechts. Dit zou kunnen leiden tot nieuwe blokkeringen. Door deze betere keuze, zou het kunnen dat wk 1 nu niet meer zal hoeven te wachten op station s 1, maar wel bv. op station s 2 als wk 2 (bv. in Figuur 2.4(a)) onvoldoende snel voortwerkt aan station s 2. Om een goede oplossing te creëren kan best worden uitgegaan van de optimale situatie zonder blokkeringen. De werkintervallen (en hieruit de overdrachtspunten) zijn dan immers zeer gemakkelijk te berekenen: voor 2 werkers met werksnelheden v 1 en v 2 aan een productielijn met totale werkinhoud a, zullen de werkers respectievelijk intervallen met v lengte 1 v 1 +v 2 a en v 2 v 1 +v 2 a afwerken. Het overdrachtspunt zal dan liggen op v 1 v 1 +v 2 a. Men kan de werkinhoud van de stations navenant kiezen, en prima inschatten (a.d.h.v. de werkintervallen) hoe snel een bepaalde werker een station zal verlaten om geen nieuwe blokkering te creëren. De plaats van overdrachtspunten kan ook algemeen uitgebreid worden voor n werkers langs een productielijn met totale werkinhoud a. De plaats van het overdrachtspunt tussen

17 HOOFDSTUK 2. BUCKET BRIGADES 7 werker wk i en wk i+1, of kortweg o i;i+1, ligt op: i k=1 o i;i+1 = a v k n k=1 v k De oplossingen die zijn aangedragen in Figuur 2.4, kunnen dan weer ontoereikend zijn wanneer we het aantal werkers wijzigen, bv. wanneer we een extra snelle werker toevoegen aan het einde van de productielijn. Het aantal overdrachtspunten zal dan met één toenemen, en het oude overdrachtspunt zal opschuiven naar links. We zullen dan zeer waarschijnlijk opnieuw het aantal stations moeten doen toenemen, of de werkinhouden opnieuw beter kiezen. De meest eenvoudige manier om zo weinig mogelijk moeite te hebben met het goed kiezen van werkinhouden van stations t.o.v. wisselende overdrachtspunten, is meteen een voldoende aantal stations te kiezen. Deze redenering leidde tot het gebruik van een nieuw concept: het continue station. Continu station Veronderstel opnieuw het blokkeringsprobleem uit Figuur 2.3, en beschouw meer specifiek het probleemstation s 1. Een oplossing voor het blokkeren was s 1 op te splitsen in meerdere stations; in de limiet zouden we dit station kunnen opsplitsen in een oneindig aantal infinitesimale deelstations met als (oneindige) som van werkinhouden de oorspronkelijke werkinhoud van station s 1. Aan elk van deze (oneindig aantal) deelstations zal slechts één werker kunnen werken zoals de aanname vereist. Als we nu dit oneindige aantal infinitesimale deelstations groeperen tot één continu station, dan kunnen aan dit continue station oneindig veel werkers werken; aangezien elk deelstation slechts een infinitesimale werkinhoud heeft, zal een werker dit station ook maximaal een infinitesimale tijd bezetten, of anders geformuleerd, kunnen de overdrachtspunten langs dit continue station op eender welke (doch welgedefinieerde) plaats voorkomen. Langs een dergelijk continu station kunnen dus zoveel werkers werken als nodig, en kunnen overdrachtspunten vrij voorkomen zonder dat ze leiden tot blokkeringen van werkers. Niets weerhoudt ons om alle bestaande (ordinaire) stations langs een productielijn te vervangen door één continu station, met als werkinhoud de som van de werkinhouden van voorheen. Het idee van een continu station strookt intuïtief bijvoorbeeld met de praktische situatie van een voorraadlijn, waarlangs een voldoende groot aantal (kleine) producten wordt gepicked, en waarbij elke handeling voldoende kort is. Elke pick kan dan worden aanzien als aan één station met een zeer kleine werkinhoud. Als elke handeling dan maar voldoende kort is, zal een station telkens slechts voldoende kort worden bezet, en kan een werker maximaal voldoende kort blokkeren.

18 HOOFDSTUK 2. BUCKET BRIGADES 8 Voordelen van Bucket Brigades De voordelen van een werkwijze volgens het klassieke Bucket Brigade model, zijn belangrijk: Een dergelijke opstelling convergeert dus exponentieel snel tot een stabiel systeem, met een stabiele, optimale en voorspelbare productiesnelheid; deze productiesnelheid is eenvoudig aan te passen door werkers aan de lijn toe te voegen of van de lijn weg te halen. Wanneer wijzigingen worden doorgevoerd (zoals een werker toevoegen of wegnemen), zal het systeem (bij afwezigheid van blokkeringen) exponentieel snel naar een nieuwe stabiele toestand evolueren; dit maakt het systeem erg flexibel. Doordat elke werker slechts een zeer lokaal zicht hoeft te hebben op de productielijn (hij hoeft immers slechts 2 zeer eenvoudige regels te volgen), is er geen overkoepelend, sturend orgaan nodig: de lijn balanceert zichzelf, zonder externe tussenkomst. In dit model zullen zich ook geen tussenvoorraden opstapelen, en wordt het werk in behandeling (Eng.: work in process) tot het strikte minimum gehouden. Chaotisch gedrag van bucket brigades De vereiste dat werkers dienen te worden gerangschikt volgens hun werksnelheid, met de meest snelle werker laatst op de lijn, is erg belangrijk. Zonder deze ordening, is het waarschijnlijk dat de lijn nooit zal evolueren naar een stabiel systeem, met een onstabiele en/of dus suboptimale productiesnelheid tot gevolg. Een dergelijk onstabiel systeem vertoont in het slechtste geval chaotisch gedrag: de overdrachtspunten en de productiesnelheid wisselt ogenschijnlijk totaal willekeurig. In het beste geval vertoont de productielijn quasi-periodiek gedrag: een bepaalde opeenvolging van overdrachtspunten (en lijncyclustijden) treedt elke x cycli op. Hoewel het quasi-periodieke gedrag dan wel mag voorspelbaar zijn (hetzelfde gedrag herhaalt zich immers elke x cycli), zal het niet-stabiel zijn. Quasi-periodiek gedrag, zeker met een korte periode, zal echter beter zijn dan chaotisch gedrag, omdat werkers zich hierop beter kunnen instellen (bv. door leereffect). Wanneer werkers onoordeelkundig aan de productielijn worden toegevoegd, kan dit zelfs leiden tot een (forse) daling van de productiesnelheid, anders dan een verbetering: wanneer aan het einde van een lijn een zeer trage werker wordt toegevoegd, zal deze laatste ook het tempo aan het laatste station (de laatste stations) bepalen; alle snellere werkers vroeger op de lijn zullen beginnen blokkeren, met een daling van de productiesnelheid tot gevolg Praktijk De aannames die het klassieke model maakt, lijken niet of moeilijk toepasbaar op een realistische situatie. In een aantal opstellingen echter, zal de realiteit voldoende dicht

19 HOOFDSTUK 2. BUCKET BRIGADES 9 liggen bij de gemaakte aannames, zodat ook het klassieke Bucket Brigade model praktische toepassing kent. Een typisch voorbeeld is een lijn, waarlangs werkers een order gaan picken onder gunstig georganiseerde omstandigheden. Immers: wanneer de te picken items goed zijn georganiseerd, zal de totale wandelafstand verwaarloosbaar zijn t.o.v. de totale tijd nodig om het gehele order te picken. de overdrachtstijd van een pickorder kan voldoende klein worden gehouden. bij een gelijkaardige opstelling van te picken items zal de werksnelheid vrijwel constant zijn gedurende de lijn. wanneer het aantal te picken goederen telkens gelijkaardig is, zal de totale werktijd gelijkaardig (en bij uitbreiding deterministisch) zijn. Algemeen zullen Bucket Brigade productielijnen meest aangewezen zijn bij een aantal kenmerken van een welbepaalde productielijn[2]: Het uit te voeren werk is in essentie een variatie op een bepaalde vaardigheid. Opdat de werkers flexibel moeten kunnen bewegen langsheen de verschillende werkstations, moet hij ook over de vaardigheden beschikken om vlot en uniform aan al deze werkstations te kunnen werken. Het is ook nodig om werkers ondubbelzinnig te kunnen ordenen volgens het enige doch noodzakelijke criterium: werksnelheid. Er is een grote variatie in de vraag. Bucket Brigade productielijnen zijn zeer flexibel; door werkers toe te voegen of weg te nemen, kan de productiesnelheid snel en nauwkeurig worden gestuurd. Bovendien werken Bucket Brigade productielijnen volgens het Pull-principe[3]: de work in process is minimaal, en dit zowel globaal (over de hele lijn) als lokaal (per werkzone bekeken). Een nieuw item wordt slechts gestart wanneer een item wordt beëindigd, en nergens treden tussenvoorraden op: de doorlooptijd (Eng.: production lead time) wordt beperkt gehouden. Werkers moeten snel kunnen wisselen van station, en snel werk kunnen overnemen van een andere werker. Dit is noodzakelijk voor een goede en efficiënte werking van de productielijn. Zonder dit kenmerk zal er teveel tijd verloren gaan aan wandelen (verplaatsingen) en/of aan overdracht van werk Simulatie 3 werkers, 5 goedgekozen stations Het softwarematige simulatiemodel laat toe om werkers een oneindige wandelsnelheid te geven, en een welbepaalde werksnelheid (relatief t.o.v. 1). De standaard werkinhoud kan

20 HOOFDSTUK 2. BUCKET BRIGADES 10 naar believen (doch voor het klassieke model deterministisch) worden gekozen. We kiezen voor de praktische simulatie een opstelling met 3 werkers met werksnelheden (1, 2 en 3) en 5 stations met een goedgekozen 4 deterministische (standaard) werkinhoud van (in deze volgorde) 60s, 30s, 110s, 100s en 150s. De duurtijd van de simulatie wordt voldoende lang genomen (is hier van ondergeschikt belang), en er wordt gesimuleerd met een klok van 10Hz (= nauwkeurigheid 0,1s). Alle werkers starten vanaf het begin van de productielijn. 0s s 1 s 2 s 3 s 4 s 5 o 1;2 o 2;3 450s Figuur 2.5: 3 werkers, 5 goedgekozen stations Het te verwachten resultaat is dat er v = 3 i=1 = = 6 producten worden geproduceerd per tijdseenheid t = 5 i=1 = = 450s. De stabiele lijncyclustijd is aldus 450 = 75 seconden per product. We simuleren met bovenvermelde 6 gegevens, en het verschil tussen de tijden waarop 2 producten worden afgewerkt wordt berekend. Het resultaat hiervan wordt getoond in Figuur 2.6, de waarden in Tabel Figuur 2.6: Gesimuleerde lijncyclustijd van 3 werkers aan 5 goedgekozen stations ,93 64,39 73,58 79,4 72,54 75,21 75,69 74,54 75,07 75, ,93 74,94 75,01 75,06 74,96 74,99 75,04 74,98 74,99 75, ,99 74,99 75,02 74, Tabel 2.1: Tijdsverschillen (in s) tussen 2 opeenvolgende afgewerkte items 4 Gezien de opgelegde beperking dat er slechts één werker tegelijk kan werken aan een station, dient de werkinhoud goed worden gekozen; zoniet zullen werkers blokkeren langs de lijn (wachtend op het beschikbaar komen van een station) en zal de productiesnelheid slechts suboptimaal zijn. Zie ook vroeger punt over blokkeringen.

21 HOOFDSTUK 2. BUCKET BRIGADES 11 Volgens de simulatie wordt het eerste product geproduceerd na 149,93s. Theoretisch is hier 150s te verwachten, gezien de laatste werker zonder enige beperking/overdacht van begin naar einde kan werken met werksnelheid 3. Reeds vanaf waarde 9 ligt het resultaat erg dicht bij de verwachte 75s, na 24 producten is de lijncyclustijd stabiel op exact de theoretisch te verwachten waarde. 3 werkers, 5 willekeurig gekozen stations We nemen dezelfde werkers als in het vorige gesimuleerde geval, en opnieuw 5 stations met een totale werkinhoud van 450s, maar ditmaal met een respectievelijke werkinhoud van 150s, 110s, 30s, 60s en 100s. Het is eenvoudig in te zien dat de overdrachtspunten in het optimale geval op 75 en 225 van 450, zijnde 1 6 en 3 6 = liggen. 0s s 1 s 2 s 3 s 4 s 5 o 1;2 o 2;3 450s Figuur 2.7: 3 werkers, 5 willekeurige stations Deze opstelling zal leiden tot geblokkeerde werkers, en tot een daling van de lijncyclustijd. Eén blokkering is zeer eenvoudig in te zien: werker 1 zal op station s 1 (werkinhoud 150s) maximaal 75s ver kunnen produceren (wanneer de andere werkers niet blokkeren), tot wanneer zijn product wordt overgenomen door werker 2 bij de reset van de lijn. Werker 2 moet dan nog minstens 75 werkinhoud aan werksnelheid 2 afleggen, en houdt zolang het station bezet voor werker 1. Pas wanneer werker 2 klaar is aan station s 1, kan werker 1 starten aan zijn cyclus. Merk op dat de overdrachtspunten hier zijn aangegeven voor het ideale, niet-blokkerende geval. In realiteit zullen de overdrachtspunten elders liggen, door het gewijzigde evenwicht ten gevolge van de blokkeringen. Figuur 2.8 geeft het resultaat van deze simulatie weer. De lijncyclustijd convergeert zoals verwacht, maar door het blokkeren van werkers slechts naar de suboptimale waarde 85.7s (t.o.v. 75s); dit is maar liefst 14% slechter dan in het optimale geval. De lijn convergeert zelfs iets sneller naar een stabiele toestand, omdat de startsituatie waar werkers sowieso gaan blokkeren, dichter ligt bij de stabiele toestand dan bv. bij de voorgaande simulatie.

22 HOOFDSTUK 2. BUCKET BRIGADES Figuur 2.8: Gesimuleerde productiesnelheid van 3 werkers aan 5 station 3 werkers, 1 continu station Alternatief kan ook één continu station worden beschouwd, waaraan onbeperkt veel werkers kunnen werken (zie ook voorgaand). Langs een dergelijk continu station kunnen de werkers nooit blokkeren, en zullen de simulatieresultaten iets beter zijn 5. Een bijkomend voordeel is dat op deze manier, van iedere werker het voortgangspercentage handig uit te printen is. De simulatie zal worden herhaald met dezelfde 3 werkers uit de voorgaande simulatie, doch ditmaal met slechts één station met een werkinhoud van 450s, waarlangs oneindig veel werkers tegelijk kunnen werken. Ook zal de software licht worden aangepast, zodat het voortgangspercentage wordt uitgeprint bij elke reset van de lijn. Het te verwachten resultaat is hetzelfde als de situatie van 3 niet-blokkerende werkers aan 5 stations Figuur 2.9: Gesimuleerde productiesnelheid van 3 werkers aan een continu station 5 De afrondingsfout bij het bepalen wanneer een product klaar is zal slechts éénmaal doorwegen op het resultaat, i.p.v. eenmaal per station.

23 HOOFDSTUK 2. BUCKET BRIGADES ,67 88,88 68,52 74,69 77,37 73,52 75,2 75, ,69 75,09 75,04 74,94 75, ,99 75,01 74, Tabel 2.2: Tijdsverschillen (in s) tussen 2 opeenvolgende afgewerkte items Figuur 2.9 is vrij gelijkaardig aan Figuur 2.6. Na een korte tijd van overgangsverschijnselen, convergeert de productiesnelheid naar een vaste waarde, zoals te verwachten opnieuw 75. Uit Tabel 2.2 blijkt inderdaad dat ook de eerste waarden uit de simulatie nauwkeuriger zijn t.o.v. Tabel 2.1. De overgangsverschijnselen zijn heviger, maar sterven sneller uit; dit doordat de werkers in geen enkel geval zullen blokkeren, ook niet tijdens de convergentieperiode Voortgang in de tijd (s) Voortgang in % Figuur 2.10: Grafische weergave van de voortgang van de werkers Figuur 2.10 geeft grafisch de voortgang van de werkers weer (op de x-as van links naar rechts resp. werkers 1, 2 en 3, op de y-as de voortgang in de tijd). De plaatsen met horizontaal snijdende lijnen, zijn de tijdstippen waarop de lijn zich reset. Werker 3 voltooit zijn product (= 100%), en wandelt op dat exacte moment oneindig snel terug naar werker 2; werker 2 staat zijn product af en wandelt oneindig snel terug naar werker 1; werker 1

24 HOOFDSTUK 2. BUCKET BRIGADES 14 staat zijn product af en wandelt oneindig snel terug naar positie 0 (= 0%), waar hij een nieuw product start. De snijpunten van de lijnen zijn de overdrachtspunten, die na verloop van tijd convergeren naar vaste punten. Dat laatste geheel conform de theorie van klassieke Bucket Brigades. In Figuur 2.11 wordt dit resultaat nogmaals weergegeven, maar ditmaal geannoteerd met uitleg stabiele overdrachtspunten Voortgang in de tijd (s) Eén product, van begin tot einde, langs 3 verschillende werkers Overdrachtspunten stabiele lijncyclustijd lijncyclustijd 100 werker 1 werker 2 werker Allen startpositie 0 Voortgang in % Figuur 2.11: Grafische weergave van de voortgang van de werkers, geannoteerd 4 werkers, 1 continu station De productiesnelheid van een Bucket Brigade productielijn is eenvoudig te verhogen (bv. bij verhoogde vraag), door een of meerdere werkers aan de lijn toe te voegen 6. Stel we voegen een vierde werker, met werksnelheid v 4 = 1.2 toe aan de lijn, tussen werker 1 en 2 om de volgorde in werksnelheid te respecteren. Zoals kan worden verwacht (Figuur 2.12), 450 convergeert de lijncyclustijd naar = 62, 5 seconden per product. 1+1, slecht geordende werkers, 1 continu station Stel dat we echter deze vierde werker onoordeelkundig toevoegen aan het einde van de productielijn. Op die manier wordt de ordening in werksnelheid niet gerespecteerd. 6 Analoog kan de productiesnelheid worden verlaagd door werkers weg te nemen van de lijn

25 HOOFDSTUK 2. BUCKET BRIGADES Figuur 2.12: Gesimuleerde lijncyclustijd van 4 werkers aan een continu station Figuur 2.13: Gesimuleerde lijncyclustijd van 4 slecht geordende werkers aan een continu station In Figuur 2.13 is totaal geen convergentie meer waar te nemen. De productielijn werkt producten af op een vrijwel willekeurige manier, en ook de waargenomen waarden zijn veel groter dan in het voorgaande geval. De experimenteel bekomen gemiddelde lijncyclustijd (waarbij gedurende 10 uur werd geproduceerd, voor een totaal van 520 afgewerkte producten), is seconden per product. Dit is flink slechter dan het vorige resultaat, ondanks evenveel werkers. Zouden we hier geen continu station hebben genomen, dan zal de resulterende lijncyclustijd doorgaans nog hoger liggen, doordat de laatste werker ook effectief een station zal bezet houden, en de voorgaande werkers effectief staan wachten (i.p.v. nu te kunnen meewerken aan het tempo van de trage werker). In Figuur 2.14 wordt opnieuw de voortgang van de werkers weergegeven. Het verloop is chaotisch, er zijn geen vaste overdrachtspunten te vinden en er is duidelijk te zien dat werker 2 en 3 voortdurend geblokkeerd worden in hun uitvoering door de laatste, trage werker.

26 HOOFDSTUK 2. BUCKET BRIGADES Voortgang in de tijd (s) Voortgang in % Figuur 2.14: Grafische weergave van de voortgang van de werkers Wanneer deze ordening van 4 werkers zou toegepast worden op de 5 afzonderlijke station, zou de lijncyclustijd nog dramatischer omhoog gaan. Dit omdat de laatste werker het laatste station zal bezet houden, en dus de voorlaatste werker frequent zelfs niet zal kunnen meewerken aan het tempo van de laatste, maar geblokkeerd zal staan wachten voor het station. 2.3 Veralgemeend model Theorie In het veralgemeend model van Bucket Brigades[4] wordt gewerkt volgens het klassieke model, met als belangrijkste verschillen: Werkers hebben een eindige, welbepaalde (terug)wandelsnelheid w i 7. Werkers mogen elkaar inhalen (Eng.: overtaking). Een werker mag een andere werker inhalen wanneer ze beiden hetzij terugwandelen, hetzij (voorwaarts) werken. Werkers mogen elkaar passeren (Eng.: passing). Een werker die terugwandelt passeert een andere werker met een grotere index. 7 merk het verschil op met een werker wk i

27 HOOFDSTUK 2. BUCKET BRIGADES 17 De regels waaraan de werkers zich moeten houden, worden aldus: Voorwaartse regel (Eng.: forward rule) Werk aan eenzelfde product (item) over verschillende werkstations. Als je product wordt overgenomen door een volgende werker (of wanneer het is voltooid), laat het achter en volg de achterwaartse regel. Achterwaartse regel (Eng.: backward rule) Wandel terug langsheen de productielijn. Wanneer je een vorige werker wk j tegenkomt met een lagere index (j < i), neem zijn product over; indien aan het begin van de lijn, start een nieuw product. Volg vervolgens de voorwaartse regel. In het veralgemeende model hebben de werkers wel een (start)ordening, maar die is onbelangrijk; deze ordening kan immers, onder voorwaarden, wijzigen tijdens de uitvoering. De werkers worden niet langer enkel gekenmerkt door hun werksnelheid v i, maar ook door hun wandelsnelheid w i. Bij het terugwandelen moeten ze enkel items overnemen van werkers met een lagere index, zoniet moeten ze deze werker passeren. De wandelsnelheid w i, net zoals de werksnelheid v i, is opnieuw eenheidsloos. Ze is gedefinieerd relatief t.o.v. 1, waarbij 1 opnieuw conform werkinhoud voorstelt. Een werker met werksnelheid 2 en wandelsnelheid 1 zal aan een station met werkinhoud 10s, over het hele station gedurende 5s werken, en bij het terugwandelen, hier 10s over doen. Een andere werker met wandelsnelheid 4 zal terugwandelen aan dit station in amper 2.5s, of 4x sneller dan de vorige werker. Uiteraard is de convergentievoorwaarde nu ook anders. De werkers bij een veralgemeende Bucket Brigade productielijn dienen geïndexeerd ( geordend) te worden zodanig dat: 1 v 1 1 w 1 > 1 v 2 1 w 2 >... > 1 v n 1 w n concreet heeft de werker die het minst vertraagd wordt door te werken t.o.v. terugwandelen, de grootste index. Een systeem waarbij de werkers worden geïndexeerd volgens de convergentievoorwaarde, gaat door 2 fases: een sorterings- en een convergentiefase. Tijdens de sorteringsfase zullen de werkers zichzelf gaan ordenen door elkaar in te halen, tijdens de convergentiefase gaat het systeem convergeren tot een stabiel systeem, met vaste overdrachtspunten en stabiele productiesnelheid. Merk op dat bij het veralgemeende model, de veronderstelling van afzonderlijke stations waaraan telkens één werker kan werken zoals bij het klassieke model, spaak loopt. Immers, voor een item wordt nog steeds vereist dat het de nodige bewerkingen (in volgorde) doorloopt langs elk station. Wanneer de werkinhoud van dergelijke stations maar voldoende

28 HOOFDSTUK 2. BUCKET BRIGADES 18 groot is, zou dit technisch betekenen dat een werker die op het punt staat (voorwaarts) ingehaald te worden, na dit station moet wachten: dit staat de vorige werker toe de bewerking op het huidige station te voltooien, de werker in te halen en meteen aan het daaropvolgende station te beginnen werken (waarbij de ingehaalde werker opnieuw zal blokkeren tot de vrijgave van dit volgende station). Ook in de referentietekst[4] wordt niet langer gesproken van stations, maar wel van een assemblagelijn (waarlangs het werk continu en uniform is verdeeld). Deze aanname van een continue assemblagelijn, is hier dus opnieuw het analogon van het voorheen geïntroduceerde continue station. Enkel dus om redenen van logische groepering kan dus nog van afzonderlijke stations worden gesproken. Bovenal moeten aan elk van deze afzonderlijk beschouwde stations voldoende (en bij uitbreiding oneindig) veel werkers tegelijk kunnen werken; iedere handeling/manipulatie moet bovendien voldoende kort zijn, zodat werkers elkaar onderling voorwaarts kunnen inhalen Praktijk Het veralgemeende model maakt twee belangrijke nieuwe aannames: 1. werkers wandelen niet langer oneindig snel terug, maar met een eindige, reële snelheid. 2. wanneer de werkers in hun werken of (terug)wandelen worden geblokkeerd, gaan ze niet langer (domweg) trager werken of wandelen, maar de tragere werker inhalen. Wat voor een productielijn in dit geval dus zeker zal moeten mogelijk zijn, is dat werkers elkaar kunnen inhalen (en passeren). Vooreerst moet er voldoende ruimte zijn, zodat werkers elkaar ook praktisch zullen kunnen inhalen/passeren. Elke handeling aan de productielijn moet bovendien voldoende kort zijn, zodat een inhalende werker de ingehaalde zo kort mogelijk doet blokkeren. In sommige gevallen zal dit inhalen/passeren zelfs ongewenst zijn: de volgorde waarmee items worden begonnen, is bij het veralgemeende model niet noodzakelijk de volgorde waarmee de items de lijn verlaten. Wanneer dit niet is toegelaten, mag niet voor het veralgemeende model worden gekozen. Het praktische voorbeeld voor het veralgemeende model, is bv. een assemblagelijn met voldoende loopruimte waarlangs een niet te groot product wordt geassembleerd. Elke handeling kan kort worden gehouden (klein onderdeel aanbrengen, schroef aandraaien,... ), zodat de werkers elkaar gemakkelijk kunnen inhalen.

29 HOOFDSTUK 2. BUCKET BRIGADES Simulatie Om het veralgemeend model te simuleren, kiezen we 4 werkers (wk 1, wk 2, wk 3 en wk 4 ) met de volgende kenmerken (c naar de berekening volgens convergentievoorwaarde): c wk1 = 1 v 1 1 w 1 = = 0.27 c wk2 = 1 v 2 1 w 2 = = 1.5 c wk3 = 1 v 3 1 w 3 = = 0.25 c wk4 = 1 v 4 1 w 4 = = 0.75 Indexering conform convergentievoorwaarde We kiezen een continu station 8, met een werkinhoud van 250s, en indexeren de werkers zoals de convergentievoorwaarde voorschrijft c wk4 > c wk3 > c wk1 > c wk2, maar houden de start(volg)orde van de werkers zoals hierboven (zie samenvattend Tabel 2.3). Uit Figuur 2.15 blijkt dat de productiesnelheid convergeert naar een stabiele waarde. startorde kleur werksnelheid wandelsnelheid 1 v x 1 w x index werker 1 1 oranje werker 2 2 groen werker 3 3 zwart werker 4 4 blauw Tabel 2.3: Overzicht volgorde, kleur en indexering werkers Figuur 2.15: Gesimuleerde productiesnelheid van 4 correct geïndexeerde werkers 8 zal in de simulatie een longstation worden genoemd

30 HOOFDSTUK 2. BUCKET BRIGADES 20 In Figuur 2.16 wordt de voortgang van elke werker weergegeven, volgens de gegevens in Tabel Voortgang in de tijd (s) Voortgang in % Figuur 2.16: Grafische weergave van de voortgang van de werkers Opnieuw wordt Figuur 2.16 geannoteerd met uitleg. Dit wordt weergegeven in Figuur De sorteringsfase is duidelijk waar te nemen onderaan de grafiek: werker 3 werkt als eerste een product af; hij wandelt terug en passeert achtereenvolgens werker 1 en werker 2. Wanneer de werkers in hun definitieve volgorde staan, is de productiesnelheid nog niet stabiel: nu volgt de convergentiefase. Hierna convergeren de overdrachtspunten, en wordt de productiesnelheid stabiel.

31 HOOFDSTUK 2. BUCKET BRIGADES Voortgang in de tijd (s) werker 4 (index 1) stabiele overdrachtspunten werker 1 (index 3) convergentiefase stabiele lijncyclustijd werkers gaan elkaar passeren werker 2 (index 4) werker 3 (index 2) sorteringsfase Voortgang in % Figuur 2.17: Grafische weergave van de voortgang van de werkers, geannoteerd Indexering niet volgens de convergentievoorwaarde Veronderstel dezelfde werkers en dezelfde stations als hierboven. De indexering gebeurt nu echter volgens de volgorde waarin de werkers starten (index wordt gelijk genomen aan de startorde), en respecteert dus de convergentievoorwaarde niet. De verwachting is dan ook dat de productiesnelheid en de overdrachtspunten niet netjes zullen convergeren tot een enkele waarde, maar willekeurig zullen zijn of in het beste geval quasi-periodiek. Figuur 2.18 toont de productiesnelheid van deze opstelling. De waardes hebben geen enkele neiging tot convergeren, noch tot enig quasi-periodiek gedrag Figuur 2.18: Gesimuleerde productiesnelheid van 4 verkeerd geïndexeerde werkers

32 HOOFDSTUK 2. BUCKET BRIGADES 22 De overdrachten tussen de werkers gebeuren als het ware op chaotische punten en zonder regelmaat. Figuur 2.19 illustreert dit treffend Voortgang in de tijd (s) Voortgang in % Figuur 2.19: Grafische weergave van de voortgang van de werkers 2.4 Bucket Brigades met parallelle werkstations Inleiding In deze thesis zullen Bucket Brigade productielijnen worden bestudeerd, waarbij een welbepaalde stap (die bestaat uit een of meerdere stations) een of meerdere malen zal worden gedupliceerd. Het concept van parallelle paden binnen Bucket Brigade productielijnen is totaal nieuw: de theoretische overschouwing die volgt is dan ook eigen werk en een deel van het doel van deze masterproef.

33 HOOFDSTUK 2. BUCKET BRIGADES Voorbeeld Om de overgang naar Bucket Brigades met parallelle werkstations vlot te maken, wordt geopteerd om te beginnen met een voorbeeld uit het klassieke model, om dit voorbeeld vervolgens uit te breiden naar parallelle werkstations. Beschouw in Figuur 2.20 een seriële productielijn met zijn stabiele overdrachtspunten voor 5 werkers (= 4 overdrachtspunten). Aan elk station kan ten hoogste één werker werken. De werkers werken conform het klassieke model van Bucket Brigades, en zijn geordend volgens de convergentievoorwaarde (van traag naar snel). s 1 s 2 s 3 s 4 s 5 s 6 0 o 1;2 o 2;3 o 3;4 o 4;5 a Figuur 2.20: Seriële productielijn met vaak blokkerende werkers Er vallen meteen een aantal zaken op in deze Figuur 2.20: Het overdrachtspunt o 2;3 ligt exact aan het begin van station s 2. Het voltooide werk per werker (de intervallen [0; o 1;2 ], [o 1;2 ; o 2;3 ],... ) zou gezien de ordening volgens werksnelheid, ook moeten toenemen van klein naar groot; dit is echter totaal niet zo. Het blijkt dat, oorzakelijk door de hoge werkinhoud aan station s 2, werkers 1 tot 3 vaak geblokkeerd staan wachten: zolang werker 4 (interval [o 3;4 ; o 4;5 ]) station s 2 bezet houdt, kan werker 3 niet beginnen. Wanneer werker 2 vervolgens aankomt bij station s 2, blijkt werker 3 reeds aan s 2 begonnen, zodat hij de rest van zijn cyclus ook spendeert aan wachten. Het management besluit dan ook dat de productiesnelheid te laag ligt door het onaanvaardbaar lang wachten van de werkers op station s 2, en besluit station s 2 te dupliceren zodat aan dit station in parallel kan gewerkt worden (Figuur 2.21). s 1 s 2;1 o 3;4 s 3 s 4 s 5 s 6 0 o 1;2 o a s 4;5 2;2 o 2;3 Figuur 2.21: Productielijn met een parallel werkstation Er blijken nu geen werkers meer te blokkeren, en hierdoor is de productiesnelheid flink verhoogd. Dit is een goed voorbeeld van een productielijn waar een station (of een aantal stations) parallelliseren een goede oplossing is.

34 HOOFDSTUK 2. BUCKET BRIGADES Algemeen Typisch bij het gebruik van parallelle paden (stations) is dat de werktijd van een bottleneck 9 pad oorspronkelijk onaanvaardbaar hoog is (in het voorbeeld was dit een pad met slechts één station, namelijk s 2 ) in verhouding tot de beoogde productiesnelheid, en dus wordt dit pad (desgevallend meer dan tweemaal) gedupliceerd om blokkeringen (zoveel mogelijk) te vermijden. parallel pad p 1;1 p 1;2 p 2;1 p 2;2... m parallel pad 2 Figuur 2.22: Eenvoudige productielijn met 2 parallelle paden In Figuur 2.22 wordt een eenvoudige productielijn weergegeven met 2 parallelle paden. Langs elk pad staan telkens 2 stations p 1 en p 2. Elk item zal telkens de opeenvolging van stations doorlopen, doch slechts langs één parallel pad worden bewerkt. Elk item wordt dus voltooid langsheen één van deze sequenties van stations: p 1;1 p 2;1... m p 1;2 p 2;2... m In de theoretische beschouwing zal er steeds van worden uitgegaan dat elk parallel pad identiek is, en elk station langs de productielijn een deterministische werkinhoud heeft. Voor de eenvoud van voorstellen, zal er tevens van worden uitgegaan dat elk parallel pad over één (en hetzelfde) station beschikt; er is echter geen reden waarom dit niet zomaar is uit te breiden naar meerdere stations Aanname van het klassieke model Zoals eerder gesteld bij het veralgemeende model van Bucket Brigades, zal het moeilijk zijn te spreken van stations bij dit veralgemeende model, mede omdat langs elk dergelijk station immers (althans theoretisch) oneindig veel werkers kunnen werken. Werkers kunnen dus (theoretisch) ook niet blokkeren doordat een station onbeschikbaar is. Het is dus onlogisch om het veralgemeend model te betrekken bij een concept voor parallelle werkstations. Hierna wordt dan ook enkel de aanname van een (in oorsprong) klassieke 9 flessenhals

35 HOOFDSTUK 2. BUCKET BRIGADES 25 modellering gemaakt. We nemen dan ook aan dat de werkers telkens zijn geordend volgens de convergentievoorwaarde (volgens werksnelheid, van traag naar snel) Keuze tussen parallelle paden Een werker zal op een bepaald moment een (goede) keuze moeten maken tussen de verschillende parallelle paden: waarlangs hij het product verder wenst te voltooien of waarlangs hij zal terugwandelen. We concretiseren de keuze voor een werker als volgt: Voorwaarts werkend Indien er lege paden zijn, maak een willekeurige keuze tussen deze lege paden. Indien alle paden bezet zijn door een of meerdere werkers, kies het pad waaraan de eerste 10 werker reeds het verst is gevorderd langs dit pad; indien gelijken, maak een willekeurige keuze onder deze gelijken. Achterwaarts wandelend Indien alle paden leeg zijn, maak een willekeurige keuze tussen deze lege paden. Indien alle paden bezet zijn door een of meerdere werkers, kies het pad waaraan de laatste werker reeds het verst is gevorderd langs dit pad; indien gelijken, maak dan een willekeurige keuze onder deze gelijken. Een dergelijke keuze is vooral logisch. Ingeval van lege paden is de keuze duidelijk. Wanneer alle paden bezet zijn, kiest een werker voorwaarts het pad met de eerste werker die het verst gevorderd is: dit geeft hem de beste kans om zo snel mogelijk te kunnen beginnen aan een vrijgekomen station; in achterwaartse richting kiest een werker de werker die het verst is gevorderd langs de lijn: dit zal de ordening volgens werksnelheid zo goed mogelijk respecteren. Deze keuze mag dan wel logisch zijn, ze zal in de praktijk maken niet altijd even gemakkelijk zijn omdat de exacte voortgang van werkers niet steeds gemakkelijk is in te schatten Overdrachten tussen de paden onderling Er dient opgemerkt dat in het geval van parallelle paden, de overdracht op een dergelijk parallel pad op 2 verschillende manieren kan gebeuren: tussen de paden onderling (de traditionele lijn verbreken) 10 hij die zich het dichtst bij het begin van de lijn bevindt

36 HOOFDSTUK 2. BUCKET BRIGADES 26 volgens het reeds afgelegde pad terug te keren tot een vorige werker wordt tegengekomen Beide benaderingen vergen een totaal andere bespreking. In deze sectie zullen overdrachten tussen paden onderling worden besproken; in de hieropvolgende sectie zullen overdrachten langsheen hetzelfde pad worden behandeld. Theorie In het geval dat overdrachten gebeuren tussen de paden onderling, zal een werker die zijn product moet afstaan terwijl hij zich op het parallelle pad bevindt, eerst (proberen) een product over te nemen van een voorganger langsheen een ander parallel pad. Dit wordt grafisch weergegeven in Figuur 2.23 (voor de eenvoud van voorstellen is geen onderverdeling gemaakt volgens stations). Een werker zal bij een reset het product overnemen van zijn dichtste voorganger; indien meerdere keuzes, zal hij zijn dichtste natuurlijke 11 voorganger nemen. wk 3 wk 4 0 wk 1 a wk 2 Figuur 2.23: Overdracht tussen de paden onderling (wk 3 wk 2 ) bij een reset Het is eenvoudig in te zien dat elke werker dus het werk zal overnemen van de werker die zich volgens de convergentievoorwaarde exact één plaats voor hem bevond. Deze manier van overnemen behoudt dus strikt de volgorde van de werkers volgens de convergentievoorwaarde. We zouden deze manier van overnemen tussen de parallelle paden onderling dus kunnen aanzien als overnames langs één serieel pad (gezien het behoud in ordening), met dat verschil dat er langs dit pad verschillende werkers kunnen voorkomen. Gezien onze veronderstelling dat er zich langs elk parallel pad juist één station bevindt (die bovendien alle identiek zijn), kunnen we alle parallelle stations gaan aanzien als een enkel station, maar dan wel een waaraan nu evenveel werkers tegelijk kunnen werken als er parallelle stations zijn. Dit nieuwe station is dan ook niets anders dan een vroeger deïntroduceerd continu station, zij het met een beperkt doch goedgedefinieerd aantal werkers (anders dan een oneindig 11 de dichtstbijzijnde voorganger volgens de startvolgorde (conform de convergentievoorwaarde)

37 HOOFDSTUK 2. BUCKET BRIGADES 27 aantal werkers). Door het gebruik van een dergelijk (vervangend) continu station, vereenvoudigt de parallelle lijn zich tot een seriële lijn. Het gedrag van deze seriële lijn zal hetzelfde zijn als het klassieke analogon, alleen kan dit continue station nu meerdere 12, stel x, overdrachtspunten bevatten i.p.v. slechts één. Het continue station (= het equivalent van de parallelle stations) wordt in het geval van meerdere (x) overdrachtspunten gebruikt om te verhinderen dat x 1 werkers, die in het klassieke analogon geblokkeerd zouden staan wachten voor het station, nu aan de parallelle stations (alias het continue station) toch kunnen doorwerken. Dit strookt ook met de oorspronkelijke reden om een station te gaan dupliceren. Beschouw ter verduidelijking een productielijn (met totale werkinhoud genormaliseerd tot 1) volgens het klassiek model van Bucket Brigades, met overdrachtspunten zoals in Figuur 2.24 van 3 werkers met respectievelijke snelheden 1, 2 en 3. De overdrachtspunten bevinden zich dus in het optimale geval op 1 6 en 3 6 = o 1;2 o 2;3 1 Figuur 2.24: Stabiele overdrachtspunten in een optimaal klassiek systeem We kiezen nu 4 stations op een slechte manier, zoals in Figuur Opnieuw zijn de overdrachtspunten (ter referentie) uit het optimale systeem weergegeven. Deze overdrachtspunten zijn voor deze gekozen stations echter onmogelijk: aan station s 2 kan slechts één werker tegelijk werken. Hier zouden de overdachtspunten dus verschuiven naar links, tot er maximaal één per station voorkomt. De productiesnelheid zal suboptimaal zijn: het is immers duidelijk dat werker 2 een tijdje zal geblokkeerd staan wachten op station s 2, zolang het wordt bezet gehouden door werker 3. Vervolgens zal werker 1 op zijn beurt staan wachten zolang werker 2 aan dit station werkzaam is. s 1 s 2 s 3 s 4 o 0 1;2 o 2;3 1 Figuur 2.25: 4 slecht gekozen stations met de vroegere overdrachtspunten Station s 2 heeft veruit de grootste werkinhoud, en vertraagt de productiesnelheid dusdanig dat wordt besloten station s 2 te dupliceren, zoals Figuur 2.26 weergeeft. 12 evenveel als er werkers kunnen werken, of dus evenveel als er parallelle paden zijn

38 HOOFDSTUK 2. BUCKET BRIGADES 28 s o 2;1 2;3 s 1 s 3 s o 1;2 s 2;2 Figuur 2.26: Model met overdrachtspunten en gedupliceerd station s 2 Door station s 2 te dupliceren, zal de lijn opnieuw kunnen produceren zonder geblokkeerde werkers, en dus naar een optimale productiesnelheid convergeren. Gezien werker 2 echter wisselt van pad, zal werker 1 daaropvolgend het andere (lege) pad nemen, en zullen de overdrachtspunten wel afwisselend op het ene, dan wel het andere pad voorkomen. Dit heeft echter geen invloed op de productiesnelheid. Bedenkingen bij deze modellering Hoewel deze modellering perfect legitiem is, en zich eenvoudigerwijs simplificeert tot de originele modelleringen zij het met bijzondere, continue stations, zullen de opgelegde vereisten de uitvoering praktisch moeilijk, en soms zelfs onmogelijk maken. Er zijn meerdere redenen te bedenken om niet te kiezen voor overdrachten tussen de parallelle paden onderling: De oorspronkelijk zeer eenvoudige regels, zijn nu een flink stuk ingewikkelder: de werker, onderweg naar een overdracht, dient steeds te weten wie zijn voorganger is, en aan welk parallel pad die zich bevindt. Wanneer de werkruimte onoverzichtelijk is (bv. een werker kan zich wegstoppen achter een station), dan kan er veel tijd verloren gaan bij het zoeken naar deze unieke, correcte werker. De afstand tussen de verschillende parallelle paden kan groot zijn, of zelfs niet overbrugbaar (fysiek gescheiden ruimtes, geen plaats om te wandelen tussen de stations door, te onveilig om te overbruggen,... ) Overdrachten langsheen hetzelfde pad Een oplossing voor de problemen met overdrachten tussen de paden onderling, kan zijn de werkers te instrueren steeds de paden te volgen. In dit geval hoeft een werker slechts terug te wandelen langs het pad dat hij (vermoedelijk) reeds doorlopen heeft, op zoek naar een vorige werker; in het slechtste geval dient hij een goede keuze te maken tussen verschillende mogelijke parallelle paden. Deze manier van overdragen zal hoe dan ook qua principe dichter aanleunen bij het originele concept van Bucket Brigades, gezien een werker slechts over een eerder lokaal zicht op de lijn dient te beschikken. Een voorbeeld van deze manier van overdragen, wordt gegeven in Figuur 2.27.

39 HOOFDSTUK 2. BUCKET BRIGADES 29 wk 3 0 a wk 1 wk 4 wk 2 Figuur 2.27: Overdracht langsheen hetzelfde pad (wk 3 wk 1 ) bij een reset Theorie In het klassieke model wordt een volgorde ingesteld bij het begin, die daaropvolgend niet zal wijzigen: wanneer 2 werkers elkaar immers in tegenovergestelde richting ontmoeten, draagt de ene zijn product over aan de andere, en beiden wijzigen hun richting. Bij overdrachten langsheen parallelle paden, kan een werker terugwandelen onafhankelijk van zijn natuurlijke voorligger, die zich op het andere parallelle pad bevindt; hij zal dan ook niet het item overnemen van deze voorligger, maar van een eerdere voorligger (of een nieuw item starten). De volgorde van de werkers wordt dus globaal gezien niet langer gerespecteerd. Langsheen de verschillende paden die een item kan doorlopen zal deze volgorde wel steeds worden gerespecteerd, zij het dan dat niet steeds alle werkers zullen voorkomen. De andere aannames uit het klassieke model, zoals het feit dat werkers elkaar niet zullen inhalen noch passeren en de oneindige wandelsnelheid, blijven gelden. Veronderstel dat de oorspronkelijke ordening van de werkers in Figuur 2.27 was volgens de convergentievoorwaarde: v 1 < v 2 < v 3 < v 4 wk 4 is aan het einde van de productielijn, laat zijn product achter en start terug te wandelen. Aan de opsplitsing in parallelle paden kiest hij de dichtstbijzijnde werker, wk 3, neemt zijn product over en start verder te werken. Werker wk 3 wandelt langsheen het pad terug, en komt als eerste wk 1 tegen, onafhankelijk van de positie van wk 2 die zich langs een ander parallel pad bevindt. wk 3 neemt het product over van wk 1 en start vooruit te werken, wk 1 wandelt terug en start een nieuw product. De globale ordening, voor zover hiervan kan worden gesproken bij parallelle paden, is nu: wk 1 wk 3 wk 2 wk 4 Het opleggen van een convergentievoorwaarde, dezelfde als bij het klassieke model, zal echter een voldoende voorwaarde zijn opdat de werkers zich steeds in deze zelfde volgorde

40 HOOFDSTUK 2. BUCKET BRIGADES 30 bewegen op de seriële paden (voor en na het parallelle gedeelte), indien de keuzeregels aan de parallelle paden worden gerespecteerd. Het klassieke model heeft reeds aangetoond dat deze ordening optimaal is voor de seriële paden in kwestie. De convergentievoorwaarde zal een voldoende voorwaarde zijn om de werkers op de seriële stukken op de beste manier te ordenen, maar geen nodige voorwaarde zijn. Beschouw immers (bijvoorbeeld) het volgende systeem met 3 werkers, waarbij de werkers vanaf positie nul starten in de volgorde van hun indexen: wk 1 wk 2 wk 3 Er geldt echter v 1 = 1, v 2 = 3 en v 3 = 2. En dus voldoet de ordening van de werkers niet aan de convergentievoorwaarde. Beschouw nu een opstelling met 3 stations, waarvan station 2 gedupliceerd is en in parallel staat. Station s 1 heeft een werkinhoud van 10s, station s 2 van 70s en station s 3 van 20s. Aan elk station kan slechts één werker tegelijk werken. De evolutie van het systeem vanaf tijdstip 0 is weergegeven in Figuur 2.28; de aanduidingen zijn vanaf (b) weggelaten om de figuren overzichtelijk te houden. 0s s 1 s 2;1 s 3 s 100s 2;2 (a) Opstelling wk 1 wk 2 wk 3 (b) Na 5s wk 3 wk 1 wk 2 (c) Na 8.33s wk 3 wk 1 wk2 (d) Na 18.33s Figuur 2.28: Evolutie in de tijd van 3 werkers Reeds na 18,33s zal wk 2 zijn voorligger wk 3 duidelijk ingehaald hebben. wk 2 zal dan ook als eerste het parallelle pad beëindigen, en dus de volgorde (conform de convergentievoor-

41 HOOFDSTUK 2. BUCKET BRIGADES 31 waarde) herstellen. Hoewel de startvolgorde afweek van de convergentievoorwaarde, zal het systeem zichzelf corrigeren; dit zal echter niet steeds het geval zijn. De convergentievoorwaarde is dus een voldoende voorwaarde, doch geen nodige. Quasi-periodiek gedrag Deze keuze van overdrachten zal echter, tenzij in 2 bijzondere gevallen die laterop worden besproken, nooit convergeren naar een stabiele productiesnelheid met stabiele overdrachtspunten. De reden is dat een terugwandelende werker op een bepaald moment een keuze zal moeten maken tussen 2 parallelle paden, die elk wijzigen in de tijd. Dit is eenvoudig in te zien met een kort bewijs uit het ongerijmde. Wanneer de overdrachtspunten in elke cyclus gelijk zijn, moeten zij logischerwijs op dezelfde hoogte liggen op de parallelle paden. Indien dit immers niet zo zou zijn, zouden deze punten in de loop van de tijd toch onderling van positie wijzigen, doordat de lijn niet eindig is en steeds de verst liggende wordt overgenomen; de dichtst liggende zal dus blijven verder liggen, en op een bepaald moment voorop liggen op het andere punt; op dat moment zal het overdrachtspunt daar liggen, en dus op een andere hoogte dan het vorige punt. Neem dus de situatie waar beide punten op dezelfde hoogte liggen; de keuze moet dan afwisselen tussen de twee paden. Het punt vóór de parallelle paden moet echter ook stabiel zijn, en dus moeten 2 werkers om beurten evenveel werk opknappen en dus even snel werken. Dit laatste is echter strijdig met de convergentievoorwaarde, die een strikte ordening vereist van de werkers. Dat betekent dus dat een parallel systeem per definitie niet stabiel zal zijn. Het zal zich echter wel quasi-periodiek gedragen, waarbij de periode in essentie afhangt van het aantal cycli dat de parallelle paden nodig hebben om elkaar in te halen. Aangezien de productiesnelheid zich dus ook quasi-periodiek zal gedragen, is het wel mogelijk een stabiele gemiddelde productiesnelheid (over één periode) te berekenen. De gemiddelde productiesnelheid zal opnieuw optimaal zijn, wanneer geen werkers blokkeren. Het parallelle pad kan echter zijn aangewend om een blokkering uit het klassieke model te verhelpen; in dat geval zal de gemiddelde productiesnelheid beter zijn dan de (suboptimale) productiesnelheid in het klassieke model. Ook zal deze gemiddelde productiesnelheid nog steeds exponentieel convergeren. In 2 bijzondere gevallen echter, kan er nog van een écht klassiek model met stabiel gedrag worden gesproken bij overdrachten langsheen paden: Wanneer er slechts één stabiel overdrachtspunt blijkt voor alle parallelle paden samen. Dit betekent echter concreet dat in evenwichtstoestand, telkens slechts één parallel pad zal worden gebruikt. Dit geval is dus equivalent met een ordinaire seriële productielijn, zonder parallellismen.

42 HOOFDSTUK 2. BUCKET BRIGADES 32 Wanneer alle stabiele overdrachtspunten zich op de parallelle paden bevinden, en de convergentieregel wordt gerespecteerd per apart beschouwd pad. Hier kan elk parallel pad dan eigenlijk als een aparte productielijn worden aanzien, zij het met hetzelfde begin- en eindpunt. Dit systeem is eigenlijk een verzameling van aparte, ordinaire seriële productielijnen, evenveel als er parallelle paden zijn. Bedenkingen bij deze modellering Quasi-periodiek gedrag is eerder ongewenst bij Bucket Brigades, omdat (binnen een periode) de overdrachtspunten telkens zullen wijzigen: dit zal o.a. nefast zijn voor een optimaal leereffect van de werkers. Bovendien is de periode van dit quasi-periodiek gedrag onbegrensd en niet zomaar te voorspellen. Ook deze modellering zal dus met de nodige omzichtigheid moeten worden geëvalueerd wanneer ze wordt ingevoerd. Er is een goede kans dat dit systeem, mits een voldoende kleine periode, prima zal presteren onder de aannames van Bucket Brigades. In een aantal gevallen echter kan de prestatie ondermaats zijn door de praktische neveneffecten (blokkeringen door niet-onmiddellijke overdrachten,... ) van de onstabiliteit; variaties op dit model (zoals bv. het opbouwen van kleine tussenvoorraden aan begin/einde van de parallelle paden) kunnen hier oplossingen bieden. Simulatie Beschouw een productielijn voor 3 werkers, met werksnelheden 1, 2 en 3. Ze worden geordend volgens de convergentievoorwaarde. Langs deze productielijn staan 4 stations, met werkinhoud respectievelijk 40s, 350s, 130s en 80s (samen 600s). In Figuur 2.29 wordt het resultaat weergegeven. De oranje lijn is de lijncyclustijd. Na de convergentieperiode is duidelijk het quasi-periodiek gedrag waar te nemen, hier met periode 3. De blauwe lijn is het voortschrijdende gemiddelde van de afgelopen periode (hier dus van de laatste 3 op dat moment bekende lijncyclustijden). Ook dit gemiddelde kent een convergentieperiode zoals vroeger, en convergeert hierna naar een vaste waarde, in dit geval seconden per product. Deze waarde is te verklaren doordat er alsnog blokkeringen optreden.

43 HOOFDSTUK 2. BUCKET BRIGADES Figuur 2.29: Gesimuleerde lijncyclustijd van 3 werkers met 4 stations Om het gedrag nogmaals te bekijken en te verifiëren of de software inderdaad de verwachte gemiddelde waarde van 100 seconden per product geeft, maken we opnieuw gebruik van continue stations om alle blokkeringen te vermijden. Uit Figuur 2.30 blijkt de correcte verwachte waarde Figuur 2.30: Gesimuleerde lijncyclustijd van 3 werkers met continue stations Zouden we deze zelfde gegevens gebruiken in een klassieke modellering zonder parallelle paden en zonder continue stations, dan is duidelijk dat de werkers een groot stuk van de tijd zullen geblokkeerd staan. Immers, in een klassiek systeem zonder blokkeringen, zouden de overdrachtspunten op 100 en 300 liggen; beide punten liggen nu echter binnen station 2. Ten overvloede dient opgemerkt dat de werktijd en deze blokkeringen als logisch gevolg zouden hebben om te overwegen om station 2 te gaan dupliceren. Het resultaat wordt weergegeven in Figuur Merk op dat de eerste 50 resultaten zijn weergegeven. De lijncyclustijd convergeert vrijwel onmiddellijk naar de (zeer suboptimale) 140s (tegenover 100s in het beste geval, en 106.8s met een extra station in parallel).

44 HOOFDSTUK 2. BUCKET BRIGADES Figuur 2.31: Gesimuleerde lijncyclustijd van 3 werkers zonder parallelisme 2.5 Andere variaties op Bucket Brigades In het kader van de algemene (literatuur)studie rond Bucket Brigade productielijnen, werden nog een aantal variaties op Bucket Brigades bestudeerd; deze bleken echter van minder rechtstreeks belang voor deze masterproef. In wat volgt werden deze artikels kort samengevat; wie verder geïnteresseerd is in deze onderwerpen verwijs ik graag door naar de originele artikels (Engels) Bucket Brigades met stochastische werktijden De aanname dat werk langsheen een productielijn vast en uniform verdeeld is, is realistisch voor een aantal gevallen (die dan steeds verder worden bijgestuurd om zoveel mogelijk variabiliteit en bottlenecks te vermijden). In de gevallen dat er echter to order wordt gewerkt, en zeker wanneer deze order een grote variabiliteit vertonen, is een dergelijke aanname onrealistisch. Het artikel [5] dat hier wordt besproken, is deels een theoretische beschrijving, deels een case study van een lijn waar order-pickers (hoogst variabele) klantenorders uitvoeren. Bucket Brigades zullen dan ook worden uitgebreid tot stochastische systemen: wanneer een lijn bestaat uit voldoende veel (m) werkstations, en de werkinhoud aan elk station onafhankelijk is en een exponentiële distributie volgt met gemiddelde 1, dan zal deze lijn convergeren naar het deterministische model van deze lijn met een totale werkinhoud van 1. De case study toonde bovendien een verbetering van 34% in de pickingsnelheid bij de invoering van Bucket Brigades, t.o.v. zone picking, waar elke werker is gelimiteerd tot een welbepaalde zone voor het gaan picken van een deel van zijn order.

45 HOOFDSTUK 2. BUCKET BRIGADES Bucket Brigades met niet-uniforme werksnelheden In dit artikel[6] wordt het effect beschreven wanneer de werksnelheid van werkers niet uniform is langsheen de productielijn, maar bv. in een eerste interval sneller dan in een tweede interval. Er worden 2 werkers beschouwd: werker 1 heeft een snelheid v 1;1 in het interval [0; X[, en een andere snelheid v 1;2 in het interval [X; 1]; werker 2 heeft een vaste snelheid v 2 = 1; er geldt bovendien v 1;1 < 1 < v 1;2. Onafhankelijk van de startpositie en de initiële ordening van de werkers (indien we toelaten dat de werkers eenmalig van volgorde wisselen wanneer ze elkaar inhalen), zal de productielijn opnieuw convergeren naar hetzij volkomen stabiel gedrag (één stabiel overdrachtspunt), hetzij naar quasi-periodiek gedrag met periode van maximaal 2 (2 overdrachtspunten waarlangs de overdracht afwisselend plaats vindt) Bucket Brigades met leereffect bij werkers Wanneer een werker een bepaalde vaste taak (vaste opeenvolging van bewerkingen aan verschillende stations) verricht, zal hij (tot een zekere limiet) deze taak alsmaar sneller kunnen uitvoeren; dit fenomeen heet het leereffect bij een werker. Het artikel Bucket Brigades with Worker Learning [7] beschrijft de invloed van dergelijk effect op bucket brigades. Het leereffect zal extra belangrijk zijn wanneer een nieuwe, onervaren werker wordt toegevoegd aan de lijn. De aannames van het klassieke model worden gemaakt. Bijzonder aan deze paper is echter, doordat de werksnelheid toeneemt in de tijd door het leereffect, een manier van passeren wordt geïntroduceerd voor het klassieke model: wanneer een werker geblokkeerd wordt doordat hij een andere werker inhaalt, wisselen ze van positie. Opnieuw blijkt het klassieke Bucket Brigademodel (met aangepast inhalen) een zeer robuuste manier van werken: de lijn balanceert zichzelf na een convergentieperiode, met vaste overdrachtspunten; echter, deze convergentieperiode kan zeer lang zijn (waar in dat geval ingrijpen door het management, of een goede initiële keuze van ordening, kan leiden tot snellere convergentie) Bucket Brigades in de natuur Hoewel eerder zeldzaam, blijken Bucket Brigades ook voor te komen in de natuur[8]. Een vorm van Bucket Brigades werd beschreven bij een Messor barbarus mierenkolonie: bij transport van zaden naar het nest, werden de zaden doorgegeven van kleinere (tragere) mieren naar grotere (snellere) mieren dichter bij het nest.

46 Hoofdstuk 3 Simulatiemodel 3.1 Model Het simulatiemodel is ontwikkeld in de programmeertaal Java (JDK 6). Dit zowel omwille van de openheid en toegankelijkheid 1, als omwille van de vertrouwdheid met Java. Als ontwikkelomgeving werd NetBeans 2 gebruikt. Door de portabiliteit van Java, kan het simulatiemodel worden gedraaid op vrijwel elk courant besturingssysteem waarop de Java Runtime Environment 3 (minimaal 6.0) is geïnstalleerd. Het model werkt volgens het principe van discrete gebeurtenissensimulatie (Eng.: discrete event simulation). Dat betekent dat tijdens de simulatie, er met (discrete) stappen zal worden voortgegaan in de tijd. Eén seconde wordt bijvoorbeeld opgedeeld in 10 (i.e. een klokfrequentie van 10Hz); tijdens elke stap van het simulatieprogramma wordt dus 0.1s verder gegaan in de tijd. Na elke stap kan de toestand van het systeem worden geëvalueerd, en desgevallend actie worden ondernomen. Ook tijdens de voortgang kan een werker een exceptie opwerpen wanneer hij zich in een of andere probleemsituatie bevindt (nood aan een volgend onderdeel,... ); dit probleem kan meestal meteen worden opgelost (toewijzen daaropvolgend onderdeel,... ). Deze discrete benadering, alsook door het feit dat getallen in een computer niet oneindig nauwkeurig kunnen worden weergegeven, zal onherroepelijk leiden tot afrondingsfouten, die groter zullen zijn naarmate de stap groter wordt genomen. Volgens beschikbare rekenkracht, kan de stapgrootte willekeurig klein worden gemaakt, en dus ook de afrondingsfout. De algemene structuur volgens pakketten (Eng.: packages) van het model is weergegeven in Figuur 3.1. Het is een voornamelijk logische onderverdeling van de code, waaronder gelijkaardige klassen (Eng.: classes) worden gegroepeerd. 1 zowel van de codetaal zelf als van het platform 2 NetBeans IDE, 3 of JRE, gratis te verkrijgen via 36

47 HOOFDSTUK 3. SIMULATIEMODEL 37 1 bucketbrigades 2 parts 3 workers 4 statistics Figuur 3.1: Structuur (packages) van het softwaremodel 1. bucketbrigades Het belangrijkste onderdeel. Bevat de hoofdfunctie (Main) die wordt aangeroepen en die alle acties start en desgevallend actie onderneemt. Ook de algemene functies (Common) zijn hier terug te vinden, alsook controleklassen (Consistency, FlatLine, PathMonitor). 2. parts Dit pakket verzamelt de verschillende onderdelen in het model, en bevat een interface (PartInterface) waaraan de vaste onderdelen (Path, Station, Longstation, Switchnode, Labelnode, Machine, Buffer) moeten voldoen. Bevat ook de beweegbare onderdelen zoals de producten (Item), die (per één of meerdere) moeten worden gegroepeerd in een batch (Batch). LabelCycle is een hulpklasse. 3. workers Bevat de implementatie van een effectieve werker (Worker) en de excepties (Eng. Exception) die deze kan opwerpen (FinishedWorkException, WorkingException, Out- OfSyncException). 4. statistics Hier worden alle duurtijdfuncties verzameld. Elke tijdsinitialisatie in het simulatiemodel is eigenlijk een distributie (interface Distribution) of statistische verdeling. Dat kan bv. een vaste, deterministische waarde voorstellen (Deterministic), een continue uniforme verdeling (Random), een verdeling conform ingelezen waarden (FromFile),.... Dit pakket bevat ook een algemene klasse (Common), die instaat voor het omzetten van configuratiegegevens naar een geschikte distributie. Dit pakket kan in principe door elk onderdeel worden aangeroepen, maar wordt praktisch gezien enkel aangeroepen binnen het pakket parts (aldus de interconnectie in Figuur 3.1). Van de code is voldoende uitgebreide javadoc (Nederlandstalig) beschikbaar, alsook is de

48 HOOFDSTUK 3. SIMULATIEMODEL 38 code zelf aangevuld met verklarende commentaar (meestal Engels). Tijdens de implementatie werd steeds gepoogd zo transparant mogelijk te werken (zoals door het slim onderverdelen in functies), en de uitvoering zo performant mogelijk te houden (door vervroegd afbreken lussen,... ). De javadoc is digitaal beschikbaar op de meegeleverde CD-ROM, net zoals de broncode van de software. 3.2 Werking Algemeen Algemeen en licht vereenvoudigd, verloopt het programma volgens de stappen in Figuur 3.2. Inlezen configuratie Verifiëren configuratie Initialisatie objecten Uitvoeren simulatie Meerdere runs? einde ja Figuur 3.2: Algemene stappen van het softwaremodel 1. Inlezen configuratie In deze stap wordt de configuratie, die bestaat uit een XML-bestand, ingelezen. Er is gekozen voor XML, omdat dit de de facto standaard is geworden voor configuratiebestanden, alsook omdat ze netjes gestructureerd zijn en dus gemakkelijk leesbaar (aanpasbaar) voor zowel mens als computer. Het XML-bestand wordt serieel ingelezen volgens het SAX (Simple API for XML) model, voor de eenvoud in gebruik en gezien extreme performantie hier niet nodig is. 2. Verifiëren configuratie De zonet ingelezen configuratie wordt hier naar best vermogen geverifieerd op correctheid (juiste connectiviteit, unieke gebruik van namen,... ). Het verifiëren van elke mogelijke fout (en het uitprinten van een behulpzame foutmelding) is een zeer complex (en dus tijdrovend) proces. Er is in dit onderdeel een duidelijke afweging gemaakt tussen nut (waarschijnlijkheid van de fout, ernst van de invloed op de simulatie), benodigde rekenkracht voor de verificatie en tijd van implementeren; er wordt de nodige attentheid van de gebruiker verwacht bij het aanmaken of aanpassen van een configuratiebestand. 3. Initialisatie objecten In deze stap worden een aantal objecten, die nodig zullen zijn voor het doorlopen van de configuratie, geïnitialiseerd en zo nodig geoptimaliseerd.

49 HOOFDSTUK 3. SIMULATIEMODEL Uitvoeren simulatie Deze stap bevat de eigenlijke simulatie, die laterop in detail zal worden besproken. Indien dezelfde simulatie meerdere malen (verschillende runs) moet worden uitgevoerd (willekeurige keuzes binnen het model zullen afwijkende resultaten geven), wordt deze stap herhaald zolang gewenst Configuratie Zoals eerder vermeld, is het configuratiebestand een XML-bestand. Er wordt dan ook een basiskennis XML verondersteld voor het correct aanmaken of aanpassen van dit bestand. Via het configuratiebestand worden de gegevens aangeleverd, zodat de software naar wens kan simuleren. Het is opgebouwd uit een aantal standaardelementen: <?xml version="1.0" encoding="utf-8"?> <config> <general>...</general> <items>...</items> <parts>...</parts> <workers>...</workers> </config> De eerste regel is vast, en duidt aan dat het om een XML-bestand zal gaan. Alle configuratiedetails dienen te zijn vervat binnen <config> en </config>. Binnen <config> zijn er opnieuw 4 onderverdelingen. general Bevat de algemene instellingen. items Bevat meer informatie over de geproduceerde items. Deze tag is optioneel: indien niet vermeld wordt een batchgrootte van 1 ondersteld en standaard items zonder label. parts De verzameling van onderdelen en hun onderlinge interconnectie, die samen de layout zullen vormen van de te bestuderen productielijn. workers Bevat de verschillende werkers die actief zullen zijn tijdens de simulatie en hun respectievelijke instellingen. In wat volgt, zullen voor deze onderverdelingen (algemene instellingen general, werkers workers en onderdelen parts) telkens een aparte sectie zijn voorzien.

50 HOOFDSTUK 3. SIMULATIEMODEL Algemene instellingen De algemene instellingen, de onderverdeling <general>, is op zijn beurt onderverdeeld als volgt: <general> <num_runs>1</num_runs> <run_for>3h</run_for> <model>0</model> <clock>10</clock> <loglevel>0</loglevel> </general> Aantal runs XML Tag: num_runs Toegelaten waarden: gehele getallen groter dan 0 Deze waarde geeft aan hoeveel maal de simulatie dient te worden herhaald, telkens onafhankelijk van elkaar Simulatieduur XML Tag: run_for Toegelaten waarden: tijdsnotatie: elke combinatie van xhymzs met x, y en z gehele getallen, zoals bv. 8h, 2h30m, 30m25s, 7h36m30s Duidt aan over welke (reële) tijd de simulatie zal lopen Model XML Tag: model Toegelaten waarden: 0, 1 en 2 Geeft het model aan volgens hetwelke de simulatie zal verlopen. De verschillende waarden geven aan: 0. Simulatie volgens de principes van klassieke Bucket Brigades: de werkers hebben een vaste ordening die bij de start van de simulatie wordt vastgelegd, en wandelen (aan stations) oneindig snel terug. 1. Simulatie volgens de principes van veralgemeende Bucket Brigades: de werkers hebben geen vaste ordening (ze kunnen elkaar inhalen of passeren), maar wel een indexering; ze nemen producten van elkaar over gebaseerd op hun indexering, en wandelen aan een longstation terug met een eindige snelheid.

51 HOOFDSTUK 3. SIMULATIEMODEL Simulatie volgens een (eigen) generiek model: de werkers hebben geen vaste ordening noch indexering; ze kunnen elkaar inhalen (zelfde richting) doch niet passeren: elke ontmoeting leidt tot overdracht. Is overdracht aan een station niet mogelijk, dan zal de terugwandelende werker blokkeren aan dit station Klokfrequentie XML Tag: clock Toegelaten waarden: gehele getallen groter dan 0 Geeft de klokfrequentie aan in Hz. De klokfrequentie geeft de stapgrootte aan per discreet event, en zal een invloed hebben op de nauwkeurigheid van afronden. Een klokfrequentie van 20 (Hz) betekent dat bij elke stap 1 s zal worden opgeschoven in de tijd Loglevel XML Tag: loglevel Toegelaten waarden: 0, 1, 2 en 3 Geeft de aard van de uitgangsgegevens aan die het model zal produceren. De gegevens die worden geproduceerd zijn waarden die worden gescheiden door een puntkomma, wat gemakkelijke invoering in bv. Excel toelaat. Tijdstippen worden steeds gegeven in seconden, de voortgang is procentueel uitgedrukt. 0. Print de afgewerkte producten (FP) uit en het tijdstip in reële tijd. FP;tijdstip;werker 1. Print de afgewerkte producten (FP) én de nieuw gestarte producten (NP) uit en het tijdstip in reële tijd. FP;tijdstip;werker NP;tijdstip;werker 2. Print afgewerkte producten (FP), nieuw gestarte producten (NP) en overdrachten (HO) uit (werker1 werkte vooruit, staat zijn product af aan werker2 en wandelt terug). FP;tijdstip;werker NP;tijdstip;werker HO;tijdstip;werker1->werker2 3. Print afgewerkte producten (FP), nieuw gestarte producten (NP), overdrachten (HO) en bovendien de voortgang van elke werker en dit aan welk onderdeel uit.

52 HOOFDSTUK 3. SIMULATIEMODEL 42 FP;tijdstip;werker NP;tijdstip;werker HO;tijdstip;werker1->werker2 werker;onderdeel;voortgang Ingeval er labels (zie productmix) worden gebruikt, worden deze labels eveneens afgeprint bij afgewerkte producten (FP) en nieuw gestarte producten (NP): 3.4 Onderdelen Binnen de onderdelen of parts, worden de verschillende onderdelen als volgt aangegeven: <parts> <part type="..." name="..."> </parts> De volgende algemene regels bij onderdelen zijn belangrijk voor een correcte werking van het model De naam die aan de onderdelen wordt gegeven, is niet-hoofdlettergevoelig 4 en dient uniek te zijn. Er is slechts één startpunt toegelaten aan de lijn. Een station, longstation of een switchnode dient steeds voorafgegaan én gevolgd te worden door een pad (desgewenst van lengte 0). Verderop worden de verschillende onderdelen en hun bijbehorende instellingen besproken. 3.5 Instellingen van items Alle instellingen die betrekking hebben op items, en kortweg de onderverdeling <items>, zijn optioneel. Indien dit wel wordt vermeld, kan het de volgende instellingen bevatten: 4 Station1 is dus gelijkwaardig aan station1 of station1

53 HOOFDSTUK 3. SIMULATIEMODEL 43 <items> <batch_size>5</batch_size> <group> <product_mix pct="40">label1</product_mix> <product_mix pct="60">label2</product_mix> </group>... </items> Batchgrootte XML Tag: batch_size Toegelaten waarden: Gehele getallen groter dan 0 Opmerking: Deze tag is optioneel (batchgrootte wordt 1 verondersteld indien niet gedefinieerd). Een Batch is een verzameling van 1 of meerdere items, die steeds samen door de werkers worden voltooid langsheen de productielijn Productmix XML Tag: product_mix Attributen: pct Het percentage van voorkomen van deze labels Toegelaten waarden: Een of meerdere namen van labels, gescheiden door een puntkomma (zonder spaties) Opmerking: Deze tag is optioneel (er worden geen labels verondersteld indien niet gedefinieerd), en kan worden herhaald. Batches die worden geproduceerd langs een productielijn kunnen bestaan uit verschillende items. Om dit te gaan simuleren, kan aan een item een welbepaald label worden gegeven (of meerdere labels). Deze labels worden toegekend door de tag product_mix, alsook hun mate van voorkomen. Door het gebruik van labels kunnen producten een welbepaald pad afleggen langs een productielijn, en een andere werkinhoud toegewezen krijgen op de verschillende stations. Bij het beginnen van een nieuw item door een werker, wordt een willekeurige keuze gemaakt tussen de labels, weliswaar volgens de opgegeven verdeling. Door gebruik te maken van de tag group (dit kan meermaals worden herhaald), kunnen arbitrair complexe labels worden gedefinieerd. Voorbeeld: Langs een productielijn worden 2 items geproduceerd, groot en klein. 72% van de items zijn klein, de overige 28% zijn groot. Onafhankelijk van de grootte, geldt bovendien dat 35% wit is, 40% grijs en 25% zwart. Dit zou als volgt worden gedefinieerd:

54 HOOFDSTUK 3. SIMULATIEMODEL 44 <items> <group> <product_mix pct="72">klein</product_mix> <product_mix pct="28">groot</product_mix> </group> <group> <product_mix pct="35">wit</product_mix> <product_mix pct="40">grijs</product_mix> <product_mix pct="25">zwart</product_mix> </group> </items> Opmerking: Ook de oude syntax kan nog worden gebruikt, eveneens desgewenst met verschillende labels gescheiden door puntkomma. <items> <product_mix>klein;smal[47]</product_mix> <product_mix>klein;breed[25]</product_mix> <product_mix>groot;breed[28]</product_mix> </items> 3.6 Onderdelen Paden Paden zijn verbindingsonderdelen binnen het model, waarlangs kan worden gewandeld. Ze dienen om verschillende onderdelen te verbinden, en als definitie van begin- en eindpunt. Paden komen als dusdanig niet voor in de originele beschrijving van het klassieke of veralgemeende model, maar zijn wel essentieel voor het simulatiemodel. Desgewenst kan er langs een pad oneindig snel gewandeld worden, door de afstand van het pad als 0 in te stellen, of de wandelsnelheid van een werker op 0; merk op dat eindige (voorwaartse) wandelsnelheden een totaal nieuw concept zijn. Afstand <part type="path" name="..."> <distance>10</distance> <begin_point>onderdeel1</begin_point> <end_point>onderdeel2</end_point> XML Tag: distance Toegelaten waarden: Reële waarden groter of gelijk aan nul

55 HOOFDSTUK 3. SIMULATIEMODEL 45 Geeft de afstand van het pad aan in meter (m), tot maximaal 2 decimale getallen nauwkeurig. Ingeval simulatie volgens het model 1, mag enkel de waarde 0 worden gebruikt (gezien het verschil in definitie van wandelsnelheid bij een pad en een longstation). Beginpunt XML Tag: begin_point Toegelaten waarden: Ledig of de naam van een onderdeel Geeft het beginpunt van het pad aan. Indien hier geen waarde wordt aangegeven, is dit het beginpunt van het systeem. Eindpunt XML Tag: end_point Toegelaten waarden: Ledig of de naam van een onderdeel Geeft het eindpunt van het pad aan. Indien hier geen waarde wordt aangegeven, is dit een eindpunt van het systeem Stations Stations zijn onderdelen waarlangs wordt gewerkt. Terugwandelen aan dit soort stations is instantaan (gebeurt dus met oneindige snelheid), onafhankelijk wat werd ingesteld als wandelsnelheid bij de werkers. Het gebruik van dit type station is enkel zinnig bij modellen 0 en 2. <part type="station" name="..."> <work_content>150</work_content> <hand_off>1</hand_off> <hand_off_time>0</hand_off_time> <max_workers>1</max_workers> <error_rate>0.001</error_rate> <error_penalty>random(10;35)</error_penalty> Standaard werkinhoud XML Tag: work_content Attributen: label Het label (of combinatie van labels) waarop deze werkinhoud van toepassing is. Indien niet vermeld, is deze work_content de (label-onafhankelijke) standaard. factor De factor waarmee de teruggegeven waarde van de distributie

56 HOOFDSTUK 3. SIMULATIEMODEL 46 moet worden vermenigvuldigd. Indien niet vermeld, is de factor 1. Toegelaten waarden: Een reële waarde groter dan 0 of een distributie Hier wordt de standaard werkinhoud van een bepaald item aan dit station ingesteld. Dit kan een vaste (deterministische) waarde zijn, of een (stochastische) distributie. De tijd dat een werker effectief aan dit product zal spenderen, zal afhangen van zijn ingestelde werksnelheid. Voorbeeld: Op dit station vereisen items met het label klein een werkinhoud van 100s, met het label groot een werkinhoud van 165s en de overige items 150s. Dit zou als volgt worden gedefinieerd: <part type="station" name="..."> <work_content>150</work_content> <work_content label="klein">100</work_content> <work_content label="groot">165</work_content>... Overdrachten toegelaten XML Tag: hand_off Toegelaten waarden: 0 of 1, no of yes, false of true Opmerking: Deze tag is optioneel (er wordt verondersteld dat overdrachten zijn toegelaten indien niet vermeld). Middels deze waarde wordt aangegeven of overdrachten aan dit station zijn toegelaten. Indien een werker volgens een model werk van een voorganger aan dit station moet overnemen, maar dit niet is toegelaten, dan zal deze werker blokkeren tot de voorganger klaar is met zijn batch aan dit station. Overdrachtstijd XML Tag: hand_off_time Toegelaten waarden: Een reële waarde groter of gelijk aan 0, of een distributie Opmerking: Deze tag is optioneel (er wordt een overdrachtstijd van 0 verondersteld indien niet vermeld). Soms zal een werker nog enkele stappen moeten voltooien, alvorens hij zijn product kan overdragen aan een volgende werker. De tijd die een werker nog zal nodig hebben alvorens zijn product over te dragen, kan hier worden ingesteld; tot zolang zal de volgende werker geblokkeerd staan wachten.

57 HOOFDSTUK 3. SIMULATIEMODEL 47 Aantal simultane werkers XML Tag: max_workers Toegelaten waarden: Gehele getallen groter dan 0, of -1 Opmerking: Deze tag is optioneel (er wordt een maximum van 1 werker verondersteld indien niet vermeld). Met deze waarde wordt ingesteld hoeveel werkers simultaan aan dit station kunnen werken. In de meeste gevallen zal dit slechts één werker zijn. In het geval van een continu station, zoals vroeger geïntroduceerd, zal deze waarde -1 zijn (een onbeperkt aantal simultane werkers) of een welbepaalde eindige waarde. Gedetecteerd aantal fouten XML Tag: error_rate Toegelaten waarden: Een reële waarde groter of gelijk aan 0 Opmerking: Deze tag is optioneel (geen foutendetectie verondersteld indien niet vermeld). Geeft het gedetecteerde foutenpercentage (0.001 betekent 1 gedetecteerde fout op 1000 items) aan dit station. Fouten zullen willekeurig worden geïntroduceerd aan een bepaald station. Deze fouten worden typisch vastgesteld bij een welbepaalde manipulatie (waar dan iets niet blijkt te kloppen), en niet noodzakelijk aan het station volgend op het station dat de fout heeft geïntroduceerd. Net zoals de stations volgens een bepaalde distributie fouten zullen introduceren, zullen deze fouten aan een ander station met een qelijkaardige distributie worden vastgesteld (dezelfde distributie indien alle fouten worden vastgesteld). Extra werkinhoud per fout XML Tag: error_penalty Toegelaten waarden: Een reële waarde groter dan 0 of een distributie Opmerking: Deze tag is verplicht wanneer de tag error_rate voorkomt. Zoniet zal deze tag worden genegeerd. Deze waarde geeft aan hoeveel extra werkinhoud het detecteren van een fout zal inhouden voor een welbepaald item Stations met terugwandelsnelheid Stations met terugwandelsnelheid of kortweg longstations, zijn stations waarlangs gewerkt kan worden, maar waarlangs terugwandelen in principe niet oneindig snel is. De snelheid van terugwandelen wordt ingesteld bij de werkers, en is een verhouding tot de waarde 1 (analoog de werksnelheid); dit in tegenstelling tot wandelen langs een pad, waar de

58 HOOFDSTUK 3. SIMULATIEMODEL 48 wandelsnelheid wordt uitgedrukt in km/h. Het gebruik van dit type station is voornamelijk aangewezen bij model 1, in mindere mate bij model 2. Langsheen een longstation kunnen zich steeds onbeperkt veel werkers bevinden. <part type="longstation" name="..."> <work_content>60</work_content> Bij een longstation is enkel de werkinhoud in te stellen. Deze instelling is volkomen analoog aan de instelling bij een (gewoon) station, en er wordt dan ook daarnaar verwezen Verdelers Verdelers zijn onderdelen, specifiek om de seriële structuur van Bucket Brigades op te splitsen, zoals bij sub-productielijnen of parallelle paden. Een verdeler kan één of meerdere ingangen hebben, en één of meerdere uitgangen. Typisch gebruik is één ingang en verschillende uitgangen (als demultiplexer) en als tegenhanger laterop de lijn, hetzelfde aantal ingangen en één uitgang (als multiplexer). Ingang <part type="switchnode" name="..."> <input>...</input>... <output>...</output>... <blocking>0</blocking> XML Tag: input Toegelaten waarden: De naam van een pad Opmerking: Deze tag mag worden herhaald Geeft aan dat het pad met deze naam een ingang is van deze verdeler. Uitgang XML Tag: output Toegelaten waarden: De naam van een pad Opmerking: Deze tag mag worden herhaald Geeft aan dat het pad met deze naam een uitgang is van deze verdeler.

59 HOOFDSTUK 3. SIMULATIEMODEL 49 Blokkerend XML Tag: blocking Toegelaten waarden: 0 of 1 Opmerking: Deze tag is optioneel. Indien niet vermeld, wordt 0 verondersteld. Geeft aan of deze verdeler blokkerend zal werken: demux-gedrag (meer uitgangen dan ingangen) De verdeler houdt een drempelwaarde bij: dit zal de laagste (initiële) ordening zijn van alle werkers die in voorwaartse richting langs deze verdeler zijn gepasseerd. In achterwaartse richting zullen enkel de werkers zijn toegelaten te passeren met een (initiële) ordening lager of gelijk aan deze drempelwaarde. De drempelwaarde wordt indien nodig verhoogd. mux-gedrag (meer ingangen dan uitgangen) De drempelwaarde is nu de hoogste (initiële) ordening van de werker die voorwaarts langs deze verdeler is gepasseerd. In voorwaartse richting zullen enkel werkers mogen passeren met een (initiële) ordening lager dan deze drempelwaarde. Dit blokkerend gedrag van een verdeler dient in een poging de ordening van werkers te bewaren, wanneer zij bv. vanaf een parallel pad terug op een serieel deel terecht komen. Controlepaden Om de voortgang van werkers te kunnen opzoeken tussen 2 (tegengestelde) verdelers, bv. om te voldoen aan de vooropgestelde regels bij parallelle paden, zal het nodig zijn een controlepad te definiëren tussen de twee verdelers. De namen van de controlepaden dienen eveneens uniek te zijn, en worden na de naam van het ingangs- of uitgangspad te worden vermeld tussen vierkante haken. Een controlepad zal bijhouden welke werkers zich op dit pad bevinden, en zal er dan ook de voortgang van kunnen opvragen. Het gebruik van controlepaden wordt verduidelijkt met een voorbeeld in Figuur sn 1 2 a controlepad1 2 b 3 a controlepad2 3 b sn 2 4 Figuur 3.3: Voorbeeld gebruik controlepaden Behorend bij Figuur 3.3, zou de verdeler sn 1 bijvoorbeeld als volgt worden gedefinieerd:

60 HOOFDSTUK 3. SIMULATIEMODEL 50 <part type="switchnode" name="sn1"> <input>pad2</input> <output>pad3a[controlepad1]</output> <output>pad3b[controlepad2]</output> en zijn tegenhanger sn 2 als volgt: <part type="switchnode" name="sn2"> <input>pad5a[controlepad1]</input> <input>pad5b[controlepad2]</input> <output>pad6</output> Zonder gedefinieerde controlepaden, zal een verdeler het eerste pad kiezen (ingang uitgang of uitgang ingang) waarlangs het minste aantal werkers zijn gepasseerd. Per passerende werker zal een ingang met 1 worden verlaagd en de gekozen uitgang met 1 worden verhoogd (voorwaarts passerende werker), of de uitgang met 1 worden verminderd en de ingang met 1 worden verhoogd (achterwaarts passerende werker) Verdelers volgens label Een verdeler volgens label heeft één input, en meerdere outputs die worden geselecteerd naargelang het label van het passerende item. Ingang <part type="labelnode" name="..."> <input>...</input> <output>...</output>... XML Tag: input Toegelaten waarden: De naam van een pad Geeft aan dat het pad met deze naam een ingang is van deze verdeler volgens label. Er is slechts één ingang toegelaten. Uitgang XML Tag: output Toegelaten waarden: De naam van een pad, met de naam van het label 5 tussen 5 van de items die hierlangs moeten worden gestuurd

61 HOOFDSTUK 3. SIMULATIEMODEL 51 vierkante haken. Opmerking: Deze tag mag worden herhaald Geeft aan dat het pad met deze naam een uitgang is van deze verdeler, voor items met een welbepaald label. Deze verdeler is ingevoerd specifiek voor de case study in het volgende hoofdstuk. Merk op dat verdelen volgens label slechts zin heeft in voorwaartse richting: bij het terugwandelen draagt een werker immers geen batch met items meer bij zich. Eventueel kan de uitsplitsing terug worden samengevoegd met een gewone verdeler Machines Machines zijn gelijkaardig aan stations, met het belangrijke verschil dat de werkinhoud onafhankelijk is van de werksnelheid van de werker. Het zijn eigenlijk stations met een cyclustijd die afhankelijk is van het item dat wordt bewerkt, en niet van de werker die de machine bedient. <part type="machine" name="..."> <work_content>150</work_content> <work_content label="rework">75</work_content> Werkinhoud of cyclustijd XML Tag: work_content Attributen: label Het label (of combinatie van labels) waarop deze werkinhoud van toepassing is. Indien niet vermeld, is deze work_content de (label-onafhankelijke) standaard. Toegelaten waarden: Een reële waarde groter dan 0 of een distributie Hier wordt de cyclustijd van deze machine aan een item ingesteld. Toegelaten zijn een vaste waarde en een distributie Buffers Buffers zijn onderdelen waar een tussenvoorraad (FIFO 6 ) kan worden opgeslagen. Een buffer zal voorwaarts niet door een werker worden gepasseerd (hij laat er zijn batch achter en wandelt terug) tenzij de buffer vol is (dan laat hij zijn batch achter, en pikt de eerste batch in de buffer op, die hij bewerkt aan de stations volgend op de buffer). Omgekeerd 6 First In First Out: de batch die eerst in de buffer is geplaatst wordt er ook als eerste opnieuw uit gehaald.

62 HOOFDSTUK 3. SIMULATIEMODEL 52 zal een buffer achterwaarts niet worden gepasseerd, tenzij hij leeg is; tot zolang zal een werker telkens een batch oppikken uit de buffer en die voorwaarts bewerken. Deze vaste passeerregels kunnen naar believen worden bijgewerkt met fpass (forward pass) en bpass (backward pass), om bv. de voorkeur aan te duiden dat een welbepaalde werker zich voor of achter de buffer bevindt. <part type="buffer" name="..."> <content>5</content> <fpass>werker1[0]</fpass> <bpass>werker2[2]</bpass> Buffercapaciteit XML Tag: content Toegelaten waarden: Een gehele waarde Duidt de (batch-)capaciteit aan van de buffer, of anders gezegd, het aantal batches dat deze buffer kan bevatten. Een waarde kleiner dan 0 duidt aan dat de capaciteit van deze buffer onbeperkt (oneindig) is. Alternatieve waarde bij voorwaarts passeren XML Tag: fpass Toegelaten waarden: De naam van een werker met tussen vierkante haken de gehele waarde groter of gelijk aan nul. Duidt de inhoud aan van de buffer, vanaf wanneer de gespecificeerde werker deze zal passeren (onafhankelijk of de buffer al dan niet vol is). Een waarde van nul betekent dat de werker deze buffer steeds voorwaarts zal passeren, onafhankelijk van zijn inhoud. Alternatieve waarde bij achterwaarts passeren XML Tag: bpass Toegelaten waarden: De naam van een werker met tussen vierkante haken de gehele waarde groter of gelijk aan nul. Duidt de inhoud aan van de buffer, vanaf wanneer de gespecificeerde werker deze achterwaarts zal passeren (onafhankelijk of de buffer al dan niet leeg is). Een waarde van nul betekent dat de werker deze buffer steeds achterwaarts zal passeren, onafhankelijk van zijn inhoud.

63 HOOFDSTUK 3. SIMULATIEMODEL Werkers De werkers zijn, zoals de naam het zegt, de werkers binnen het model. Zij zullen zich verplaatsen langs de paden en werken langs de stations, en hierbij telkens opnieuw batches met items verder tot voltooiing brengen. Binnen het onderdeel werkers of workers, worden de afzonderlijke werkers gedefinieerd als volgt: <workers> <worker name="..." initial_order="x" index="y">... </worker>... </workers> Merk op dat elke werker nu door 2, soms 3, attributen wordt gekenmerkt: name De naam van de werker, die opnieuw dient uniek te zijn. initial_order De volgorde in dewelke de werkers zullen starten met werken. Bij model 0 zal deze volgorde worden gerespecteerd gedurende de hele uitvoering. Voor een goede definitie moet elke werker een andere initiële ordening krijgen; de initiële ordening is uniek, start bij 1, en heeft als maximale waarde het aantal werkers. index Dit attribuut heeft enkel betekenis in geval van model 1. Bij andere modellen kan dit attribuut weggelaten worden. Het geeft de (opnieuw unieke) indexering weer volgens de veralgemeende convergentievoorwaarde. Deze waarden dienen te liggen vanaf 1 tot en met het aantal werkers. Een werker wordt verder door 2 tags gekenmerkt <worker name="..." initial_order="x" index="y"> <work_speed>1.2</work_speed> <walk_speed>5</walk_speed> </worker> Werksnelheid XML Tag: work_speed Toegelaten waarden: Een reëel getal groter dan nul Deze waarde, relatief t.o.v. 1, duidt de uniforme werksnelheid aan van deze werker.

64 HOOFDSTUK 3. SIMULATIEMODEL Wandelsnelheid XML Tag: walk_speed Toegelaten waarden: Een reëel getal groter dan nul Deze wandelsnelheid is uitgedrukt in km/h (langs paden) of relatief t.o.v. 1 (langs longstations). Gezien het verschil in definitie, kunnen geen paden voorkomen met een lengte verschillend van 0 wanneer longstations worden gebruikt en omgekeerd. 3.8 Andere bouwblokken van het model Distributies Distributies werden al meermaals vermeld in het kader van het simulatiemodel, maar nog nergens gedefinieerd. Zij zullen hier worden beschreven. Elke tijdswaarde, zoals die bv. voorkomt bij een station of longstation, is achterliggend een (statistische) distributie. Op dit moment zijn de volgende distributies geïmplementeerd binnen het softwaremodel: Deterministische distributie Deze distributie geeft telkens dezelfde waarde terug. Ze stelt dan ook een vaste waarde voor. Aanroepwijze configuratie: Eenvoudigweg de vaste waarde (vb.: 1.2 of 1,5 of 3) of langweg deterministic(waarde) met als waarde elk reëel getal groter dan 0. Uniforme distributie (continu) Deze distributie geeft een willekeurig reëel getal terug binnen een welbepaald interval. Aanroepwijze configuratie: random(waarde1;waarde2) met waarde1 een positief reëel getal dat de start van het interval aangeeft, en waarde2 een positief reëel getal (groter of gelijk aan waarde1) dat het einde van het interval aangeeft. Cauchy-verdeling Stelt een Cauchy-verdeling of een som (combinatie) van Cauchy-verdelingen voor. Aanroepwijze configuratie: cauchy(opties) met als opties in deze volgorde, zonder spaties: begin interval ; einde interval ; y 0 ; A 1 ; w 1 ; x c1 ; A 2 ; w 2 ; x c2 ;... ) met alle opgegeven waarden reële getallen. Willekeurige distributie uit bestand Deze distributie gaat reële waarden inlezen uit een opgegeven bestand. Dit bestand dient één waarde per regel te bevatten; commentaarregels dienen te beginnen met # (zonder de ). Er wordt een geheel willekeurige keuze gemaakt tussen deze waarden. Eenzelfde waarde kan meermaals voorkomen: dit verhoogt de probabiliteit dat die waarde zal worden gekozen. Op deze manier kunnen handig moeilijk of niet te matchen distributies worden

65 HOOFDSTUK 3. SIMULATIEMODEL 55 gedefinieerd. Aanroepwijze configuratie: fromfile(bestandsnaam) met als bestandsnaam de volledige bestandsnaam (incl. extensie zoals.txt) van het in te lezen bestand, hetzij een absoluut of relatief pad (t.o.v. de map waarin het programma wordt uitgevoerd) Package help De package help heeft geen rechtstreeks belang voor de uitvoering van de simulatie. Ze bevatten een aantal op zichzelf staande bestanden voor de gemakkelijke verwerking van logbestanden die door het simulatiemodel worden gegenereerd. Ze zullen dankbaar worden gebruikt bij het verwerken van de gegevens die worden aangemaakt bij de Case Study. MergeStations Voegt de bestanden station6a.txt en station6b.txt samen tot één bestand station6.txt, alsook station7a.txt en station7b.txt tot station7.txt. Dit voor een snelle bepaling van de (relatieve) werkinhoud van de parallelle stations 6 en 7 in de standaardsituatie. SplitBuffer Splits het gegenereerde bestand buffer.txt op in aparte, instelbare buffers. WorkerPerZone Bepaalt de zonebezetting van de verschillende (instelbare) werkers op basis van het zonelog.txt-bestand. 3.9 Uitvoeren simulatie De simulatiestap zelf (zoals die werd vermeld in Figuur 3.2), is op zijn beurt onderverdeeld in een aantal aparte stappen. Zoals kan worden verondersteld, schuilt in deze stap de ware kracht van het simulatiemodel: de snelheid van uitvoering, de consistentie van uitvoeren, de nauwkeurigheid,.... Zonder hier al te technisch te worden, zal toch geprobeerd worden een goed beeld te schetsen van de werking onder de motorkap. De simulatiestap wordt schematisch voorgesteld in Figuur 3.4. Een lus (Eng.: loop) wordt voorgesteld door een rechthoek met afgeronde hoeken; een rechthoek is een effectieve uitvoeringsstap; een ruit duidt een keuzemogelijkheid (if... then... else) aan. Vooreerst vallen de 3 lussen op aan het begin van de simulatie Lus A Lus A kijkt of het aantal seconden simulatie (zie run_for) al is gehaald. Zo ja, dan houdt de simulatie hier op. Zo nee, dan worden de onderliggende stappen (meermaals) uitgevoerd.

66 Einde lus HOOFDSTUK 3. SIMULATIEMODEL 56 A. Ga telkens 1s verder B. Ga telkens 1 tick verder C. Ga telkens 1 subtick verder 1. Sla statussen op 2. Bepaal volgorde werkers 3. Zolang werkers wijzigen, herhaal 3a. Doe werker werken 4. Consistent? ja 5a. Bevestig status Ga een stap verder nee 5b. Herstel vorige status Vergroot aantal subticks Herbegin deze stap + Figuur 3.4: Overzicht van de simulatiestap

67 HOOFDSTUK 3. SIMULATIEMODEL 57 Lus B Lus B werkt het aantal ticks af per seconde, overeenkomstig met de ingestelde klokfrequentie (zie clock). Is de klokfrequentie 10Hz (en dus de stap 0.1s), dan zal deze lus B telkens 10x worden uitgevoerd. Lus C In een normaal geval heeft lus C geen functie, en zal ze telkens slechts eenmaal de onderliggende functionaliteit doorlopen. Het systeem kan echter, door problemen met de consistentie van de simulatie (zie ook laterop stappen 4 en 4b), intern en transparant beslissen om de nauwkeurigheid te verhogen, door elke tick van lus B nogmaals onder te verdelen in 10, 100, 1000,... subticks, totdat de gewenste nauwkeurigheid is bereikt. Onder deze 3 lussen, begint de echte uitvoering van de simulatie. Grofweg worden 5 stappen doorlopen: 1. Sla statussen op Tijdens deze stap wordt de volledige status van elk onderdeel en elke werker opgeslagen. Dit zal toelaten om, bij desgevallende inconsistentie laterop, als het ware terug te keren in de tijd naar dit moment van opslaan. 2. Bepaal volgorde werkers Het is niet mogelijk om alle werkers exact tegelijk aan te sturen, en dus zal er een keuze moeten worden gemaakt in de volgorde. Tijdens deze stap worden de werkers geordend volgens voortgang: van laatste aan de lijn tot eerste. De keuze om te beginnen bij de verst gevorderde werker, is tweeledig: de laatste werker heeft het minste kans om geblokkeerd te zijn, maar zal wel bepalend zijn voor het blokkeren van (in principe) al zijn voorgangers. de laatste werker verricht meestal het meeste werk. 3. Zolang werkers wijzigen, doe ze werken In deze stap gebeurt het echte werken: een werker wordt geïnstrueerd te werken binnen een bepaalde tijdslimiet. De voortgang van één bepaalde werker, kan ook voortgang betekenen voor andere werkers (bv. bij blokkeringen). Om de invloed van het doorlopen naargelang volgorde te beperken, wordt opnieuw geprobeerd om werkers te doen vorderen van zodra één werker voortgang vertoont. 4. Is deze status consistent? In deze stap wordt gekeken of alle werkers in de volgorde staan die door het model worden opgelegd. Wanneer 2 werkers voldoende dicht tot elkaar zijn genaderd in tegenovergestelde richting (voorwaarts werkend achterwaarts wandelend), wordt de batch (de verzameling items) overgedragen en zullen zij bij de volgende tick wijzigen van richting.

68 HOOFDSTUK 3. SIMULATIEMODEL Was de status consistent? a: Ja Bevestig deze (correcte) nieuwe status, en ga een tick verder. b: Nee Herstel het systeem naar de eerdere toestand (uit 1.). Vermenigvuldig het aantal subticks met 10 en probeer opnieuw (met verhoogde nauwkeurigheid) Nauwkeurigheid De fases Opslaan status Verifiëren consistentie Doorgaan of herstellen zijn belangrijk voor een correcte en nauwkeurige overdracht. We illustreren dit met een voorbeeld in Figuur 3.5. In Figuur 3.5(a) wordt de beginsituatie geschetst: beschouw 2 werkers langs een pad, wk A en wk B. Werker wk A wandelt vooruit met een bepaalde snelheid en in bezit van een item. Werker wk B wandelt terug, en moet het product van wk A overnemen. De (wandel)snelheid van wk B is bovendien dubbel zo groot als de snelheid van wk A. Het exact nauwkeurige overdrachtspunt wordt weergegeven als o. De werkers zijn vast geordend, en de maximaal toelaatbare fout is de afstand tussen 2 streepjes in. Figuur 3.5(b) schetst een hypothetische situatie: door de volgorde om werkers te gaan bewegen, komt wk B eerst aan de beurt. Hij beweegt voort tot exact hetzelfde punt als wk A, en merkt op dat ze beiden in tegenovergestelde richting bewegen. wk B besluit om het item van wk A over te nemen, en beiden wijzigen hun richting. Het overdrachtspunt ligt 2 streepjes verwijderd van het goede, nauwkeurige punt o. Deze situatie is echter hypothetisch: werkers bewegen in tegenovergestelde richting t.o.v. elkaar, zonder weet te hebben van elkaars positie. Wat dus in realiteit gebeurt, wordt weergegeven in Figuur 3.5(c). De werkers zijn elkaar gepasseerd zonder overdracht, en bewegen nog steeds in hun respectievelijke richtingen. In deze situatie echter, staat wk B vroeger op de lijn dan wk A. Dit wordt gedetecteerd (stap 4), er wordt gemeld dat het systeem inconsistent is. Deze inconsistentie leidt ertoe dat het systeem in zijn oorspronkelijke toestand wordt hersteld, en dat de stapgrootte (d.m.v. subticks) wordt verkleind (voor de eenvoud nemen we aan dat de stapgrootte met een factor 5 wordt verkleind, in tegenstelling tot 10 in het echte softwaremodel). De nieuwe situatie wordt weergegeven in Figuur 3.5(d) In Figuren 3.5(e) tot 3.5(g) wordt verdergegaan met deze verkleinde stapgrootte. Bij Figuur 3.5(g) detecteert het systeem dat wk A en wk B in tegenovergestelde richting bewegen, en voldoende dicht zijn genaderd (tolerantie van één blokje) voor een overdracht. De

69 HOOFDSTUK 3. SIMULATIEMODEL 59 overdracht wordt dan ook ingezet, en de richting van beide werkers wordt omgekeerd (Figuur 3.5(h)). Dit overdrachtspunt ligt, op een afrondingsfout na door de tolerantiegrens, erg dicht bij het ideale overdrachtspunt. Dit zal alleszins veel beter zijn dan een afrondingsfout zoals bv. in Figuur 3.5(b). Na de fase van subticks (lus C) wordt de subtickwaarde terug ingesteld op 1 (om performantieredenen), opnieuw tot zolang de consistentieregels anders opleggen. Afronden - tolerantie Reële getallen kunnen niet met oneindige precisie worden voorgesteld binnen een computer (oneindige precisie zou een oneindig groot geheugen vereisen). Voor de interne berekening wordt gebruik gemaakt van de klasse BigDecimal 7, voor exacte representatie met een nauwkeurigheid van 15 decimalen; bovendien zal, ingeval van noodzakelijke afronding, deze afronding op willekeurige basis naar boven en naar beneden gebeuren (om versterking van het effect van de afronding in opeenvolgende ticks te vermijden). De tolerantie die zal worden gebruikt bij vergelijkingen, wordt gekozen op basis van de ingestelde klokfrequentie: tolerantie = klokf requentie Bij een ingestelde klokfrequentie van 20(Hz) wordt het volgende interval als voldoende dicht bij 0 aanzien om als 0 te worden beschouwd: ] ; [, waarbij: tolerantie = = Uitbreidingen, verbeteringen Zonder noodzakelijk in volgorde van belangrijkheid te zijn vermeld, worden hier een aantal ideeën tot uitbreiding of verbetering aangegeven. Warming-up fase De meeste simulatiemodellen werken met een zgn. warming-up fase: een tijd gedurende welke het systeem de tijd heeft om zich te stabiliseren, zonder dat tijdens die warming-up al resultaten worden geproduceerd. Het is een optie om dit ook in dit softwaremodel te gaan gebruiken, hoewel net tijdens deze warming-up-fase de convergentie van het systeem zal waar te nemen zijn. 7

70 HOOFDSTUK 3. SIMULATIEMODEL 60 wk A o wk B (a) Beginsituatie wk B wk A o (b) Domweg overnemen wk B wk A (c) Realistische situatie wk A wk B (d) Herstelde situatie, kleinere stapgrootte wk A wk B (e) Na 1 verkleinde stap wk A wk B (f) Na 2 verkleinde stappen wk A wk B (g) Na 3 verkleinde stappen wk A wk B (h) Na 3 verkleinde stappen gebeurt de overdracht Figuur 3.5: Illustratie verschillende fasen

71 HOOFDSTUK 3. SIMULATIEMODEL 61 Willekeurige startposities werkers Het zou handig zijn wanneer we werkers zouden kunnen laten starten vanaf een willekeurige positie binnen het systeem, i.p.v. zoals nu op startpositie nul. De vraag is hoe deze positionering dan best kan gedefinieerd worden (procentueel t.o.v. de werkinhoud? stochastische werktijden?,... ). Een dergelijke aanpassing kan, maar is niet zomaar rechttoe rechtaan bij te programmeren. Onderbreken/herinvoegen werkers Ook bij realistische productielijnen is het mogelijk dat een werker na een bepaalde (simulatie)tijd van de lijn verdwijnt (bv. externe oorzaak, pauze) of wordt toegevoegd aan de lijn (bv. na onderbreking, bij toegenomen hoeveelheid orders, na verlofdag). Herinvoegen vereist opnieuw een goede definiëring (regels) wáár de werker precies opnieuw begint te werken, onderbreking vereist dat batches kunnen worden gedropped op een willekeurige plaats langsheen de productielijn (en naderhand worden opgepikt). Afbreken subticks na oplossen probleem Wanneer een inconsistentie wordt vastgesteld, wordt de status van het systeem (al dan niet meerdere keren) teruggerold naar een vorige toestand, en de stapgrootte verkleind. Na het oplossen van een dergelijke inconsistentie, is er echter geen reden meer waarom de huidige klokcyclus wordt verdergesimuleerd in deze verkleinde stapgrootte. Er zou dan echter moeten bijgehouden worden wanneer de (en liefst ook welke) inconsistentie werd opgelost; bovendien moet het teruggaan naar een grotere stapgrootte ook gebeuren op een veelvoud van 10 (om de subtick met 10x te kunnen verhogen). Analoog subticks, stap vergroten Misschien is het mogelijk om, naar analogon van de subticks, op bepaalde momenten de stapgrootte te vergroten; dit zal de uitvoeringstijd van de simulatie uiteraard ten goede komen. Het is echter niet zomaar te voorspellen wanneer het vergroten van deze stapgrootte mogelijk of aangewezen is. Software opsplitsen per model In dit softwaremodel werd gekozen om de modellering aan te geven in het configuratiebestand (model = 0, 1 of 2). Ieder model echter vereist aparte aannames en aparte functies, die onnodig of overbodig kunnen zijn voor een ander model. Het ware waarschijnlijk beter geweest het model van begin af aan uit te splitsen in 3 aparte simulatiemodellen, voor betere overzichtelijkheid en betere performantie. Dit zou echter leiden tot veel dubbele code, en veel knippen/plakken-bewerkingen leiden bij software bijna onvermijdelijk tot moeilijk te vinden fouten. GUI (Graphical User Interface) Het zou visueel aantrekkelijk zijn wanneer de positie van de werkers grafisch zou kunnen worden gevolgd. Dit op zich is echter flink wat programmeerwerk, en bovendien

72 HOOFDSTUK 3. SIMULATIEMODEL 62 zal goed moeten worden nagedacht hoe niet-deterministische werkinhouden duidelijk zouden kunnen worden weergegeven. Verbeteren configuratiecontrole, betere foutmeldingen Zoals vroeger reeds aangegeven, kan de controle van de instellingen uit het configuratiebestand nog beter, en kunnen de foutmeldingen die worden gegeven bij de vaststelling van een fout ongetwijfeld nog verbeterd worden. Hier dient echter steeds de afweging programmeertijd uitvoeringstijd alomvattendheid worden gemaakt. Races bij gelijke snelheden Model 2 kent geen controle op de goede volgorde van werkers: werker zijn enkel gebonden tot overdracht van hun items wanneer ze elkaar tegenkomen, maar kunnen elkaar bv. gaan inhalen langs een pad (zoals in de realiteit). Wanneer 2 werkers echter met gelijke (wandel-/werk-)snelheid starten aan een bepaald onderdeel, kan de ordening worden verstoord: door zeer kleine afrondingsfouten kan een werker, hoewel heel beperkt, een andere werker voorbijsteken (terwijl ze in principe exact gelijk zouden moeten voortbewegen). Dit kan leiden tot ongewenst gedrag, maar is niet eenvoudig te verhelpen. Best is dus, wanneer een bepaalde ordening wordt beoogd bij model 2, de werkers toch een verschillende werk- of wandelsnelheid te geven maar dan met een zeer klein verschil. Vereiste van proper einde kan simulatie flink vertragen Om realistische posities van andere werkers te kunnen afdrukken wanneer de lijn zich reset, zal worden vereist dat een werker die een product voltooit aan het einde van de lijn, dit doet (afgerond) exact aan het einde van zijn werkcyclus; hiervoor zal dus mogelijk de stapgrootte worden verkleind door subticks te gebruiken. De voortgang aan een onderdeel wordt steeds procentueel bekeken; is de werk- of wandelinhoud van een onderdeel echter kort, dan zal telkens een vrij groot percentage worden voortgegaan aan dit onderdeel. Bij grote percentagevoortgangen kan het dus nodig zijn dat de stapgrootte zéér klein wordt gemaakt om juiste voltooiing te bekomen, en kan dus de simulatie enorm vertragen. Het is dan ook niet aangewezen om een klein station of een kort pad aan het einde van een gesimuleerde productielijn te plaatsen.

73 Hoofdstuk 4 Enkele simulaties in de praktijk In Hoofdstuk 3 werd het simulatiemodel voornamelijk theoretisch benaderd, bijna eerder opgevat als een soort handleiding. Het mag hieruit al duidelijk zijn dat het model flink wat meer kan simuleren dan wat de beperkte aannames van de modellen opleggen. In dit hoofdstuk zullen een aantal variaties op de modellen besproken in Hoofdstuk 2, worden voorgelegd aan het simulatiemodel. Een aantal van deze resultaten zullen ook helpen om de case uit het volgende hoofdstuk op te lossen. 4.1 Stations gescheiden door paden, eindige wandelsnelheid In de praktijk zullen de afzonderlijke stations niet steeds voldoende dicht bij elkaar liggen, zodat niet steeds kan worden aangenomen dat het aandeel wandelen t.o.v. het aandeel werker voldoende klein is om te worden verwaarloosd. We beschouwen een productielijn met de volgende opstelling (een pijl stelt een pad voor met aangegeven lengte, een blokje stelt een station voor met aangegeven standaard werkinhoud): 8m 2m 3m 1.5m 0m 40s 65s 30s 85s Figuur 4.1: Opstelling simulatie We veronderstellen het klassieke model, en nemen 2 werkers met werksnelheden 1 en 1.2, en wandelsnelheden van 4.8km/h 1 en 4.81km/h 2. De werkers worden geordend volgens de convergentievoorwaarde op hun werksnelheid. 1 conform het normale Bedaux-tempo 2 om races te vermijden 63

74 HOOFDSTUK 4. ENKELE SIMULATIES IN DE PRAKTIJK 64 Bij oneindige wandelsnelheid zouden de werkers niet blokkeren, en een lijncyclustijd van 220s = 100 seconden per product behalen. We zijn nu benieuwd naar de lijncyclustijd wanneer er wordt gewandeld (die zal ongetwijfeld hoger liggen), en of deze lijn convergeert naar een stabiele toestand Figuur 4.2: Lijncyclustijd bij gebruik van paden Uit Figuur 4.2 blijkt dat de lijn inderdaad convergeert, en wel naar de waarde De lijncyclustijd ligt dus inderdaad een fractie hoger door wandelen, doch de lijn convergeert wel naar een stabiele waarde (en dus stabiele overdrachtspunten). 4.2 Stations met stochastische werkinhoud In de praktijk is het evenmin steeds aan te nemen dat de werkinhoud aan elk station deterministisch is, bijvoorbeeld door inherente variatie in de bewerkte soorten items. We hernemen het vorige voorbeeld, doch nu nemen we de werkinhouden variabel (maar wel nog steeds gehele getallen): 8m 2m 3m 1.5m 0m 35-45s 60-70s 25-35s 80-90s Figuur 4.3: Opstelling simulatie We vermoeden een resultaat conform Punt 2.5.1, een besproken artikel[5]. In dit artikel gaat men echter uit van een voldoende aantal stations; vermoedelijk zullen de 4 beschouwde stations te weinig zijn om van voldoende te kunnen spreken, en zullen er werkers regelmatig gaan blokkeren.

75 HOOFDSTUK 4. ENKELE SIMULATIES IN DE PRAKTIJK Figuur 4.4: Lijncyclustijd bij stochastische werkinhouden In Figuur 4.4 is duidelijk te zien dat de lijncyclustijd zich volkomen willekeurig gedraagt. In een tweede stap (niet opgenomen in bijlage) wordt de klokfrequentie tot 10Hz verkleind, en de gesimuleerde tijd verhoogd tot 300 uren. We zullen hiervan het gemiddelde berekenen, kijken of dit convergeert en zo ja, naar welke waarde? Figuur 4.5: Gemiddelde lijncyclustijd bij stochastische werkinhouden De gemiddelde waarde convergeert reeds na een 100-tal afgewerkte producten richting één waarde. Deze waarde is na meer dan 9500 waarden geconvergeerd tot , hoewel deze waarde slechter is dan voorgaand (door blokkeren). 4.3 Stations met overdrachtstijden In niet alle gevallen kan het werk aan een station niet zomaar onmiddellijk worden doorgegeven wanneer een terugwandelende werker daarom vraagt: soms zal de huidige bewerking bv. eerst moeten worden afgerond.

76 HOOFDSTUK 4. ENKELE SIMULATIES IN DE PRAKTIJK 66 Beschouw opnieuw het originele voorbeeld, maar nu is er aan elk station een vaste overdrachtstijd van 10s. 8m 2m 3m 1.5m 0m 40s (+10s) 65s (+10s) 30s (+10s) 85s (+10s) Figuur 4.6: Opstelling simulatie In Figuur 4.7 wordt het resultaat getoond. Hoewel moeilijk te zien op de figuur, springen de waarden in stabiele toestand tussen en ; dit kan toeval zijn door afrondingsfouten, of wijzen op quasi-periodiek gedrag Figuur 4.7: Lijncyclustijd met overdrachtstijden Om het mogelijke quasi-periodieke gedrag te onderzoeken, herhalen we de simulatie, maar nu met de middelste stations omgewisseld (enkel de 2 middelste stations, de paden blijven zoals voorheen) Figuur 4.8: Lijncyclustijd met overdrachtstijden

77 HOOFDSTUK 4. ENKELE SIMULATIES IN DE PRAKTIJK 67 Uit Figuur 4.8 blijkt inderdaad duidelijk dat stations met overdrachtstijden, (kunnen) leiden tot quasi-periodiek gedrag. 4.4 Items met verschillend padverloop Wanneer we items een label geven, kunnen we ze via een verschillend pad laten afwerken. Gezien de labels willekeurig worden toegewezen (zelfs indien 50/50 kunnen twee opeenvolgende batches zonder probleem hetzelfde label dragen), verwachten we ook een willekeurige lijncyclustijd, ook per item afzonderlijk beschouwd. Beschouw de volgende productielijn. 8m 2m 1m 2m 40s 65s ln 2.5m 30s 55s 1.5m 0m 85s 0m Figuur 4.9: Opstelling simulatie De verschillende producten worden willekeurig gestart, en geeft inderdaad aanleiding tot een willekeurige lijncyclustijd (Figuur 4.10). Uitsplitsen per product geeft geen beter resultaat, ook dit is willekeurig Figuur 4.10: Lijncyclustijd met labels 4.5 Items met rework We hernemen opnieuw het allereerste voorbeeld. Aan het vierde station wordt nu echter bij 1 op 25 items ( 1 = 0.04) een fout vastgesteld. Deze fout geeft aanleiding tot een extra 25

78 HOOFDSTUK 4. ENKELE SIMULATIES IN DE PRAKTIJK 68 bewerking, die een vaste 25s duurt. Om niets te missen, verhogen we de simulatieduur eveneens naar 5 uren. De fouten worden opnieuw willekeurig gedetecteerd. 8m 2m 3m 1.5m 0m 40s 65s 30s 85s (+25s?) Figuur 4.11: Opstelling simulatie In Figuur 4.12 worden de lijncyclustijden van de eerste 150 producten weergegeven. Er zijn zeer mooi 6 hickups te zien in de lijncyclustijd, waarna de lijn zich opnieuw organiseert tot een stabiele output Figuur 4.12: Lijncyclustijd met rework 4.6 Vergelijking overdrachten bij parallelle paden Voor de volgende simulaties kiezen we drie werkers met resp. werksnelheden 1, 1.1 en 1.2 en wandelsnelheden 4.80, 4.81 en 4.82; we nemen een nieuwe opstelling met parallelle paden als volgt: 0m 1.5m 40s 25s 5m 5m 180s 5m 5m 30s 1m 55s 0m 180s Figuur 4.13: Opstelling simulatie

79 HOOFDSTUK 4. ENKELE SIMULATIES IN DE PRAKTIJK 69 Voor de overdrachten tussen de paden onderling hoeven we het parallelle station enkel te vervangen door een continu stations waaraan maximum 2 werkers kunnen werken. Het resultaat van de simulatie wordt getoond in Figuur Zoals kan worden verwacht convergeert de grafiek, en wel naar een lijncyclustijd van seconden per item Figuur 4.14: Lijncyclustijd bij overdrachten tussen de paden onderling Voor de overdracht langsheen de paden moeten we gebruik maken van switchnodes en bijbehorende pathmonitors. Het resultaat is weergegeven in Figuur Hoewel moeilijk te zien, is de periode van het quasi-periodieke gedrag = 6. Het voortschrijdende gemiddelde is seconden per item. Dit blijkt marginaal slechter dan de simulatie in voorgaand geval Figuur 4.15: Lijncyclustijd bij overdrachten langsheen de paden

80 Hoofdstuk 5 Case study 5.1 Inleiding Een deel van deze thesis bestaat erin het ontwikkelde simulatiemodel te gaan toepassen op een praktische case. In wat volgt, zal deze case worden beschreven, de vraagstelling worden besproken, en worden gepoogd een voldoende antwoord te bieden met behulp van de software. Dit heeft als concreet voordeel dat op zeer korte tijd een aantal variaties kunnen worden bekeken op verschillende situaties, zonder dat deze effectief dienen te worden uitgeprobeerd in de praktijk met alle praktische bezwaren (en zelfs economische verliezen) vandien. Bij het ontwikkelen van het softwaremodel werd de toepassing in deze case study sterk indachtig gehouden. Hiervan getuigen o.a. het onderdeel buffer; tussenvoorraden komen strikt gezien immers nooit voor bij Bucket Brigade productielijnen. 5.2 Situatieschets Bij het bedrijf Van Hoecke te Sint-Niklaas, beschouwen we de Halux-productielijn. Het betreft de productie van aluminium kaderdeuren voor o.a. huishoudelijke toepassing (zoals keukens). Er wordt steeds vertrokken van aluminium profielen en diverse onderdelen (vijzen, glas, montagehoeken,... ); deze aluminium latten worden to order 1 gezaagd en bewerkt. Afhankelijk van de vraag, worden deze onafgewerkte aluminium frames vervolgens hetzij geassembleerd met extern aangeleverd glas (meest voorkomend), hetzij verlaten zij de productielijn niet-geassembleerd doch verpakt. De layout van de productielijn wordt weergegeven in Figuur 5.1. De flow start bij de grijze driehoek rechtsonderaan (voorraad courante aluminium latten), en eindigt bij (een van) de grijze pijlen linksbovenaan. De kaderdeuren doorlopen doorgaans de productielijn in een batch van 5 kaderdeuren, op karretjes voorzien van wieltjes. 1 van build to order, (op maat) gemaakt nadat het product is besteld. 70

81 HOOFDSTUK 5. CASE STUDY a 8 5b 2a 6a 6b 2b 1 Figuur 5.1: Layout van de beschouwde productielijn 1 Voorraad aluminium latten 2a Dubbele zaag 2b Enkele zaag (latten < 400mm) 3 Freesmachine (gaten scharnieren, e.d.) 4 Aanbrengen van dichtingen 5a, 5b Boor (gaten voor samenschroeven kader) 6a, 6b Parallelle assemblagepost 7 Verpakking kaders zonder glas 8 Oven Tabel 5.1: Legenda bij Figuur 5.1 Om een goed beeld te kunnen schetsen van de productielijn, zal elke post afzonderlijk kort worden beschreven.

82 HOOFDSTUK 5. CASE STUDY 72 Post 1: voorraad aluminium De productie start bij het oppikken van aluminium latten. Hier liggen enkel de meest courante profielen; de overige latten moeten worden gehaald in de naastgelegen ruimte (hal). Tegelijk worden de latten nauwkeurig gecontroleerd op fouten (zoals krassen), die worden gemarkeerd. Post 2a: dubbele zaag Vooreerst worden de profielen op maat gezaagd. Alle profielen groter of gelijk aan 400mm worden op de dubbele zaag gezaagd. De bedoeling is dat de dubbele zaag telkens 2 profielen gelijktijdig zal zagen in de toekomst. Bij het tijdsmeten was dit gelijktijdig zagen slechts het geval voor een minderheid van de profielen: door onvoldoende bovenlangse inklemming verplaatst het tweede profiel zich lichtjes door de zijdelingse inklemming; gevolg is dat het verstek van het tweede profiel incorrect is. Gelijktijdig zagen wordt echter in de nabije toekomst mogelijk gemaakt, zodat gelijktijdig zagen zal worden bij de simulaties voor het oplossen van de vragen bij de case. De opgemeten tijden kunnen aldus simpelweg gedeeld worden door 2 zonder noemenswaardige afwijking. Post 2b: enkele zaag Profielen kleiner dan 400mm vereisen bewerking op deze zaag. Het instellen van deze zaag duurt echter langer, alsook het eigenlijke zagen. Er kan steeds slechts één profiel per keer worden gezaagd. Post 3: freesmachine De freesmachine freest gaten in de kaderzijden die dit vereisen. Deze gaten dienen o.a. voor het laterop aanbrengen van scharnieren e.d.. Post 4: dichtingen aanbrengen Kaders die niet worden gekleefd, vereisen het aanbrengen van een kunststof dichting om het glas te fixeren. Dit gebeurt aan deze post. Post 5a/b: boor In elke kaderzijde worden 2 gaten geboord, die later zullen dienen om de kaderzijden aan elkaar te verbinden. Er staan 2 boren, een voor brede profielen en een voor smalle profielen, zodat de boormal minder vaak moet worden vervangen. De tijden zijn echter gelijkaardig, en er zal dan ook worden aangenomen dat post 5 één enkele post is.

83 HOOFDSTUK 5. CASE STUDY 73 Post 6a/b: assemblage Aan de assemblagepost worden de aparte zijden en het (extern aangeleverd) glas geassembleerd tot één geheel. Deze stap is de probleemstap, omwille van de grote hoge (en sterk variërende) assemblagetijd. Om deze reden zijn er 2 (a en b) parallelle (!) assemblagetafels voorzien. Post 7: verpakken Kaders die ongeassembleerd (en zonder glas) naar de klant worden verzonden, worden aan deze tafel verpakt samen met de nodige onderdelen (montagehoeken en schroeven). De kaderzijden worden o.a. in bubbelfolie verpakt. Voor buitenlandse klanten (5% van de verpakte kaders) wordt het pakket daarenboven verpakt in karton (dat op maat wordt gesneden aan de andere kant van de productiehal), wat extra tijd vereist. Verpakken kan in principe ook in parallel gebeuren: 2 werkers kunnen gelijktijdig producten verpakken aan beide zijden van de tafel. Post 8: oven De afgewerkte kaders worden aan post 8 voorzien van krimpfolie ter bescherming tijdens de verzending. Door een technologische beperking, zal de oven slechts tweemaal daags worden opgestart en gebruikt. In wat volgt, zal deze oven dan ook buiten beschouwing worden gelaten; er worden voor de gesimuleerde productielijn dus afgewerkte producten verondersteld ofwel na stap 6 (assembleren), ofwel na stap 7 (verpakken). Algemeen Er werken doorgaans 3 werkers aan deze lijn. Zij worden niet specifiek geordend volgens werk- of wandelsnelheid; meer nog, de positie van de werkers wordt wekelijks geroteerd, om te zorgen voor afwisseling in het werk. Idealiter wordt langs deze productielijn volgens het principe van Bucket Brigades gewerkt: geen werker is (in principe) vast verbonden met een welbepaald werkstation, en zij voltooien hun batch langsheen de productielijn, tot hun batch wordt overgenomen door een achterligger. In de praktijk echter, houdt elke werker zich aan een denkbeeldige zone. Tussen deze zones bevinden zich tussenvoorraden, naargelang het aantal beschikbare vrije karretjes (maximaal 4): Zone 1 Aanhalen en controleren (bv. op krassen) van de correcte aluminium latten, en deze volgens het order zagen. Zone 2 Frezen, (desgevallend) dichtingen aanbrengen en boren

84 HOOFDSTUK 5. CASE STUDY 74 Zone 3 Assembleren of verpakken Tussen zone 1 en 2 wordt een tussenvoorraad opgebouwd van één karretje (een batch), tussen zone 2 en 3 wordt een tussenvoorraad van 3 karretjes (3 batches) opgebouwd. Slechts uitzonderlijk (bij een gebrek aan extra karretjes om welke reden dan ook) zal een operator zijn zone verlaten. Typisch springt de operator uit zone 2 bij in zone 3 (helpt bij het assembleren), waarbij de operator uit zone 1 dan de zones 1 en 2 voor zijn rekening neemt. 5.3 Tijdsmetingen Om realistisch te kunnen gaan simuleren, is het nodig om per post over realistische (cyclus)tijden te beschikken. Voor de gebruiksvriendelijkheid werd ervoor gekozen om een eigen stuk software te schrijven (zie Figuur 5.2) in de programmeertaal C#, en zelf ter plaatse tijden te gaan opmeten. Het programma kan zowel met muis als toetsenbord aangestuurd worden, en toont grafisch de layout (en supplementaire gegevens per station). De opgemeten waarden worden weggeschreven in een tekstbestand, gescheiden door ; en nieuwe regels. Figuur 5.2: Hulpprogramma voor tijdsmetingen in C# De resultaten van de metingen worden deels manueel, deels met behulp van een klein specifiek Java-programmaatje (project Transformer, zie ook CD-ROM) verwerkt tot bruik-

MyDHL+ Van Non-Corporate naar Corporate

MyDHL+ Van Non-Corporate naar Corporate MyDHL+ Van Non-Corporate naar Corporate Van Non-Corporate naar Corporate In MyDHL+ is het mogelijk om meerdere gebruikers aan uw set-up toe te voegen. Wanneer er bijvoorbeeld meerdere collega s van dezelfde

Nadere informatie

SAMPLE 11 = + 11 = + + Exploring Combinations of Ten + + = = + + = + = = + = = 11. Step Up. Step Ahead

SAMPLE 11 = + 11 = + + Exploring Combinations of Ten + + = = + + = + = = + = = 11. Step Up. Step Ahead 7.1 Exploring Combinations of Ten Look at these cubes. 2. Color some of the cubes to make three parts. Then write a matching sentence. 10 What addition sentence matches the picture? How else could you

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 8 februari 2010

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 8 februari 2010 FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Toets Inleiding Kansrekening 1 8 februari 2010 Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als je een onderdeel

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Tentamen Analyse 6 januari 203, duur 3 uur. Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als je een onderdeel

Nadere informatie

ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK EN BEHANDELING (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK EN BEHANDELING (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM Read Online and Download Ebook ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK EN BEHANDELING (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM DOWNLOAD EBOOK : ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK STAFLEU

Nadere informatie

8+ 60 MIN Alleen te spelen in combinatie met het RIFUGIO basisspel. Only to be played in combination with the RIFUGIO basicgame.

8+ 60 MIN Alleen te spelen in combinatie met het RIFUGIO basisspel. Only to be played in combination with the RIFUGIO basicgame. 8+ 60 MIN. 2-5 Alleen te spelen in combinatie met het RIFUGIO basisspel. Only to be played in combination with the RIFUGIO basicgame. HELICOPTER SPEL VOORBEREIDING: Doe alles precies hetzelfde als bij

Nadere informatie

Vergaderen in het Engels

Vergaderen in het Engels Vergaderen in het Engels In dit artikel beschrijven we verschillende situaties die zich kunnen voordoen tijdens een business meeting. Na het doorlopen van deze zinnen zal je genoeg kennis hebben om je

Nadere informatie

General info on using shopping carts with Ingenico epayments

General info on using shopping carts with Ingenico epayments Inhoudsopgave 1. Disclaimer 2. What is a PSPID? 3. What is an API user? How is it different from other users? 4. What is an operation code? And should I choose "Authorisation" or "Sale"? 5. What is an

Nadere informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Examination 2DL04 Friday 16 november 2007, hours.

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Examination 2DL04 Friday 16 november 2007, hours. TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica Examination 2DL04 Friday 16 november 2007, 14.00-17.00 hours. De uitwerkingen van de opgaven dienen duidelijk geformuleerd en overzichtelijk

Nadere informatie

Travel Survey Questionnaires

Travel Survey Questionnaires Travel Survey Questionnaires Prot of Rotterdam and TU Delft, 16 June, 2009 Introduction To improve the accessibility to the Rotterdam Port and the efficiency of the public transport systems at the Rotterdam

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 22 februari 2013

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 22 februari 2013 FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Toets Inleiding Kansrekening 1 22 februari 2013 Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als je een onderdeel

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Tentamen Bewijzen en Technieken 1 7 januari 211, duur 3 uur. Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe.

Nadere informatie

Classification of triangles

Classification of triangles Classification of triangles A triangle is a geometrical shape that is formed when 3 non-collinear points are joined. The joining line segments are the sides of the triangle. The angles in between the sides

Nadere informatie

Introductie in flowcharts

Introductie in flowcharts Introductie in flowcharts Flow Charts Een flow chart kan gebruikt worden om: Processen definieren en analyseren. Een beeld vormen van een proces voor analyse, discussie of communicatie. Het definieren,

Nadere informatie

Non Diffuse Point Based Global Illumination

Non Diffuse Point Based Global Illumination Non Diffuse Point Based Global Illumination Karsten Daemen Thesis voorgedragen tot het behalen van de graad van Master of Science in de ingenieurswetenschappen: computerwetenschappen Promotor: Prof. dr.

Nadere informatie

ALGORITMIEK: answers exercise class 7

ALGORITMIEK: answers exercise class 7 Problem 1. See slides 2 4 of lecture 8. Problem 2. See slides 4 6 of lecture 8. ALGORITMIEK: answers exercise class 7 Problem 5. a. Als we twee negatieve (< 0) getallen bij elkaar optellen is het antwoord

Nadere informatie

Add the standing fingers to get the tens and multiply the closed fingers to get the units.

Add the standing fingers to get the tens and multiply the closed fingers to get the units. Digit work Here's a useful system of finger reckoning from the Middle Ages. To multiply $6 \times 9$, hold up one finger to represent the difference between the five fingers on that hand and the first

Nadere informatie

L.Net s88sd16-n aansluitingen en programmering.

L.Net s88sd16-n aansluitingen en programmering. De L.Net s88sd16-n wordt via één van de L.Net aansluitingen aangesloten op de LocoNet aansluiting van de centrale, bij een Intellibox of Twin-Center is dat de LocoNet-T aansluiting. L.Net s88sd16-n aansluitingen

Nadere informatie

Disclosure belofte. Ik stel het belang van de patiënt voorop en eerbiedig zijn opvattingen. Doel van de patient staat centraal

Disclosure belofte. Ik stel het belang van de patiënt voorop en eerbiedig zijn opvattingen. Doel van de patient staat centraal Disclosure: belofte Ik stel het belang van de patiënt voorop en eerbiedig zijn opvattingen Ik zal aan de patiënt geen schade doen Ik luister en zal hem goed inlichten Disclosure: belofte Ik stel het belang

Nadere informatie

Group work to study a new subject.

Group work to study a new subject. CONTEXT SUBJECT AGE LEVEL AND COUNTRY FEATURE OF GROUP STUDENTS NUMBER MATERIALS AND TOOLS KIND OF GAME DURATION Order of operations 12 13 years 1 ste year of secundary school (technical class) Belgium

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Tentamen Analyse 8 december 203, duur 3 uur. Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als jeeen onderdeel

Nadere informatie

DALISOFT. 33. Configuring DALI ballasts with the TDS20620V2 DALI Tool. Connect the TDS20620V2. Start DALISOFT

DALISOFT. 33. Configuring DALI ballasts with the TDS20620V2 DALI Tool. Connect the TDS20620V2. Start DALISOFT TELETASK Handbook Multiple DoIP Central units DALISOFT 33. Configuring DALI ballasts with the TDS20620V2 DALI Tool Connect the TDS20620V2 If there is a TDS13620 connected to the DALI-bus, remove it first.

Nadere informatie

Engels op Niveau A2 Workshops Woordkennis 1

Engels op Niveau A2 Workshops Woordkennis 1 A2 Workshops Woordkennis 1 A2 Workshops Woordkennis 1 A2 Woordkennis 1 Bestuderen Hoe leer je 2000 woorden? Als je een nieuwe taal wilt spreken en schrijven, heb je vooral veel nieuwe woorden nodig. Je

Nadere informatie

Het is geen open boek tentamen. Wel mag gebruik gemaakt worden van een A4- tje met eigen aantekeningen.

Het is geen open boek tentamen. Wel mag gebruik gemaakt worden van een A4- tje met eigen aantekeningen. Examen ET1205-D1 Elektronische Circuits deel 1, 5 April 2011, 9-12 uur Het is geen open boek tentamen. Wel mag gebruik gemaakt worden van een A4- tje met eigen aantekeningen. Indien, bij het multiple choice

Nadere informatie

Opgave 2 Geef een korte uitleg van elk van de volgende concepten: De Yield-to-Maturity of a coupon bond.

Opgave 2 Geef een korte uitleg van elk van de volgende concepten: De Yield-to-Maturity of a coupon bond. Opgaven in Nederlands. Alle opgaven hebben gelijk gewicht. Opgave 1 Gegeven is een kasstroom x = (x 0, x 1,, x n ). Veronderstel dat de contante waarde van deze kasstroom gegeven wordt door P. De bijbehorende

Nadere informatie

Settings for the C100BRS4 MAC Address Spoofing with cable Internet.

Settings for the C100BRS4 MAC Address Spoofing with cable Internet. Settings for the C100BRS4 MAC Address Spoofing with cable Internet. General: Please use the latest firmware for the router. The firmware is available on http://www.conceptronic.net! Use Firmware version

Nadere informatie

B1 Woordkennis: Spelling

B1 Woordkennis: Spelling B1 Woordkennis: Spelling Bestuderen Inleiding Op B1 niveau gaan we wat meer aandacht schenken aan spelling. Je mag niet meer zoveel fouten maken als op A1 en A2 niveau. We bespreken een aantal belangrijke

Nadere informatie

CHROMA STANDAARDREEKS

CHROMA STANDAARDREEKS CHROMA STANDAARDREEKS Chroma-onderzoeken Een chroma geeft een beeld over de kwaliteit van bijvoorbeeld een bodem of compost. Een chroma bestaat uit 4 zones. Uit elke zone is een bepaald kwaliteitsaspect

Nadere informatie

L.Net s88sd16-n aansluitingen en programmering.

L.Net s88sd16-n aansluitingen en programmering. De L.Net s88sd16-n wordt via één van de L.Net aansluitingen aangesloten op de LocoNet aansluiting van de centrale, bij een Intellibox of Twin-Center is dat de LocoNet-T aansluiting. L.Net s88sd16-n aansluitingen

Nadere informatie

Het Effect van Verschil in Sociale Invloed van Ouders en Vrienden op het Alcoholgebruik van Adolescenten.

Het Effect van Verschil in Sociale Invloed van Ouders en Vrienden op het Alcoholgebruik van Adolescenten. Het Effect van Verschil in Sociale Invloed van Ouders en Vrienden op het Alcoholgebruik van Adolescenten. The Effect of Difference in Peer and Parent Social Influences on Adolescent Alcohol Use. Nadine

Nadere informatie

RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN GENEESMIDDELEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN GENEESMIDDELEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM Read Online and Download Ebook RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN GENEESMIDDELEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM DOWNLOAD EBOOK : RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN STAFLEU

Nadere informatie

Preschool Kindergarten

Preschool Kindergarten Preschool Kindergarten Objectives Students will recognize the values of numerals 1 to 10. Students will use objects to solve addition problems with sums from 1 to 10. Materials Needed Large number cards

Nadere informatie

Find Neighbor Polygons in a Layer

Find Neighbor Polygons in a Layer Find Neighbor Polygons in a Layer QGIS Tutorials and Tips Author Ujaval Gandhi http://google.com/+ujavalgandhi Translations by Dick Groskamp This work is licensed under a Creative Commons Attribution 4.0

Nadere informatie

Quality requirements concerning the packaging of oak lumber of Houthandel Wijers vof (09.09.14)

Quality requirements concerning the packaging of oak lumber of Houthandel Wijers vof (09.09.14) Quality requirements concerning the packaging of oak lumber of (09.09.14) Content: 1. Requirements on sticks 2. Requirements on placing sticks 3. Requirements on construction pallets 4. Stick length and

Nadere informatie

1a. We werken het geval voor het tandenpoetsen uit. De concepten zijn (we gebruiken Engelse termen en afkortingen):

1a. We werken het geval voor het tandenpoetsen uit. De concepten zijn (we gebruiken Engelse termen en afkortingen): Uitwerking Huiswerkopgave Inleiding Modelleren Hoofdstuk 3 1a. We werken het geval voor het tandenpoetsen uit. De concepten zijn (we gebruiken Engelse termen en afkortingen): tube=[cap:{open,close},hand:{l,r,none}]

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 7 februari 2011

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 7 februari 2011 FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Toets Inleiding Kansrekening 1 7 februari 2011 Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als je een onderdeel

Nadere informatie

OPEN TRAINING. Onderhandelingen met leveranciers voor aankopers. Zeker stellen dat je goed voorbereid aan de onderhandelingstafel komt.

OPEN TRAINING. Onderhandelingen met leveranciers voor aankopers. Zeker stellen dat je goed voorbereid aan de onderhandelingstafel komt. OPEN TRAINING Onderhandelingen met leveranciers voor aankopers Zeker stellen dat je goed voorbereid aan de onderhandelingstafel komt. Philip Meyers Making sure to come well prepared at the negotiation

Nadere informatie

My Inspiration I got my inspiration from a lamp that I already had made 2 years ago. The lamp is the you can see on the right.

My Inspiration I got my inspiration from a lamp that I already had made 2 years ago. The lamp is the you can see on the right. Mijn Inspiratie Ik kreeg het idee om een variant te maken van een lamp die ik al eerder had gemaakt. Bij de lamp die in de onderstaande foto s is afgebeeld kun je het licht dimmen door de lamellen open

Nadere informatie

The first line of the input contains an integer $t \in \mathbb{n}$. This is followed by $t$ lines of text. This text consists of:

The first line of the input contains an integer $t \in \mathbb{n}$. This is followed by $t$ lines of text. This text consists of: Document properties Most word processors show some properties of the text in a document, such as the number of words or the number of letters in that document. Write a program that can determine some of

Nadere informatie

Firewall van de Speedtouch 789wl volledig uitschakelen?

Firewall van de Speedtouch 789wl volledig uitschakelen? Firewall van de Speedtouch 789wl volledig uitschakelen? De firewall van de Speedtouch 789 (wl) kan niet volledig uitgeschakeld worden via de Web interface: De firewall blijft namelijk op stateful staan

Nadere informatie

MyDHL+ ProView activeren in MyDHL+

MyDHL+ ProView activeren in MyDHL+ MyDHL+ ProView activeren in MyDHL+ ProView activeren in MyDHL+ In MyDHL+ is het mogelijk om van uw zendingen, die op uw accountnummer zijn aangemaakt, de status te zien. Daarnaast is het ook mogelijk om

Nadere informatie

Meetkunde en Lineaire Algebra

Meetkunde en Lineaire Algebra Hoofdstuk 1 Meetkunde en Lineaire Algebra Vraag 1.1 Het trapoppervlak is een afwikkelbaar oppervlak met oneindig veel singuliere punten. Vraag 1.2 Het schroefoppervlak is een afwikkelbaar oppervlak met

Nadere informatie

TOEGANG VOOR NL / ENTRANCE FOR DUTCH : https://www.stofs.co.uk/en/register/live/?regu lator=c&camp=24759

TOEGANG VOOR NL / ENTRANCE FOR DUTCH : https://www.stofs.co.uk/en/register/live/?regu lator=c&camp=24759 DISCLAIMER : 1. Het is een risicovolle belegging / It is an investment with risc. 2. Gebruik enkel geld dat u kan missen / Only invest money you can miss. 3. Gebruik de juiste procedure / Use the correct

Nadere informatie

Daylight saving time. Assignment

Daylight saving time. Assignment Daylight saving time Daylight saving time (DST or summertime) is the arrangement by which clocks are advanced by one hour in spring and moved back in autumn to make the most of seasonal daylight Spring:

Nadere informatie

NUCHTER, EEN HELDERE KIJK EN NO-NONSENSE

NUCHTER, EEN HELDERE KIJK EN NO-NONSENSE NUCHTER, EEN HELDERE KIJK EN NO-NONSENSE NATUURLIJK SAMEN NATURALLY DUTCH. Koolhaas Natuurlijk is a typically Dutch company: Sober, with a clear vision and no-nonsense. That s what our customers may expect

Nadere informatie

Lichamelijke factoren als voorspeller voor psychisch. en lichamelijk herstel bij anorexia nervosa. Physical factors as predictors of psychological and

Lichamelijke factoren als voorspeller voor psychisch. en lichamelijk herstel bij anorexia nervosa. Physical factors as predictors of psychological and Lichamelijke factoren als voorspeller voor psychisch en lichamelijk herstel bij anorexia nervosa Physical factors as predictors of psychological and physical recovery of anorexia nervosa Liesbeth Libbers

Nadere informatie

2019 SUNEXCHANGE USER GUIDE LAST UPDATED

2019 SUNEXCHANGE USER GUIDE LAST UPDATED 2019 SUNEXCHANGE USER GUIDE LAST UPDATED 0 - -19 1 WELCOME TO SUNEX DISTRIBUTOR PORTAL This user manual will cover all the screens and functions of our site. MAIN SCREEN: Welcome message. 2 LOGIN SCREEN:

Nadere informatie

z x 1 x 2 x 3 x 4 s 1 s 2 s 3 rij rij rij rij

z x 1 x 2 x 3 x 4 s 1 s 2 s 3 rij rij rij rij ENGLISH VERSION SEE PAGE 3 Tentamen Lineaire Optimalisering, 0 januari 0, tijdsduur 3 uur. Het gebruik van een eenvoudige rekenmachine is toegestaan. Geef bij elk antwoord een duidelijke toelichting. Als

Nadere informatie

Shipment Centre EU Quick Print Client handleiding [NL]

Shipment Centre EU Quick Print Client handleiding [NL] Shipment Centre EU Quick Print Client handleiding [NL] Please scroll down for English. Met de Quick Print Client kunt u printers in Shipment Centre EU configureren. De Quick Print Client kan alleen op

Nadere informatie

Luister alsjeblieft naar een opname als je de vragen beantwoordt of speel de stukken zelf!

Luister alsjeblieft naar een opname als je de vragen beantwoordt of speel de stukken zelf! Martijn Hooning COLLEGE ANALYSE OPDRACHT 1 9 september 2009 Hierbij een paar vragen over twee stukken die we deze week en vorige week hebben besproken: Mondnacht van Schumann, en het eerste deel van het

Nadere informatie

HOTCO2: alternatief voor de WKK en ketel in de tuinbouw

HOTCO2: alternatief voor de WKK en ketel in de tuinbouw HOTCO2: alternatief voor de WKK en ketel in de tuinbouw Inschatting van de potentie van efficiëntere productie van warmte en CO2 met het HOTCO2 systeem in de tuinbouwsector Erin Kimball (TNO), Ronald-Jan

Nadere informatie

Online Resource 1. Title: Implementing the flipped classroom: An exploration of study behaviour and student performance

Online Resource 1. Title: Implementing the flipped classroom: An exploration of study behaviour and student performance Online Resource 1 Title: Implementing the flipped classroom: An exploration of study behaviour and student performance Journal: Higher Education Authors: Anja J. Boevé, Rob R. Meijer, Roel J. Bosker, Jorien

Nadere informatie

(1) De hoofdfunctie van ons gezelschap is het aanbieden van onderwijs. (2) Ons gezelschap is er om kunsteducatie te verbeteren

(1) De hoofdfunctie van ons gezelschap is het aanbieden van onderwijs. (2) Ons gezelschap is er om kunsteducatie te verbeteren (1) De hoofdfunctie van ons gezelschap is het aanbieden van onderwijs (2) Ons gezelschap is er om kunsteducatie te verbeteren (3) Ons gezelschap helpt gemeenschappen te vormen en te binden (4) De producties

Nadere informatie

LONDEN MET 21 GEVARIEERDE STADSWANDELINGEN 480 PAGINAS WAARDEVOLE INFORMATIE RUIM 300 FOTOS KAARTEN EN PLATTEGRONDEN

LONDEN MET 21 GEVARIEERDE STADSWANDELINGEN 480 PAGINAS WAARDEVOLE INFORMATIE RUIM 300 FOTOS KAARTEN EN PLATTEGRONDEN LONDEN MET 21 GEVARIEERDE STADSWANDELINGEN 480 PAGINAS WAARDEVOLE INFORMATIE RUIM 300 FOTOS KAARTEN EN PLATTEGRONDEN LM2GS4PWIR3FKEP-58-WWET11-PDF File Size 6,444 KB 117 Pages 27 Aug, 2016 TABLE OF CONTENT

Nadere informatie

Exercise P672 Lightweight Structures. A.P.H.W. Habraken. Report

Exercise P672 Lightweight Structures. A.P.H.W. Habraken. Report Exercise 2011-2012 7P672 Lightweight Structures A.P.H.W. Habraken Report Group 4: S.H.M. van Dijck J.C. Fritzsche J. Koeken T. Relker F.G.M. van Rooijen M. Slotboom M. Steenbeeke J.P.T. Theunissen Date:

Nadere informatie

COGNITIEVE DISSONANTIE EN ROKERS COGNITIVE DISSONANCE AND SMOKERS

COGNITIEVE DISSONANTIE EN ROKERS COGNITIVE DISSONANCE AND SMOKERS COGNITIEVE DISSONANTIE EN ROKERS Gezondheidsgedrag als compensatie voor de schadelijke gevolgen van roken COGNITIVE DISSONANCE AND SMOKERS Health behaviour as compensation for the harmful effects of smoking

Nadere informatie

Maillijsten voor medewerkers van de Universiteit van Amsterdam

Maillijsten voor medewerkers van de Universiteit van Amsterdam See page 11 for Instruction in English Maillijsten voor medewerkers van de Universiteit van Amsterdam Iedereen met een UvAnetID kan maillijsten aanmaken bij list.uva.nl. Het gebruik van de lijsten van

Nadere informatie

Meetkunde en Lineaire Algebra

Meetkunde en Lineaire Algebra Hoofdstuk 1 Meetkunde en Lineaire Algebra Vraag 1.1 Het trapoppervlak is een afwikkelbaar oppervlak met oneindig veel singuliere punten. vals Vraag 1.2 Het schroefoppervlak is een afwikkelbaar oppervlak

Nadere informatie

Cambridge International Examinations Cambridge International General Certificate of Secondary Education

Cambridge International Examinations Cambridge International General Certificate of Secondary Education *3745107457* Cambridge International Examinations Cambridge International General Certificate of Secondary Education DUTCH 0515/03 Paper 3 Speaking Role Play Card One 1 March 30 April 2015 Approx. 15 minutes

Nadere informatie

Teksten van de liederen die gospelkoor Inspiration tijdens deze Openluchtdienst zingt.

Teksten van de liederen die gospelkoor Inspiration tijdens deze Openluchtdienst zingt. Don t you worry There s an eternity behind us And many days are yet to come, This world will turn around without us Yes all the work will still be done. Look at ever thing God has made See the birds above

Nadere informatie

MyDHL+ Tarief berekenen

MyDHL+ Tarief berekenen MyDHL+ Tarief berekenen Bereken tarief in MyDHL+ In MyDHL+ kunt u met Bereken tarief heel eenvoudig en snel opvragen welke producten er mogelijk zijn voor een bestemming. Ook ziet u hierbij het geschatte

Nadere informatie

THE WORK HET WERK HARALD BERKHOUT

THE WORK HET WERK HARALD BERKHOUT THE WORK During the twenty years of its existence Studio Berkhout has evolved into the number one studio specialized in still life fashion photography. All skills needed for photography and styling, including

Nadere informatie

Esther Lee-Varisco Matt Zhang

Esther Lee-Varisco Matt Zhang Esther Lee-Varisco Matt Zhang Want to build a wine cellar Surface temperature varies daily, seasonally, and geologically Need reasonable depth to build the cellar for lessened temperature variations Building

Nadere informatie

HANDBOEK HARTFALEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

HANDBOEK HARTFALEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM HANDBOEK HARTFALEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM READ ONLINE AND DOWNLOAD EBOOK : HANDBOEK HARTFALEN (DUTCH EDITION) FROM BOHN Click button to download this ebook READ ONLINE AND DOWNLOAD

Nadere informatie

The genesis of the game is unclear. Possibly, dominoes originates from China and the stones were brought here by Marco Polo, but this is uncertain.

The genesis of the game is unclear. Possibly, dominoes originates from China and the stones were brought here by Marco Polo, but this is uncertain. Domino tiles Dominoes is a game played with rectangular domino 'tiles'. Today the tiles are often made of plastic or wood, but in the past, they were made of real stone or ivory. They have a rectangle

Nadere informatie

Cambridge Assessment International Education Cambridge International General Certificate of Secondary Education. Published

Cambridge Assessment International Education Cambridge International General Certificate of Secondary Education. Published Cambridge Assessment International Education Cambridge International General Certificate of Secondary Education DUTCH 055/02 Paper 2 Reading MARK SCHEME Maximum Mark: 45 Published This mark scheme is published

Nadere informatie

Four-card problem. Input

Four-card problem. Input Four-card problem The four-card problem (also known as the Wason selection task) is a logic puzzle devised by Peter Cathcart Wason in 1966. It is one of the most famous tasks in the study of deductive

Nadere informatie

EM7680 Firmware Update by Micro SD card

EM7680 Firmware Update by Micro SD card EM7680 Firmware Update by Micro SD card 2 NEDERLANDS/ENGLISH EM7680 Firmware update by Micro SD card Table of contents 1.0 (NL) Introductie... 2 2.0 (NL) Firmware installeren... 2 3.0 (NL) Opmerking...

Nadere informatie

Chromosomal crossover

Chromosomal crossover Chromosomal crossover As one of the last steps of genetic recombination two homologous chromosomes can exchange genetic material during meiosis in a process that is referred to as synapsis. Because of

Nadere informatie

liniled Cast Joint liniled Gietmof liniled Castjoint

liniled Cast Joint liniled Gietmof liniled Castjoint liniled Cast Joint liniled Gietmof liniled is een hoogwaardige, flexibele LED strip. Deze flexibiliteit zorgt voor een zeer brede toepasbaarheid. liniled kan zowel binnen als buiten in functionele en decoratieve

Nadere informatie

Calculator spelling. Assignment

Calculator spelling. Assignment Calculator spelling A 7-segmentdisplay is used to represent digits (and sometimes also letters). If a screen is held upside down by coincide, the digits may look like letters from the alphabet. This finding

Nadere informatie

i(i + 1) = xy + y = x + 1, y(1) = 2.

i(i + 1) = xy + y = x + 1, y(1) = 2. Kenmerk : Leibniz/toetsen/Re-Exam-Math A + B-45 Course : Mathematics A + B (Leibniz) Date : November 7, 204 Time : 45 645 hrs Motivate all your answers The use of electronic devices is not allowed [4 pt]

Nadere informatie

Borstkanker: Stichting tegen Kanker (Dutch Edition)

Borstkanker: Stichting tegen Kanker (Dutch Edition) Borstkanker: Stichting tegen Kanker (Dutch Edition) Stichting tegen Kanker Click here if your download doesn"t start automatically Borstkanker: Stichting tegen Kanker (Dutch Edition) Stichting tegen Kanker

Nadere informatie

Grammatica overzicht Theme 5+6

Grammatica overzicht Theme 5+6 Past simple vs. Present perfect simple Past simple: Ww + ed OF 2 e rijtje van onregelmatige ww. I walked I went Ontkenningen past simple: Did not + hele ww He did not walk. Present perfect: Have/has +

Nadere informatie

Understanding the role of health literacy in self-management and health behaviors among older adults Geboers, Bas

Understanding the role of health literacy in self-management and health behaviors among older adults Geboers, Bas University of Groningen Understanding the role of health literacy in self-management and health behaviors among older adults Geboers, Bas IMPORTANT NOTE: You are advised to consult the publisher's version

Nadere informatie

Registratie- en activeringsproces voor de Factuurstatus Service NL 1 Registration and activation process for the Invoice Status Service EN 10

Registratie- en activeringsproces voor de Factuurstatus Service NL 1 Registration and activation process for the Invoice Status Service EN 10 QUICK GUIDE B Registratie- en activeringsproces voor de Factuurstatus Service NL 1 Registration and activation process for the Invoice Status Service EN 10 Version 0.19 (Oct 2016) Per May 2014 OB10 has

Nadere informatie

Cambridge International Examinations Cambridge International General Certificate of Secondary Education

Cambridge International Examinations Cambridge International General Certificate of Secondary Education Cambridge International Examinations Cambridge International General Certificate of Secondary Education DUTCH 0515/03 Paper 3 Speaking Role Play Card One For Examination from 2015 SPECIMEN ROLE PLAY Approx.

Nadere informatie

20 twenty. test. This is a list of things that you can find in a house. Circle the things that you can find in the tree house in the text.

20 twenty. test. This is a list of things that you can find in a house. Circle the things that you can find in the tree house in the text. 9006625806_boek.indd 1 31/08/16 15:26 1 6 test This is a list of things that you can find in a house. Circle the things that you can find in the tree house in the text. living room kitchen bedroom toilet

Nadere informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Tentamen Calculus B (2WBB1) op maandag 28 januari 2013, 14:00 17:00 uur

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Tentamen Calculus B (2WBB1) op maandag 28 januari 2013, 14:00 17:00 uur ENGLISH VERSION: SEE PAGE 7 TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica Tentamen Calculus B (WBB) op maandag 8 januari 03, 4:00 7:00 uur Maak dit vel los van de rest van het tentamen.

Nadere informatie

De Relatie tussen Werkdruk, Pesten op het Werk, Gezondheidsklachten en Verzuim

De Relatie tussen Werkdruk, Pesten op het Werk, Gezondheidsklachten en Verzuim De Relatie tussen Werkdruk, Pesten op het Werk, Gezondheidsklachten en Verzuim The Relationship between Work Pressure, Mobbing at Work, Health Complaints and Absenteeism Agnes van der Schuur Eerste begeleider:

Nadere informatie

Meetkunde en Lineaire Algebra

Meetkunde en Lineaire Algebra Hoofdstuk 1 Meetkunde en Lineaire Algebra Vraag 1.1 De samenstelling van rotaties in het vlak is commutatief. Vraag 1.2 De samenstelling van de orthogonale spiegelingen t.o.v. twee gegeven vlakken in de

Nadere informatie

University of Groningen

University of Groningen University of Groningen De ontwikkeling van prikkelverwerking bij mensen met een Autisme Spectrum Stoornis en de invloed van hulp en begeleiding gedurende het leven. Fortuin, Marret; Landsman-Dijkstra,

Nadere informatie

EM7680 Firmware Update by OTA

EM7680 Firmware Update by OTA EM7680 Firmware Update by OTA 2 NEDERLANDS/ENGLISH EM7680 Firmware update by OTA Table of contents 1.0 (NL) Introductie... 3 2.0 (NL) Firmware installeren... 3 3.0 (NL) Release notes:... 3 4.0 (NL) Overige

Nadere informatie

Het executief en het sociaal cognitief functioneren bij licht verstandelijk. gehandicapte jeugdigen. Samenhang met emotionele- en gedragsproblemen

Het executief en het sociaal cognitief functioneren bij licht verstandelijk. gehandicapte jeugdigen. Samenhang met emotionele- en gedragsproblemen Het executief en het sociaal cognitief functioneren bij licht verstandelijk gehandicapte jeugdigen. Samenhang met emotionele- en gedragsproblemen Executive and social cognitive functioning of mentally

Nadere informatie

Handleiding Digipass DP310

Handleiding Digipass DP310 Handleiding Digipass DP310 Deze handleiding geeft u uitleg over het activeren en gebruik maken van uw Digipass. Toetsen van de Digipass OK: voor het aan- of uitschakelen van het apparaat of om een handeling

Nadere informatie

Ae Table 1: Aircraft data. In horizontal steady flight, the equations of motion are L = W and T = D.

Ae Table 1: Aircraft data. In horizontal steady flight, the equations of motion are L = W and T = D. English Question 1 Flight mechanics (3 points) A subsonic jet aircraft is flying at sea level in the International Standard Atmosphere ( = 1.5 kg/m 3 ). It is assumed that thrust is independent of the

Nadere informatie

Cambridge International Examinations Cambridge International General Certificate of Secondary Education

Cambridge International Examinations Cambridge International General Certificate of Secondary Education Cambridge International Examinations Cambridge International General Certificate of Secondary Education DUTCH 0515/04 Paper 4 Writing For Examination from 2015 SPECIMEN PAPER Candidates answer on the Question

Nadere informatie

Handleiding registreren in de portal

Handleiding registreren in de portal Handleiding registreren in de portal How to register in the portal Handleiding registreren in de portal How to register in the portal Ga naar 1 http://printen.ricoh.nl/mureaders Go to http://printen.ricoh.nl/mureaders

Nadere informatie

Academisch schrijven Inleiding

Academisch schrijven Inleiding - In this essay/paper/thesis I shall examine/investigate/evaluate/analyze Algemene inleiding van het werkstuk In this essay/paper/thesis I shall examine/investigate/evaluate/analyze To answer this question,

Nadere informatie

Ik kom er soms tijdens de les achter dat ik mijn schoolspullen niet bij mij heb of niet compleet

Ik kom er soms tijdens de les achter dat ik mijn schoolspullen niet bij mij heb of niet compleet 1 2 3 4 MATERIAL PREPARING LESSON ATTITUDE TOWARD WORK Ik kom er vaak tijdens de les achter dat ik mijn schoolspullen niet bij mij heb Ik kom er soms tijdens de les achter dat ik mijn schoolspullen niet

Nadere informatie

Value based healthcare door een quality improvement bril

Value based healthcare door een quality improvement bril Rotterdam, 7 december 2017 Value based healthcare door een quality improvement bril Ralph So, intensivist en medisch manager Kwaliteit, Veiligheid & Innovatie 16.35-17.00 uur Everybody in healthcare really

Nadere informatie

3e Mirror meeting pren April :00 Session T, NVvA Symposium

3e Mirror meeting pren April :00 Session T, NVvA Symposium 3e Mirror meeting pren 689 13 April 2017 14:00 Session T, NVvA Symposium steps since April 2016 The enquiry (June to August 2016) performed by the national bodies. Resulting in 550 comments. Three/Four

Nadere informatie

Handleiding beheer lijst.hva.nl. See page 11 for Instruction in English

Handleiding beheer lijst.hva.nl. See page 11 for Instruction in English Handleiding beheer lijst.hva.nl See page 11 for Instruction in English Maillijsten voor medewerkers van de Hogeschool van Amsterdam Iedereen met een HvA-ID kan maillijsten aanmaken bij lijst.hva.nl. Het

Nadere informatie

UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS International General Certificate of Secondary Education

UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS International General Certificate of Secondary Education UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS International General Certificate of Secondary Education *0535502859* DUTCH 0515/03 Paper 3 Speaking Role Play Card One 1 March 30 April 2010 No Additional

Nadere informatie

Verloop bij de Politie: de Rol van Procedurele en Interactionele Rechtvaardigheid en Commitment

Verloop bij de Politie: de Rol van Procedurele en Interactionele Rechtvaardigheid en Commitment Verloop bij de Politie: de Rol van Procedurele en Interactionele Rechtvaardigheid en Commitment Turnover at the Police: the Role of Procedural and Interactional Justice and Commitment Inge E. F. Snyders

Nadere informatie

BathySurvey. A Trimble Access hydrographic survey module

BathySurvey. A Trimble Access hydrographic survey module BathySurvey A Trimble Access hydrographic survey module Contents 1. Introduction... 3 2. Installation... 4 3. Main Screen... 5 4. Device... 6 5. Jobs... 7 6. Settings Odom Echotrac... 8 7. Settings Ohmex

Nadere informatie

EM7680 Firmware Auto-Update for Kodi 17.2

EM7680 Firmware Auto-Update for Kodi 17.2 EM7680 Firmware Auto-Update for Kodi 17.2 2 NEDERLANDS/ENGLISH EM7680 Firmware Auto-update for Kodi 17.2 Table of contents 1.0 (NL) Introductie... 3 2.0 (NL) Firmware installeren... 3 3.0 (NL) Opmerking...

Nadere informatie

UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS International General Certificate of Secondary Education

UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS International General Certificate of Secondary Education UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS International General Certificate of Secondary Education *7261263430* DUTCH 0515/03 Paper 3 Speaking Role Play Card One 1 March 30 April 2011 No Additional

Nadere informatie

Cambridge International Examinations Cambridge International General Certificate of Secondary Education

Cambridge International Examinations Cambridge International General Certificate of Secondary Education Cambridge International Examinations Cambridge International General Certificate of Secondary Education *4667995398* DUTCH 0515/04 Paper 4 Writing May/June 2016 1 hour Candidates answer on the Question

Nadere informatie