Transport Engineering and Logistics Report
Transcription
Transport Engineering and Logistics Report
FACULTY MECHANICAL, MARITIME AND MATERIALS ENGINEERING Department Marine and Transport Technology Mekelweg 2 2628 CD Delft The Netherlands Phone +31 (0)15-2782889 Fax +31 (0)15-2781397 www.mtt.tudelft.nl Specialization: Transport Engineering and Logistics Report Number: 2012.TEL.7687 Title: Development of a simulation-based tool for designing AGV-systems for hospital logistics Author: K. Davina Title (in Dutch): Ontwikkeling van een simulatie gebaseerd hulpmiddel voor het ontwerp van AGV systemen voor ziekenhuis logistiek Assignment: Master Thesis Confidential: Yes (until sept. 2012) Initiator (university): Prof. dr. ir. Gabriel Lodewijks Initiator (company): Ir. Jochem Wit (Deerns Raadgevende Ingenieurs B.V.) Supervisor: Ir. M.B. Duinkerken Date: June 13, 2012 FACULTY MECHANICAL, MARITIME AND MATERIALS ENGINEERING Department Marine and Transport Technology Mekelweg 2 2628 CD Delft The Netherlands Phone +31 (0)15-2782889 Fax +31 (0)15-2781397 www.mtt.tudelft.nl Student: K. Davina Assignment type: Thesis Supervisor (TUD): M.B. Duinkerken Creditpoints: 36 ECTS Supervisor (Company): J. Wit Specialization: TEL Report Number: 2012.TEL.7687 Confidential: Yes (until 2014) Subject: Development of a simulation-based tool for designing AGV-systems for hospital logistics Most hospitals have a large internal transport system that is used for f.i. meals, linen, mail, waste etcetera. The use of Automated Guided Vehicles (AGVs) for this transport has been subject of study for several years. Deerns raadgevende ingenieurs bv. feels the need for a methodology that supports the design of such an AGVsystem. Your assignment is to develop a simulation-based tool that would enable the comparison of AGV systems based on number and characteristics of vehicles, lay-out and control rules. A generic model must allow the user to test different configurations and control strategies. Definition of appropriate performance indicators is required. More detailed information on the specific background of this assignment and the required content of the work can be found in appendix B. Studying relevant literature, developing and implementing a simulation model, verification and validation of the model, experimenting with different scenario’s, presenting solid conclusions and recommendations and reporting the research work are all part of this assignment. The report should comply with the guidelines of the section. Details can be found on the website. The professor, Prof. dr. ir. G. Lodewijks Preface This report is the concluding work of my studies in Transport Engineering and Logistics at the TU Delft. It is the outcome of a Master of Science thesis, which concludes the two year master curriculum. The research subject of this thesis was formulated by ir. Jochem Wit of Deerns Consulting Engineers, which can be found in appendix B, and was assigned to me in August of 2010. After a rough start in January 2011 the project rapidly took shape but took a standstill July. Followed by three months of health issues I was able to pick up the project again in the end of October and a couple of months later the project was finally finished. The result is here in front of you as the keystone of my graduation. In reaching this goal I would like to first and foremost thank my parents for supporting me during my studies at the TU Delft. Second, I would like to thank all colleagues at Deerns for the opportunity and support during my graduation project, especially Jochem Wit for his supervision and continuous dedication towards my work. Third, I would like to thank my TU Delft supervisor, Mark Duinkerken, for his time and effort. Finally, I would like to thank all my friends and family for their support during my study time. I look towards the future with a strong believe that my studies in Delft will help me in building a good career and a fulfilling life, for which I will be ever grateful towards the TU Delft and all other people I have met whilst studying there. Koen Davina i An AGVS design tool ii K. Davina 2012.TEL.7687 Summary One of the expenses of a hospital that does not provide added value are its logistics costs. Given the development in AGV systems the last couple of years, implementing this type of system to pick up a part of the logistics demand can result in savings. At Deerns Consulting Engineers logistics studies are performed for customers in this hospital industry. To be able to design and assess such an AGV system, the need arose to develop a tool making this possible. The goal of this research is to develop a tool based on discrete event simulation that aids in the design and assessment of designs. In this design different control strategies must be available to the user. To ensure a good methodology for assessing such systems, key performance indicators are required. Since this type of system is specifically for hospitals some elements need to be introduced that are different from those present in existing industrial applications of AGVs. In this study battery management and elevators are the main added elements to be studied. Adding these elements rises the following questions: does adding these elements require additional or adapted control strategies? Does implementing these elements influence the simulation outcomes? Next to the questions belonging to these elements other questions need to be answered: which key performance indicators are important and how important are these towards the final design? Which control strategies are needed to cope with the logistics flows in a hospital? These questions were used to reach the goal of this research. In answering these questions the following steps are performed: first a conceptual model of the hospital logistics environment is created. This conceptual model provides insight in the different elements required and the outputs collected from the system. These outputs are combined into three key performance indicators: the payback time of the system in relation to its technical iii An AGVS design tool lifetime, the performance of the system with respect to its minimum required performance and a performance indicator displaying the traffic congestion within the system, indirectly displaying extension possibilities of the system as well as how well the system handles peaks. In this conceptual model the actual control is not yet specified. To gain insight in the different methods of AGV system control, the general methods are elaborated upon. With this knowledge the conceptual model is detailed into a model ready for programming. In analyzing the logistics system, the distribution of logistics tasks during the day, having multiple peaks and low periods, calls for a different methodology with respect to dispatching. Combining a dispatching method suited for busy periods with one suited for slow periods seems logical when looking at this type of system. Next to that implementation of the elevator and the battery as an element in the simulation were done. After this, verification and validation tests are performed to check the correctness of the different models. Finally, a test case was used to demonstrate the usefulness of the tool in the design of hospital AGV system. The programmed tool was validated and verified and behaves as expected. It provides the user with the ability to test a range of designs with different control strategies. After analysis the user is able to pick the most suitable option from these tested designs. Implementing the elevators is important to take average elevator times, as was used before, out of the design. Implementing these elevators enables analyzing the stochastic effect of this element on the design. For implementing the elevator some routing and dispatching algorithms need to be adapted. Next to this a claim system is implemented to avoid deadlocks. Special algorithms made specifically for usage of elevators are not necessary. Researching the effect of different elevator designs on the AGV system also needed to be done in the test case performed. Incorporating batteries in the design proved important. Especially battery capacity can have a great influence on the simulation outcomes. In a case where on average the AGV would have enough time to load the capacity was varied. In simulations average time to pick up a job decreased 9-fold, making battery management an important addition to the simulation. In the test case performed, choosing a larger battery capacity meant meeting the minimum service level, without having to use more vehicles. iv K. Davina 2012.TEL.7687 An AGVS design tool Implementing more than the standard dispatching algorithms as well as combining dispatching algorithms can give better results. Compared to a first in first out system, standard algorithms improve job pickup times by as much as 10% and combining these algorithms improves it by 15%. Combinations made on the basis of the traffic pressure are thus desirable for this type of application. If alternate routing algorithms are used another 7% (in the case of using an expected travel time algorithm instead of Dijkstra’s algorithm) can be won proving implementation of different control strategies is a valuable addition. This is not possible for every type of layout, as was demonstrated in the test case. K. Davina 2012.TEL.7687 v An AGVS design tool vi K. Davina 2012.TEL.7687 Samenvatting Een van de ziekenhuis uitgaven die geen toegevoegde waarde creëert zijn de logistieke kosten. Gegeven de vooruitgang in AGV systemen in de laatste jaren kan de implementatie van een dergelijk systeem, om een deel van de logistiek over te nemen, resulteren in een kosten besparing. Bij Deerns Raadgevende Ingenieurs worden logistieke studies gedaan voor klanten in deze ziekenhuis industrie. Om ontwerp en beoordeling van een ontwerp van een AGV systeem mogelijk te maken ontstond de noodzaak om een tool te ontwikkelen voor dit doel. Het doel van dit onderzoek is het ontwikkelen van een tool gebaseerd op discrete event simulatie om te ondersteunen bij het ontwerp en het beoordelen van dat ontwerp. Hierbij moet de gebruiker verschillende besturingsstrategieën aangeboden krijgen. Om een goede methodologie voor het beoordelen van zo’n systeem te creëren, zijn key performance indicators noodzakelijk. Daarnaast zijn, aangezien het systeem speciaal voor ziekenhuizen is, elementen nodig die verschillen van de elementen in huidige industriële toepassingen van AGV systemen. In deze studie zullen batterij management en liften de belangrijkste toegevoegde elementen zijn om te bestuderen. Het toevoegen van deze elementen roept de volgende vragen op: zijn additionele of gewijzigde besturingsstrategieën nodig bij het toevoegen van deze elementen? Veranderen de uitkomsten van de simulatie door het toevoegen van deze elementen? Daarnaast worden de volgende vragen beantwoord: welke key performance indicators zijn belangrijk en hoe belangrijk zijn ze met betrekking tot het uiteindelijke ontwerp? Welke besturingsstrategieën zijn nodig voor ziekenhuis logistiek. Deze vragen zijn als leidraad gebruikt in het bereiken van het onderzoeksdoel. Om deze vragen te kunnen beantwoorden zijn de volgende stappen gezet: eerst is er een conceptueel model gemaakt van de logistieke omgeving van ziekenhuizen. Dit model geeft inzicht vii An AGVS design tool in welke elementen er in het AGV model moeten zitten en welke uitkomsten verzameld kunnen worden. Deze uitkomsten worden gecombineerd in drie key performance indicators: de terugverdientijd ten opzichte van de technische levensduur, het behaalde serviceniveau ten opzichte van het minimum vereiste serviceniveau en een performance indicator over de verkeersdrukte in het systeem, waarmee iets gezegd kan worden over de uitbreidingsmogelijkheden van het systeem alsmede de verwachtte problemen tijdens piekvorming. In dit conceptuele model zijn de daadwerkelijke besturingsstrategieën nog niet gespecificeerd. Om inzicht te krijgen in de verschillende besturingsmethodieken is dit deel verder uitgediept. Met de opgedane kennis is daarna een gedetailleerd model gecreëerd dat klaar is om geprogrammeerd te worden. Tijdens het analyseren van het logistieke systeem werd duidelijk dat de verdeling van opdrachten gedurende een dag, met meerdere pieken en dalen, een verschillende besturingsmethodiek vereiste. Het samenvoegen van een toewijzingsalgoritme voor drukke perioden met een algoritme voor rustige perioden lijkt logisch met betrekking tot dit soort systeem. Naast het implementeren van deze algoritmes zijn de lift en batterij elementen toegevoegd aan de simulatie. Daarnaast zijn verificatie en validatie tests uitgevoerd om de correctheid van het gemaakte model te waarborgen. Ten slotte is er een test casus gebruikt om de bruikbaarheid van de tool aan te tonen bij het ontwerpen van een ziekenhuis AGV systeem. De gemaakte tool is geverifieerd en gevalideerd en gedraagt zich zoals verwacht. De tool geeft de gebruiker de mogelijkheid een verscheidenheid aan ontwerpen te testen met verschillende besturingsstrategieën. Na analyse kan de gebruiker de meest geschikte optie kiezen uit deze geteste ontwerpen. Het implementeren van het lift element is belangrijk om gemiddelde waarden, zoals eerder gebruikt, te elimineren uit het ontwerp. Het toevoegen van liften geeft de mogelijkheid het stochastische effect van dit element op het ontwerp te onderzoeken. Voor het implementeren van liften moeten sommige besturingsalgoritmes aangepast worden. Daarnaast is er een claim systeem geı̈mplementeerd om patstellingen tussen AGVs te voorkomen. Algoritmes speciaal voor de liften zijn niet nodig. Verschillende liftstrategieën zijn meegenomen in de test casus. Het toevoegen van het batterij element is belangrijk gebleken. Voornamelijk de capaciteit van de batterij kan een grote invloed hebben op de uitkomsten van een simulatie. In een casus waar viii K. Davina 2012.TEL.7687 An AGVS design tool de AGV gebaseerd op gemiddelden genoeg tijd had om te laden werd de capaciteit gevarieerd. Simulaties wezen uit dat de ophaaltijd van een opdracht een factor negen konden verschillen, wat nogmaals het belang van batterij management in dit soort simulaties benadrukt. In de test casus leverde het kiezen van een andere batterij capaciteit een systeem dat wel aan het gevraagde serviceniveau kon voldoen, zonder extra AGVs in te zetten. Het implementeren van andere algoritmes dan het meest standaard algoritme en het combineren van algoritmes geeft verbetering in de resultaten. In vergelijking met een algoritme op basis van aankomsttijd, zorgen andere algoritmes voor een verbetering van de ophaaltijd tot 10%, waarbij een combinatie van algoritmes een verbetering tot 15% op kan leveren. Het combineren van algoritmes die afhangen van de drukte is dus een goede keuze voor deze toepassing van AGVs. Als het routeringsalgoritme aangepast wordt, kan er tot 7% bespaard worden op de ophaaltijd bij het gebruik van een algoritme gebaseerd op verwachtte drukte in plaats van een algoritme gebaseerd op de kortste route. Dit toont aan de implementatie van andere routeringsalgoritmes een waardevolle toevoeging is. Dit is echter niet mogelijk bij elke ziekenhuisindeling, zoals ook te zien was in de test casus. K. Davina 2012.TEL.7687 ix An AGVS design tool x K. Davina 2012.TEL.7687 Glossary Buffer The number of positions within a dock, multiple jobs can be positioned here, but only the first can be reached by an AGV. xi Charging Station The place where an AGV can replenish its batteries. xi Distributed traffic pressure algorithm Divides the number of AGVs passing per hour on waypoints over the waypoints according a formula. xi Dock A lane within a station from which an AGV can pickup goods or where goods can be dropped off. It has a number of Buffer positions. xi Expected travel time algorithm Chooses a route to travel based on historical data how long it takes to travel across waypoints. xi First available vehicle algorithm A WIDA that picks the vehicle that first became available to transport a job. xi first come first serve algorithm A VIDA that picks the job that first requested an AGV as its job. xi Highest remaining battery charge A WIDA that chooses the AGV with the highest remaining battery charge to do the job. xi Loading and Unloading Station The place where jobs originate and end. A station has multiple loading and unloading Docks. xi Lowest remaining battery charge A WIDA that chooses the AGV with the lowest remaining battery charge to do the job. xi xi An AGVS design tool Modified first come first serve algorithm A VIDA makes the vehicle first look for a job at the location it became available, if no job is available it performs as FCFS. xi Nearest parking algorithm Algorithm positions the AGV at the nearest parking or charging position. xi Nearest vehicle algorithm A WIDA that picks the vehicle nearest to its location for performing a job. xi one-way road a road that is traversable in one direction. xi, 27 Parking Space The place where an AGV can park and wait while idle. xi small road a road that is traversable in both directions, but with a maximum capacity of one AGV. xi, 27, 59 System Controller The system element that oversees the system, distributes jobs, holds the layout and registers performance. xi System performance indicator A number that combines several KPIs to measure the performance of a design in a single number. xi Vehicle initiated dispatching algorithm A dispatching algorithm were the vehicle makes a choice on what job to pick-up without consulting other AGVs for optimization. xi Work-center initiated dispatching algorithm A dispatching algorithm were the workstations calls AGVs to its location without consulting other workstations for optimization. xi xii K. Davina 2012.TEL.7687 Acronyms AGV Automated Guided Vehicle. xi, 1 AGVS Automated Guided Vehicle System. xi, 1, 4, 19, 133, 138, 139 CS Charging Station. xi, 27, Glossary: Charging Station DEST Discrete Event Simulation Tool. xi, 2, 8, 19, 55, 107, 131, 133, 135, 136, 138, 139 DTP distributed traffic pressure algorithm. xi, 108, Glossary: Distributed traffic pressure algorithm EL Elevator. xi, 25 ETT expected travel time algorithm. xi, 116, Glossary: Expected travel time algorithm FAV first available vehicle algorithm. xi, 82–84, Glossary: First available vehicle algorithm FCFS first come first serve algorithm. xi, 82–84, Glossary: first come first serve algorithm HRBC highest remaining battery charge. xi, 84, Glossary: Highest remaining battery charge KPI key performance indicator. xi, 87, 125, 128, 134, 135 LRBC lowest remaining battery charge. xi, Glossary: Lowest remaining battery charge LS Loading Station. xi, 25 LUS Loading and Unloading Station. xi, Glossary: Loading and Unloading Station LUV least utilized vehicle algorithm. xi xiii An AGVS design tool MOD-FCFS modified first come first serve algorithm. xi, 83, 84, Glossary: Modified first come first serve algorithm MROQS minimum remaining outgoing queue size. xi, 82 NPA nearest parking algorithm. xi, 86, Glossary: Nearest parking algorithm NV nearest vehicle algorithm. xi, 82–84, 127, Glossary: Nearest vehicle algorithm PS Parking Space. xi, 27, Glossary: Parking Space SC System Controller. xi, 25, Glossary: System Controller SPI system performance indicator. xi, 128–131, 134, 135, Glossary: System performance indicator US Unloading Station. xi, 25 V&V verification and validation. xi, 89 VIDA vehicle initiated dispatching algorithm. xi, 43, 80, 82, 83, 136, Glossary: Vehicle initiated dispatching algorithm WIDA Work-center initiated dispatching algorithm. xi, 43, 80, 82, 136, Glossary: Work-center initiated dispatching algorithm xiv K. Davina 2012.TEL.7687 Contents Preface i Summary iii Summary (Dutch) vii Glossary xi Acronyms xiii List of Figures xix List of Tables xxii List of Listings xxiv 1 Introduction 1 2 System analysis 5 2.1 Description of the different logistic flows . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Description of the logistics process . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Methods of transport within a hospital . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3.1 Manual systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3.2 Discrete transport systems . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.3 Continuous transport systems . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3.4 Design and applicability of the various systems . . . . . . . . . . . . . . . 12 Quantitative description of a hospital logistics process . . . . . . . . . . . . . . . 12 2.4 xv An AGVS design tool 2.5 Description of manual hospital logistics system elements . . . . . . . . . . . . . . 14 2.6 System boundary, assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.6.1 Economic feasibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.6.2 Information flow into the system . . . . . . . . . . . . . . . . . . . . . . . 17 2.6.3 Interpretation of the hospital logistics timetable . . . . . . . . . . . . . . . 17 3 Conceptual model and design of the AGV system 19 3.1 AGVS elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2 Strategic versus Operational design . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3 Current AGV system design method . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.4 Choice of framework for building the DEST . . . . . . . . . . . . . . . . . . . . . 23 3.5 System modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.6 Performance Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.6.1 System performance indicator . . . . . . . . . . . . . . . . . . . . . . . . . 36 AGVS element IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.7.1 General elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.7.2 Infrastructure elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.7 4 System control and algorithm theory 4.1 4.2 43 Optimization problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.1.1 Dispatching problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.1.2 Routing and scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.1.3 Parking (and charging) problem . . . . . . . . . . . . . . . . . . . . . . . 49 Traffic control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.2.1 Traffic control around nodes . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.2.2 Traffic control on one-directional paths . . . . . . . . . . . . . . . . . . . . 50 4.2.3 Traffic control for small roads and elevators . . . . . . . . . . . . . . . . . 50 4.2.4 Traffic control for a LUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.2.5 PS and CS traffic control . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.2.6 Chains of traffic controlled elements . . . . . . . . . . . . . . . . . . . . . 52 5 Description and implementation of the model 5.1 xvi 55 Delphi/TOMAS programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K. Davina 56 2012.TEL.7687 An AGVS design tool 5.2 5.3 5.1.1 AGVS Delphi class definitions . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.1.2 Processes of the active elements . . . . . . . . . . . . . . . . . . . . . . . . 69 5.1.3 Assumptions and limitations of the programmed model . . . . . . . . . . 74 5.1.4 General procedures and functions . . . . . . . . . . . . . . . . . . . . . . . 75 Implemented Control Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.2.1 Routing algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.2.2 Dispatching Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.2.3 Parking (and charging) algorithms . . . . . . . . . . . . . . . . . . . . . . 86 Program workflow and data handling . . . . . . . . . . . . . . . . . . . . . . . . . 86 5.3.1 Data interaction and saving in the program . . . . . . . . . . . . . . . . . 87 5.3.2 Generating and interpreting program output . . . . . . . . . . . . . . . . 87 6 Verification and Validation of the model 89 6.1 Conceptual Model Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 6.2 Computerized Model Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 6.2.1 Animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 6.2.2 Comparison with mathematical models . . . . . . . . . . . . . . . . . . . 91 6.2.3 Degenerate tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 6.2.4 Extreme condition tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 6.2.5 Internal validity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 6.2.6 Parameter variability analysis . . . . . . . . . . . . . . . . . . . . . . . . . 107 6.2.7 Traces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 6.3 6.4 Operational Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 6.3.1 Face validity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 6.3.2 Parameter variability analysis . . . . . . . . . . . . . . . . . . . . . . . . . 112 6.3.3 Operational graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Data Validity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 7 Test Case 7.1 The case: Medisch Centrum Alkmaar 7.1.1 7.2 121 . . . . . . . . . . . . . . . . . . . . . . . . 121 Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Expected logistic flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 K. Davina 2012.TEL.7687 xvii An AGVS design tool 7.3 Base requirement number of AGVs . . . . . . . . . . . . . . . . . . . . . . . . . . 126 7.4 Analysis using the DEST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 7.4.1 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 7.5 Advice following from the analysis . . . . . . . . . . . . . . . . . . . . . . . . . . 130 7.6 The usefulness of the DEST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 7.6.1 The usefulness as seen by experts . . . . . . . . . . . . . . . . . . . . . . . 131 8 Conclusions and recommendations 133 Bibliography 141 A Scientific paper 147 B The Assignment by Deerns Consulting Engineers 155 C PROPER model for the AGV system 159 D Database registration types 163 E Expert validations 165 E.1 Conceptual Model Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 E.2 Operational Model Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 E.3 Expert feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 F Testcase data xviii 169 K. Davina 2012.TEL.7687 List of Figures 2.1 The hospital system with the external and internal logistic flows . . . . . . . . . 2.2 Left an overview of a typical pneumatic system, right a typical transport carrier for this system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 9 2.3 Left a typical electric track vehicle, right an application of this system in a hospital 10 2.4 Two types of AGV’s; left a bi-directional AGV, right a single direction AGV . . 11 2.5 The distribution of transports during the day in a hospital . . . . . . . . . . . . . 14 3.1 The PROPER model as described by Veeke . . . . . . . . . . . . . . . . . . . . . 24 3.2 The system as a black box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.3 The system defined using a PROPER model . . . . . . . . . . . . . . . . . . . . . 25 3.4 Further detailing of the goods flow. . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.5 Combining the goods and resources flow . . . . . . . . . . . . . . . . . . . . . . . 26 3.6 The AGV process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.7 The Loading Station process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.8 The Unloading Station process . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.9 The System Controller process and its interactions with the other processes . . . 30 3.10 Overview of performance indicators for system analysis for a transport job . . . . 33 3.11 Overview of performance indicators for AGVs . . . . . . . . . . . . . . . . . . . . 34 3.12 Overview of performance indicators for LUSs . . . . . . . . . . . . . . . . . . . . 35 4.1 Multiple AGVs on each others path creating a deadlock situation . . . . . . . . . 52 4.2 An AGV reserves a path to make sure deadlocks will not occur . . . . . . . . . . 53 5.1 Process of determining the elevator waiting time . . . . . . . . . . . . . . . . . . 67 xix An AGVS design tool 5.2 Two ways in which roads and crossing can be modeled . . . . . . . . . . . . . . . 75 5.3 Limit the use of one way arcs - example . . . . . . . . . . . . . . . . . . . . . . . 76 5.4 Correction ratios for the distributed traffic pressure algorithm for different values of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 6.1 Verification and Validation processes in modeling . . . . . . . . . . . . . . . . . . 90 6.2 Simple model used for validation by comparison with mathematical models . . . 91 6.3 The average waiting time as a result of the comparison with mathematical models simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4 93 The average queue length as a result of the comparison with mathematical models simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 6.5 Simple model used for degenerate validation test . . . . . . . . . . . . . . . . . . 95 6.6 Simulation results for degenerate testing . . . . . . . . . . . . . . . . . . . . . . . 96 6.7 First model used for extreme condition tests . . . . . . . . . . . . . . . . . . . . . 97 6.8 Second model used for extreme condition tests . . . . . . . . . . . . . . . . . . . 98 6.9 Third model used for extreme condition tests . . . . . . . . . . . . . . . . . . . . 99 6.10 Simulation results for extreme condition tests case 2: AGV drive time and the number of jobs done . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 6.11 Simulation results for extreme condition tests case 2: Elevator calling time and the job enroute time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 6.12 Simulation results for extreme conditions test case 3 . . . . . . . . . . . . . . . . 103 6.13 First model for internal validity tests . . . . . . . . . . . . . . . . . . . . . . . . . 104 6.14 Second model for internal validity tests . . . . . . . . . . . . . . . . . . . . . . . . 105 6.15 Model for doing parameter variability analysis by changing routing algorithm . . 108 6.16 Average waiting time for pickup for case 2 of parameter variability analysis . . . 110 6.17 Number of jobs done after 24 hours for case 2 of parameter variability analysis . 111 6.18 Model used for operational parameter variability analysis . . . . . . . . . . . . . 113 6.19 Chart displaying the average number of AGVs on road 2 . . . . . . . . . . . . . . 117 6.20 The average time a job has to wait to be picked up during the simulation run . . 118 6.21 A small part of the simulated day displaying the number of jobs created and delivered for two different dispatching /routing algorithms . . . . . . . . . . . . . 119 xx K. Davina 2012.TEL.7687 An AGVS design tool 7.1 Schematic top view of the to-be-built Medical Center of Alkmaar . . . . . . . . . 122 7.2 Overview of the hospital layout for case 1 . . . . . . . . . . . . . . . . . . . . . . 123 7.3 Overview of the hospital layout for case 2 . . . . . . . . . . . . . . . . . . . . . . 124 7.4 The number of unassigned jobs in the system and the number of charging AGVs for scenario 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 C.1 Total proper model of the conceptual model . . . . . . . . . . . . . . . . . . . . . 161 K. Davina 2012.TEL.7687 xxi List of Tables 2.1 Overview of different pneumatic tube systems and their characteristics . . . . . . 9 2.2 Electric track vehicle characteristics . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3 AGV characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4 Method of automation choice for all hospital transport flows . . . . . . . . . . . . 12 2.5 Quantitative description of the hospital logistics process: general numbers . . . . 13 2.6 Quantitative description of the hospital logistics process: flows and distances . . 13 3.1 Bandwidth, scaling, importance ranking, fine-tuning and total weights of the three KPIs for the system performance indicator . . . . . . . . . . . . . . . . . . . . . . 38 4.1 Overview of standard vehicle initiated dispatching algorithms . . . . . . . . . . . 44 4.2 Overview of standard work center initiated dispatching algorithms . . . . . . . . 45 4.3 Overview of other well performing dispatching algorithms . . . . . . . . . . . . . 47 6.1 Outcomes for extreme condition tests case 3 . . . . . . . . . . . . . . . . . . . . . 102 6.2 Internal validity case 1: enroute and driving times . . . . . . . . . . . . . . . . . 106 6.3 Internal validity case 2: jobs done, elevator waiting times and batteries empty . . 107 6.4 Parameter variability analysis case 1: enroute times for different elevator and AGV speeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 6.5 Parameter variability analysis case 3: average number of vehicles on each road per direction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 6.6 AGV parameters for model used for operational parameter variability analysis . . 114 6.7 Parameter operational variability analysis case1: impact of changing the dispatching algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 xxii An AGVS design tool 7.1 Assumptions for the elevators for the test case 7.2 The number of carts to be transported per day for the test case . . . . . . . . . . 125 7.3 The different scenarios simulated for the testcase . . . . . . . . . . . . . . . . . . 127 7.4 The SPI and KPIs for the different simulation scenarios for the testcase . . . . . 128 D.1 Job values registration types . . . . . . . . . . . . . . . . . . . 123 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 D.2 Queue data registration types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 D.3 Claim data registration types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 D.4 AGV values registration types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 F.1 Assumptions done for input values for the performed test case . . . . . . . . . . . 170 F.2 All transport flows used for the test case . . . . . . . . . . . . . . . . . . . . . . . 171 F.2 All transport flows used for the test case . . . . . . . . . . . . . . . . . . . . . . . 172 F.2 All transport flows used for the test case . . . . . . . . . . . . . . . . . . . . . . . 173 F.2 All transport flows used for the test case . . . . . . . . . . . . . . . . . . . . . . . 174 F.2 All transport flows used for the test case . . . . . . . . . . . . . . . . . . . . . . . 175 K. Davina 2012.TEL.7687 xxiii List of Listings 5.1 Class definition of TSimulationElement . . . . . . . . . . . . . . . . . . . . . . . 56 5.2 Class definition for the TWaypoint element . . . . . . . . . . . . . . . . . . . . . 57 5.3 Class definition of TFlag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.4 Class definition for the TJob element . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.5 Class definition for the TAGV element . . . . . . . . . . . . . . . . . . . . . . . . 61 5.6 Class definition for the TNode element . . . . . . . . . . . . . . . . . . . . . . . . 64 5.7 Class definition for the TArc element . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.8 Class definition for the TParking element . . . . . . . . . . . . . . . . . . . . . . 65 5.9 Class definition for the TCharging element . . . . . . . . . . . . . . . . . . . . . . 65 5.10 Class definition of the TElevator element . . . . . . . . . . . . . . . . . . . . . . 66 5.11 Class definition of the TStation element (implementation of a dock) . . . . . . . 68 5.12 Class definition of the TBigStation element (implementation of a station) . . . . 69 5.13 The AGV process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 5.14 The LUS job deliver process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.15 The LUS job accept process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.16 The Job Generator process for creating jobs . . . . . . . . . . . . . . . . . . . . . 74 5.17 The Job Generator process for introducing jobs into the AGV system . . . . . . 74 5.18 The job dispatcher process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 5.19 Dijkstra’s algorithm in pseudo-code . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.20 The A* algorithm as implemented in pseudo-code . . . . . . . . . . . . . . . . . . 79 5.21 The FCFS/FAV dispatching algorithm in pseudo-code . . . . . . . . . . . . . . . 83 5.22 The MOD-FCFS/FAV dispatching algorithm in pseudo-code . . . . . . . . . . . . 83 5.23 The MOD-FCFS/NV dispatching algorithm in pseudo-code . . . . . . . . . . . . 84 xxiv An AGVS design tool 5.24 The MOD-FCFS/HRBC dispatching algorithm in pseudo-code . . . . . . . . . . 84 5.25 The STT/NV dispatching algorithm in pseudo-code . . . . . . . . . . . . . . . . 85 K. Davina 2012.TEL.7687 xxv An AGVS design tool xxvi K. Davina 2012.TEL.7687 Chapter 1 Introduction Hospitals in the Netherlands have been struggling with budget cuts that started a couple of years ago[ANP11, DeT10], which requires them to search for new savings opportunities. One of the hospital expenses that is required for operation, but does not produce any added value, is its logistics expenses. For a big hospital (500k hospital visits or more) the number of movements performed by logistics personnel with goods to transport are around 2000 per day on a busy day [Dav11]. This process requires personnel and brings subsequent (non value adding) costs. Previous research and projects performed by Deerns Consulting Engineers showed saving opportunities in this part of hospital expenses, from which this research was initiated. One possible way of cutting costs is to replace the logistics personnel by an automated system. Different automated systems are used for logistics purposes, which all have their specific advantages in different applications. The advances made in Automated Guided Vehicle (AGV) technology in the last couple of years creates opportunities for applying such an AGV System (AGVS) in a hospital [Ozk09]. The payback time of this type of system is reported to be as low as 2.64 years [Swi05], but depends heavily on the hospital it is applied to and not all logistic flows in hospitals can be automated using an AGVS [Dav11]. The applicability of such a specific system on hospital logistics is researched in chapter 2. In designing and evaluating the feasibility of such a system the need arose at Deerns Consulting Engineers to develop a tool/methodology for modeling an AGVS independent of the (future) system supplier [Wit11] to examine the behavior and efficiency, and assist in its sizing 1 An AGVS design tool and cost estimates. Due to the combination of stochastic and planned transports in hospitals, together with the stochastic behavior of personnel and patients, exact methods are impractical and discrete event simulation is necessary [JJS+ 07]. The objective of this type of study is to minimize the size of the AGV fleet, while satisfying certain service levels for the system (for instance, delivering all jobs within the given time frame). This is important because the size of the AGV fleet is a good indicator of the overall system costs. The minimum bound of the fleet size can be approached analytically, but the final fleet size has to be determined using simulation [GHS98], in our case, using a Discrete Event Simulation Tool (DEST). The goal of this research is: Develop a DEST that would enable a by-user comparison of automated guided vehicle systems for hospital logistics purposes on different configurations and control strategies to substantiate decisions during the design process. To that end, definition of appropriate performance indicators is required. From this goal the main research questions can be defined: 1. Is it possible to develop a discrete event simulation tool to simulate the logistics environment within a hospital with respect to transports to be carried out by AGVs? 2. Which performance indicators are required to assess the feasibility and performance of such a system? 3. How important are these performance indicators towards the assessment of the total designed AGV system? 4. Which control strategies are required to test such a system? 5. Which control strategies are required to use such a tool in the design process? 6. Which elements need to be included in the DEST to cover this specific application? The necessity for the ability to compare different configurations stems from two things. First, the diversity in systems sold by manufacturers; different manufacturers will provide AGVs with, for instance, different speeds and battery capacities. Second, the possibility for strategic design; how many AGVs are required, where to put charging stations, how large a buffer should be at a 2 K. Davina 2012.TEL.7687 An AGVS design tool drop-off point, where to create parking spaces, etc. Next to the strategic design, operational design must be done: different control strategies should be comparable. In AGVSs 3 optimization problems related to control of AGVs can be identified: the dispatching problem, the routing problem (and as an extension to this problem, the scheduling problem) and the parking problem [Vis06]. The dispatching problem is concerned with which AGV to assign to which transport. The routing problem is concerned with the route the AGV should travel to get from one point to another. The scheduling problem is an extension to the routing problem in that it is concerned with the precise times the AGVs should drive on a certain part of its route to avoid congestion and deadlocks. The parking problem is concerned with where to park an AGV when there are no more transports available. The way scheduling is used in current (industrial) AGV systems is however not applicable in hospital based systems. For scheduling one needs to know where an AGV is expected at which moment in time. Because of the presence of elevators in a hospital that are shared with patients, visitors and staff, the position of AGVs cannot be calculated beforehand. In literature a large number of algorithms are described which were developed to solve the 3 optimization problems. These algorithms provide solutions for (mainly) fictitious cases in which equipment failures, temporarily blocked paths, battery management and transportation job priority are (almost) always ignored [Vis06, LAdK06]. Because of this, the algorithms provided in literature perform very good, but lack practical application for hospital purposes. To test the applicability of these algorithms on a more realistic system, battery management and elevators are included in the simulation. The influence of these inclusions raise the following additional research questions: 7. Does implementing battery management influence the simulation outcomes? 8. Are additional control strategies required in order to implement battery management? 9. Does implementing elevators influence the simulation outcomes? 10. Are additional control strategies required in order to implement elevators? Finding the answers to these research questions will give the correct framework for reaching the specified research goal and proving the reliability and usability of the tool to be created. K. Davina 2012.TEL.7687 3 An AGVS design tool This report is built-up in the following way: first, the hospital logistics process is described in chapter 2. From this analysis a conceptual model is created for the AGVS in chapter 3. Before this conceptual model can be worked out into a computerized model, the theory behind the control algoritms required for an AGVS is elaborated upon in chapter 4. After the theory and the conceptual model are known, the description and implementation of the final model is described in chapter 5. To make sure this model is implemented correctly and the choices made for different algorithms can be substantiated, verification and validation tests are performed in chapter 6. In chapter 7 a test case is included to show the working of the created tool. In the last chapter, chapter 8, a reflection is made on the research questions stated: it provides the conclusions and recommendations of this study. 4 K. Davina 2012.TEL.7687 Chapter 2 System analysis As a first step in this research the hospital logistics process as it is present in hospitals is analyzed. This is first done by describing the different types of flows present in a hospital in section 2.1. After this, the process needed to transport these flows in section 2.2. In section 2.3 the methods of transport used to move the different items trough a hospital are described. To give an estimation of the size of the flows in a hospital and the distribution of these flows during the day, a quantitative estimation is made in section 2.4. The logistics process as it is present in most hospitals is further analyzed in section 2.5, where the specific elements needed in the process are described. In the final section, section 2.6, the boundary of the system is defined as well as the assumptions made to be able to automate this system. 2.1 Description of the different logistic flows The DEST is built for implementing an AGVS in a hospital logistics process. To ensure the DEST matches with this process the workings and characteristics of the hospital process must be analyzed. A lot of these characteristics can be found in [Dav11]. The hospital logistics process can be summarized as depicted in figure 2.1. In this figure the system boundary is indicated with the red border; everything inside the boundary is the part of the logistics process that can be handled with AGVs. All green arrows indicate input and output of tangible goods, the blue arrows indicate non-tangible (information) streams. 5 An AGVS design tool The big logistic flows present in a hospital are [Dav11]: • Food, beverages and service • Linen and uniforms • Beds • Waste • Patient dossiers and mail • Specimens • Drugs and medication • Consumables and sterile goods All these flows also include return flows of empty carts, which is normally as big as the flows themselves. Next to these some smaller flows and non-automatable (by AGVs) flows are present: hazardous materials, medical equipment and people flows (patients, staff, visitors). Most of the big flows are regulated in a hospital by a schedule; for each flow, each movement is scheduled for transport for a specific time of the day. Some of the transports are done on call. All scheduled transports are summarized in tables and display the type of flow, number of carts, time of departure or latest arrival, origin and destination. This is further elaborated in section 2.5. 2.2 Description of the logistics process The different jobs that have to be transported in a hospital can be divided according to different principles; goods that are transported according to a schedule and goods that are transported on-call, goods that have a short time-limit as opposed to a longer time horizon. The easiest division for explanation of the system is to start with the scheduled versus the non-scheduled transports. An example of scheduled transport in a hospital are meals that have to be transported to the different departments every day at a set time, the logistics department knows this from schedule and has personnel on stand-by to provide this service. If meals are a little earlier or later a call is placed from the kitchen to the logistics department to make sure personnel is ready at the right moment. Next to these jobs scheduled jobs with a lesser constraint are present; waste might have to be collected every morning between 10 and 12. The logistics department has some wiggling room in this case to fit these jobs within the rest of their schedule. 6 K. Davina 2012.TEL.7687 An AGVS design tool Hospital External service providers Goods Logistics department (Logistics / Waste / Maintenance / Cleaning / Mail) Goods Clients Waste & return flows Apothecary Labs OR/ER Daycare Policlinics Kitchen Restaurant Offices People People Patients / Visitors / Staff Information streams System boundary Tangible external flows Tangible internal flows Figure 2.1: The hospital system with the external and internal logistic flows K. Davina 2012.TEL.7687 7 An AGVS design tool In parallel with these jobs are the non-scheduled jobs: departments place a call to deliver or pick-up some goods. The logistics department will fit these jobs in their schedule depending on the priority and time constraint of the job. If all personnel is busy or unable to answer the call other (nursing) personnel might do the work themselves. The transports in a hospital go from roughly four places to all departments: a logistics point, the kitchen, the apothecary and a laboratory. The logistics point is where goods from outside the hospital are received, goods are stored and return flows (dirty linen, waste, some empty carts) are collected. The kitchen dispatches the food for the patients and receives its raw materials from the logistics point. The apothecary dispatches medicines and the laboratory does analysis of, e.g., blood samples. These four points may be combined or split up into more locations, but this depends on available space, location with respect to patients, and more factors. 2.3 Methods of transport within a hospital For the transportation of goods different systems can be used in a hospital: a manual system, a discrete system or a continuous system. The manual system is described in subsection 2.3.1. The different types of discrete system available for hospitals are described in subsection 2.3.2. The types of continuous systems and the applicability of these systems for hospitals is described in subsection 2.3.3. To see which of these systems can be used for which of the flows, a comparison between these systems is made in subsection 2.3.4. Also the flows that the DEST should be able to model are presented. 2.3.1 Manual systems This is the method of transport used in hospitals that do not use automation for the distribution of goods. People push carts and containers around, which can be done in a highly flexible way; people can adapt to the situation at hand and are able to speed up when some transport requires this. Hospitals also make use of electric carts which are driven by a person to transport multiple containers at once (on average 2 containers, 3 containers is the maximum allowed length). People can also handle different transports in a different way depending on the type of cargo. Disadvantages of doing manual transport include sickness and less reliability; people might take 8 K. Davina 2012.TEL.7687 An AGVS design tool longer breaks or break with hospital policies which may result in delayed deliveries. Personnel going around the hospital also lose a lot of time socializing while doing their job, running into different people all day long. These factors combined decrease their efficiency by about 30%. Because manual work includes errors, damage is done by logistics personnel; this accumulates up to 2% on top of logistics personnel costs. 2.3.2 Discrete transport systems Pneumatic tube system (PTS) Pneumatic tube systems can be used for quick transport across hospitals for low weight transports. In figure 2.2 a typical set-up of a tube system and a transport tube are shown. In table 2.1 some key characteristics for different tube systems can be found. According to the manufacturers the systems are primarily suited for transport of small items, like blood samples and dossiers ([Aer05], [Swi09a]). Figure 2.2: Left an overview of a typical pneumatic system, right a typical transport carrier for this system [Aer05] Table 2.1: Overview of different pneumatic tube systems and their characteristics Supplier Aerocom Kelly Swisslog K. Davina [Aer05] [Kel03] [Swi09a] Speed [m/s] Transport volume [dm3 ] Transport weight [kg] 6-8 7.6 7.6 20 9 5 28 na 5.5 2012.TEL.7687 9 An AGVS design tool Electric track vehicles (ETV) Electric track vehicles are small vehicles attached to a live rail that are able to transport a small bin. They are suited for transport of items with a bigger volume than those transported with a pneumatic tube system. Typical system characteristics can be found in table 2.2. An example of such a system can be found in figure 2.3. ETV systems provide more flexibility in the type of bin placed on the cart when compared to pneumatic tube systems. They can also function upside down as shown in figure 2.3, which is an advantage over AGV’s. Figure 2.3: Left a typical electric track vehicle, right an application of this system in a hospital [Swi08] Table 2.2: Electric track vehicle characteristics Electric track vehicle Speed Transport weight Transport volume [m/s] [kg] [dm3 ] 1 10 45 Automated guided vehicles (AGV) Automated guided vehicles can drive around in all walking areas as long as the floor is leveled. The AGV’s can take a large payload in comparison with the other systems. The disadvantage is the speed of the vehicles and the amount of space they take up. They also cannot be separated from people without giving up a huge area. Typical characteristics for hospital AGV’s can be found in 2.3. The volume that can be transported depends on the dimensions of the infrastructure present and not on the system itself. Pictures of two types of AGV’s can be found in figure 2.4. 10 K. Davina 2012.TEL.7687 An AGVS design tool Figure 2.4: Two types of AGV’s; left a bi-directional AGV [Swi07], right a single direction AGV [JBT] Table 2.3: AGV characteristics Supplier Egemin JBT Swisslog 2.3.3 [Ege] [JBT] [Swi09b] Speed [m/s] Transport weight [kg] 2 1.6 1.5 1500 680 450 Continuous transport systems Another possibility to move goods from one place to another is to make use of a continuous transport system, like belt conveyors or chain conveyors. In these systems the belt or chain continuously moves in a specified direction and goods can be put on the belt or chain to move in this direction. This type of transport system gives a very high throughput rate compared to discrete transport systems, but also requires a big investment. The systems also use up a lot of space or require a lot of changes to the infrastructure of the building. Looking at the diversity of the transports, especially when concerned the spread in origin and destination of the different goods, installing a continuous transport system is not a feasible idea; the transport flows from one origin to one destination are not continuous, goods go in and out at discrete intervals making this type of system capacity wise over-dimensioned for hospital purposes. K. Davina 2012.TEL.7687 11 An AGVS design tool Table 2.4: Method of automation choice for all hospital transport flows Process PTS Patients Staff Visitors Beds Food, beverages and service Linen and uniforms Waste Hazardous materials Patient dossiers and mail Specimens Drugs Consumables Medical equipment Empty carts and bins 2.3.4 ETV AGV Empty X X X X X X X X X X X X None X X X X X X X X Design and applicability of the various systems From the three types of systems described above, the manual system as used nowadays in most hospitals as well as the discrete system are the two most suited for hospital flows. This is primarily because of the discrete behavior of the flows [Dav11]. To get a better overview of which discrete transport system is best used for which hospital flow a summary is made in table 2.4. From the table one can see all automatable flows can be handled using a combination of a pneumatic tube system and an AGV system. Software to aid in the design of a PTS was created by Freek Muurling [Muu08]. For an ETV system a big space has to be reserved in a hospital; the system has a cross section close to 1 square meter for a single direction. This type of system might prove useful to move certain goods too big for a PTS and too small to fully use the AGV system. The AGV system can be used for a lot of transport flows and supplements the PTS in a good way. For the design of this system a tool is created which is further elaborated in the following chapters. 2.4 Quantitative description of a hospital logistics process To further clarify the transport processes within a hospital, transport volumes and distances collected by Deerns Consulting Engineers for a hospital with an AGV system are presented in this section. The numbers shown here represent the number of carts/loads an AGV would pick up; this is also the type of load an employee would be able to transport on his own manually. In table 2.5 an overview can be found of the number of people the hospital serves to. The hospital 12 K. Davina 2012.TEL.7687 An AGVS design tool Table 2.5: Quantitative description of the hospital logistics process: general numbers Description Value Unit Target population Number of licensed beds 635,000 1120 people beds Polyclinical visits Day treatment patients Clinical treatments Average clinical stay 550,000 66,000 35,500 5.5 per year per year per year days Personnel on payroll Specialists 2800 213 FTE FTE Table 2.6: Quantitative description of the hospital logistics process: flows and distances Type of load Number of loads Distance (Km) Nutrition Snacks & beverages Linen Waste Drugs Consumables Hazardous waste Non scheduled transports 150 45 81 52 32 60 4 23 35.0 10.5 12.5 7.2 3.0 8.7 0.55 3.4 Total 447 80 .85 concerned uses three types of transport systems: a PTS, an ETV system and an AGV system. The origins for the loads for the AGVs in this hospital are the kitchen for nutrition, snacks and beverages, the apothecary for drugs and the logistics point for the other goods. The number of loads transported and the single distance covered by these loads are summarized in table 2.6. If one assumes the AGV to deliver a load, drive back empty, drive towards the load again at a later point to pick it up and deliver it back to its starting point, the AGV would cover four times the distance mentioned here. This would result in a travelled distance of 80.85 ∗ 4 = 323.4 kilometer per day. If a logistics schedule would be made allowing no travel without load, still a distance of 80.85 ∗ 2 = 161.7 kilometers should be covered every day. So if transport is done manually without help of any electro vehicles or by AGV this type of hospital would require between 162 and 323 kilometers of transport every day. If electro vehicles are used by personnel with an average transport capacity of two loads, this will drop to 81 to 162 kilometers per day. In this hospital, which makes use of electro vehicles, this results in a workload of 14 FTE if average K. Davina 2012.TEL.7687 13 An AGVS design tool absenteeism and productivity degradation (30%, section 2.3.1) are included. For the same hospital also an analysis was made of the distribution of the transport jobs over the day, which can be found in figure 2.5. This is a transport schedule that was leveled as much as possible to even the load on the AGV system. After leveling there are still a number of very clear peaks during the day as well as some moments where not all AGVs are required to transport all jobs. For a hospital using a manual way of transportation the change during the day will be even heavier [Dav11]. Number of transports per half hour 60 Number of transports 50 40 30 20 10 0 6 8 10 12 14 Time of day 16 18 20 22 Figure 2.5: The distribution of transports during the day in the Jeroen Bosch Hospital. The data is from a previous study performed by Deerns Consulting Engineers 2.5 Description of manual hospital logistics system elements In the current system some essential elements are present in the system. These elements exist in a similar fashion for the automated system. The elements described here are the (transport) 14 K. Davina 2012.TEL.7687 An AGVS design tool job, logistic staff and (temporary) storage areas. All these elements are briefly described in this section. Job A job, or transport job, is an assignment to move a certain cart or bin from one location to another. This job has a time constraint that can vary from a few dozen minutes, for meals for instance, up to days, for certain consumables, trash bins, etcetera. All job properties available in a non-automized system are: Job Property-1: origin; Job Property-2: destination; Job Property-3: time constraint; Job Property-4: job priority: if two jobs can both make it easily within the time window, someone from the logistics department will make a choice which job should be given priority, which is normally done unconsciously; Job Property-5: job handling: a job might has to be handled carefully, depending on the contents or the way it is packed. Job volumes are estimated for most hospitals as the number of jobs expected per hour of the day. Some jobs are fully defined on beforehand. Storage Areas These areas make it possible for the logistics and hospital staff to temporarily store carts. Properties of this system element are: Storage Area Property-1: location: the location of the station in the hospital and its connection to the infrastructure; Storage Area Property-2: size: the number of carts that can be stored. It doesn’t matter in which order these are stored since staff can rearrange them and pick up the right cart; Storage Area Property-3: dwell time: the time a cart stays in this area without being used. K. Davina 2012.TEL.7687 15 An AGVS design tool Logistics Staff This is the element in a non automated system that will be replaced by an AGV in an automated system. Properties of the logistics staff are: Logistics Staff Property-1: number of FTE’s available; Logistics Staff Property-2: work hours; Logistics Staff Property-3: costs per FTE, which is needed for comparison with an AGVS; Logistics Staff Property-4: logistics staff can make choices depending on the current situation and can solve problems: flexible. If the system is automated, these elements might be replaced by automated elements. Which system elements are needed is researched in the conceptual modeling phase, chapter 3, and these are further detailed in section 3.1. 2.6 System boundary, assumptions For automating the system, a choice has to be made which system parts can or may be automized. In this system, goods to be transported are assumed to be placed in a designated area and retrieved from a designated area at their destination. The transport between those two areas is now done manually and automatization is in this research limited to the processes involved getting a transport load from a designated origin area to a designated destination area. First the assumptions done to do an economic feasibility study for a system are presented. Second, assumptions concerning the way information is introduced into the system are illustrated. The last section describes the way the hospital logistics timetable is interpreted for calculations. 2.6.1 Economic feasibility In order to assess the feasibility of automating a logistics environment, assumptions have to be made concerning the present system costs. This concerns the price of personnel, the number of personnel required and the price of investing. The following assumptions are done in this research for calculations done concerning economic feasibility: • one FTE for a hospital logistics position costs e40,000; 16 K. Davina 2012.TEL.7687 An AGVS design tool • one FTE amounts to 7.5 ∗ 5 = 37.5 working hours per week; • 30% of the working hours cannot be used because of absenteeism, socializing and other efficiency decreasing factors; • personnel walks at 5km/h; • if electro vehicles are used, one employee can move 2 containers at once; • electro vehicles move at 5km/h; • 2% should be added to the logistics personnel costs for repairing damages caused by uncontrolled movement of carts with electro vehicles; • electro vehicles cost e10,000 a piece; • the costs of maintenance on vehicles is 4% of the investment; • the interest rate is 5%; • the vehicles are depreciated in 5 years; • one square meter hospital costs e1400. These numbers will be compared with the price of an automated system to assess the feasibility of such a system. 2.6.2 Information flow into the system When a cart is at its designated origin area, it will be entered into the system either manually or through an RFID tag/barcode attached to the load. This information entering is assumed to be perfect: all carts have the right destination. Research concerning wrongly entered loads is not done. The hospital has a timetable which can be used to anticipate on future jobs to be done. The times in this timetable are always an indication and do not mean that a transport job will be at the location at the time stated in the timetable. How times in the timetable are interpreted is further elaborated in the next section, 2.6.3. 2.6.3 Interpretation of the hospital logistics timetable If one looks at the hospital logistics timetable it has fixed times for certain flows. In practice this will never be the case, a load will not be put at the designated area at exactly that time. Next to that schedules have entries stating averages like 10 transports between ten and eleven in the morning. The interpretation of these timetable entries is as follows: K. Davina 2012.TEL.7687 17 An AGVS design tool • Exact times in the schedule are interpreted as an average value for the arrival time of the load which is assumed normally distributed with an nσ interval ranging from −x . . . x minutes; • If stated that n transports take place during m hour(s), the transports are distributed over the hour on an average basis or using an exponential distribution. If the distribution is used, n + 2 samples will be drawn. The two extra samples are to model the time before the first load and after the last load. The time sum of these samples is scaled to m hour(s); The different types of arrival times for flows stated in a timetable are assumed to be in the following set. For all these arrivals the number of jobs that arrive at the stated time can be anything. Single A precisely stated single arrival time; Normal A single arrival time normally distributed; Static Interval A number of arrival times with a static interval between them. A start and end time are provided; Exponential A single arrival time exponentially distributed; Random A single arrival time randomly distributed in a specified time window; N jobs in M hours static A number of N jobs that have to enter the system with a static interval to fit the jobs in a given time window; N jobs in M hours exponential A number of N jobs that have to enter the system with a exponential interval to fit the jobs in the given time window. These types of flows should be usable as input for a simulation tool. 18 K. Davina 2012.TEL.7687 Chapter 3 Conceptual model and design of the AGV system In this chapter a conceptual model of a hospital-based AGVS is created. In section 3.1 the elements in an AGVS are presented. After this, in section 3.2, the two levels of design found in these types of systems, strategic and operational design, are explained. This is followed by section 3.3 explaining the current AGVS design method and the shortcomings of this method. Given the requirements and the shortcomings a framework has to be chosen for the development of the DEST, this is done in section 3.4. After this, in section 3.5, a hospital AGVS is modeled extensively to find all required steps in the logistics process. When this modeling is completed, performance indicators can be drawn up to view the performance of the different elements and element processes. This is done in section 3.6. Finally, in section 3.7, a comprehensive list is provided with all the required element input and outputs. This list is a summary of all properties and outputs that will provide the required performance indicators as well as a possibility to create a computerized model similar to the conceptual model. 3.1 AGVS elements Introducing an AGV system requires introduction of elements that are not present in the system as currently exists. The new elements required are summed up in this section along with their advantages and disadvantages compared to a manual system. It also states whether they replace 19 An AGVS design tool a comparable part of the manual system or were non-existent in the manual system. AGV (AGV) The AGV is the system element that replaces the people in the logistics department that walk from A to B. AGVs work more hours during a day and work more efficient. An AGV can also be used to move dangerous goods around safely. Once bought they only cost maintenance and power. The disadvantages of the AGV include investment costs and a less flexible approach to changing situations. Loading and Unloading station (LUS) A place where AGVs put and pick-up a load. In the manual system this was designated as a storage area. This area might also include mechanical and electrical systems not found in the manual system to support the AGV system. Compared to manual systems these stations might, depending on the amount of mechanical and electrical systems installed, have a higher failure rate and require more investment. A station will have docks for loading jobs onto an AGV, for unloading jobs from an AGV and for doing one of both, so-called dynamic docks, depending on the demand. Elevator (EL) So far the elevator was not really mentioned as an integral part of the system. It is an element required in both manual and automated systems to transport goods and people from one floor to another. In the manual case the elevator is called upon when necessary and detached from the system. In the automated case, the AGV system has an integral connection with the elevator system to call upon the elevator when needed. System Controller (SC) The computer type of system, keeps track of all jobs and assigns AGVs to jobs. This element might be a person in the old system, or a notification board or spreadsheet. It depends on the way the current processes are designed. Charging station (CS) Needed for the AGVs for recharging its batteries. In the manual system this type of element does not exist. Compared to the manual system it requires more space and an investment in a recharging system. 20 K. Davina 2012.TEL.7687 An AGVS design tool Parking space (PS) If an AGV is not required, it has to park somewhere. This might be in the middle of a corridor or at a CS or LUS, but it might also have a dedicated parking space. Parking spaces cost extra room and thus extra investment. This is a system element not present in a manual system. Path (P) Needed as a guide for the AGV, the AGV can drive along a path in one direction. The corridors also existed in the old system, but can be used in a flexible way by the logistics personnel. If a corridor can be used in two directions, this will be modeled by two paths to ensure a consistent modeling approach. Physically nothing changes, this element is just used for modeling. Node (N) Needed to start and end paths and connect other elements like a PS, can be viewed as crossings in the old system. Again, if used for modeling, rigor is required for correct modeling. In component terms nothing changes compared to the old system, this element is just used for modeling. The element Job is still present in the automated system as it is in the manual system. 3.2 Strategic versus Operational design When design of an AGVS is concerned two aggregation levels can be distinguished: strategic design and operational design. Strategic design is the higher aggregation level; it concerns the number of AGVs required, the number and size of loading and unloading stations, the number of charging points and parking locations, the number of elevators. One can choose enough of these for a given system to make the AGVS work. A first estimation of these numbers can be done with the current design system used and these numbers can be improved using a simulation based on simplified rules. These numbers can then be used to make a rough estimate on the return on investment of an AGVS. To further improve the system operational design has to be performed wherein more in-depth questions can be answered: where should parking and charging stations be located, what is the K. Davina 2012.TEL.7687 21 An AGVS design tool best time to charge, which AGV should pick up which job (dispatching), which alternative routes can an AGV take to avoid congestion, how many docks should loading and unloading stations have and what buffer capacity should these have, etcetera. Answering these questions with simulation can further improve the system, reduce costs, improve service level and/or increase redundancy. The difference between the two aggregation levels is also present in the performance indicators used (section 3.6) and the building blocks for the simulation program (section 5.1). 3.3 Current AGV system design method At Deerns Consulting Engineers the current method of AGVS design is using a spreadsheet. The following steps are followed in this process: 1: collect all expected jobs for a day separated per hour; 2: calculate driving distance for all station combinations; 3: assume driving distance towards a job is equal to the job driving distance; 4: assume a percentage of jobs that do not require driving towards them; 5: calculate distance/time to drive for each hour of the day; 6: calculate the charging time required to perform these jobs in an hour; 7: calculate how many AGVs are needed to cope with the required time. In this approach the following influences are not considered: • the stochastic behavior of the process; • the position of charging and parking stations; • influence of elevator availability; • breakdowns in the system; • level of sophistication of the routing and dispatching system. To make sure a better calculation is done when implementing an AGV system, the influences ignored should be addressed. This cannot be done in a spreadsheet, therefore another tool is required. This tool is further elaborated in the next section, section 3.4. 22 K. Davina 2012.TEL.7687 An AGVS design tool 3.4 Choice of framework for building the DEST Addressing the issues in the current simulation method can be done using discrete event simulation. All the ignored influences can be researched if a simulation is created within the TOMAS environment. TOMAS is an object-oriented discrete event simulation package for the Embarcadero Delphi programming language. Since the hospital logistics system can be well described in a object-oriented manner, TOMAS is a good choice for this type of simulation [VO00]. Next to that TOMAS is an open framework, tested, verified and validated by H.P.M. Veeke Phd. [Vee03]. Before this type of system can be programmed in TOMAS it has to be analyzed to get a better overview of the system, this will be done in the next section, section 3.5. 3.5 System modeling In order to create the right simulation, first the system has to be modeled in the right way. For this purpose the method of [Vee03], the PROPER model (PROcess PERformance model) for a logistic system, is used. This model ensures a good conceptual and structured design of the system, but describes it in an informal way. The PROPER model also provides a way to get a fast and good insight into the system and better communication means during the development of the program. The PROPER model is closely related to the ’Delft Systems Approach’ of In ’t Veld [VOL08], which can be used as a good start for the modeling of the system. The PROPER model describes the system using the schematic shown in figure 3.1. To model the system one should start at the highest abstraction level using a black box approach. The system modeled as a black box can be found in figure 3.2. One can model this using the PROPER model as displayed in figure 3.3 to gain some more insight into the system. One can see a clear need from the environment, the hospital in this case, to have goods transported from one location to another. To make sure this happens according to plan the performance of the system is measured using performance indicators. Which indicators to use is described in section 3.6. One can also clearly see the control system required, this is further elaborated in chapter 4 (theory) and section 5.2 (implementation). From the PROPER model of the system one can see the flows and boxes can still be further defined. Using a functional approach the flow of ’goods to be transported’ to ’transported goods’ can be further described. This is depicted in figure 3.4. It still shows an abstract version of K. Davina 2012.TEL.7687 23 An AGVS design tool Environment Need Performance Control Order Requirements Product Handled Order Results Transform Resource Delivered Product Used Resource Figure 3.1: The PROPER model as described by Veeke [Vee03] Goods at origin Goods at destination Move Goods Figure 3.2: The system as a black box 24 K. Davina 2012.TEL.7687 An AGVS design tool Environment Handle transport tasks without the use of personnel Make sure the system performs according to plan: use performance indicators Control Transport request Requirements Handled request Results Goods to be transported Transported goods Transform Available resource Used resource Figure 3.3: The system defined using a PROPER model a part of the system, but it does provide insight into the different transfer points required in the system. Adding the resources flow to the same model results in figure 3.5. Three distinct loops, color marked, can be seen for the interaction between the resources and the goods. These loops should be further defined as they provide insight into the working of the system. The first (red) loop depicts the process at the station were the goods enter the system. This station then interacts with an AGV to transfer the goods. The second (purple) loop shows the process an assigned AGV follows when picking up goods and delivering them to the end station. The third (blue) loop shows the process of the end station, which interacts with the AGV as it drops of its load. A full version of the system as a PROPER model with all functional flows can be found in appendix C. From the detailing of the second loop, the AGV loop, extra system components can be found. The AGV loop is further defined in figure 3.6. In this figure the block in the bottom-right corner shows the process the function belongs to. The block in the upper-right corner shows the process this function has to interact with: here these are Loading Station (LS), Unloading Station (US), Elevators (EL) and System Controller (SC). The SC is the part that controls the overall process and is depicted with the ’Control’ block in the PROPER model in figure 3.1. The process as K. Davina 2012.TEL.7687 25 An AGVS design tool Goods at origin Goods at destination Receive Transfer Transport Transfer Deliver Figure 3.4: Further detailing of the goods flow. Goods flow Receive Transfer Transport Transfer Deliver Assigned AGVs Assigned docks Available docks Assigned docks Available AGVs Available docks Resources flow Figure 3.5: Combining the goods and resources flow 26 K. Davina 2012.TEL.7687 An AGVS design tool described for the AGV assumes the AGV gets some job assigned by the system controller. This would imply a central controlled algorithm. For a decentralized algorithm the process would be slightly changed: the AGV still has to wait for jobs entering the system but after that it would try to select a job which is still available. In this diagram charging an AGV is not depicted; in this flowchart charging is an action performed by the AGV in the block ’wait for job’. If the AGV is either idle or does not have enough battery capacity, it will go to a parking space (PS) or charging station (CS). This process is further elaborated in section 5.1. The transport block is further detailed and shows that the AGV can encounter an elevator or an automatic door while driving. The elevator needs to be modeled in order to incorporate the stochasticity of the system. The automatic doors can be included by defining an arc that has a lower maximum speed, as to loose the amount of time normally lost waiting for these doors. This implementation strategy is elaborated in section 5.1. While driving the AGV will move along a path. In hospital layouts corridors are a combination of these paths. For a broad corridor, where two AGVs may pass each other, two paths are created: one in one direction, one in the other direction. This will be referred to as a road. If a corridor is small, two choices can be made: AGVs can move in both directions, but have to wait for each other, or AGVs can only move in one direction. In this research the former is referred to as a small road, the latter as a one-way road. The two stations the AGV interacts with, the LS and US, can also be investigated by building a process loop. For the LS this is displayed in figure 3.7 and for the US it is displayed in figure 3.8. Again interactions are shown with the SC and the AGV. In these processes one can also clearly see the interaction with the users of the system. The performance of this system will thus be influenced by how proper the system is used. For all processes described the parts that need an active process can be determined as well as the parts that can be called upon by another active process. For the loading station, two parts were distinguished: ”Receive” and ”Transfer”. Goods that have to be received are created by a generator in the simulation process, but as can be seen, the goods are only accepted by the system when there is an empty slot. To make sure new goods are still generated a queue can be K. Davina 2012.TEL.7687 27 An AGVS design tool Drive AGV EL EL Wait for Elevator Ride on Elevator AGV Drive AGV AGV Wait for Doors AGV Transport LS Pick from dock AGV US Transport Wait for US AGV AGV US Deliver AGV Transfer LS Wait for dock AGV SC Drive Get Route AGV AGV Transfer SC Wait for Job AGV Assignment of AGVs Figure 3.6: The AGV process placed in between. The generator will create transport jobs, put them in the queue once they are created and taken from the queue by the loading station when there is an empty slot. The ”Receive” part of the process can then be activated. The ”Transfer” part can be activated by the AGV collecting the goods. For the unloading station a similar conclusions can be made: the ”Transfer” portion can again be initiated by the arriving AGV. The second part, ”Deliver”, or taking the goods from the unloading station, is dependent on an external factor, which needs an active process to be modeled. Since the LS and US are sometimes combined, a logical step would be to merge these two into one loading and unloading station (LUS). This can be achieved quite easily because of the necessity for only one active process. How these parts would be programmed is further detailed in chapter 5. The AGV process as depicted in figure 3.6 cannot be split up in the way done with the LUS. The AGV process is one single process. Parts of the process can be programmed into separate functions, but the process itself must stay intact. The process can either be started by the SC assigning a job to the AGV and then activating it or be a continuous active process checking if 28 K. Davina 2012.TEL.7687 An AGVS design tool Loading Station Goods at origin User Accept SC AGV Register Job LS Put in empty slot LS LS Transfer Job LS Transfer Wait for empty slot LS Wait for goods LS Receive Figure 3.7: The Loading Station process Unloading Station AGV Accept US SC User Finish Job Release US US Goods at destination Deliver Wait for empty slot US Wait for AGV US Transfer Figure 3.8: The Unloading Station process K. Davina 2012.TEL.7687 29 An AGVS design tool any assignment was given to it or seeking out new assignments on its own in a decentralized way. Since the latter would give a more flexible system, allowing decentralized as well as centralized control, an active process is preferred. The steps in this process are further elaborated in section 5.1. Next to the AGV and the LUS the SC was mentioned. So far the SC is responsible for dispatching jobs to AGVs, calculating AGV routes and registering all jobs entering and leaving the system. The interactions found in the AGV and LUS elements with the SC are shown in the process scheme of the SC in figure 3.9. Any other control system used to optimize the AGVS as a whole can also be implemented into the SC, since the SC uses a centralized perspective. From this centralized perspective a lot of information on the workings of the AGVS can be extracted. These performance indicators are registered by the system controller and are further described in subsection 3.6. System Controller Transport request SC Track Job SC Register Job LS SC SC Dispatch Job Calculate Route SC SC Wait for Job Get Route AGV AGV SC Register job perfomance Handled request SC Finish Job US Figure 3.9: The System Controller process and its interactions with the other processes Other elements needed to make the system behave in a more realistic way as stated in the goals of the research can be added on the side of the described processes. These elements can be included in an AGV as well as the system controller: it depends on the nature of the element. A battery system for instance has to be implemented as a feature of an AGV, the decision to start charging this specific battery can be made by the SC. Implementing it as a choice made by the SC gives more flexibility, allowing the controller to choose which charging station and which AGV to charge at which time. Next to this the SC can also be extended with a function that induces breakdowns in the system, the availability controller (AvC), to make the system more realistic. This can be a sep30 K. Davina 2012.TEL.7687 An AGVS design tool arate process within the SC that does this at intervals chosen by the user of the software. This is a function not introduced in this research, but can be incorporated in follow-up research. The feedback these elements need to provide to aid in the design process is further defined by choosing the appropriate performance indicators. This is elaborated in the next section, section 3.6. 3.6 Performance Indicators All elements described so far provide data during runtime, but not all data is relevant to the user. The data relevant to the user is displayed in a number of performance indicators. These performance indicators should be chosen in such a way that the user gets a quick overview on how well the simulated design works. Next to this it should also point out if the system can be downsized whilst still meeting the customer demands in order to decrease costs. As a third point the user has to assess the performance of the chosen dispatching, routing and parking algorithms, this should also become clear from the performance indicators. For every design the goal of the designer is to decrease the total costs of ownership (TCO) of the total system. The TCO for an AGVS consist of: • the price and number of AGVs; • the kilometers made by the AGV, which dictates service costs; • the level of maintenance; higher maintenance levels costs more money but decreases the number of breakdowns; • the service level and system boundaries the customer implies (maximum speeds, no driving during certain hours); • the number and size of stations and parking positions. The influence of changed maintenance costs and the change in breakdowns is not incorporated in this study. From consultation with experts, and given the assumptions made in section 2.6.1 the costs for the individual parts can be estimated as follows: • AGV investment: e 120,000 ; • AGV maintenance (standard maintenance): e 0.75 per km; • Stations do not occupy extra space when compared to a non-automated environment; K. Davina 2012.TEL.7687 31 An AGVS design tool • Charging stations are assumed to occupy a space of 3 m2 , and thus amount to e 4,200; • Parking spaces are assumed to occupy a space of 2 m2 , and thus amount to e 2,800; • Assumed is that no extra costs are introduced for the infrastructure (roads, crossings, etc.). Next to the investment in the system, the system should be assessed on its main purpose. Because the main goal of a transport system is to transport jobs within a certain timeframe, the DEST should provide the percentage of jobs in the system that did not reach their destination in time. If the time it takes to transport a job is too long, insight should be gained on how this time is built-up. The time can be too long because of the transport distance, in which case the speed or routing of the AGVs is the only way to decrease the time, or it can be because of waiting, in which case it can either be waiting onboard of an AGV for crossings and elevators or at a LUS, or waiting for an AGV to arrive. Not being in time can also come from an unreliable system breaking down too often. For all cases different types of performance indicators are to be implemented. These indicators can be displayed in a tree with the time a job is in the system as the top level. This top level indicator is referred to as a key performance indicator (KPI). This tree is displayed in figure 3.10. Since the design of the system also incorporates the number and size of stations and the number and characteristics of the AGVs, performance indicators should also be displayed for these elements. The AGVs should be used as effective as possible, this can be displayed as a utilization ratio for the AGVs. Next to this the distribution of the utilization of the different AGVs can be displayed to see if the load is equally divided between the different AGVs. AGVs should be utilized as equal as possible for maintainability. For this case utilization is defined as the time the AGV is not parked or driving to a parking space versus the time since it was activated. The user should be able to analyze this number further; one should be able to see if the time the vehicle is not utilized. This can be split up in the time the AGV took to drive towards a parking location and the time the AGV was actually parked. The percentage of time driving towards this location depends on the number of parking spots available throughout the system as well as the algorithm chosen to find a parking location. The percentage of time that the AGV is actually parked can be seen in an opportunity percentage; the percentage of time that the 32 K. Davina 2012.TEL.7687 An AGVS design tool Jobs in time Waiting Time Station waiting time Driving Time On-board waiting time Pick-up time Elevator waiting time Drop-off time Traffic waiting time Percentage detour Travelled distance / Shortest path Figure 3.10: Overview of performance indicators for system analysis for a transport job K. Davina 2012.TEL.7687 33 An AGVS design tool AGVs can be used for other purposes without adapting the AGVS. Analysis of the utilization part should also be possible; first the time the AGV carries a transport job, second the time it takes for an AGV to drive towards an assignment and third the time the AGV takes to recharge. This last number can be split up again in driving towards a charging point and the charging itself. This number aids in the design and positioning of the charging stations as well as the chosen battery charging regime. The first two numbers can be split up in actual driving time, waiting time for traffic, waiting time for elevators. These numbers can be used to see where actual progress can be made when choosing a different algorithm. One additional performance indicator is added; the minimum number of jobs transported by any AGV. This is to check if any of the AGVs transported substantial less jobs because it was in a deadlock position or not working for any other reason. It is thus to check if the program works properly. An overview of these performance indicators for the AGVs can be found in figure 3.11. AGV utilization Recharge Charging time Working Not utilized Number of jobs done - minimum Drive towards charge point Driving towards parking Carrying payload Parked Towards payload Figure 3.11: Overview of performance indicators for AGVs Analysis of the LUSs should also be possible in the same way as it is done for the AGVs and 34 K. Davina 2012.TEL.7687 An AGVS design tool the jobs. Again the performance indicators can be implemented in a tree like structure. The most important indicator for a LUS is the average queue length. In a LUS there are more than one queue and the performance indicator can just be viewed as the average number of jobs in the LUS waiting for pick-up. Since AGVs can only pickup the first job in a lane, adding more lanes would decrease the pick-up time and thus the average queue length; displaying the average queue length would provide a good insight in the workings of the designed LUSs. To analyze the LUSs further the following additional performance indicators can be added: the starting position in a lane for jobs with different priorities, the maximum and average number of jobs in a lane, the number of jobs that could not be put into the LUS because it was full and the number of times an AGV could not drop-off its load because all lanes were full. The maximum number of jobs in a lane can be used for the design of the length of the lane. The average number of jobs for each lane and the starting position for jobs with different priorities can be used to evaluate the algorithm used to put jobs in the system. All these performance indicators are summarized and displayed in figure 3.12. LUS average number of jobs waiting for pick-up Average starting position of a job for each priority Number of jobs in each lane ready for pick-up No drop-off possible No LUS input possible percentage - lost time Figure 3.12: Overview of performance indicators for LUSs If the AGVs are standing still they are either in a parking spot or a charging station. These elements should also be assessable which can be done by displaying their utilization ratio. Next K. Davina 2012.TEL.7687 35 An AGVS design tool to this performance indicator no additional indicators for parking spots and charging stations should be necessary. The last performance indicators to assess the AGVS are for the road network (elevators are assumed to be part of the road network). This is done with utilization rates for the road elements. These ratios can also be used for evaluation of the routing algorithm as congestion should decrease when the algorithm becomes smarter. For an elevator this would be the time the elevator is occupied or called upon over the total time. For crossings and roads it would be the time any AGV is on the crossing or road over the total time. 3.6.1 System performance indicator For each element in the system performance indicators were drawn up. To give the user a possibility to compare one system to another, performance indicators can be combined to create a single system performance indicator (SPI) number. How this number is built up is explained here. The number itself will be displayed as a KPI, meaning the closer the SPI gets to 1, the better the system is with respect to the wishes of the customer. As explained before the TCO and with that the payback time (PT) is one of the most important indicators in the system. The system will have a technical lifetime (TLT) and the closer the PT will come to this TLT, the worse the investment is. From the PT and TLT the part of system performance indicator with respect to payback time is calculated: SP IP T PT 1 − T LT = 0 if P T ≤ T LT (3.1) if P T > T LT. The payback time is calculated as the number of whole years it takes before the cumulative costs of an AGV system would be lower than the costs of a comparable system with electric vehicles. The second important performance indicator is the service level (jobs delivered within the set time window) reached by the system. The customer will provide a required service level (RSL). The service level (SL) can be calculated as: 36 K. Davina 2012.TEL.7687 An AGVS design tool SP ISL SL − RSL 1 − RSL = 0 if SL ≥ RSL (3.2) else. With the two described parts before, the most important parts of the system with respect to the customer are covered. To further see if one design surpasses another one more extra performance indicator is required. If the traffic congestion is high, but jobs are still delivered within the set service level times, the system might give the same SPI as a low congested system, so this indicator should show the possibilities of the system in terms of extensibility and the degree in which the system can cope with bigger transport flows. Next to that the performance indicator also provides insight in whether the system can cope with high disturbances in its infrastructure (blocking of roads for instance). Traffic congestion can be viewed as the transport time (T T ) required to deliver a job j relative to the waiting time during transport (W Ttransport ). In this performance indicator the time required to reach the origin of the job is not incorporated, this depends on parking algorithms. The part of the SPI based only on traffic congestion (T C), and with this the effectiveness of the traffic avoidance algorithms used in the routing algorithm, can be calculated as: SP IT C = jX max j=1 TT . T T + W Ttransport (3.3) To calculated the system performance indicator, SPI, the three separate elements can be combined. Summing the three elements, PT, SL and TC, gives a number in which all three elements have an equal weight. To incorporate the importance of each individual performance indicator, weights can be used. The SPI is then calculated as: α ∗ SP IP T + β ∗ SP ISL + γ ∗ SP IT C α+β+γ SP I = 0 if SP IP T > 0 ∩ SP ISL > 0 (3.4) else. The importance of the different KPIs (and with that their weights) were obtained using a three step process. First the expected bandwidth of the KPIs was estimated in order to incorporate a scale in the weight factor equalling the contribution of the tree KPIs. Second, the importance of the different KPIs was assessed by ranking the KPIs from 1 (least important) to 3 (most K. Davina 2012.TEL.7687 37 An AGVS design tool important). As a last step the total weights were fine-tuned based on experience. All these steps were performed by an expert at Deerns Consulting Engineers. The expected bandwidth and the corresponding scaling factor, together with the importance ranking of the KPIs, are presented in table 3.1. After the last step, the fine-tuning, the total weights are α = 6, β = 3 and γ = 1. PT SL TC Expected lower bound Expected upper bound Average Scaling factor Importance ranking Subtotal finetuning Total weight 0.3 0.25 0.75 0.7 0.75 0.95 0.5 0.5 0.85 2 2 1 3 2 1 6 4 1 +0 -1 +0 6 3 1 Table 3.1: Bandwidth, scaling, importance ranking, fine-tuning and total weights of the three KPIs for the system performance indicator This provides the final equation to calculate the SPI: 6 ∗ SP IP T + 3 ∗ SP ISL + 1 ∗ SP IT C 10 SP I = 0 if SP IP T > 0 ∩ SP ISL > 0 (3.5) else. From the formula for the SPI one can see that obtaining an SPI of 1 is only reachable when no investment is done, a service level of 100% is reached and waiting times are not present in the system. In practice service levels are always lower and transport times will go up mainly due to elevator rides. A big supplier of AGVs, Swisslog, incorporates 120 seconds of transport time for elevator rides. However, the elevator ride itself will take 30 to 45 seconds, resulting in 75 to 90 seconds of delay in the system. Dedicated elevators in abundant numbers can decrease these delays to almost zero. A service level of almost 100% can be reached by putting low requirements on the transport times, resulting in longer turn around times for the goods, which in turn results in more buffers, stock and decentralized services throughout the hospital. A high level of overcapacity in the system, together with the aforementioned measures, can make the SL and TC performance indicators close to 1, resulting in an SPI of at least 0.4. A system where no investment is to be done can be created, but only involving some lease construction costing less than the current expenses for the logistics system. If no investment is done the SPI will be at least 0.6. If one takes the average numbers expected for each KPI, the SPI will be 0.54. This also means that a system that does not earn itself back very quick (for 38 K. Davina 2012.TEL.7687 An AGVS design tool instance ⁄ = 0.8), the maximal SPI that can be obtained is 0.52, which is lower than the TLT PT average expected of 0.54. This emphasizes the importance of the payback time in this type of system. It also means that a system earned back quickly (for instance in T LT /P T = 0.3) with a service level KPI value of 0.25 (expected lower boundary) and a traffic congestion KPI value of 0.75 (expected lower boundary), the SPI will be 0.57. This is slightly higher than the SPI calculated with average values. To calculate the different performance indicators and the SPI certain data is required. The outputs of the system elements required to calculate all performance indicators are summed up per system element in section 3.7. 3.7 AGVS element IO In this section all elements required to build the AGV system are described with their respective properties, inputs and outputs needed to make the program work for different AGVSs and different hospitals. It is a simple sum-up and can be seen as a summary of the previously done system analysis, required performance indicators, literature research [Dav11] and the original assignment by Deerns Consulting Engineers [Wit11]. At this stage the process within a system element was conceptually described by a flowchart in section 3.5 but not yet fully defined. To define the full process the inputs and the outputs of the process first need to be defined in this section. From the inputs, outputs and properties, together with the modeled process, the element process can be defined, these element processes are elaborated in chapter 5. 3.7.1 General elements Job - Input: Origin; - Input: Destination; - Input: Priority; - Input: Latest Arrival Time (LAT); - Output: Start time, end time, time in system - Output: Time driving, time waiting (during driving/waiting for pickup) K. Davina 2012.TEL.7687 39 An AGVS design tool - Output: Travelled distance - Output: Waiting time at stations/elevators/due to traffic congestion AGV - Input: location; - Input: speed; - Input: battery capacity, battery charging and usage parameters; - Input: time for loading and unloading jobs; - Output: driving start and end times; - Output: driving purpose (to charging point, with payload, towards payload, to parking); - Output: standing still start and end times; - Output: standing still purpose (for loading, unloading, charging, parking, waiting for elevator/ crossing/path); - Output: jobs done. System Controller - Input: routing algorithm; - Input: dispatching algorithm; - Input: idle behavior (parking and charging algorithm); - Input: hospital layout; - Input: expected transports; 3.7.2 Infrastructure elements Infrastructure element - Input: location, orientation; - Input: connecting element(s); - Input: maximum driving speed; 40 K. Davina 2012.TEL.7687 An AGVS design tool Node - Output: utilization ratio, defined as the time the node is reserved by an AGV over the total time it is in the system. Path - Output: utilization ratio, defined as the time the path is occupied by at least one AGV over the total time it is in the system; Loading & Unloading Station - Input: number and type of jobs to be generated; - Input: number and type of (loading or unloading) docking points; - Input: type of docking points flexible? (yes/no); - Input: number of buffer positions (number of positions behind one docking point); - Input: time required to reach the right docking point; - Output: number of jobs waiting for pickup (total/per dock); - Output: percentage jobs not accepted by the system (LUS full); - Output: percentage and time loss on no unload possibility for AGV; - Output: starting position for a job (total/per priority); Charging station - Input: charging parameters - Input: coupling/decoupling time; - Output: utilization ratio, defined as the time the charging station is occupied by an AGV over the total time it is in the system. Parking space - Input: time required to reach the right position; - Output: utilization ratio, defined as the time the parking space is occupied by an AGV over the total time it is in the system. K. Davina 2012.TEL.7687 41 An AGVS design tool Elevator - Input: entrance and exit times, door closing and opening times; - Input: speed; - Input: distribution type and parameters for elevator waiting time; - Output: utilization ratio, defined as the time the elevator is called upon and ridden by an AGV over the total time it is in the system. 42 K. Davina 2012.TEL.7687 Chapter 4 System control and algorithm theory This chapter describes two things: the theory behind the three optimization problems in section 4.1 and traffic control theory in section 4.2. The implementation of the control algorithms and the traffic control for this specific hospital application is elaborated in chapter 5. 4.1 Optimization problems When designing an AGVS 3 optimization problems concerning the control of AGVs can be distinguished ([Vis06]): the dispatching problem (section 4.1.1), the routing problem (section 4.1.2) and as a part of that the scheduling problem (section 4.1.2), and the parking problem (section 4.1.3). For all these problems different solution algorithms exist which are described in their corresponding sections. 4.1.1 Dispatching problem In the dispatching problem a method, or algorithm, has to be designed to dispatch an AGV to a transport request. These algorithms can be divided into two types: work-center initiated dispatching algorithm (WIDA) and vehicle initiated dispatching algorithm (VIDA). A work center is a station that requires and provides goods to be transported. A WIDA is applied when assignment of jobs is done by the work center; it chooses one AGV from one or more idle AGVs 43 An AGVS design tool Table 4.1: Overview of standard vehicle initiated dispatching algorithms Rule Acronym Description First-Come-First-Served FCFS Maximum Demand MD Maximum Outgoing Queue Size MOQS Minimum Remaining Outgoing Queue Size MROQS Modified First-Come-First-Served MFCFS Modified First-Come-First-Served Random Work center MOD FCFS RW Shortest Travel Distance STD Shortest Travel Time STT The job that entered the system first will be picked up first. First bring jobs to the station that expects the most deliveries. The AGV is dispatched to the station with the largest number of pickups waiting. Pick up a job at a station were the outgoing queue is almost filled up. FCFS with max one pickup job in the system for each pickup point. If job is delivered first look for a job at the drop off point, otherwise FCFS. The vehicle that becomes idle picks a random job to pick up. Pick the job that requires the least distance to drive to. Pick the job that requires the least amount of time to drive to. for a single transportation job. A VIDA is applied when the AGV makes a decision; if multiple jobs are available the AGV will make the choice which job to transport first. An overview of standard algorithms for VIDAs and WIDAs can respectively be found in table 4.1 and 4.2. Next to these algorithms a lot more can be found in literature having different definitions with respect to utilization ratio and idle time. Several studies were performed to test the effectiveness of the dispatching algorithms. According to [Che87] distance-based rules (STD & FAV) perform better than AGV-attribute based rules (LIT & LIV). In [ET84] studies are performed combining VIDA and WIDA, the first being used when only one AGV is available, the latter being used if only one job is available and multiple AGVs. The main conclusions from their research are: choosing a WIDA does not effect the throughput for the system that much, VIDAs are the big influence on the system looking at throughput. Next to that it is shown that distance based rules perform competitively with other rules looking at system throughput, but perform bad when focusing on queue length and throughput per station; stations lying far outside of the rest of the system will less likely be picked for transport and queue sizes can grow rapidly on these systems. This conclusion is shared by [KK96]; distance based rules can be very competitive but are layout sensitive. 44 K. Davina 2012.TEL.7687 An AGVS design tool Table 4.2: Overview of standard work center initiated dispatching algorithms Rule Acronym Description First Available Vehicle FAV Least Utilized Vehicle LUV Longest Idle Vehicle LIV Least Cumulative Idle Time LIT Nearest Vehicle Random Vehicle NV RV First vehicle that can come available will pick up the job. First use the AGV that is used the least. First use the AGV that has been idle for the longest time. Choose the vehicle that has the lowest total idle time. Choose the nearest available vehicle. Choose a random vehicle to pick up the transport job. Next to these algorithms, some less standard algorithms may be defined that have produced promising outcomes. These algorithms can be found in table 4.3. The research of [KK96] focuses on multi-attribute algorithms (MAA); combining standard rules (in this case STT/STD, MOQS and FCFS) in several ways to decide which job to pick up. Since decision making is always a process involving multiple criteria or attributes, applying a MAA is a logical step. According to this research MAAs perform significantly better than single-attribute algorithms, which is confirmed by research done by [TTT00, NT05]. In MAA a combination of standard algorithms is made, which provide a contribution to the total priority of a transport job. This combination can be made by applying fuzzy techniques and applying weights. These weights can be chosen arbitrarily or tuned using a genetic algorithm as done by [TTT00, NT05]. This weight tuning using a genetic algorithm makes the algorithm perform better than using manually chosen weights. Next to using these standard algorithms, one can also choose to include other factors in a multi-attribute algorithm that might make it better usable in practical cases. One example could be the remaining battery life of an AGV. How this can be implemented is further elaborated in section 5.1. Another way to use several algorithms in making a decision is to use a hierarchical level algorithm (HLA). In this type of algorithm each algorithm level will decrease the number of possible AGV - transport job combinations using one of the standard algorithms at each level followed by a final choice after all levels have been passed. These HLAs can be viewed as a subset of MAAs, but instead of weighing all criteria at once, criteria are applied level by level. An application of this type of algorithm is described in [SH92]. The research concludes that applying HLAs gives better performance than just one of the standard dispatching algorithms. K. Davina 2012.TEL.7687 45 An AGVS design tool The authors of [BY96] propose the bidding-based device-dispatching (B2 D2 ) and modified shortest travel time (MSTT) algorithms. These algorithms differ from the rest of the algorithms in that they provide a framework for take-over of jobs by other AGVs when one AGV is already heading that way. The algorithms both work with a job assigned to a vehicle, this job is however not committed to the vehicle as long as the vehicle did not pass the threshold value. Once it did the vehicle is committed to the job and no other AGV may pick it up any more. In these algorithms every time a new job enters the system all uncommitted jobs in the system are reevaluated and may be reassigned. The MSTT is a modification of the STT rule; the vehicle closest to a new job will be the vehicle picking up the job. However, as long as the distance towards the job did not pass the threshold value the vehicle may still be reassigned to a different job. In B2 D2 all AGVs place a bid when a new job comes up in the system. In this algorithm an AGV will place a bid sized by the time it will take to get to the pick-up station. This time may incorporate another delivery that the AGV has to do first; this algorithm is thus not limited to assignment of one job per AGV. Both the MSTT and the B2 D2 perform considerably better than any standard rule according to the authors. They propose to further extend their research by incorporating f.i. job priorities and downtimes of system component to get a more practical result. [LKY+ 03] proposes another bidding-based dispatching method (BDM) in which vehicles keep bidding to each other till one has the lowest bid that still compensates for its costs. In this system multiple bidding rounds are performed and when a vehicle is done with a job it can outbid another vehicle already on its way to a job. In the BDM algorithm the station wants to minimize the costs of the transport whereas the AGV wants to maximize its profit. The outcome of this research is that the BDM performs considerably better than a STT/STD based AGVS. All algorithms presented are calculated in theory, but supposedly not implemented in operational systems. To implement these algorithms more work has to be done to make the algorithms behave in a more realistic way. A lot of these algorithms outperform the standard dispatching algorithms, but the improvements proposed were never combined into a new further improved algorithm. For this study the implementation and combination of existing solutions is worked out in section 5.2. 46 K. Davina 2012.TEL.7687 An AGVS design tool Table 4.3: Overview of other well performing dispatching algorithms Rule Acronym 2 2 Bidding-based Device-dispatching Algorithm [BY96] Bidding-based Dispatching Method [LKY+ 03] Genetically Optimized Multi-criteria Algorithm [NT05] Hierarchical Level Algorithm [SH92] B D Modified Shortest Travel Time Algorithm [BY96] Multi Aspect/Attribute Algorithm [KK96] MSTT 4.1.2 BDM GMCA HLA MAA Description AGVs bid on jobs, lowest bidder gets the job AGVs try to maximize their profit, while stations try to minimize costs MAA with genetically optimized weights Each level filters the set of transport jobs further down till 1 job remains STT with AGV reassigning to other jobs and job takeover by another AGV Combining multiple standard algorithms using predefined weights Routing and scheduling The routing problem is concerned with the route an AGV should drive to get from place A to place B. The scheduling problem describes when AGVs should enter and leave different parts of the route in order to avoid congestion, collisions and deadlocks. An AGV route network consists of some basic elements: arcs, nodes and stations. Arcs are paths an AGV can follow, these arcs can be mono-directional or bi-directional. Nodes emerge where two or more arcs meet and can be viewed as a crossing. Stations are points were AGVs interact with the system to load/unload, park or charge. There are three possible types of paths between two nodes: one-way paths consisting of one directed arc, two-way paths consisting of two directed arcs and bi-directional paths consisting of one bi-directional arc. To simply calculate the shortest route between two stations Dijkstra’s algorithm can be used [Wik11b]. This routing will give multiple AGVs the same nodes and arcs to cross; this is where scheduling comes in. In order to avoid problems arcs and nodes can be reserved for a certain time window for a given vehicle. When a new route for another vehicle is calculated all reserved time windows are avoided; this concept is known as conflict-free routing. Conflict-free routing can be done for two separate cases: static or dynamic job sets. The static job set case can be applied if all jobs are known prior to the routing and scheduling calculation. The algorithms work in two ways; one way tries to optimize for the whole system at once, the other way calculates the route for one AGV and start adding AGVs in a conflict-free manner. This can be done multiple times to see which AGV should be used to start the calculation. This is done for static job sets; for K. Davina 2012.TEL.7687 47 An AGVS design tool static job sets, the jobs requiring transport in the to-be-calculated time window are known in advance. An overview of solutions to static job sets can be found in [GHS98, Vis06, LAdK06]. For a dynamic job set the calculation is as done as in the second way for the static job set; each new route is dynamically inserted into the existing set of routes. Example algorithms can be found in [HPK93, OBK99]. Most research in this area addresses problems concerned with routing through bi-directional paths where deadlocks are more likely to occur. Two-way paths will only cause conflicts at nodes and stations and thus requires less control of the AGVs [QH01, KT93, KT91]. All these algorithms use Dijkstra’s algorithm to calculate a shortest path. Another way to calculate the path is to use a heuristic algorithm, like A* (A-star [Wik11a]). In this method one tries to calculate the shortest route by using an estimation of the distance to the destination in order to discard a lot of route options to speed up the calculation. To check if other routes might be quicker based on expected traffic density a tabu search can be performed, by for instance swapping a crossing in the calculated route with a neighboring one [Nan00] to further decrease the transit time of the AGV. In calculating the route one can either choose to calculate the whole route at once, complete route planning, or only parts of the route, incremental route planning [TDT95]. Since routes can become invalid during transport due to breakdowns or blockages calculating the complete route might result in numerous unnecessary calculations. However, in incremental route planning local optima may be found for routing instead of an overall optimum, which results in slightly longer transfer times [TDT95]. For the hospital system elevators are introduced into the system, which will be used by people as well. This makes planning impossible when an AGV uses an elevator, because elevator waiting times cannot be calculated, only estimated, in this case. Incremental route planning can be used in this case to plan routes per floor. Another problem in hospitals, and researched with the simulation, is the number of times blockages, or breakdowns, of paths and nodes occurs, which makes the AGVs stop or force a re-route. It can simply be because a patient or visitor is standing in front of an AGV, a patient being moved with bed because of an emergency or a cart of bed positioned in the path of the AGV. This will again require a recalculation of all movements on that floor. For factory floor use of AGVs this is less of a problem, because employees can be 48 K. Davina 2012.TEL.7687 An AGVS design tool instructed to keep all AGV paths free and not obstruct the AGV in any way. Another possibility is not to use scheduling; when AGVs arrive at a point in the system where they encounter each other, traffic control can be used to give certain AGVs priority over others. This is the same method as the way traffic is controlled on public roads. It provides a solution less efficient than the one calculated for the whole system, but requires less calculation. The system will also continue to work without recalculation when AGVs or other parts of the system break down. How traffic can be controlled is further explained in section 4.2. 4.1.3 Parking (and charging) problem If an AGV becomes idle it has to be positioned somewhere in the system. This can be done in three distinct ways [Vis06]: by central positioning, circulatory loop positioning or point of release positioning. With central positioning the AGVs parking areas are designated within the system. For circulatory loop positioning loops are defined within the system and idle AGVs will travel around these loops as long as no transport jobs are available. With point of release positioning the AGV will stay at the location it made its last drop off. In [OBK99] central and point of release positioning are compared. According to this study the latter outperforms the first. In another study, [LV01], an algorithm for optimal dwell points is proposed. According to the simulation studies performed by the authors dwell points that minimize the mean response time significantly improve system performance. Most systems in operation have one parking location for all vehicles, which is also the charging location. This is because vehicles used in manufacturing facilities, the biggest market, are almost always busy. These vehicles will thus only seek a parking position when they need to be recharged. Parking when waiting for a job is thus not applicable. When opportunity charging is allowed (charging at every possible moment) a trade-off can be made for going to either a charging or parking location. A parking location can be closer to expected jobs (optimal dwell points) while opportunity charging can make sure the AGV is not required to charge, when its battery is empty, at an undesirable (busy) moment. K. Davina 2012.TEL.7687 49 An AGVS design tool 4.2 Traffic control Since AGVs will encounter each other in different parts of the system, a way of controlling the system has to be drawn up. First the behavior of AGVs with respect to nodes is elaborated. After this the control of bi-directional paths is discussed. Elevators are also considered bi-directional paths for traffic control. Next traffic control around a LUS is elaborated. Traffic control for the PS and CS is discussed in the last paragraph. The assumptions made for implementation of traffic control can be found in chapter 5 as part of the implementation description of the concerning element. 4.2.1 Traffic control around nodes At a node multiple paths are connected. Some of these paths give incoming traffic, others outgoing traffic. Nodes are like road crossings and traffic control can be done using a sort of traffic light or semaphore. The node semaphore will decide how many AGVs can cross simultaneously. When AGVs arrive at the node they will express their wish to cross the node and try to reserve it for themselves. If one AGV is currently claiming the node, the semaphore will give this AGV the go-ahead and the AGV will cross. If multiple AGVs want to claim the node, the semaphore will make a decision which AGV can go first. This can be based on a first-in-firstout principle, on priority, or on whatever other decision principle required by the system. The semaphore can also choose to let multiple AGVs cross at once if it decided these AGVs would not interfere with each other. 4.2.2 Traffic control on one-directional paths If paths are one-directional, AGVs can just access them without the possibility of deadlocks. AGVs will have to check if they are not running into the back of another AGV, but this is safety based and hardware related and not traffic control related. Traffic control is thus not necessary on one-directional paths. 4.2.3 Traffic control for small roads and elevators If paths are bi-directional but too small to allow AGVs to pass each other, traffic control has to be done to avoid deadlocks in the system. In order to do this the AGV has to claim the small road. A type of semaphore can be used to give this AGV the go-ahead or give priority to another 50 K. Davina 2012.TEL.7687 An AGVS design tool AGV traveling in the opposite direction. The priorities used can be chosen at will and AGVs can directly drive onto the path when given the go-ahead. An elevator can also be viewed as a road with multiple entry and exit points, but with the capacity of a single AGV. If an elevator is involved the AGVs will still try to claim this, but when it is allowed for the AGV to continue, it still has to call the elevator, wait for it till it arrives and then start driving again. The way the elevator is dispatched can be implemented in many ways, with first-in-first-out being the simplest implementation where the elevator first serves the AGV that first claimed the elevator. 4.2.4 Traffic control for a LUS A LUS has a capacity depending on the number of drop-off and pick-up points. Since an AGV requires not only a place to stand while loading and unloading, but also space for its job when unloading or a job ready to be picked up when loading, two AGVs will never occupy the same dock of a LUS: a dock has the capacity of a single AGV. The node coupling the docks together also has a capacity of one, meaning only one AGV at a time can drive towards a dock in a single station. When AGVs arrive at a station, the dock at which they drop off their load is not yet known and a way to guide the AGV to the correct dock for drop-off should be implemented as part of the traffic control. 4.2.5 PS and CS traffic control Parking spaces and charging stations can accommodate one AGV per piece and thus require an AGV to claim it. This can be done using a semaphore construction. With most infrastructure elements multiple AGVs can claim the element. Some of the AGVs will then have to wait for the element to have enough capacity to accommodate them. For PSs and CSs AGVs better not claim an already occupied element. The waiting can take a long time because these elements are created in order for an AGV to stay a longer time at that location. AGVs should thus never try to claim an already occupied PS or CS. K. Davina 2012.TEL.7687 51 An AGVS design tool 4.2.6 Chains of traffic controlled elements In essence, the number of claimable, and thus limited in capacity, elements connected to each other should be minimal. The shorter the chain of elements, the easier it will be for AGVs to pass the chain. If an AGV arrives at a chain of claimable elements it cannot claim only the first element, continue driving till the next element and claim that one. If an AGV that comes from the other side of the chain does the same they will meet halfway and will not be able to continue, as shown in figure 4.1. AGVs may thus enter the chain of claimable elements only if they can claim the whole chain before entering, preventing others to cross or enter the same path, as shown in figure 4.2. If chains become very long an AGV will claim a long part of the route, resulting in time losses for the AGVs crossing the chain. To prevent this chains should be kept as short as possible in this type of traffic control. Figure 4.1: Multiple AGVs on each others path creating a deadlock situation To keep the system clear, elements are always connected using nodes. An elevator will thus 52 K. Davina 2012.TEL.7687 An AGVS design tool Figure 4.2: An AGV reserves a path to make sure deadlocks will not occur always be connected to at least two nodes, which creates a chain of at least three elements. Any extra bi-directional paths, LUSs, PSs or CSs connected to those nodes will further increase this chain. To make provide the best possible flow the system should be designed in such a way that chains are minimized. K. Davina 2012.TEL.7687 53 An AGVS design tool 54 K. Davina 2012.TEL.7687 Chapter 5 Description and implementation of the model Since the conceptual model and framework, as well as the required theory, to build a DEST for a hospital logistics system is presented, these parts can now be combined into a useable tool. From the conceptual representation of the system as presented in chapter 3 a description can be created in the form of a pseudo code. In this step considerations are also made whether or not to implement certain details. From this pseudo code the coding itself can be done. If a part can be coded quite easily the step to a pseudo code is skipped and the model is coded right away. This describing and coding is done in the first section of this chapter, section 5.1. After this, in section 5.2, the control algorithms used in the DEST are described in pseudocode. These implemented control algorithms are a subset of the control algorithms presented in 4 as well as some algorithms that are an adaption of these algorithms to better suit the hospital environment. Finally the way the system handles data and how this data is saved and retrieved is elaborated in section 5.3. This section also describes the way data flows through the system: when inputs are expected from the user and how this is transferred to outputs. 55 An AGVS design tool 5.1 Delphi/TOMAS programming In this section the elements as they are programmed as objects in delphi are described. First all object classes are presented with some explanation on their procedures and variables. Some parts of this description require Delphi/TOMAS knowledge to read. Second, the elements that have a distinctive process will be elaborated on their process together with some Delphi/TOMAS definitions required to understand these processes. This is a direct translation of the processes described and depicted in section 3.5 displayed in a pseudo-code fashion. After that the limitations of the model emerging from these processes, the used programming language and those built in as a simplification of the real process together with the assumptions made to code the system are described. Finally, some general functions and procedures are further elaborated and presented in Delphi/TOMAS code. 5.1.1 AGVS Delphi class definitions For this program one object is created from which all objects descent: the TSimulationElement. The definition of this class is as follows: Listing 5.1 Class definition of TSimulationElement TSimulationElement = c l a s s ( TomasShape ) public B a s e C o o r d i n a t e : TCoordinate ; BaseOrientation : TOrientation ; published 5 C o n s t r u c t o r C r e a t e (Nm: S t r i n g ) ; end ; This class inherits all properties from the TomasShape element from the TOMAS package and it ensures the location of an element can always be accessed by other classes. From this class three new classes descent: TWaypoint, TAGV and TJob. These three elements form the basic elements of the AGV program. TWaypoint is the parent class for infrastructure elements as was described in 3.7.2. The system controller is the last part necessary and is implemented using the TGenerator, TDispatcher and public variables and functions. The class definitions of all these elements are further elaborated in this subsection. 56 K. Davina 2012.TEL.7687 An AGVS design tool TWaypoint class definition The TWaypoint class is presented in listing 5.2. The TWaypoint class is the parent element for all infrastructure elements. For each of these elements it creates a list with all connection making it possible to enter this element, the TomasQueue ConnectionsIn, to exit the element, the TomasQueue ConnectionsOut, a semaphore if the element is claimable (for instance nodes and elevators) and a TomasQueue containing all flags for AGV actions as explained in section 5.1.2. Listing 5.2 Class definition for the TWaypoint element 5 10 15 20 TWaypoint = c l a s s ( TSimulationElement ) C o n n e c t i o n s I n : TomasQueue ; ConnectionsOut : TomasQueue ; Semaphore : TomasSemaphore ; FlagQueue : TomasQueue ; private ChangeClaimTime : Double ; public C l a i m a b l e : Boolean ; F l o o r : TFloor ; published C o n s t r u c t o r C r e a t e (Nm: S t r i n g ; PFloor : I n t e g e r ) ; p r o c e d u r e AddFlag ( Fl a g : TFlag ) ; p r o c e d u r e CreateShape ; v i r t u a l ; a b s t r a c t ; p r o c e d u r e ShowShape ; v i r t u a l ; a b s t r a c t ; p r o c e d u r e MakeFlags ; v i r t u a l ; a b s t r a c t ; p r o c e d u r e S e t C l a i m F l a g s ( F l a g : TFlag ) ; p r o c e d u r e Claim (F : Double ) ; p r o c e d u r e R e l e a s e (F : Double ) ; end ; In the listing three variables are mentioned: ChangeClaimTime, which holds the last time the number of claimers was changed, which is used for occupation calculations, Claimable, which tells if the element is claimable or not, and Floor, which holds the floor information the waypoint element is on. The class also provides a number of procedures. The AddFlag, MakeFlags and SetClaimFlags procedures are for creating and adding flags to waypoints. Flags are signaling elements for the AGV in that the AGV will perform the flag action if the flag is meant for the passing AGV. How the flags are included in the AGV process is described in subsection 5.1.2. The flag element itself is defined as follows: K. Davina 2012.TEL.7687 57 An AGVS design tool Listing 5.3 Class definition of TFlag TFlag = c l a s s ( TomasElement ) public PFlagType : TFlagType ; PFlagAction : TFlagAction ; PPos : d o u b l e ; // P o s i t i o n a s p e r c e n t a g e o f t o t a l a r c l e n g t h 5 PTomasElementPointer : P o i n t e r ; published C o n s t r u c t o r C r e a t e (Nm: S t r i n g ; FType : TFlagType ; FAction : TFlagAction ; Po : P o i n t e r ; Pos : d o u b l e =0) ; end ; 10 MakeFlags creates claim and release flags for the waypoint. It adds a release flag to all outgoing waypoints using the AddFlag procedure of those waypoints. It also invokes its SetClaimFlags procedure using the created claim flag. This procedure will add the flag for the waypoint to all incoming waypoints. It will also invoke the SetClaimFlags of all incoming connections that are claimable using the claim flag already created. This will make sure an AGV notices that for instance the next twelve elements on its route are claimable, because of the flags it will encounter. It will then have to claim all these elements and thus deadlocks will be prevented. MakeFlags is a virtual abstract procedure meaning it has no actual coding in this class and all descending classes must implement the procedure. The Create procedure must be present to initialize the element and create the necessary queues and semaphore if necessary. The create procedure will also call upon the CreateShape procedure to create the shape of the waypoint. The ShowShape procedure is used to evaluate if the shape should be showed given the current floor that is viewed by the user. If the waypoint is on the same floor as the one viewed by the user it will be displayed. CreateShape and ShowShape are virtual abstract procedures. The procedures Claim and Release call the Claim and Release procedures of the elements Semaphore. It is added to register claim and release times. From the TWaypoint class all types of waypoints descent. The class definitions of these elements, the TNode for crossings, TArc for paths and roads, TParking for a parking spot, TCharging for a charging station and TElevator for an elevator. TStation and TBigStation 58 K. Davina 2012.TEL.7687 An AGVS design tool are the objects that implement the LUS. The TStation object can be seen as a dock, it holds the active process for removing jobs from the dock. The TBigStation object is a descendant of TNode and couples each dock to this node using a small road. The TBigStation object also handles the acceptance of jobs and assigning jobs and AGVs to docks. TJob class definition The class definition of the job element is presented in listing 5.4. It implements the procedures Create, CreateShape and ShowShape in the same fashion as for the TWaypoint element. The variables Origin, Destination, Priority, JobDistance and MaxDeliverTime are known when the job is entered into the system by the job generator. Floor is the current floor of the Job, Assigned AGV is the AGV that should pick up the job, CurrentAGV is the AGV that is currently carrying the job and RegInfo holds information for data registration purposes. A TJob will have a location in the system, but the orientation of the job is not implemented: A job will be oriented automatically by the AGV carrying it. Listing 5.4 Class definition for the TJob element 5 10 15 TJob = c l a s s ( TSimulationElement ) private public Floor : Integer ; Origin : TBigStation ; Destination : TBigStation ; AssignedAGV : TomasShape ; CurrentAGV : TomasShape ; Priority : Integer ; J o b D i s t a n c e : Double ; RegInfo : TJobRegistrationInfo ; MaxDeliverTime : d o u b l e ; published C o n s t r u c t o r C r e a t e (Nm: S t r i n g ; JOr , JDe : T B i g S t a t i o n ; Pr : i n t e g e r ) ; p r o c e d u r e CreateShape ; p r o c e d u r e ShowShape ; end ; TAGV class definition The class definition of the AGV is presented in listing 5.5. The procedures and variables of this class are described here: Create, CreateShape, ShowShape These procedures have the same function as for the other elements. It creates an instance K. Davina 2012.TEL.7687 59 An AGVS design tool of an object with the create procedure, creates necessary TomasQueues and assignes values to variables. The CreateShape and ShowShape methods will create the shape displayed in animation and will evaluate if the shape should be visible depending on the floor the user is currently viewing; Process This holds the AGV process as described in listing 5.13. It is called upon by the Tomas mechanism; Claim, Release, PerformOtherFlagAction These are the procedures the AGV will call when encountering a flag. Since a flag has a action coupled to it, the AGV will run the procedure belonging to the flag action; ToIdle, ToActive This will put the AGV in an idle state, thus ready to receive a new assignment, or in an active state, when the AGV got assigned a job; MoveToAdapted This is a custom implementation of the Tomas MoveTo command, taking into account the floor the user is currently viewing. Moving is done without rotating the AGV: time lost with turning is incorporated in the TurnLostTime variable that is called at every node; SetBattery, SetEnergyConsumption These procedures are used to set the corresponding variables; Pickup, Dropoff, DropJob These procedures are called when an AGV arrives at a pickup or a drop off. These also couple or uncouple the job from the AGV shape for visualization. The DropJob procedure is called when an AGV is assigned a job it cannot do because the job is unreachable. The time and energy needed for performing these actions is also simulated when calling this procedure. PowerNeededForTask This function calculates the power needed to perform a task. Since the AGV cannot know on beforehand how long it will take after performing the task to reach a charging spot, some assumptions are made in this calculation. It will calculate the minimum distance to reach 60 K. Davina 2012.TEL.7687 An AGVS design tool the job and the minimum distance to deliver the job. The maximum of these distances will be used as an estimate to reach a charging location. The whole power needed for driving, pickup and drop off will be multiplied by a changeable safety factor to incorporate waiting times and detours. Since the length of the detour depends on the algorithm used, the position of charging stations and the nature of the jobs to be transported, it will be up to the user to set this number. Listing 5.5 Class definition for the TAGV element 5 10 15 20 25 30 35 40 45 TAGV = c l a s s ( TSimulationElement ) private p r o c e d u r e Pickup ; procedure Dropoff ; p r o c e d u r e DropJob ; public Floor , AssignedElevatorNr : I n t e g e r ; Speed : Double ; PickupTime , DropoffTime , ElevatorEnterTime , E l e v a t o r E x i t T i m e , ParkingEnterTime , ParkingExitTime , ChargingEnterTime , ChargingExitTime , TurnDelayTime : d o u b l e ; E l e v a t o r C a l l i n g A r r i v a l T i m e : Double ; CurrentWaypoint : TWaypoint ; Route , ClaimedElements : TomasQueue ; D e s t i n a t i o n : TWaypoint ; Load : TJob ; // Load c u r r e n t l y on−board AssignedLoad : TJob ; // Load a s s i g n e d RouteCalculation : RouteCalculationFunction ; ParkCalculation : ParkCalculationFunction ; ChargeCalculation : ChargeCalculationFunction ; New : b o o l e a n ; // h e l p e r v a l u e f o r AGV t h a t has not y e t moved MyBattery : TBattery ; MyConsumption : TEnergyConsumption ; NeedsCharging : Boolean ; RouteToDock : Boolean ; R e g I n f o : TAGVRegistrationInfo ; published C o n s t r u c t o r C r e a t e (Nm: S t r i n g ; S t a r t L o c S t r : S t r i n g ; Sp : S i n g l e ; RC: R o u t e C a l c u l a t i o n F u n c t i o n ; CC: C h a r g e C a l c u l a t i o n F u n c t i o n ; PC : P a r k C a l c u l a t i o n F u n c t i o n ; TiPickup , T i D r o p o f f , TiElEn , TiElEx , TiPaEn , TiPaEx , TiChEn , TiChEx , TiTuDe : d o u b l e ) ; p r o c e d u r e CreateShape ; p r o c e d u r e ShowShape ; procedure Process ; override ; p r o c e d u r e Claim ( F1 : TFlag ) ; p r o c e d u r e R e l e a s e ( F1 : TFlag ) ; p r o c e d u r e P e r f o r m O t h e r F l a g A c t i o n ( F1 : TFlag ) ; procedure ToIdle ; p r o c e d u r e ToActive ; p r o c e d u r e MoveToAdapted (X, Y, Z , Step , Speed : Double ) ; p r o c e d u r e S e t B a t t e r y ( Value : TBattery ) ; p r o c e d u r e SetEnergyConsumption ( FDrivingEmpty , FDrivingLoaded , FParking , FWaiting , FPickup , FDropoff : S i n g l e ) ; f u n c t i o n PowerNeededForTask : s i n g l e ; end ; K. Davina 2012.TEL.7687 61 An AGVS design tool This class has a number of variables, most of the variables used are self-explanatory, but some of them are highlighted here: Speed The maximum speed of the AGV. If the current route element the AGV is on has a lower maximum speed, the AGV will lower its speed. Acceleration and deceleration are ignored in this simulation, this is because the number of times and the accumulated time an AGV has to accelerate or decelerate is small compared to the total driving time. This is mainly because AGVs accelerate and decelerate fast and drive long stretches; ElevatorCallingArrivalTime This variable will be set when an AGV calls an elevator. This calling will be done at the moment the elevator is able to claim the elevator for itself. After that the AGV might still have to drive for quite a while, when it arrives at the elevator it will only have to wait the remainder of the total waiting time; Route Contains TWaypoints, it is the route the AGV will have to travel in the order of the TomasQueue; ClaimedElements A TomasQueue of all the elements the AGV currently has claimed. If the AGV passes a flag referring to a waypoint it has previously claimed and is present in this queue it will release it again; Destination Destination is set when an AGV has no route and goes to pick up a job or go to a parking or charging station. When it finished its route Destination is nilled; RouteCalculation, ParkCalculation, ChargeCalculation Variables pointing to the function the AGV has to use to calculate which route it should take or to which parking or charging station it should drive; MyBattery The battery the AGV is currently using. The battery class contains charge parameters and functions to charge and de-charge the battery. The battery has user-definable values 62 K. Davina 2012.TEL.7687 An AGVS design tool for capacity, charging speed for the fast and slow charging regions and charging turning percentage. The charging turning percentage is the percentage at which the charging speed has to switch from fast charging to slow charging (normally around 80%). Especially when the AGV allows opportunity charging this option is important to incorporate; MyConsumption States how much the AGV consumes at different tasks. Values for pickup, drop-off, driving loaded, driving empty, waiting during operation (for instance for crossings and in elevators) and waiting while parking; RouteToDock Set to true when an AGV has a route to a specific dock at the LUS, when the AGV arrives at a dock it will set this parameter to false again; RegInfo Parameters saved and used for registering the AGVs actions. The values in this array are used to calculate the KPIs desired; The parameters do not contain a value for the type of AGV (mono- or bi-directional). The different time required for an AGV to turn because it is of a different type should be incorporated in pickup and drop-off times if extra maneuvering is required. If turning is also required to enter and exit an elevator, this delay can be incorporated in the parameters ElevatorEnterTime and ElevatorExitTime. TNode class definition The class definition of the TNode element is presented in listing 5.6. It shows that all nodes are created with a maximum capacity of one AGV at any moment by default. The user may define a different maximum capacity, but for a node this seems illogical. The variable Distance and the TomasQueue ShortRouteToNode can be used to save the distance and the route to that node from the node the calculation is made from by the route calculation function. K. Davina 2012.TEL.7687 63 An AGVS design tool Listing 5.6 Class definition for the TNode element TNode = c l a s s ( TWaypoint ) ShortRouteToNode : TomasQueue ; public D i s t a n c e : S i n g l e ; // For u s e with C a l c u l a t e R o u t e published C o n s t r u c t o r C r e a t e (Nm: S t r i n g ; X,Y: S i n g l e ; PFloor : I n t e g e r ; Cap : I n t e g e r = 1 ) ; p r o c e d u r e CreateShape ; o v e r r i d e ; p r o c e d u r e ShowShape ; o v e r r i d e ; p r o c e d u r e MakeFlags ; o v e r r i d e ; end ; 5 10 TArc class definition In listing 5.7 the class definition of the TArc element is presented. An arc has next to its base coordinate a second coordinate where the arc ends. An arc is always a one way element starting at the base coordinate and ending at the second coordinate. The length of the arc is also stored and calculated when the arc is created. The arc is created by specifying the starting node and ending node, it also retrieves its coordinates from these nodes. Functions for creating combinations of arcs into roads are presented in subsection 5.1.4. Listing 5.7 Class definition for the TArc element TArc = c l a s s ( TWaypoint ) public Length : Double ; S e c o n d C o o r d i n a t e : TCoordinate ; published C o n s t r u c t o r C r e a t e ( ConnIn , ConnOut : S t r i n g ) ; p r o c e d u r e CreateShape ; o v e r r i d e ; p r o c e d u r e ShowShape ; o v e r r i d e ; p r o c e d u r e MakeFlags ; o v e r r i d e ; end ; 5 10 TParking class definition The class definition for the TParking element is presented in listing 5.8. It implements the required procedures CreateShape, ShowShape and MakeFlags. It also has a Create procedure that initiates an instance and adds the created instance to a TomasQueue holding all the parking spaces. TCharging class definition The TCharging class definition, in listing 5.9, is in essence the same as the TParking definition. All the logic concerning charging is programmed into the battery class that is part of the AGV. 64 K. Davina 2012.TEL.7687 An AGVS design tool Listing 5.8 Class definition for the TParking element 5 TParking = c l a s s ( TWaypoint ) published C o n s t r u c t o r C r e a t e (Nm: S t r i n g ; X,Y: S i n g l e ; Conn : S t r i n g ; PFloor : i n t e g e r ) ; p r o c e d u r e CreateShape ; o v e r r i d e ; p r o c e d u r e ShowShape ; o v e r r i d e ; p r o c e d u r e MakeFlags ; o v e r r i d e ; end ; When creating an instance that instance will be added to a TomasQueue holding all the charging spaces. Listing 5.9 Class definition for the TCharging element 5 TCharging = c l a s s ( TWaypoint ) published C o n s t r u c t o r C r e a t e (Nm: S t r i n g ; X,Y: S i n g l e ; Conn : S t r i n g ; PFloor : i n t e g e r ) ; p r o c e d u r e CreateShape ; o v e r r i d e ; p r o c e d u r e ShowShape ; o v e r r i d e ; p r o c e d u r e MakeFlags ; o v e r r i d e ; end ; TElevator class definition The class definition for the TElevator element is presented in listing 5.10. For the elevator element the following functions and procedures are used: Create With this procedure a number of items are set. First the number of elevators that are in the group is set, next to the nodes the elevator is connected with. The elevator is created at location X,Y and connected with small roads. If the boolean bufferroom is set to true, it means that there is a buffer room in front of the elevator. This will create normal roads between the elevator and the connecting node. If a value is set for the number of places in the buffer room a road with a maximum capacity is created (see 5.1.4); CreateShape, ShowShape, MakeFlags These are the necessary procedures declared in the class TWaypoint; CallElevator function to calculate which elevator to use and how long it will take to get that elevator at the right floor. The way this waiting time is calculated can be found in figure 5.1. It depends on some random variables changeable by the user; K. Davina 2012.TEL.7687 65 An AGVS design tool RideToFloor This function returns the elevator ride time taking into account the times for opening and closing the elevator, the travel distance and the elevator speed; RideMeToFloor Moves the TSimulationElement with the elevator to the specified floor while taking the amount of time required to move in between these floors; GetElevatorNr Returns the elevator number of the elevator that can be used by the AGV; CalculateRideTime Calculates the time the elevator takes to get from one floor to another where the floors are designated by a number. Listing 5.10 Class definition of the TElevator element T E l e v a t o r = c l a s s ( TWaypoint ) public Speed : S i n g l e ; C u r r e n t F l o o r : Array o f I n t e g e r ; TimeLastClaim : Array o f Double ; E l e v a t o r O c c u p a t i o n : Array o f Boolean ; RandWaitingTimeDist : T E x p o n e n t i a l D i s t r i b u t i o n ; AverageWaitingTime : Double ; RandFloor , RandOccupied : T U n i f o r m D i s t r i b u t i o n ; OccupationChance : Double ; DriveInTimeLoss , DriveOutTimeLoss : Double ; published C o n s t r u c t o r C r e a t e (Nm: S t r i n g ; X,Y: S i n g l e ; C o n n e c t i o n s : Array o f S t r i n g ; E l s p e e d : S i n g l e ; PFloor , N r O f E l e v a t o r : I n t e g e r ; DITL ,DOTL: d o u b l e ; OccChance , AvgWaitingTime : d o u b l e ; BufferRoom : Boolean ; Buffe rRoomS ize : I n t e g e r =9999) ; p r o c e d u r e CreateShape ; o v e r r i d e ; p r o c e d u r e ShowShape ; o v e r r i d e ; p r o c e d u r e MakeFlags ; o v e r r i d e ; f u n c t i o n C a l l E l e v a t o r ( C a l l F l o o r , ElNr : i n t e g e r ) : Double ; f u n c t i o n C a l c u l a t e R i d e T i m e ( Z1 , Z2 : S i n g l e ) : Double ; f u n c t i o n GetElevatorNr : I n t e g e r ; p r o c e d u r e RideMeToFloor ( PFloor , ElNr : i n t e g e r ; Sen de r : TSimulationElement ) ; f u n c t i o n RideToFloor ( PFloor , ElNr : i n t e g e r ) : Double ; { Returns r i d e time } end ; 5 10 15 20 25 Next to these functions and procedures the following variables, which are initiated by calling the create statement, are implemented: RandWaitingTimeDist, AverageWaitingTime, RandFloor, RandOccupied, OccupationChance 66 K. Davina 2012.TEL.7687 An AGVS design tool Was the elevator just released by another AGV? Yes Elevator start from floor it was released from Use RideToFloor function to give elevator waiting time No Are all elevators occupied? N rEl = Number of elevators not occupied by AGVs No P (AllElevatorsOccupied) = P (Occupied)N rEl Assume elevator comes from a random floor. Get floor from RandFloor Yes Use RandWaitingTimeDist with an average of AverageWaitingTime to give elevator waiting time Figure 5.1: Process of determining the elevator waiting time RandWaitingTimeDist is the exponential distribution with an average of AverageWaitingTime (set by the user) to calculate the waiting time when necessary (see figure 5.1). RandFloor draws a random floor from the available floors when necessary. OccupationChance is used to calculate the chance that an elevator is available for the AGV and RandOccupied is used to draw a value between 0 and 1 to simulate this chance; CurrentFloor, TimeLastClaim, ElevatorOccupation These variables hold the current floor, the time it was last claimed and if the elevator is occupied, for all elevators separately; Speed The speed at which the elevators move. The time for acceleration and deceleration of the elevator are omitted in this simulation and can be compensated by adjusting the DriveInTimeLoss and DriveOutTimeLoss parameters; DriveInTimeLoss, DriveOutTimeLoss These values hold the time losses associated with door opening and closing as well as sensor delays. It can also be used to compensate for the losses when accelerating and decelerating the elevator. K. Davina 2012.TEL.7687 67 An AGVS design tool For elevators the expected distribution of the elevator over the different floors is not incorporated. The simulation assumes that the chance of the elevator being at a certain floor is equal for all floors. TStation and TBigStation class definitions The last elements described here are the elements that implement the LUS: the TStation and TBigStation classes. TStation is an implementation of a dock. TBigStation couples all TStations together to create the total implementation of the LUS. The class definition of the TStation element can be found in listing 5.11. It implements the standard procedures form its parent TWaypoint: Create, MakeFlags, CreateShape and ShowShape. The DeliverJob procedure is used by the AGV when it transfers the job to the TStation. The Process procedure is the active procedure that removes jobs after a certain time. This time is calculated using the DeliverJobRemovalTime exponential distribution with an average set by the user. All delivered jobs are in the JobsDeliveredQueue which are put there by the DeliverJob procedure. All jobs waiting for pickup are in the JobsQueue, these jobs are put there by a procedure belonging to the TBigStation class. The BelongsTo variable holds the TBigStation to which the TStation belongs. Next to these variables the TStation class also has a Jobs variable, for the number of jobs that passed this dock, and a MyQueueDisplay variable, which is used for animation purposes, in this case displaying the size of the queue. Listing 5.11 Class definition of the TStation element (implementation of a dock) T S t a t i o n = c l a s s ( TWaypoint ) public Jobs : i n t e g e r ; JobsQueue : TomasQueue ; J o b s D e l i v e r e d Q u e u e : TomasQueue ; BelongsTo : T B i g S t a t i o n ; DeliverJobRemovalTime : T E x p o n e n t i a l D i s t r i b u t i o n ; MyQueueDisplay : TQueueDisplay ; published C o n s t r u c t o r C r e a t e (Nm: S t r i n g ; X,Y: S i n g l e ; Conn : S t r i n g ; Cap : I n t e g e r ; PFloor : I n t e g e r ) ; p r o c e d u r e MakeFlags ; o v e r r i d e ; p r o c e d u r e ShowShape ; o v e r r i d e ; p r o c e d u r e CreateShape ; o v e r r i d e ; p r o c e d u r e D e l i v e r J o b ( FJob : P o i n t e r ) ; procedure Process ; override ; end ; 5 10 15 The class definition of the TBigStation element can be found in listing 5.12. The TBigStation 68 K. Davina 2012.TEL.7687 An AGVS design tool class is not an extension of TWaypoint, but one of TNode. It thus behaves like a node (since it couples all docks to the rest of the infrastructure), but implements some extra procedures and functions. Listing 5.12 Class definition of the TBigStation element (implementation of a station) 5 10 15 T B i g S t a t i o n = c l a s s ( TNode ) public MyStations : TomasQueue ; MyLoadStations : TomasQueue ; MyUnloadStations : TomasQueue ; DynamicLoadUnload : Boolean ; published C o n s t r u c t o r C r e a t e (Nm: S t r i n g ; X,Y: S i n g l e ; PFloor : I n t e g e r ; P S t a t i o n s : a r r a y o f T S t a t i o n P a r a m e t e r s ; MinLoad , MinUnload : I n t e g e r ) ; f u n c t i o n G e t U n l o a d S t a t i o n ( Value : P o i n t e r ) : P o i n t e r ; { AGV can a s k a t which s t a t i o n t o un lo ad } f u n c t i o n G e t L o a d S t a t i o n ( Value : P o i n t e r ) : P o i n t e r ; f u n c t i o n AddJob ( Value : TJob ) : Boolean ; { Add a j o b t o one o f t h e s t a t i o n s } p r o c e d u r e MakeFlags ; o v e r r i d e ; end ; All connected docks (TStation instances) are placed in one of three queues: MyLoadStations, for docks that are for loading jobs onto AGVs, MyUnloadStations for docks for unloading jobs from AGVs, and MyStations, for docks that can be used for both loading and unloading (dynamic docks). DynamicLoadUnload is a boolean set to true when dynamic docks exist. The user can define how many docks should be available for each of these functions. The procedures CreateShape and ShowShape do not need to be defined here, the ones from the TNode class are used. The procedure MakeFlags now also creates a flag that tells the passing AGVs that if it has to pickup or deliver a job at this station it has to call the functions GetLoadStation or GetUnloadStation to go to the right dock. At this moment the last part of the route the AGV has to travel will be added to its Route TomasQueue. The function AddJob is used to add a job to one of the docks. The station will then check which docks are available for loading and return this dock. The process belonging to the TBigStation element will take jobs from the input queue put there by the job generator and add them using the AddJob function. 5.1.2 Processes of the active elements In this section the general structure of the active elements processes is described. These elements are the AGV, the LUS, the job generator and the job distributor. The AGV process was depicted in a flow chart in figure 3.6. In that flowchart no interaction K. Davina 2012.TEL.7687 69 An AGVS design tool between AGVs was present. Since the simulation requires AGVs to wait for each other, as was explained in 4.2, some method has to be implemented to make sure the AGV claims certain route points for itself before occupying them. This is implemented with flags along the paths the AGV drives; the AGV will drive along a path till it reaches the next flag. At each flag it asserts if some action has to be performed. This also creates the possibility to not only put flags there for claiming limited resources, but also for releasing these resources and any other action that the system controller wishes to invoke. These flags can also be put on other infrastructure elements to invoke AGV actions before going on to the next element. The AGV process is modeled so that it will perform the functions described in the original flow model. The process is a loop and modeled according to the pseudo-code in 5.13. In the loop the calls to the necessary algorithms are defined: the routing and parking algorithms. A parking algorithm is required for both parking and for charging. The AGV will go to a parking or charging depending on the battery charge as mentioned in line 10 in listing 5.13. This decision is made based on two changeable simulation parameter: the opportunity charging percentage, SPo cp, as well as the chosen parking algorithm. When the AGV has no assigned job and its battery charge is lower than this percentage it will call the charging algorithm, if not it will call the parking algorithm. Setting this number at 100% will make sure AGVs will always call the charging algorithm if no job was assigned. If the AGV should go charging and the charging algorithm does not return an available space, the AGV will go to a parking space. This is also true the other way around. This means the number of charging spaces and parking spaces combined should at least be equal to the number of AGVs present in the simulation. The procedure to check if the battery charge is sufficient is an estimation of the required power. It calculates the power necessary to drive to the load in the shortest possible way, pick up the load, drive to its destination in the shortest possible way, drop off the load and drive to a charging location, all with the maximum speed of the AGV. The distance to a charging location is estimated as the maximum of the distances for driving to the pick up and driving to the destination. This total power consumption is multiplied by a factor for incorporating waiting times on the route, detour length depending on the route calculator and the position of charging 70 K. Davina 2012.TEL.7687 An AGVS design tool stations, SFreqpower , which is changeable by the user. If the current charge is not enough the AGV will take itself out of operation and go to a CS. When the AGV arrives at a CS it will charge at least to the minimum charging percentage, which is a changeable simulation parameter. During the initial charge the AGV will not be available for operation. After reaching the minimum charge it will be available for operation again and it will keep charging in blocks of 30 seconds. This means a maximum delay of 30 seconds is introduced in responding to a job. When an AGV is parked, it will remain at its position for blocks of 10 seconds introducing a maximum equal delay in response time to an assigned job. From the AGV process it becomes clear that the AGV will only move itself on an arc from flag to flag, the only other possibility for an AGV to move is when it is in an elevator, but this move is initiated by the elevator and not by the AGV. When on one of the other elements the AGV will check the flags and perform the necessary actions. From the process it is also clear that once an AGV has a route it will first complete the full route before returning to the beginning of the process. If the system wishes to change the route or destination of an AGV it has to do so using a flag. The LUS also requires processes for job acceptance and delivery as described in the flowcharts in figure 3.7 and 3.8. The delivery process is modeled according to the pseudo-code in listing 5.14. With this process the average queue length at a dock becomes visible. The average time it takes to remove a job from a dock is a parameter that can be set for a total station. The time it actually takes to remove the job is modeled with an exponential distribution, which is the most probable description of the process within the in TOMAS available distributions. The job acceptance process needs to work according to the pseudo-code in listing 5.15. If a station has both dynamic docks and loading docks this will ensure that jobs will always be put in a position as much to the front of the dock queue as possible and it will prefer putting jobs in a loading dock when the start position is equal for both dynamic and loading docks. This will also mean that for some configurations (when no specific loading docks are available or when all docks are full) jobs might not have a location to be put in. The system will then K. Davina 2012.TEL.7687 71 An AGVS design tool Listing 5.13 The AGV process 5 10 15 20 25 30 AGV p r o c e s s repeat i f (AGV has no r o u t e ) i f (AGV has no a s s i g n e d l o a d ) i f (AGV i s a t p a r k i n g ) s t a y parked i f (AGV i s a t c h a r g i n g ) stay charging i f (AGV i s somewhere d i f f e r e n t ) d e p e n d i n g on b a t t e r y c h a r g e algorithm ( f i n d parking or charging ) algorithm ( get route ) to parking or charging i f (AGV has an a s s i g n e d l o a d ) i f l o a d i s not on board i f p r o c e d u r e (AGV has enough b a t t e r y ) algorithm ( get route ) to pickup else g i v e j o b back t o c o n t r o l l e r go c h a r g i n g i f l o a d i s on board a l g o r i t h m ( g e t r o u t e ) t o drop o f f i f (AGV has a r o u t e ) w h i l e AGV has a r o u t e e n t e r t h e f i r s t r o u t e e l e m e n t i n AGV r o u t e i f t h e e l e m e n t i s an a r c d r i v e from f l a g t o f l a g and p e r f o r m a c t i o n i f t h e e l e m e n t i s not an a r c perform a l l n e c e s s a r y f l a g a c t i o n i f t h e e l e m e n t i s a LUS l o a d o r un lo ad i f un lo ad make AGV a v a i l a b l e f o r new j o b i f t h e e l e m e n t i s an e l e v a t o r go t o t h e r i g h t f l o o r 72 K. Davina 2012.TEL.7687 An AGVS design tool wait and try again after some time. This time loss will then be registered. Listing 5.14 The LUS job deliver process 5 LUS d e l i v e r p r o c e s s repeat w h i l e t h e number o f j o b s s t i l l s t a n d i n g a f t e r drop o f f = 0 wait draw t h e time t h e j o b w i l l s t a n d t h e r e from e x p o n e n t i a l d i s t r i b u t i o n w a i t drawn time remove t h e j o b Listing 5.15 The LUS job accept process 5 10 15 20 LUS a c c e p t p r o c e d u r e i f t h e r e a r e empty l o a d i n g d o c k s put t h e j o b i n t h a t dock else what i s t h e b e s t p o s i t i o n f o r a j o b i n a l o a d i n g dock ? i f t h e j o b i s not i n a dock y e t i f t h e r e a r e empty dynamic d o c k s put t h e j o b i n t h a t dock else what i s t h e b e s t p o s i t i o n f o r a j o b i n a dynamic dock ? i f t h e j o b i s not i n a dock y e t i f b e s t p o s i t i o n f o r dynamic dock > b e s t p o s i t i o n f o r l o a d i n g dock i f dynamic dock not f u l l put i n dynamic dock else i f l o a d i n g dock not f u l l put i n l o a d i n g dock i f t h e j o b i s not i n a dock y e t w a i t and t r y a g a i n r e g i s t e r l o s t time The process of the job generator is two-fold. One part is used to calculate the jobs before the simulation. In this case there are a lot of job generators active. When all these jobs are calculated another job generator is used to take all these jobs one by one and introduce them to the AGV system. The former job generators are created for each pair of stations and each distribution associated with those stations. The pseudo-code for this process can be found in listing 5.16. This process is different for each type of distribution. The latter job generator, listed in 5.17, is a single generator introducing all jobs into the AGV system. The last active process required for the system is the job dispatcher. This element assigns jobs to AGVs is one of the blocks in the system controller process in figure 3.9. This element dispatches jobs to the AGVs according to one of the algorithms presented in 4.1.1. The general process of this element can be found in listing 5.18. This is a general description of this process which can be different for some algorithms. For algorithms that redirect an assigned AGV when K. Davina 2012.TEL.7687 73 An AGVS design tool Listing 5.16 The Job Generator process for creating jobs 5 Job G e n e r a t o r pre−p r o c e s s w a i t t i l l s t a r t time r e p e a t w h i l e time < end time sample i n t e r −a r r i v a l time from d i s t r i b u t i o n o r f i x e d v a l u e w a i t i n t e r −a r r i v a l time from d i s t r i b u t i o n o r f i x e d v a l u e c r e a t e j o b f o r g i v e n s t a t i o n p a i r and g i v e n p r i o r i t y s a v e j o b with c u r r e n t time Listing 5.17 The Job Generator process for introducing jobs into the AGV system 5 Job G e n e r a t o r p r o c e s s repeat g e t f i r s t j o b s o r t e d on time from s a v e d j o b s w a i t t i l l j o b time put j o b i n o r i g i n a t i n g s t a t i o n queue p r o c e d u r e put j o b i n dock remove f i r s t j o b from s a v e d j o b s a new job enters the system to a job closer to its current location line 5 and 6 of this process will not be applicable in this fashion. How the algorithms are actually implemented can be found in section 5.2. Listing 5.18 The job dispatcher process 5 10 Job D i s p a t c h e r p r o c e s s repeat i f number o f u n a s s i g n e d j o b s = 0 wait i f number o f a v a i l a b l e AGVs = 0 wait c h o o s e an u n a s s i g n e d j o b based on a l g o r i t h m c h o o s e an AGV based on a l g o r i t h m a s s i g n t h e j o b t o t h e AGV make t h e AGV u n a v a i l a b l e make t h e j o b a s s i g n e d 5.1.3 Assumptions and limitations of the programmed model Animation displays only one level. Elevators are always shown, and objects moving through an elevator are also visible. The color of the arc represents the type of arc and if AGVs may drive in both directions. The AGVs will however drive through each other during animation; the actual driving next to each other was not modeled to ease programming. Next to that there is no real added value except for making it look nicer. Green lines are for roads where AGVs can drive in both directions. Grey lines are for one way roads, AGVs can only move in one direction. Dark green lines are roads traversable in both directions, but not simultaneously. 74 K. Davina 2012.TEL.7687 An AGVS design tool If a model is required where AGVs pass each other instead, two way roads may be modeled as two separate tracks and crossings may be modeled using more than one node as depicted in figure 5.2. This requires far more input from the user of the program but still gives the possibility to model individual lanes. Multiple elevators are modeled as one. If there is an elevator block of two elevators specified, then one will see at maximum two AGVs simultaneously in one elevator. Elevator waiting times are modeled using a exponential distribution, which, according to experts is the most appropriate estimation method. Figure 5.2: Two ways in which roads and crossing can be modeled. The top version is less work, but AGVs will seem to go through each other, the bottom version will make the animation more realistic. For the simulation output it will approximately yield the same results. 5.1.4 General procedures and functions CreateRoad This procedure can be used to create a road: it will create two TArc elements, one from the first node to the second and one from the second to the first node. For this type of road no flags are set for claiming or releasing the element. K. Davina 2012.TEL.7687 75 An AGVS design tool CreateRoadWithCapacity This procedure creates a road with a capacity defined by the user. This capacity will be the same for both directions. It will create two TArc elements with their own TomasSemaphores. Flags for claiming and releasing will be set upon initiation of the simulation. CreateOWArc This procedure creates a small road: it will create two TArc instances and only one semaphore with a capacity of one AGV. The two arcs will share this semaphore. Flags for claiming and releasing will be set upon initiation of the simulation. Since this capacity is very limited, usage of this element should be minimized if the layout allows it as depicted in figure 5.3. 1 AGV / 50 sec 10 m unlimited capacity unlimited capacity 1 AGV / 10 sec 1 m/s Figure 5.3: Limit the use of one way arcs - example. The above version allows 72 AGVs per hour, the bottom version 360 AGVs per hour. For color definitions see 5.1.3. 5.2 Implemented Control Algorithms In this section the logic and/or code of the algorithms used are presented. First the routing algorithms are elaborated. Secondly, the dispatching algorithms are presented. Finally the parking algorithms are discussed. 76 K. Davina 2012.TEL.7687 An AGVS design tool 5.2.1 Routing algorithms Dijkstra’s algorithm (DA) Dijkstra’s algorithm is the simplest algorithm to calculate a route, in Dijkstra’s case the shortest route. The working of Dijkstra’s algorithm is presented in listing 5.19. This algorithm is coded and presented to the user as one of the choices for routing the AGV. This algorithm will always be slower in computer calculation time than the A* algorithm for single floor AGV systems, this changes because of the presence of elevators. Dijkstra’s algorithm is however a good algorithm for verifying the system and is almost as fast in hospitals with a small number of nodes or possible roads. Listing 5.19 Dijkstra’s algorithm in pseudo-code 5 10 15 20 FUNCTION R o u t e C a l c u l a t o r ( S o u r c e node , T ar get node ) Make queue with a l l nodes S e t d i s t a n c e t o i n f i n i t y f o r a l l nodes S e t s h o r t e s t r o u t e t o node t o n u l l f o r a l l nodes Set d i s t a n c e to zero f o r source WHILE node queue i s not empty Take node with s m a l l e s t d i s t a n c e from node queue IF t h i s node i s t h e t a r g e t node return route IF t h i s node has d i s t a n c e i n f i n i t y Ta rge t node i s not r e a c h a b l e r e t u r n empty r o u t e Remove node from node queue C a l c u l a t e which nodes a r e c o n n e c t e d t o t h i s node FOR EACH o f t h e s e nodes C a l c u l a t e t h e d i s t a n c e t o t h a t node from c u r r e n t node Add d i s t a n c e t o c u r r e n t node f o r t o t a l d i s t a n c e IF t o t a l d i s t a n c e < s a v e d d i s t a n c e t o t h a t node s a v e d i s t a n c e t o t h a t node d i s t a n c e s a v e r o u t e t o t h a t node : s h o r t e s t r o u t e t o c u r r e n t node + r o u t e t o c o n n e c t e d node A* algorithm (ASA) The A* algorithm uses a cost function to calculate a route to the destination as explained in 4.1.2. The A* algorithm itself will produce the same result as Dijkstra’s algorithm, it just requires less calculation time. To apply this algorithm an estimation is required for the distance to the destination. One option is to use the direct distance to the destination. The problem is that an AGV that has to change floors will first have to go to an elevator. Using this way of estimation might send the AGV in the wrong direction. Another option is to check if floors have to be changed and then simply go to the nearest K. Davina 2012.TEL.7687 77 An AGVS design tool elevator. From that elevator the AGV can drive to its destination using the ASA. The problem with this way is that the found route is not necessarily the shortest route. A third option is to calculate the straight distances from the endpoint to all elevators and do the same for the to be calculated nodes. Then the best elevator (shortest distance to endpoint) can be found and the function will help the AGV in the right direction without overestimating the distance to the endpoint. To further increase the calculation speed of this algorithm at the cost of some accuracy the part of the cost function estimating the distance to the endpoint can be multiplied by a factor . The found route will have a maximal error of − 1. The pseudo-code for this algorithm can be found in listing 5.20. One can see that routes containing more than one elevator where the different elevators will not go directly from the originating floor to the destination floor are not evaluated for the estimation part of the costs. With this type of elevator configuration this algorithm will not necessarily find the shortest route. If the only possibility to get to the endpoint is using multiple elevators the estimation of the costs will be a big number until a node that has a direct elevator connection to the endpoint is found. This first part is actually the same as Dijkstra’s algorithm. After the node with a direct elevator connection to the end node is found the A* algorithm is used. Expected travel time algorithm (ETT) With this algorithm the time to reach a destination instead of the distance to the destination is used. It is an adaption of Dijkstra’s algorithm, but instead of using the distance it uses the average travel time on each waypoint. This only works when all AGVs have the same speed. This should make the AGV avoid congested areas. For the elevators the actual ride time is used instead of the average time on the waypoint. Firstly because the time spend in the elevator depends on the number of floors to be crossed. Secondly because AGVs will never have additional waiting time in elevators. Since the waiting time in front of an elevator is incorporated when calculating the expected travel time, this algorithm will still divide the AGVs over all elevators present in the system, if the elevators have the same characteristics with respect to waiting time and AGVs have to wait for each other at the elevators. If the system has such a big overcapacity with respect to elevators 78 K. Davina 2012.TEL.7687 An AGVS design tool Listing 5.20 The A* algorithm as implemented in pseudo-code e p s i l o n =1 5 10 15 20 25 30 FUNCTION R o u t e C a l c u l a t o r ( S o u r c e node , T ar get node ) Make queue with a l l nodes S e t c o s t t o i n f i n i t y f o r a l l nodes S e t s h o r t e s t r o u t e t o node t o n u l l f o r a l l nodes Set c o s t to zero f o r source While nodequeue i s not empty Take node with l o w e s t c o s t I f t h i s node i s t h e t a r g e t node return route I f t h i s node has c o s t i n f i n i t y t a r g e t i s not r e a c h e a b l e r e t u r n empty r o u t e Remove node from queue C a l c u l a t e which nodes a r e c o n n e c t e d t o t h i s node For each o f t h e s e nodes P a t h c o s t = t h e d i s t a n c e t o t h e node // E s t i m a t e d i s t a n c e t o end I f t h e node i s on t h e same f l o o r a s t h e Tar get node E s t i m a t e c o s t = d i s t a n c e with p y t h a g o r a s I f t h e node i s on a n o t h e r f l o o r than Ta rge t node C a l c u l a t e d i s t a n c e from t h e node t o e l e v a t o r s with p y t h a g o r a s C a l c u l a t e d i s t a n c e from e l e v a t o r s t o t a r g e t with p y t h a g o r a s E s t i m a t e c o s t = Min ( t o t a l d i s t a n c e f o r each e l e v a t o r ) I f no d i r e c t e l e v a t o r c o n n e c t i o n E s t i m a t e c o s t = 1000000000 Totalcost = Pathcost + e p s i l o n ∗ Estimatecost I f T o t a l c o s t < s a v e d t o t a l c o s t f o r t h e node Save new t o t a l c o s t Save new s h o r t e s t r o u t e t o t h e node K. Davina 2012.TEL.7687 79 An AGVS design tool that AGVs almost never have to wait for each other, AGV waiting times for the elevator are dominated by the average elevator waiting time parameter, in which case the choice of route is not dominated by the elevators. Some elevators might be more heavily used in this case than others. Distributed traffic pressure algorithm (DTP) For this algorithm a formula is used to correct the distance from one node to another keeping into account the traffic pressure on a route element. This will make sure AGVs choose routes that evenly divide the traffic pressure. If, for instance, AGVs can pass a certain corridor without waiting, but with a high number of AGVs passing per hour all personnel in that section will experience a high nuisance with respect to AGVs. Using this algorithm will distribute AGVs more evenly. The influence of the traffic pressure can be tuned with the parameter . The function for calculating the corrected distance, Dcorrected , is: Dcorrected = D˙T P , (5.1) where D is the original distance from one node to another and T P is the traffic pressure in passing AGVs per hour. By changing the influence of the traffic pressure on the correction can be changed. This also depends on the overall traffic pressure; if a busy part in the infrastructure handles 4 AGVs per hour should be different than for a busy part handling 25 AGVs per hour. If = 1 the DTP will behave as Dijkstra’s algorithm. For any value > 1 the traffic pressure is included in the calculation. Graphs for different values of T P and can be found in figure 5.4. The algorithm is an adaption of Dijkstra’s algorithm: the calculation is performed according to Dijkstra where distances are corrected using the presented function. 5.2.2 Dispatching Algorithms Next to the algorithms used for routing, a number of dispatching algorithms are implemented. The algorithms are chosen from the ones found in literature (section 4.1.1). Since dispatching is done centrally, both types of algorithms can be used. If a WIDA is used always the first job is taken from the queue and the algorithm is used to find a certain AGV. This means that the choice of job is on a first come first served basis. If a VIDA is used always the first AGV that came available is taken and the algorithm is used to find a certain job. The choice of AGV in 80 K. Davina 2012.TEL.7687 An AGVS design tool 25 =1 = 1.1 = 1.25 = 1.5 Correction ratio 20 15 10 5 0 0 1 2 3 4 5 6 Traffic pressure T P 7 8 9 10 Figure 5.4: Correction ratios for the distributed traffic pressure algorithm for different values of K. Davina 2012.TEL.7687 81 An AGVS design tool this case is on a first come first served basis. If the load on a system is high and the AGVS forms the bottleneck, the choice of AGVs for a certain job is always limited to one. This is because the AGVs will come available in the system one at a time, which is the case for a standard production system. In this case a WIDA will pick this AGV for certain, no matter which algorithm is used, thus rendering it useless. Therefore a VIDA should be used. If the load on the system is low and multiple AGVs are available for a pickup, the number of jobs to choose from for the dispatcher will be one, because the dispatcher is triggered at the instance a job is created. Using a VIDA algorithm will, in this case, always pick the single available job, no matter the algorithm, thus rendering it useless. Therefore a WIDA should be used. A WIDA and VIDA can be combined where the one chosen at any time depends on the load on the system. This should be done primarily because of the distribution of the load on the system during the day as was depicted in figure 2.5. The combination can also be made in the sense that the first algorithm ranks the stations, in case of a VIDA, or AGVs, in case of a WIDA, and after that the other algorithm is initiated. For example, the minimum remaining outgoing queue size (MROQS) algorithm (VIDA) can be used to rank stations, and when the station that is most critical is found, use the nearest vehicle algorithm (NV) to find the nearest vehicle for that station. These combinations were also made in literature ([ET84]) The impact of this choice compared to standard algorithms is researched in chapters 6 and 8. If a combination is made with the first come first serve algorithm (FCFS) or first available vehicle algorithm (FAV) algorithm, it actually means that this part can be ignored to get the traditional algorithm name. For instance, the FCFS/NV algorithm is the same as the in literature described NV algorithm. If this is the case for a certain algorithm, it is stated with its description. The algorithms implemented as well as their specific code is described here. The algorithm names are in the form VIDA/WIDA. Algorithms that work de-central are not considered here, these cannot be tested with this centrally controlled system. FCFS/FAV In this algorithm, a combination of FCFS and FAV, AGVs are added to an AGV queue upon creation and when they become idle again. Next to that jobs entering the system are added to 82 K. Davina 2012.TEL.7687 An AGVS design tool a job queue. In this algorithm the first AGV in the AGV queue is coupled to the first job in the job queue. The pseudo-code for the algorithm can be found in listing 5.21. This algorithm is the same as the FCFS and FAV algorithms used separately. Listing 5.21 The FCFS/FAV dispatching algorithm in pseudo-code 5 PROCEDURE Dispatching FCFS FAV repeat f i n d t h e f i r s t j o b i n t h e u n a s s i g n e d j o b s queue f i n d t h e f i r s t AGV from t h e a v a i l a b l e AGV queue r e t u r n j o b and AGV t o t h e j o b d i s p a t c h e r MOD-FCFS/FAV This algorithm has one change with respect to the FCFS/FAV algorithm: it uses modified first come first serve algorithm (MOD-FCFS). When an AGV becomes idle at a station it will first take a job from that station before taking on a job originating at a different station. The pseudocode for this algorithm can be found in listing 5.22. This algorithm is the same as the standard MOD-FCFS algorithm. Listing 5.22 The MOD-FCFS/FAV dispatching algorithm in pseudo-code 5 PROCEDURE Dispatching MODFCFS FAV repeat f i n d t h e f i r s t AGV from t h e a v a i l a b l e AGV queue l o o k f o r a j o b a t t h e s t a t i o n t h e AGV i s a t i f there i s a job take that job e l s e f i n d t h e f i r s t j o b i n t h e u n a s s i g n e d j o b s queue r e t u r n j o b and AGV t o t h e j o b d i s p a t c h e r MOD-FCFS/NV This is a combination of the MOD-FCFS and NV algorithms. This combination will take the job that first entered the system and that job will get the nearest AGV available. If the system is highly loaded, the influence of choosing this algorithm over the two previous ones should be negligible, since AGVs will only become available one by one: only one AGV will be available for handling the load. In that case the VIDA part of the algorithm will be used, which is the MOD-FCFS algorithm. The pseudo-code for this algorithm is presented in listing 5.23. K. Davina 2012.TEL.7687 83 An AGVS design tool Listing 5.23 The MOD-FCFS/NV dispatching algorithm in pseudo-code 5 10 15 PROCEDURE Dispatching MODFCFS NV repeat f o r each a v a i l a b l e AGV l o o k f o r a j o b a t t h e s t a t i o n t h e a v a i l a b l e AGV i s a t i f there i s a job take that job f i n d t h e f i r s t j o b i n t h e u n a s s i g n e d j o b s queue i f there i s a job f o r each a v a i l a b l e AGV i f t h e j o b and AGV a r e a t t h e same l e v e l use pythagoras i f t h e j o b and AGV a r e a t d i f f e r e n t l e v e l s c a l c u l a t e t h e d i s t a n c e from t h e AGV t o a l l e l e v a t o r s use pythagoras c a l c u l a t e t h e d i s t a n c e from t h e Job t o a l l e l e v a t o r s use pythagoras take the e l e v a t o r g i v i n g s m a l l e s t d i s t a n c e f i n d n e a r e s t AGV r e t u r n j o b and AGV t o t h e j o b d i s p a t c h e r MOD-FCFS/HRBC This dispatching routine combines MOD-FCFS and a highest remaining battery charge (HRBC). This algorithm will only show a difference with the FCFS/FAV and MOD-FCFS/NV algorithms when the system is lowly loaded. This can be a good algorithm when all AGVs only charge in the night and during the day the load should be divided among them to make sure all AGVs remain available for delivering loads. The advantage of this is that when a peak starts, all AGVs can still be available to handle this peak. In a system where battery capacity is not high enough to make it through the day, this algorithm introduces a problem: all AGVs will have their battery empty at approximately the same moment. All AGVs will go charging and the system will have a capacity problem. For this case the MOD-FCFS/LRBC in subsection 5.2.2 might be a better choice. The implementation of this algorithm can be found in listing 5.24. Listing 5.24 The MOD-FCFS/HRBC dispatching algorithm in pseudo-code 5 10 PROCEDURE Dispatching MODFCFS HRBC repeat f o r each a v a i l a b l e AGV l o o k f o r a j o b a t t h e s t a t i o n t h e a v a i l a b l e AGV i s a t i f there i s a job take that job f i n d t h e f i r s t j o b i n t h e u n a s s i g n e d j o b s queue i f there i s a job f o r each a v a i l a b l e AGV check remaining bat te ry c a p a c i t y f i n d AGV with h i g h e s t c a p a c i t y r e t u r n j o b and AGV t o t h e j o b d i s p a t c h e r 84 K. Davina 2012.TEL.7687 An AGVS design tool MOD-FCFS/LRBC This dispatching method performs in a similar way as the MOD-FCFS/HRBC algorithm in subsection 5.2.2 with the only difference that it picks the AGV with the lowest remaining battery charge instead of the one with the highest charge. This will make sure AGVs will go charging sooner in calm times and the number of AGVs charging simultaneously will keep low. The downside of using this algorithm is that there are less moments in time when all AGVs are available for work. STT/NV This algorithm produces a high system throughput but can ignore stations lying far outside the rest of the system. It will calculate which job can be picked up the fastest given the AGV that just came available. When multiple AGVs are available for one job it will pick the AGV closest to the job. The implementation of this algorithm can be found in listing 5.25. Listing 5.25 The STT/NV dispatching algorithm in pseudo-code 5 10 15 20 25 30 PROCEDURE Dispatching STT NV i f number o f a v a i l a b l e AGVs > 1 // p o s s i b l e improvement i f m u l t i p l e j o b s become // a t t h e same time : h u n g a r i a n method // i f m u l t i p l e j o b s a r r i v e t o t h e system a t t h e // i t p r o b a b l y o c c u r s a t a s i n g l e s t a t i o n // t h u s u s e n e a r e s t v e h i c l e a l g o r i t h m take the f i r s t job s e t job f o r each a v a i l a b l e AGV i f t h e j o b and AGV a r e a t t h e same l e v e l use pythagoras i f t h e j o b and AGV a r e a t d i f f e r e n t l e v e l s c a l c u l a t e t h e d i s t a n c e from t h e AGV t o a l l use pythagoras c a l c u l a t e t h e d i s t a n c e from t h e Job t o a l l use pythagoras take the e l e v a t o r g i v i n g s m a l l e s t d i s t a n c e f i n d n e a r e s t AGV s e t AGV e l s e ( 1 AGV a v a i l a b l e ) t a k e t h e a v a i l a b l e AGV s e t AGV l o o k f o r j o b s a t c u r r e n t AGV s t a t i o n s e t job i f no j o b w h i l e not a l l s t a t i o n s c a l c u l a t e d and no j o b c a l c u l a t e t r a v e l time t o c l o s e s t s t a t i o n are there jobs a v a i l a b l e at t h i s s t a t i o n s e t job s e t s t a t i o n as c a l c u l a t e d r e t u r n AGV and Job K. Davina 2012.TEL.7687 available same time , elevators elevators 85 An AGVS design tool 5.2.3 Parking (and charging) algorithms The algorithms in this section can be implemented for finding a parking spot or a charging station. It depends on the AGV which of the two is used at a certain moment depending on the user defined parameters for the AGV battery. The algorithm always returns a waypoint as the destination, so even when the AGV asks for a parking place, the algorithm can still return a charging station instead of a parking spot if this would optimize the situation. Once a parking spot or charging station is returned it is directly claimed by the AGV, before it starts driving. NPA The nearest parking algorithm (NPA) uses Dijkstra’s algorithm to calculate the distance to available parking places. The one nearest and available is returned by the algorithm. For charging stations this works in exactly the same manner. 5.3 Program workflow and data handling The program has to go through some steps before the user has the output. First the user should be able to define the layout (nodes, roads, elevators, charging and parking locations and the loading and unloading stations), the number and position of the AGVs and the jobs the system should handle in the simulation. Since the way jobs enter the system can be very different for each station and moment of the day, the choice is made to first calculate all the jobs the system will have to handle, before doing the simulation itself. This provides a job list from which the simulation is performed. This job list can also be used to run several scenarios in which layouts are changed. Using the same job list makes for easier comparison of these different scenarios. After all jobs are calculated a simulation run can be initiated either with or without animation. When the simulation is finished the data is saved and can be interpreted. The data should be displayed using the KPIs defined at an earlier stage. 86 K. Davina 2012.TEL.7687 An AGVS design tool 5.3.1 Data interaction and saving in the program To ease reuse and support easy changing of existing layouts, the program should provide an option for saving and loading of the scenarios with their respective outputs. Since the program works in multiple steps the data also has to be saved in between these steps. To make sure all data is correctly transferred between all these steps a consistent system to save and load data should be chosen. The simple choice is to save all data in text files. The negative site of this choice is the speed at which programs seek data in text files. Next to this the data in such a file is also almost unreadable for a user viewing the raw data. Another possibility is to use a database. The Delphi program supports a number of database types from which the user may choose. Since only one user at a time uses the same simulation, the database can be a stand-alone database. For ease of use a database type is chosen that does not require any extra installation on the systems used at Deerns: Microsoft Access. This database type also provides an easy way to open the database files and create any report necessary. Since this database type also provides good support, the choice is made to save all data in Access databases. The user will be presented with an empty database on program startup, but he can choose to open a previously saved database. All data will be in this single database, both the input and output of the simulation. 5.3.2 Generating and interpreting program output During the simulation run data is saved to the database. The way this data is saved is pre-defined and elaborated here. The data is stored in 4 tables: one for AGV data, one for job data, one for claim data and one for queue data. All this data is saved with the following parameters: name (can be the AGV name, the job name, the waypoint name or any other), time (the simulation time), regtype (a designation explaining the type of registration) and a regvalue (the value that needs to be registered). The regtype designations are summed up in appendix D. From this data in its raw form simple queries can be used to extract the data needed for calculating the key performance indicators (KPI). K. Davina 2012.TEL.7687 87 An AGVS design tool 88 K. Davina 2012.TEL.7687 Chapter 6 Verification and Validation of the model To make sure the created program does what it intends to do and gives useable output, verification and validation (V&V) has to be performed. According to [Sar05] the V&V steps displayed in figure 6.1 have to be performed: conceptual model validation, computerized model verification, operational validation and data validity. These four V&V steps are further elaborated in this section. Next to that the actual techniques applied within these steps are chosen and justified and the result obtained during the V&V process are presented. 6.1 Conceptual Model Validation With this step the translation of the real system to the conceptual model is checked. The basic steps and procedures that are present in the system as they were described in chapter 3 were validated with face validation and traces, which are the preferred methods according to [Sar05] . Face validation is done by system experts to check wether the logic of the system model is correct and if the model is reasonable for its purpose. This is done by checking the system process flow charts. Traces can also be done by experts and checks if entities move through the sub-models and the total model with consistency and the necessary accuracy. The experts consulted are listed in appendix E. 89 $*# /(4(3*,&"1# '&20 0*-)1'%#.3%2(-*2%,#&'#$%(#)*")(,$0.3#2*/(3#&2,3(2("$(/# '%*+"#&"#J&10-(#Z7# *"#.#)*2,0$(-7#8%(#)*")(,$0.3#2*/(3#&'#/(4(3*,(/#$%-*01%# /(4(3*,&"1#'9'$(2# ."# "&",/4.4( "&2( -*2%,.&$( )5"4%># $%(# )*2,0$(-&N(/# 2*/(3# 3.$('#4(-&5&).$&*"#." &'#/(4(3*,(/#$%-*01%#.#0*-)1'%#()#*$#"--.&$("&2(.-),%6 8%&'# ,.-./&12 -%&'"'.*&( )5"4%># ."/# &"5(-(")('# .F*0$# $%(# ,-*F3(2# ("$&$9# An AGVS design tool ."/#.#@&203.$&*"#G .-(# *F$.&"(/# F9# )*"/0)$&"1# )*2,0$(-# (;,(-&2("$'# *"# $%(# 8%(-(#(;&'$#'*2(#4/ )*2,0$(-&N(/#2*/(3#&"#$%(#%7)%#.-%&'"'.*&()5"4%7# *5# +%&)%# ."# 0"/(-' # /(')-&F(# $%(# )%.-.) # "+,-./0*123435* $&$9E#."/#,*''&F39#&$ # 6)573/08# "&2( #%41,'4# .-(# *F$ # )%#.-%&'.&$E#*"#$%( # 9,2:/;3<=.# D;/+=34,2=.# ####(,>/.# F9# "+4'#"0'.&$# +%. ##?=.4>=34,2# #?=.4>=34,2 # ."/#F9#5/)*'5%4.3.& # '&203.$&*"#2*/(3#( # ##2=.5747# 1C;/+40/23=34,2# *5# '9'$(2# $%(*-&('# #####=2>## # ##%=3=* # *(,>/.42B ."/# -('03$'7# @9'$(2 # ?=.4>435# '5%*#/(9",.2"'.*&7#8 # '*"#*5#'9'$(2#$%(*# $%(#/*2.&"#$%(#$%(* # 9,0;<3/+#"+,B+=0042B# 9,0;<3/+4@/>* 9,2:/;3<=.** &'#.1-((2("$7##8%&'# # ###=2>#&0;./0/23=34,2# (,>/.# (,>/.# $*#F(#)*"/0)$(/#*"# # G(#"*+#/&')0' # '3&1%$39#2*-(#)*2, # 9,0;<3/+4@/># $%(# *$%(-# ,.-./&12 # ######(,>/.# /(4(3*,(/# 5*-# .# '($ # #?/+4A4:=34,2# 0%)'1",(-*2%,#&'#$% # $.$&*"# A2&2&)E# *5# $% J&10-(#KO#@&2,3&5&(/#P(-'&*"#*5#$%(#Q*/(3&"1#R-*)(''# Figure 6.1: Verification and Validation processes in modeling *5#.#,.-$&)03.-#'$0/9 # .# +-&$$("# /($.&3(/# / G(# "*+# -(3.$(# 2*/(3# 4.3&/.$&*"# ."/# 4(-&5&).$&*"# $*# ',()&5&).$&*"# 5*-#,$%&'# '&2,3&5&(/# 4(-'&*"# *5#Verification $%(# 2*/(3&"1# ,-*)(''7# A@((# J&16 6.2 Computerized Model )(,$0.3#2*/(3#*"#. 0-(# K7E# 8*&0%)'1",( -*2%,( 9",.2"'.*&# &'# /(5&"(/# .'# /($(-6 ,"'.*&( -*2%,# &'# $%( 2&"&"1# $%.$# $%(# $%(*-&('# ."/# .''02,$&*"'# 0"/(-39&"1# $%(# In this part the translation of the conceptual model to the programmed model has to be verified. ,0$(-# '9'$(2# '0)%# )*")(,$0.3#2*/(3#.-(#)*--()$#."/#$%.$#$%(#2*/(3#-(,-('("6 This can be done using*5# multiple techniques.("$&$9# The techniques used here are: $%(# 2*/(37# 8%(# 4.$.$&*"# $%(# ,-*F3(2# &'# S-(.'*".F3(T# 5*-#animation, $%(# &"6 comparison /.$.#."/#-('03$'#5-* $("/(/#,0-,*'(#*5#$%(#2*/(37#8*-)1'%#.3%2(-*2%,(9%#.:.0"6 with mathematical models, degenerate tests, extreme condition tests, internal validity, parameter .&$E#*"#$%(#'&203.$& '.*&#&'#/(5&"(/#.'#.''0-&"1#$%.$#$%(#)*2,0$(-#,-*1-.22&"1# variability analysis and traces. 6.2.1 Animation 132 The TOMAS package for Delphi provides animation in a basic 3D view. Each of the elements has a simple representation which is used to create the animation. Studying this animation gives insight in the correctness of the model. After studying the animation for the different models created no inconsistencies were detected and as far as animation goes the system performs according to the way it was supposed to be programmed. 90 K. Davina 2012.TEL.7687 An AGVS design tool 6.2.2 Comparison with mathematical models For some simple systems mathematical models exist that calculate the queue sizes and average time in the system. This can be compared with the output of the simulation. For the system in figure 6.2 the system can be described as a queueing system which can be described as (using Kendall’s notation) an M/D/1 for the pickup of jobs and a D/M/1 system for drop-off of jobs. The first queue server system is tested using case 1 where the time after pickup by the AGV is known. For the second system the first part of the system is fixed and can be calculated, the drop-off by the AGV is done at a fixed rate and the jobs leave the system at an exponential rate. The values expected from these scenarios are as follows: 0m P average arrival rate: case 1: 1 job / 60 sec (exponential) case 2: 1 job / 50 sec (fixed) 1 m/s A B 25 m average removal rate: case 1: 0 sec / job case 2: 1 job / 40 sec (exponential) 0m Figure 6.2: Simple model used for validation by comparison with mathematical models Case 1 The driving time for a job should always be 25 seconds. The time it takes to remove the job from the system after it was dropped off is 0 seconds. The average time for a job in the queue in a M/D/1 system is given by the formula: w= ρ 2µ(1 − ρ) (6.1) where λ = 60 jobs per hour, µ = 72 jobs per hour and ρ = 60/72 = 5/6. This results in: w= 5/6 = 5/144 = 0.035 hours = 125 seconds. 2 ∗ 72 ∗ 1/6 (6.2) The average time a job is in the system should be 150 seconds. The average length of the K. Davina 2012.TEL.7687 91 An AGVS design tool pickup queue is given by the formula: Q= Case 2 ρ2 25/36 = = 25/12 = 2.1 jobs. 2(1 − ρ) 2 ∗ (1 − 5/6) (6.3) The average time a job is waiting for pickup is 0 seconds. The driving time for a job is 25 seconds. A job will arrive at the drop-off point every 50 seconds. The times between removing a job from the system is distributed exponentially and the system is thus a D/M/1 system. The average waiting time can be found in tables from [Pag82] and are for this type of system always a bit smaller than those of a M/D/1 system. From the tables the average waiting time is estimated with ρ = 72/90 = 0.8 as 68 seconds. Adding the driving time of 25 seconds the time in the system should be 93 seconds. Results As can be seen from the graph the average waiting times correspond with the numbers from mathematical models. Next to this the driving time for a job was always 25 seconds and the time it took to remove a job from the system was always 0 seconds. 92 K. Davina 2012.TEL.7687 An AGVS design tool Average Waiting Time (s) Mathematical model comparison: Average waiting time 180 180 160 160 140 140 120 120 100 100 80 80 60 60 40 40 Station A case 1 Station B case 2 Figure 6.3: The average waiting time as a result of the simulation. The simulation was run 10 times with TomasSeeds 1 to 10. The left box plot shows the average waiting time for Case 1, which was algebraically calculated as 125 seconds. The right box plot shows the average waiting time for Case 2, which was obtained from [Pag82] as 68 seconds. K. Davina 2012.TEL.7687 93 An AGVS design tool Mathematical model comparison: Average queue length 3 3 Average number in queue 2.5 2.5 2 2 1.5 1.5 1 1 0.5 0.5 Station A case 1 Station B case 2 Figure 6.4: The average queue length as a result of the simulation. The simulation was run 10 times with TomasSeeds 1 to 10. The left box plot shows the average queue length for Case 1, which was algebraically calculated as 2.1. The right box plot shows the average queue length for Case 2. 94 K. Davina 2012.TEL.7687 An AGVS design tool 6.2.3 Degenerate tests According to [Sar05], in a degenerate test the degeneracy of the model’s behavior is tested. For this test a simple mode is created with one AGV and two stations, each with one dock. The AGV can continue its work indefinitely without service or charging. With the setup as displayed in figure 6.5 this would result in a growing number of jobs waiting for pickup (on average 18 per hour are added to the queue) and a growing number of jobs waiting to be removed from the system (on average 12 per hour are added to the queue). P 1 m/s average arrival rate: 1 job / 40 sec (exponential) A B 25 m average removal rate: 1 job / 60 sec (exponential) Figure 6.5: Simple model used for degenerate validation test Results As can be seen from figure 6.6 the outcomes of the simulation are conclusive with the on beforehand calculated values. K. Davina 2012.TEL.7687 95 An AGVS design tool Queue length Degenerate test queue length results after 24 hours 550 550 500 500 450 450 400 400 350 350 300 300 250 250 200 200 Station A out queue Station B in queue Figure 6.6: Simulation results for degenerate testing. With the given arrival rate and removal rate the number of items in the queue after running for 24 hours should be 432 and 288 respectively. 96 K. Davina 2012.TEL.7687 An AGVS design tool 6.2.4 Extreme condition tests Case 1 Under extreme conditions the model should still produce plausible outputs. To test this the system in figure 6.7 is tested. Since this system does not provide any elevators it should only bring jobs to the station on the same floor as the originating station. Given that no route is possible from the moment the AGV wants to pickup the job, it should deny the job and only do the jobs that can be delivered. For the model displayed the number of jobs delivered to station C should be zero, the number of jobs delivered to station B should be 30 jobs per hour. C 1 job / min 1 m/s B A 30 meter Figure 6.7: Simple model used for extreme condition tests. The second floor is unreachable, so station C should receive nothing. Station B should receive half of the jobs, on average 1 job per 2 minutes. Case 2 As a second test, displayed in figure 6.8, a system is created with an elevator, but the occupancy of this elevator by other users is set to 100%, which should result in the AGV always waiting for the elevator. The waiting time will on average be the time specified as AverageWaitingTime by the user. In this model the trip time for the AGV should be 30 seconds of driving time with load and 30 seconds without load. It should be in the elevator for 2 times 5 seconds and it should have average waiting times of 2 times 30 seconds for the elevator. This results in a round trip time of 2 minutes and 10 seconds on average and an average job driving time of 1 minute and 5 seconds. K. Davina 2012.TEL.7687 97 An AGVS design tool Occupancy: 100% Average waiting time: 30 sec Speed: 1 meter / sec P 5 meter 1 job / 3 min B 1 m/s A 30 meter 0 meter Figure 6.8: Simple model used for extreme condition tests. The AGV will have to wait for the elevator every run resulting in this case in a round trip time of 2 minutes and 10 seconds. Case 3 In a third extreme situation, displayed in figure 6.9, multiple AGVs have to share a single charging point. This should result in AGVs waiting for one another to charge and very high waiting and in-system times. The AGVs will only use power for driving, resulting in a power consumption of 60 units per job. Since 1 job per 30 seconds is created, 60 units of power are required per 30 seconds, or 2 units per second. If this is equal to the amount supplied by the charging point, given the stochastic nature of the process and the fact the AGVs have to wait for each other to charge, waiting times for the jobs at station A will keep increasing. Therefore the charging speed at the single charging station is set at 15 and 50 units per second respectively. The simulation is also ran with 3 different seeds, but since the jobs arrive at a static interval and no other processes behave exponentially, this should not change the outcomes. This should be visible from the simulation. 98 K. Davina 2012.TEL.7687 An AGVS design tool Charging: 2 units / sec P AGV: Battery capacity: 150 units Usage: 1 units / meter 0m P 1 job / 30 sec (fixed) B 0m A 1 m/s C P P 30 meter 30 meter Figure 6.9: Simple model used for extreme condition tests. The AGVs combined can handle the job load easily if battery capacity would be infinite. The charging capacity in this system is the same as the average usage. Given the stochastic nature of the system and the single charging station shared by all four AGVs the waiting times at station A should continuously increase. Results Case 1 After running the simulation for 24 hours the amount of jobs delivered at station B is 719. One would expect 24 × 30 × 1 = 720 jobs. Since the first job is created at t = 1 minute, 719 jobs is the correct number. Station C received zero jobs. Case 2 At 1 job per 3 minutes (on average) 480 jobs are created by the system. This can be seen on the right side of figure 6.10. 480 jobs results in 480 ∗ 30 = 14400 driving meters with a load. Given the AGV speed this results in 14400 driving seconds, which can be seen in the same figure. Since the average elevator waiting time is set at 30 seconds, this should also be reflected in the simulation outcomes. Figure 6.11 clearly shows this. The job enroute time is somewhat lower than the 65 seconds calculated. This is because of an improvement to the system; the AGV will call the elevator directly when it has claimed it and will continue driving before actually stopping and waiting for the elevator. This claiming trigger is at 3 meters before the actual elevator, so it saves the job 3 seconds. K. Davina 2012.TEL.7687 99 An AGVS design tool Extreme condition test case 2: Total drive time and Jobs done 16,000 540 15,500 Total drive time (s) 15,000 500 14,500 480 14,000 460 13,500 Number of jobs transported 520 440 13,000 12,500 420 Drivetime w load Jobs Done Figure 6.10: Simulation results for extreme condition tests case 2. This simulation was run 5 times with TomasSeeds 1 to 5. The total time driven by the AGV with a load is on the left. The number of jobs delivered by the AGV at the destination is on the right. 100 K. Davina 2012.TEL.7687 An AGVS design tool Extreme condition test case 2: Average elevator calling time and job enroute time 31.5 62.4 31 62.2 30.5 30 61.8 29.5 Time (s) Time (s) 62 61.6 29 61.4 28.5 28 61.2 Avg Call Time Elevator Job enroute time Figure 6.11: Simulation results for extreme condition tests case 2. This simulation was run 5 times with TomasSeeds 1 to 5. The average elevator calling time is on the left. The job enroute time is on the right. K. Davina 2012.TEL.7687 101 An AGVS design tool Table 6.1: Outcomes for extreme condition tests case 3 Total for 24 hours seed Charge speed: 15 units/s 1 2 3 Charge speed: 50 units/s 1 2 3 drivingdistance jobdone jobpickup [m] 159951 1821 1822 159951 1821 1822 159951 1821 1822 171126 1902 1902 171126 1902 1902 171126 1902 1902 chargetime parktime drivingtime drivingtimetocharging drivingtimetoparking drivingtimeunloaded waitingtime total time number of AGVs total time per AGV [s] [s] [s] [s] [s] [s] [s] [s] 10276 154698 54640 71620 15390 18300 20648 345573 4 86393 10276 154698 54640 71620 15390 18300 20648 345573 4 86393 10276 154698 54640 71620 15390 18300 20648 345573 4 86393 3159 145228 57060 75958 18988 19120 26082 345595 4 86399 3159 145228 57060 75958 18988 19120 26082 345595 4 86399 3159 145228 57060 75958 18988 19120 26082 345595 4 86399 [s] Case 3 Running this case provides the results given in table 6.1. What can be seen is that the figures do not change when changing the seed, as expected. Second, the total of registered AGV times is only slightly smaller than the total simulation time (86400 seconds). Since the AGV tries to charge when it is idle, it will drive to the charging station. Since it can still accept a job, it will be provided a job only moments after it arrives, resulting in high drivingtimetocharging values and a low actual chargetime value. During the total simulation 86400/30 − 1 = 2879 jobs are created at station A. In this simulation only 1822 jobs at a slower charging rate and 1902 jobs at a higher charging rate are handled. The number of jobs waiting and the average waiting time at station A are thus very high. This can be seen in figure 6.12. The amount of jobs in the queue at the end of the running time is 977, which is exactly the number of jobs not handled by the AGV for the case where the charging rate is 50 units/s. From this figure the non-stochastic nature of this particular case can be seen: the lines are straight. 102 K. Davina 2012.TEL.7687 An AGVS design tool Extreme condition 20,000 1,000 800 Average Waiting Time Average Queue Length Queue Length 600 Length Waiting time [s] 15,000 10,000 400 5,000 200 0 0 0 10,000 20,000 30,000 40,000 50,000 60,000 70,000 80,000 90,000 Simulation time [s] Figure 6.12: Simulation results for extreme conditions test case 3. This simulation was run with a charging rate of 50 units/s. K. Davina 2012.TEL.7687 103 An AGVS design tool 6.2.5 Internal validity Case 1 The system in figure 6.13 is tested. The seeds for the different distributions are first kept the same for the first two runs and then changed for the third and fourth run. The seeds used are the first three seeds specified by the TOMAS seed package. The values should not change when the seed is kept the same. When the seed is changed the outcomes should be approximately the same. If multiple docks are available at a station, always one will be programmed for pick-up and one for drop-off; the rest of the docks is dynamic. Transit times for jobs can be calculated on basis of the distance to be covered by the AGV. These times will be lower than the actual times, but just by a small margin because of the low congestion density. The transit time for a job from A (Dock 1 or 3) to B is at least 124.1 seconds, from A (Dock 1 or 3) to C (Dock 2) 224.1 seconds and from C (Dock 1) to B 324.1 seconds. With the amount of jobs coming from each station the average job driving time should be 212 seconds. The average transit time should be a little bit higher because of AGVs waiting for one another and roads that are diagonal and thus a bit longer. 10 meter 90 meter 10 meter To B: 1 job / 10 min (exponential) To C: 1 job / 10 min (exponential) 10 meter C 10 meter C C 90 meter Charging: 100 units / min A1 A2 10 meter 100 meter A3 1 m/s AGV: Battery capacity: 5000 units Driving usage: 1 unit / meter (unloaded) 2 units / meter (loaded) Pickup & Drop-off: 100 units Waiting: 1 unit / s C1 C2 To B: 1 job / 15 min (fixed) B Job removal time for all stations: 5 minutes Figure 6.13: Model for internal validity tests. The model is run 4 times: the first two times with the same seed, the third time and fourth time with different seeds. 104 K. Davina 2012.TEL.7687 An AGVS design tool Case 2 The system in figure 6.14 is tested to include the elevator influence. Average waiting times for the elevator should be a combination of the utilization ratio, the average waiting time and the congestion in the system. If the elevator is occupied (50% chance) the average waiting time is 20 seconds. If the elevator is not occupied it will be on the required floor half of the time resulting in no waiting time or on the other floor resulting in a waiting time of 8 seconds. So if the claim is not a direct claim, as shown in 5.1, the average waiting time will be 14 seconds. Since the three charging stations are next to each other and all AGVs will have to use the same elevator, some congestion and consequently direct claims do take place. This is also because of the lack of parking space that will make the AGVs go to a charging station instead of parking. 10 meter 100 meter 100 meter 50 meter 10 meter To B: 1 job / 10 min (exponential) To C: 1 job / 10 min (exponential) A1 A2 10 meter 100 meter A3 1 m/s AGV: Battery capacity: 5000 units Driving usage: 1 unit / meter (unloaded) 2 units / meter (loaded) Pickup & Drop-off: 100 units Waiting: 1 unit / s C1 C2 To B: 1 job / 15 min (fixed) Elevator speed: 0.5 m/s Occupancy: 50% Avg waiting time: 20 sec B Level 1: 0 m 50 meter Job removal time for all stations: 5 minutes Level 2: 4 m 10 meter Charging: 100 units / min C C C Figure 6.14: This model is the same as the model displayed in figure 6.13 with the inclusion of an elevator. K. Davina 2012.TEL.7687 105 An AGVS design tool Table 6.2: Internal validity case 1: enroute and driving times [s] [s] seed 1 1 2 3 211 2.5 404 199778 83857 63507 52414 214 2.1 388 191989 81770 59370 50849 212 1.7 363 182517 76266 59287 46964 199778 191989 182517 enroutetime enroutewaiting jobsdone drivingdistance drivingtime drivingtimetocharging drivingtimeunloaded [m] [s] [s] [s] 211 2.5 404 199778 83857 63507 52414 driving time total [s] 199778 Results Case 1 As can be seen from table 6.2 the enroute time for jobs is consistent with the calculated enroute time of 212 seconds. The average time a job spends waiting enroute (thus waiting for other AGVs at crossings/stations) is also displayed. As was expected, the time per job is low. A second thing that is checked with this table is the total driving time of the AGVs with the driving distance. Since the AGVs drive at 1 m/s the driving time should be equal to the driving distance. This is also confirmed by the simulation. Case 2 The results from simulating case 2 are presented in table 6.3. Again the number of jobs picked up and the number of jobs done are displayed. Since three AGVs are used in this case, the maximum difference can be three, which is supported by the outcomes. The outcomes also show that not changing the seed will result in exactly the same values. The second run with the same seed was ran on a different computer. The time an AGV has to wait for an elevator on average is between 10.17 and 12.30 seconds. This is indeed somewhat lower than the predicted value of 14 seconds and is primarily caused by the number of direct elevator claims. The number of times the waiting time for the elevator was zero seconds is also displayed in the table. The time an AGV spends in the elevator is also displayed and should always be 8 seconds in this case. The simulation data also proved this: the standard deviation of this value is zero. The number of times an AGV had to use power that was not available was counted as batteryempty. These numbers do not mean the AGV had this number of unsuccessful runs, it means it may have had a few rides that it would not have been able to do in real life. For the case where batteryempty is 128 all traces were checked: the batteryempty state was registered 106 K. Davina 2012.TEL.7687 An AGVS design tool Table 6.3: Internal validity case 2: jobs done, elevator waiting times and batteries empty Seed batteryempty jobdone jobpickup waitforelevatorreal waitforelevator is zero callelevator waitinelevator Qty Qty Qty [s] Qty Qty [s] 1 1 2 3 9 312 313 10.17 168 604 8 9 312 313 10.17 168 604 8 128 328 328 12.30 142 551 8 46 311 313 11.07 177 605 8 at only 9 distinctive times in a time window of less than 100 seconds. It was thus probably only 1 AGV journey that failed. This is however a point of improvement for the DEST. For this simulation run the safety factor was set at 1, so no additional power was reserved for this purpose of drained batteries. 6.2.6 Parameter variability analysis In this section multiple systems are tested in different cases. In each of these cases some or all parameters are scaled. This should give an approximation on beforehand of what changes to expect given the knowledge of the code. These approximations should compare to the outcomes of the simulation to validate the program. Case 1 For the first case the previously used system in figure 6.8 is used. For this test the speed of the AGV and elevator are changed. The system is also run for AGV and elevator speed of 1.5m/s and 2m/s. This should result in enroute times of respectively 53.7 seconds and 47.5 seconds. Case 2 For this case the inputs of the previously used system in figure 6.14 are changed. The AGV battery capacity will be variated to 2500 units and 10,000 units combined with the original charging speed and charging speeds of 150 units per minute and 50 units per minute. On average the time for charging should be enough when charging at 100 units per minute, but combined with a stochastic process and a smaller battery capacity waiting times will still increase. A larger battery would mean a decrease in waiting times. To ensure no empty batteries the safety factor for the required power calculation is set at 1.25. K. Davina 2012.TEL.7687 107 An AGVS design tool Case 3 This case displays the differences in route congestion when choosing a different routing algorithm. The system used is the one in figure 6.15. For this layout, Dijkstra’s algorithm will always choose the shortest path: it will skip road 3 and 4. The A* algorithm should ignore road 1 and 2, because of the cost estimation factor of 1.1. The distributed traffic pressure algorithm (DTP) algorithm divides the load evenly amongst all roads. This should result in roads 1, 2, 3 and 4 to be used evenly. 100 m 100 m Road 6 B Road 3 Road 2 100 m Road 1 0m 101 m Road 5 100 m Road 4 Dijkstra's algorithm A* algorithm ( � = 1.1 ) 0m Distributed occupancy algorithm A Figure 6.15: Model for doing parameter variability analysis by changing routing algorithm. The dashed lines indicate the routes expected to be taken by the AGV when the associated algorithm is selected. 108 K. Davina 2012.TEL.7687 An AGVS design tool Table 6.4: Parameter variability analysis case 1: enroute times for different elevator and AGV speeds AGV and elevator speed 1 1.5 2 enroute early calling [s] [s] 61.4 3.0 50.7 2.0 45.3 1.5 total predicted [s] [s] 64.4 65.0 52.7 53.7 46.8 47.5 Table 6.5: Parameter variability analysis case 3: average number of vehicles on each road per direction Road Road Road Road Road Road 1 2 3 4 5 6 Dijkstra A-Star DTP 0.11 0.11 0 0 0.11 0.11 0 0 0.11 0.11 0.11 0.11 0.06 0.06 0.05 0.06 0.11 0.11 Results Case 1 From table 6.4 one can see that changing the speed parameter still provides conclusive numbers. The values from the simulation are close to the values from the prediction displaying consistency when varying parameters. Case 2 The outcomes of this case for the average waiting time and the number of jobs done can be found in respectively figure 6.16 and figure 6.17. From these plots one can see the impact the battery capacity has on the simulation outcome. Increasing the speed at which the battery charges, does not help a lot. In this system the time necessary to get to the charging point is dominant compared to the charging time itself. This explains why increasing the charging speed only increases throughput and decreases waiting times just a bit. Increasing the capacity of the battery does provide tremendous growth in throughput as well as a big decline in the average waiting time before pickup. Incorporating battery capacity in the simulation is thus an important improvement and grants the designer more insight in the designed AGVS. Case 3 The average number of vehicles on each road is displayed in table 6.5. From these numbers the correct working of the algorithms is seen: the AGV takes the path as predicted. K. Davina 2012.TEL.7687 109 An AGVS design tool Average waiting time for pickup 12,000 150 units/min 100 units/min 50 units/min 10,000 Time [s] 8,000 6,000 4,000 2,000 0 2,500 5,000 Battery capacity 10,000 Figure 6.16: Average waiting time for pickup for case 2 of parameter variability analysis 110 K. Davina 2012.TEL.7687 An AGVS design tool Number of jobs done at different battery capacities 400 150 units/min 100 units/min 50 units/min Number of jobs done 300 200 100 0 2,500 5,000 Battery capacity 10,000 Figure 6.17: Number of jobs done after 24 hours for case 2 of parameter variability analysis K. Davina 2012.TEL.7687 111 An AGVS design tool 6.2.7 Traces For this type of validation the text traces of the AGVs in the systems displayed in figures 6.15 and 6.14 are studied for inconsistencies and if they follow the logic as presented in listing 5.13. The traces performed did not display any inconsistencies. 6.3 Operational Validation In operational validation the outputs of the computer program are compared with the real world outputs of such a system. The techniques used to perform this validation are: face validity, operational graphics and parameter variability analysis. 6.3.1 Face validity Face validation will be performed by some knowledgeable experts at Deerns Consulting Engineers. They will try the testcase given in chapter 7. Results The behavior of the simulation outputs is according to the expectation of the experts. According to them the data outputted by the program looks reliable and consistent with their knowledge on these systems. The experts consulted are listed in appendix E. 6.3.2 Parameter variability analysis To do this analysis parameters for different cases are changed. These parameters should not be chosen in a way that makes it highly predictable what the outcome should be, as was used with parameter variability analysis in computerized model verification, but in such a way that the changes in the outputs of the system can be compared with system outputs as they would logically change in real life given the same changes. This will be done for the following case. Case 1 The system in figure 6.18 is used. Since parking places are distributed over the system and AGVs can come from either of these places, changes in the dispatching algorithm were the distance between the job and the AGV plays a role should improve one output parameter in particular: the average time to pickup. 112 K. Davina 2012.TEL.7687 An AGVS design tool C C C C R17 R16 R15 R14 Charging Stations: 2500 units / hour AGVs: Details in table R1 R2 R13 R3 R4 R5 R6 R11 R10 B3 R24 R9 P Floor 1: height = 0 meter Station B: To C, D, E, F, G: 10 jobs per day To F, G: 5 jobs between 14:00 and 17:00 To A: 20 jobs per day R25 R8 R23 R18 R19 R20 R21 A1 A2 R12 B4 R7 Elevator(s): Qty: 1 Speed: 0.5 m/s Avg. wait. time: 90 sec Occupancy: 40 % Elevator: Qty: 1 Speed: 1 m/s Avg. wait. time: 150 sec Occupancy: 75 % P B2 R22 A3 B1 Station A: To C, D, E, F, G: 3 jobs at 7:00, 11:30 and 16:30 To B: 20 jobs per day P P R111 R102 R106 R101 R104 R103 C Floor 2: height = 4 meter R107 R108 Station C: D E To A: 3 jobs at 8:30, 13:00 and 18:00 To B: 10 jobs per day Station D: To A: 3 jobs at 8:30, 13:00 and 18:00 To B: 10 jobs per day P Station E: To A: 3 jobs at 8:30, 13:00 and 18:00 To B: 10 jobs per day P R202 R204 R209 R201 R110 R109 R105 R203 G2 R208 R210 G1 R205 Station G: To A: 3 jobs at 8:30, 13:00 and 18:00 To B: 10 jobs per day To B: 5 jobs between 7:00 and 10:00 R206 R207 Floor 3: height = 7 meter F1 F2 Station F: To A: 3 jobs at 8:30, 13:00 and 18:00 To B: 10 jobs per day To B: 5 jobs between 7:00 and 10:00 Figure 6.18: Model used for operational parameter variability analysis. AGV details in table 6.6 K. Davina 2012.TEL.7687 113 An AGVS design tool Table 6.6: AGV parameters for model used for operational parameter variability analysis Speed Fast charging Slow charging Turning point Charge to minimal % Opportunity charging Safety factor power calculation Energy usage Pickup Dropoff Driving empty Driving loaded Waiting Parking [m/s] [Units/hour] [Units/hour] 1 40000 10000 65% 30% No 1.3 [Units] [Units] [Units/sec] [Units/sec] [Units/sec] [Units/sec] 65 50 10 15 5 1 For this system the routing algorithm will also be changed. Since multiple routes are available to the same destination other routes may be favorable because of congestion, anticipated waiting times or the objective of distributing the traffic load evenly. Results The result of the test case can be found in table 6.7. From this table one can see that using the combination algorithm STD/NV, a better result is obtained compared to the two partial algorithms it was made of. It is especially visible in the time it takes for a job to be pickup up (waitforloading): it outperforms its partial algorithms by 6% and 11%. Also, the AGV driving distance goes down, which reduces maintenance costs. If one looks at the dispatching algorithms that take into account the battery capacity, it is obvious that these do not improve the system looking at pickup time compared tot the STD/NV algorithm. They do have a lower utilization ratio. These algorithms thus might prove better in a system that has to cope with more loads. In the same table also a comparison is made with the same dispatching algorithm, but using the expected travel time (ETT) algorithm. Again the time to pickup is lowered, but this time at the cost of some extra kilometers made by the AGV as well as a higher utilization ratio. The STD/NV was also ran with the A* algorithm, which performed exactly as Dijkstra’s algorithm as expected. If one looks at the total improvement when compared to the standard FCFS/FAV case us114 K. Davina 2012.TEL.7687 An AGVS design tool Table 6.7: Parameter operational variability analysis case1: impact of changing the dispatching algorithm AGV drivingdistance Job waitforloading AGV parktime Hours available Utilization FCFS/FAV STD NV STD/NV HRBC LRBC STD/NV (ETT) 90.2 10.3 41.1 96 57% 89.6 9.8 40.9 96 57% 89.9 9.3 36.7 96 62% 88.0 8.7 36.4 96 62% 90.4 9.9 42.5 96 56% 88.0 10.7 38.0 96 60% 89.4 8.1 35.2 96 63% [km] [min] [hours] ing Dijkstra’s algorithm, the total improvement is for the pickup time from 10.3 minutes to 8.1 minutes, an improvement of 21%. The data for the two cases using the two battery capacity algorithms is quite different from the others. Especially the case where the AGV with the lowest remaining capacity is used does not perform good. The algorithm using the highest remaining capacity performs a lot better, but is still not good compared to the other algorithms. K. Davina 2012.TEL.7687 115 An AGVS design tool 6.3.3 Operational graphics The way the system changes during a run gives a lot of insight into the validity of the model. Operational graphics display the changes in time for all kinds of parameters during a run. Graphs will be made for several AGVS elements for the following cases. Case 1 The first case for which operational graphs are displayed is the model that was used for testing different routing algorithms (figure 6.15). Especially for the distributed occupancy algorithm the occupancy graphs over time of the route elements should converge, since that is the purpose of the algorithm. Case 2 The second case will display operational graphics of the system presented in figure 6.18 which is used for parameter variability analysis. Results Case 1 The graph belonging to road 2 of the system in figure 6.15 is presented in figure 6.19. From this graph one can see the convergence of the average number of AGVs. Since the number of jobs does not change over time the graphs also depict the AGV actually sparing the road when choosing the DTP algorithm, as was expected. Case 2 For this test two operational graphs are shown. One depicting the average time a job has to wait to be picked up in figure 6.20. The other graph, figure 6.21, depicting a part of a simulated day were the number of jobs created and the number of jobs delivered are displayed. In the first graph, figure 6.20, shows the average time to pickup for two different runs using different routing algorithms: one using Dijkstra’s algorithm, the other using the expected travel time algorithm (ETT) algorithm. The ETT algorithm should give a better result, since routing in this way avoids congested parts. For this case, however, the distance to most of the stations is too big if the second elevator is used. So only after a while, when the average occupation goes up a bit, the system starts using other routes than the shortest one. This can be seen in the graph. The graph thus displays the situation as would be expected from a real system, validating this simulated system. In the second graph, figure 6.21, one can see that the jobs are created in both situations using the same seed: they are created at equal times. On the other hand the number of jobs delivered 116 K. Davina 2012.TEL.7687 An AGVS design tool Average number of AGVs present on road 3 0.12 0.1 average number of AGVs 0.08 0.06 DTP Dijkstra A-Star 0.04 0.02 83100 81200 77700 75800 72300 70400 67800 65900 62400 60500 57000 55100 51600 49700 46200 44300 40800 38900 35400 33500 30000 28100 24600 22700 19200 17300 13800 8400 11900 6500 3000 1100 0 Simulation Time Figure 6.19: Chart displaying the average number of AGVs on road 2 K. Davina 2012.TEL.7687 117 An AGVS design tool 600 Average time to pickup 500 Time [s] 400 300 ETT Dijkstra 200 100 0 0 10000 20000 30000 40000 50000 60000 70000 80000 90000 100000 Simulated time of day [s] Figure 6.20: The average time a job has to wait to be picked up during the simulation run 118 K. Davina 2012.TEL.7687 An AGVS design tool is ahead for the case were a better dispatching and a better routing algorithm are used. This is exactly as one would expect from this situation. Job numbers during a part of the day 130 Number of jobs created (FCFS_FAV Dijkstra) Number of jobs delivered (FCFS_FAV Dijkstra) 125 Number of jobs created (STD_NV ETT) Number of jobs delivered (STD_NV ETT) Number of jobs 120 115 110 105 100 41000 41500 42000 42500 43000 43500 Simulated time of day [s] Figure 6.21: A small part of the simulated day displaying the number of jobs created and delivered for two different dispatching /routing algorithms 6.4 Data Validity In the development of the model two types of data were used. First the data for the conceptual model, which is the data used to schematically model the system and program the system. Most of this data was collected by Deerns Consulting Engineers ([Dav11]). The other data used in this research is from scientific publications. Since these publications are all reviewed the data is assumed correct. To ensure the user inputs the correct data into the program a GUI was created. The GUI will check user input for inconsistencies and makes sure the user couples the right route elements to each other. K. Davina 2012.TEL.7687 119 An AGVS design tool 120 K. Davina 2012.TEL.7687 Chapter 7 Test Case In this chapter a test case is used to demonstrate the workings of the created tool. This case is also presented to the engineers that will use the tool in the future to assess it. First the case itself is presented. Since the layout of the hospital itself is not yet totally defined, multiple options for the layout are available. After that, the flows expected in this hospital is presented. Third, a first estimation is made on how much AGVs are required. This is followed by multiple runs of the simulation tool to further design this particular system and test the impact of choosing a different layout design. This part covers just some tests to illustrate the usability of the tool: it is not a conclusive research on how an AGV system should be implemented in this hospital. After this, a preliminary advice on the different layouts is presented. The section is concluded with a conclusion on the usefulness of the tool for this type of system. This conclusion is also drawn by experts that will use the tool in the future. 7.1 The case: Medisch Centrum Alkmaar The hospital used for this case is the new to-be-built Medical Center of Alkmaar (MCA). A top view of the MCA can be found in figure 7.1. The center consists of a straight building and a wave-form building. In this building AGVs may only drive in the straight part of the building. For this building two scenarios are available at this time. One in which a logistics corridor is present in the basement of the building (figure 7.2), called Case 1, and one where this corridor is placed on the fourth floor (figure 7.3), called Case 2. The logistics point where most of the goods are received 121 An AGVS design tool Figure 7.1: Schematic top view of the to-be-built Medical Center of Alkmaar is in the basement, as indicated in the figures. Another important location is the apothecary: this is also a location that generates a lot of transport flows. The apothecary is located on the ground floor all the way to the right, as indicated in the figures. To investigate the impact of allowing transport on all floors, the case without a logistics corridor is also tested allowing AGVs on these floors. This is called Case 3. 7.1.1 Assumptions For these cases the number of elevators is set at 4, 4, and 2 for respectively elevator blocks 1,2 and 3. The occupancy chance of a single elevator is always 80%. For case 2 two extra elevators are required for the extra transport activities bringing goods to the fourth floor. This is done with 2 dedicated elevators for transportation with a occupation chance of 20%, indicated as Case 2 D, or 2 extra elevators in elevator block 1, indicated as Case 2 E. A summation of the elevator assumptions for the different cases is displayed in table 7.1. The rest of the assumptions done for all parameters required in the simulation are summed up in table F.1. All these values stay equal during the different cases. The energy usage data is from [McH95]. Values for the elevators, stations and AGV delays are estimated with the help of experts from Deerns Consulting Engineers. 122 K. Davina 2012.TEL.7687 An AGVS design tool 3m 3m 3m 3m 4m Apothecary Logistics Point 3m 1 30 m 2 3 95 m 95 m Figure 7.2: Overview of the hospital layout for case 1. The part where the AGV may drive is indicated with the green line, in this case only in the basement and from the elevators to the stations. The origin of transport jobs is always the logistics point or the apothecary and return flows will end here as well. Table 7.1: Assumptions for the elevators for the test case Logistics corridor Elevators: - block 1 - dedicated elevators - block 2 - block 3 occupancy per elevator - dedicated elevators K. Davina Case 1 Case 2 D Case 2 E Case 3 Yes No No No 4 0 4 2 80% na 4 2 4 2 80% 20% 6 0 4 2 80% na 6 0 4 2 80% na 2012.TEL.7687 123 An AGVS design tool 3m 3m 3m 3m 1 4m 2 3 Logistics Point 3m 30 m 95 m 95 m Figure 7.3: Overview of the hospital layout for case 2. The part where the AGV may drive is indicated with the green line, in this case only on the fourth floor and from the elevators to the stations. The origin of transport jobs is always the logistics point or the apothecary and return flows will end here as well. 124 K. Davina 2012.TEL.7687 An AGVS design tool Table 7.2: The number of carts to be transported per day for the Medisch Centrum Alkmaar can be found by scaling the known flows of the Jeroen Bosch Hospital. Jeroen Bosch Hospital Medisch Centrum Alkmaar 1120 690 32 20 150 45 81 52 60 23 4 92 28 50 32 37 14 2 Nr of beds Apothecary Logistics point: Meals Snack and beverages Linen Waste Consumables Unexpected transport Specific hospital waste For the cost and KPI calculations the following assumptions were made: a technical lifetime of 12 years, an interest percentage of 5%, no increase in costs for personnel and maintenance. The minimum service level required is 80%. The personnel in the non-automated environment uses electric vehicles and will always move 2 carts at once (conservative assumption, because some flows only provide one cart at once), this will cut the distance to be covered and the number of jobs in half. They are assumed to cover as much distance without a load as with a load. They will loose 2 minutes per job on elevator waiting and riding. This is kept the same for case 2, were actually more rides per job are required as well as more time. 7.2 Expected logistic flows Because this hospital is a combination of several old hospitals, exact logistics flows are not yet available. To make a good estimation of the flows to be expected another hospital case from which the flows are known is used: the Jeroen Bosch hospital. This hospital caters 1120 beds. Since the hospital in this case caters 690 beds the numbers of the Jeroen Bosch Hospital can be scaled. The size of the transport flows will than approximately be as stated in table 7.2. These flows are distributed during the day as in the Jeroen Bosch Hospital. After applying the scaling the total list of transports to be done can be found in table F.2 in appendix F. The numbering of the stations in this list is first the floor number, starting from zero on the ground floor, and second from right to left for all stations in figure 7.2. K. Davina 2012.TEL.7687 125 An AGVS design tool 7.3 Base requirement number of AGVs For the three provided cases the minimum transport distance of the job list can be calculated by the software. This results in 94 kilometers for case 1 and 3 and 111 kilometers for case 2. The number of jobs in the timetable is 548. Assuming the AGV drives twice as much as this distance and given the 16 hour time window of the jobs, the AGVs have to travel 11.8 kilometers per hour for case 1 and 3 and 13.9 kilometers per hour for case 2. Driving at 1 m/s this gives a time requirement of 3.3 hours per hour for case 1 and 3 and 3.9 hours per hour for case 2. Next to that the elevator time losses have to be incorporated. If 1 minute per elevator ride is assumed, together with 2 rides per job, 1096 minutes per 16 hours are lost, or 68.5 minutes per hour. In total 4.4 hours per hour and 5.1 hours per hour are required for both cases as a minimum. That is 5 AGVs for case 1 and 3 and 6 AGVs for case 2. Since the AGV system has to handle peaks and also (depending on the choice of battery) needs charging during this time, one AGV is added for both facts, giving a starting scenario with 7 AGVs for case 1 and 3 and 8 AGVs for case 2. 7.4 Analysis using the DEST From the starting number of AGVs calculated in the previous section simulation scenarios can be drawn up. For each of the cases multiple scenarios are created in which the number of AGVs, the used algorithms, the battery capacity and the number of parking and charging stations are varied. These simulation scenarios are stated in table 7.3. The charging stations for the AGVs are in this simulation always at the location of the logistics point and the number of stations there is the number of AGVs in the system. The impact of adding some parking or charging stations is investigated for case 2, where additional stations are located on the fourth floor next to each elevator position. This would mean if a job comes available at any station other than the logistics point, the AGV will reach it faster when choosing an appropriate dispatching function. The impact of making it a charging point instead of a parking space is also investigated. In these scenarios, the impact of choosing a different dispatching algorithm is tested a number of times for each case. The impact of choosing a different routing algorithm is only done for case 126 K. Davina 2012.TEL.7687 An AGVS design tool Table 7.3: The different scenarios simulated for the testcase. In each of the cases the number of AGVs and parking and charging spaces was changed, as well as the algorithms used for routing and dispatching Scenario 1 2 3 4 5 6 7 8 9 10 11 12 13 Case 1 1 1 2 2 2 2 3 2 3 2 3 2 2 3 3 3 AGV CS PS Battery capacity [Units] Dispatching Algorithms Routing 7 7 0 108,000 FCFS FAV Dijkstra 7 7 0 144,000 FCFS FAV Dijkstra 7 7 0 144,000 MODFCFS FAV Dijkstra D 8 8 0 108,000 FCFS FAV Dijkstra D 8 8 0 144,000 MODFCFS FAV Dijkstra D 8 8 0 180,000 MODFCFS FAV Dijkstra D 8 8 3 144,000 MODFCFS NV Dijkstra parking stations at each elevator on level 4 D 8 8 3 144,000 STD Dijkstra parking stations at each elevator on level 4 D 8 11 0 144,000 STD Dijkstra extra charging stations at each elevator on level 4 E 8 8 0 180,000 STD Dijkstra E 9 9 0 180,000 STD Dijkstra 8 8 0 108,000 MODFCFS FAV Dijkstra 7 10 0 144,000 STD ETT extra charging stations next to elevator block 2 on levels 1, 3 and Park Charge NPA NPA NPA NPA NPA NPA NPA NPA NPA NPA NPA NPA NPA NPA NPA NPA NPA NPA NPA NPA NPA NPA NPA NPA NPA NPA 5 3, since alternative routes do not exist for the layout in case 1 and 2. The parking and charging algorithm are kept the same. If the hospital sticks to not putting in a logistics corridor in the basement, scenario 13 investigates the impact of combining several improvement techniques: allowing driving on all floors, choosing a more sophisticated dispatching and routing algorithm and adding extra charging stations in the middle of the building on floors 1, 3 and 5. As can be seen the NV algorithm is not used as a part of the dispatching algorithm that much, only in scenario 7. This is because this part of the algorithm is only used when multiple AGVs are available for a single job. Since AGVs are all idle in the same location for most cases (the charging stations), all AGVs are as near the job. When adding additional parking spaces, choosing a nearest vehicle can be useful, however, in this case the job schedule is very demanding and this algorithm is nearly used. For a job schedule with more moments to choose from different AGVs for a single job and more decentralized parking and charging stations, it may be a useful algorithm to choose. K. Davina 2012.TEL.7687 127 An AGVS design tool Table 7.4: The SPI and KPIs for the different simulation scenarios for the testcase Scenario Scenario Scenario Scenario Scenario Scenario Scenario Scenario Scenario Scenario Scenario Scenario Scenario Scenario 7.4.1 1 2 3 4 5 6 7 8 9 10 11 12 13 SPI KPI Payback Payback [Years] KPI SL Service Level KPI TC 0.00 0.00 0.60 0.00 0.44 0.59 0.40 0.45 0.63 0.64 0.67 0.68 0.71 0.58 0.58 0.58 0.50 0.50 0.50 0.50 0.50 0.50 0.50 0.50 0.50 0.58 5 5 5 6 6 6 6 6 6 6 6 6 5 0 0 0.57 0 0.22 0.72 0.08 0.25 0.84 0.90 1.00 1.00 0.95 54% 72% 91% 48% 84% 94% 82% 85% 97% 98% 100% 100% 99% 0.80 0.80 0.79 0.74 0.74 0.74 0.74 0.75 0.74 0.75 0.74 0.80 0.80 Results All scenarios were simulated and an overview of the system performance indicator (SPI) and KPI values is given in table 7.4. From this table one can see that in the set of scenarios tested, scenario 13 is the best one according to its SPI. Scenario 9 performs better than scenario 8 because of the change of 3 parking spaces to charging spaces distributed over the fouth floor. Scenario 10 performs well because of the increased battery capacity. Scenario 11 performs well because of the additional AGV compared to scenario 10. Because the payback time of the system still falls in the same year, it does not have to give in on that KPI. It off course does require a bigger investment than the system used in scenario 10. If this investment would cost one extra year, the SPI would drop 0.05, dropping the solution in the ranking. More detail on this KPI might prove necessary. Scenario 13 combines all improvements of the other systems, resulting in the best overall SPI. If the same algorithms and improvements are used on case 1, one could expect an even higher SPI. This was not tested here. If one looks at the separate improvements from one scenario to another one can clearly see the impact of choosing a certain battery capacity on the performance of the system. For instance, when comparing scenario 5 and 6. This behavior can be explained by looking at a graph showing the number of unassigned jobs and the AGVs currently charging, which is shown during the simulation run. The graph for scenario 6 can be found in figure 7.4. When the peaks in the blue line (for charging AGVs) alternate with the peaks in the red line (for unassigned jobs) the AGVs use spare time to charge. When the peaks collide it means AGVs have to charge because 128 K. Davina 2012.TEL.7687 An AGVS design tool there batteries are running empty. Choosing a larger battery capacity might give the AGVs the possibility to keep working during job peaks and charge during calm times. In this case it means decreasing the average pickup time from 31 to 22 minutes. Another possibility is to spread out the jobs more evenly over the day. Whether this is possible depends on the hospital. The choice of battery capacity is closely related to the peaks in the schedule and the schedule should thus be as accurate as possible for a good decision on this. 40 35 Number of AGVs charging 30 Number of unassigned jobs 25 20 15 10 5 0 5 7 9 11 13 15 17 19 21 Simulated time of day Figure 7.4: The number of unassigned jobs in the system and the number of charging AGVs for scenario 6 The impact of giving the AGVs the possibility to drive on all floors instead of only on the fourth floor (case 2 versus case 3) can also clearly be seen: scenarios 5 and 12 compare this. In scenario 12 the battery capacity goes down, but the SPI goes up. This is mainly because of the improvement of the service level. In these systems the distance jobs cover is almost the same, but when an AGV comes available at a certain station and has to pickup a job at another station on the same floor, it takes a lot less time. This should be visible in the average time for a pickup. The average pickup time for scenario 5 was 50 minutes, while the average pickup time K. Davina 2012.TEL.7687 129 An AGVS design tool for scenario 12 was 14 minutes. With this average pickup time the low number for the service level KPI is logical. Adding parking spaces on the fourth floor did not improve the system: if one compares scenarios 5 and 7 the SPI goes down, only because the service level goes down. The AGVs will be quicker picking up a job in a quiet period when they are parked, but the AGVs will not have charged during the time they were parked. This results a big capacity loss when a peak of job requests enters the system and the AGVs must charge during the peak. If these extra parking spaces are converted to charging spaces, as is done when comparing scenarios 8 and 9, the service level goes up again. The average pickup time also decreases, from 25 minutes in scenario 8 to 15 minutes in scenario 9. The overall improvement from adding charging and parking stations is however not clear, in this case keeping all parking and charging stations next to the logistics point is probably the best option if horizontal transport on all floors is not allowed. 7.5 Advice following from the analysis Creating a hospital with a logistics corridor on the fourth floor, not adjacent to the logistics point, more travel as well as more elevator rides are necessary to deliver the jobs. One can see from the calculations that 17 kilometers more have to be travelled per day as well as over 300 jobs that require an extra elevator ride. This results in 2 FTE personnel extra. When the AGVs are concerned it leads to longer trip times and distances, resulting in more AGVs and higher maintenance costs. If an appropriate number of AGVs is chosen, jobs can still be delivered within a given time window. There is also the possibility to do transport to the fourth floor manually and let the AGVs handle jobs from the fourth floor. The impact of such a solution should be assessed in a follow-up research. If the hospital still wishes to choose a design without a logistics corridor in the basement an (almost) equivalent system can be formed by allowing AGVs to drive on all floors. This will lower the travel time and distances and additionally gives the option for route optimization. If the hospital has the option to install extra charging point distributed over different floors, this will give a boost to the overall system performance, which can, in combination with an improved battery capacity and smart algorithms, save an AGV. For a more thorough analysis, a better input of the transport jobs is required. Especially 130 K. Davina 2012.TEL.7687 An AGVS design tool peaks should be known in order to size all system components properly. From the preliminary analysis payback times of 5 to 6 years are possible, which is well within the technical lifetime of such a system. The hospital is thus able to cut its logistics expenses when choosing an AGV system. 7.6 The usefulness of the DEST As was demonstrated by this chapter, the DEST proves to be a good tool in aiding a user in the design of an AGV system for a hospital. It gives the possibility to compare different systems on the basis of an SPI and provides the possibility to research the impact of choosing different battery capacities as well as different layouts of the system. The logistic problem at hand was investigated and the impact of an alternative building layout was researched. Only a few of the possible solutions for the problem were tested. As input an estimation of the transport jobs was used. It thus does not provide a conclusive solution for the problem at hand, but it does provide insight in the impact of making certain decisions during the design process. 7.6.1 The usefulness as seen by experts A few experts from the transport and logistics department of Deerns Consulting Engineers tested the program. Their thought on the program are stated and signed in appendix E. The most important conclusions are cited here: 1. ”The results and the effect of variation of input parameters by a sensitivity analysis, appear reliable and are within range of existing systems.” 2. ”..., it should be possible to simulate with different lay-outs, numbers of stations, buffer positions, charging and parking positions and numbers and characteristics of AGV’s. The simulation model offers all these possibilities.” 3. ”Because of these extra contributions the tool became more flexible, giving us the option to adopt future developments in the simulations.” 4. ”the outputs generated by the tool are in sync with the expectations.” 5. ”A short explanation was sufficient to be able to use the simulation tool.” 6. ”The GUI is constructed logically, but will require an elaborated tutorial to define the K. Davina 2012.TEL.7687 131 An AGVS design tool correct manner and nature of parameter input for creating system lay-outs.” 7. ”It however remains necessary to have a certain level of basic knowledge of AGV systems and the associated logistic choices.” 132 K. Davina 2012.TEL.7687 Chapter 8 Conclusions With the possibilities of AGV Systems (AGVS) as presented in this research, hospitals are provided with opportunities to save on their logistics expenses and use the savings on operations or investments that add value. The Discrete Event Simulation Tool (DEST) developed in this research enables the user to substantiate the decision on whether to use AGVs for transports in hospitals. It provides the expected costs for the designed system as well as the service level to expect from this system. The research questions presented in the introduction will be answered here. Is it possible to develop a discrete event simulation tool to simulate the logistics environment within a hospital with respect to transports to be carried out by AGVs? Yes, it is. The created tool gives the user the possibility to test different scenarios en choose the most suitable scenario from the outcomes. It also gives the ability to test the designed system given the AGVS specifications of different AGV suppliers. With this, the user can make a better decision on which of the prospected suppliers can deliver the demanded system or on how much the system needs to be changed to be compatible with a suppliers catalogue. The DEST also provides the possibility to check a supplier’s counteroffer for applicability and correctness when the requested system is not available. With the tool the user is also able to assess the impact of different hospital layouts on the logistics system. A test case for the Medical Center of Alkmaar was simulated. In this simulation, the effect on the logistics system of canceling a logistics corridor in the basement and moving it to the fourth floor became visible. It means an increase of 2 AGVs on the 7 AGVs required with 133 An AGVS design tool a basement and thus adds a lot of costs. This can be solved by giving AGVs the possibility to drive on all floors. The impact of distributed charging stations throughout the hospital was also researched and meant a reduction of 40% in average pickup times in a certain case. In conclusion, the tool manages to simulate different hospital designs and with that, different logistic flow inputs as found in hospital logistics timetables. Which performance indicators are required to assess the feasibility and performance of such a system? To give the user the possibility to compare the different systems during design a system performance indicator was developed to display the system performance in a single number: the system performance indicator (SPI). This number is a combination of different factors, or key performance indicators (KPI). There are three KPIs important for the designers for this type of system: payback time, service level and traffic congestion. The payback time KPI is calculated with respect to the technical lifetime of the system: the closer the payback time comes to the technical lifetime, the worse the investment in a system is considered. Any improvement to the system, including but not limited to more stations, roads or AGVs, is reflected in a longer payback time and for that in this KPI. If the payback time exceeds the technical lifetime of the system the SPI becomes zero. The service level KPI is calculated with respect to the minimum required service level set by the customer. The more the service level goes over the minimum, the higher this KPI becomes. When the service level is lower than the minimum level the SPI becomes zero. The third part of the SPI is the traffic congestion KPI. This number reflects the traffic pressure in the system, thereby describing how well the system is able to handle upsizing of traffic flows and the number of AGVs. This is calculated using the driving time and the waiting time during transit required for a job. Next to these three numbers, more KPIs are calculated by the system giving insight into the traffic pressure on each infrastructure element, the length and average length of queues in the system. There are also KPIs for evaluating the time spent in the system by jobs as well as the usage of AGVs during the simulation. How important are these performance indicators towards the assessment of the total designed AGV system? The importance of the three KPIs with respect to the SPI was assessed by scaling and prioritizing. This was done by an AGVS expert. The conclusion was 134 K. Davina 2012.TEL.7687 An AGVS design tool that the KPI describing the payback time should contribute for 60% to the SPI score, the KPI describing the performance level should contribute for 30% and the KPI describing the traffic congestion should contribute for the remaining 10%. These weights would, according to the expert, give a correct ranking of systems given the current market conditions. The SPI was calculated for thirteen scenarios for the Medical Center of Alkmaar. The order in which the different scenarios were ranked based on this SPI. The SPI proves to be a good indicator when ranking the different scenarios. One improvement can be made however: the payback time is now calculated on a yearly basis, in some cases adding an AGV did not mean the system needed an extra year for payback, but it does mean a larger investment. This part of the SPI can be improved, providing a better ranking. The bandwidths used to scale the different KPIs is roughly consistent with the outcomes from the test case. If a system is designed where different bandwidths are applicable and where the minimum requirement for the service level is different another approach for the KPIs may be required. If a minimum service level of 99% is required, for instance, the weight of the KPI may be different as well as the way it is calculated. At the moment all KPIs behave linearly, in some cases a different function may be better applicable. Which control strategies are required to test such a system? To make sure a system of this kind works some standard algorithms are required. For routing, both Dijkstra’s algorithm and the A* algorithm where programmed. These algorithms should and did give the same results: the travelled distance of an AGV for both routing strategies was the same. For dispatching a first in first out algorithm was programmed. This algorithm also proved the correct working of the system. This was validated with system traces. Which control strategies are required to use such a tool in the design process? The implemented control strategies provide the user with a broad basis to perform different simulations for different situations. This will enable the user of the DEST to make an informed decision on which control strategy to use and communicate this with a prospected supplier of the system. It also gives the user the ability to communicate to the costumer how much a different algorithm can matter for the number of AGVs needed. For routing of AGVs different control strategies are required for correct implementation in K. Davina 2012.TEL.7687 135 An AGVS design tool hospital facilities. If a hospital is supplied from a logistics corridor where AGVs take an elevator and drop their load next to the elevator on a floor, the number of possible routes to a certain location is very minimal and most of the time 1. This means that choosing a different algorithm does not change anything. However, if a hospital provides the possibility to drive on all floors, multiple roads become possible from one point to another. In this case a choice should be made how the AGVs should be divided over the different floors. For this situation a routing algorithm was programmed to distribute the traffic pressure over all infrastructure elements or just over the elevators as well as an algorithm to take the route that gives the lowest expected travel time. These algorithms give the user the possibility to implement more advanced routing in hospitals where multiple routes to a destination are possible. This was also demonstrated for the Medical Center of Alkmaar providing a solution with their current design problem by using an expected travel time algorithm. For dispatching in hospitals one needs to take into account the distribution of transport jobs over the day. Especially food distribution has a big influence on this distribution, changing it from low demand to high demand. Since dispatching algorithms are designed for processes other than hospitals, a suggestion was made to combine different algorithms for this specific hospital application. In times of low demand a work-center initiated dispatching algorithm (WIDA) is used, whereas in times of high demand a vehicle initiated dispatching algorithm (VIDA) is used. This combination resulted in a decrease of average pickup times as well as a higher throughput rate during high demand times. For hospitals, were charging of AGVs is required, charging stations are also needed throughout the system. For the test case additional charging stations were distributed throughout the hospital. This did not improve the performance of the system. Since almost half of the jobs originate at the logistics point, letting the AGV idle at a different station almost always results in large driving times before arriving at a job. This might be solved by implementing algorithms that keep track of historical data in the system and not only position at the parking or charging station closest by, but calculates the location which is best suited at that time. This would require additional research with respect to parking algorithms and might improve pickup times and the systemwide service level. Which elements need to be included in the DEST to cover this specific application? If a hospital layout is compared to an industrial system additional elements are required to 136 K. Davina 2012.TEL.7687 An AGVS design tool simulate this specific environment. In this simulation the non-designated elevator element is added. This elevator element is shared with patients, visitors and hospital personnel, which makes calculation on beforehand of elevator availability times impossible. The elevator was implemented in a way in which the user of the tool can choose the occupation ratio of the elevator as well as the average waiting time for an elevator. This waiting time is exponentially distributed. Next to the elevator, AGV battery management is introduced. This gives the user the possibility to test systems with different battery capacities and charging speeds. Does implementing battery management influence the simulation outcomes? Yes, it does. Especially the possibility to change the capacity of the battery. Because of the stochastic nature of the system, a battery with a bigger capacity may be big enough to handle peak periods and charge in the off peak periods. An example system, a very simple system with 3 pickup and drop-off points, was programmed to test the influence of battery capacity on the average waiting time before pickup for a job. In the tested system, with battery capacities of 2500, 5000 and 10000 units, the average time to pickup went from 166 minutes to 150 minutes to 16 minutes. Especially the last doubling in capacity reduced the average pickup time 9-fold. For the test case, the Medical Center of Alkmaar, increasing the battery capacity by 20% meant an increase of the service level from 84% to 94% and a decrease in average pickup times of 29%. Are additional control strategies required in order to implement battery management? Control has to implemented to make sure the AGV has enough battery capacity to perform a certain job. This part was implemented in this tool. Control strategies for routing, parking and dispatching are not necessary. Implementing different control strategies for parking and dispatching do provide additional possibilities for design. For dispatching two additional strategies were implemented giving the possibility to pick an AGV based on its remaining battery charge (both highest remaining and lowest remaining charge). Highest remaining charge is needed when the battery capacity is sufficient to work for a long time and charge for a designated time. Lowest remaining charge is needed when charging during the work period is necessary and a low availability during long lasting peaks needs to be avoided. The tests performed did not provide conclusive evidence that using these control strategies improves the system. In other K. Davina 2012.TEL.7687 137 An AGVS design tool scenarios than the ones tested they might prove worthwhile. Does implementing elevators influence the simulation outcomes? Yes, it does. First of all, elevators create a part of the system that has a limited capacity. If multiple AGVs arrive at an elevator at the same time, these elevators will have to wait for each other. Next to this, the time it takes to have an elevator available behaves stochastically. The combination of these two factors can induce long waiting times when taking an elevator is necessary and analysis of results from a system with elevators provides good insight in the expected additional problems when compared to a system based on an average travel time. Are additional control strategies required in order to implement elevators? No, not necessarily. The way of interaction with the elevator already makes it possible to test additional delays because of sharing an elevator with other people in the hospital. Using the extra implemented control algorithms for elevators does create additional opportunities with the same system. Division of the traffic over the different available elevators results in lower elevator usage by AGVs and thus less nuisance for people. This simulation makes it possible to proof to a hospital what amount of nuisance can be expected, thus making it possible to take away doubt when advising on such a system. Correcting certain algorithms for implementation of elevators is necessary. The A* algorithm was corrected in such a way that the heuristic part of the algorithm takes into account the presence of elevators. The same is true for dispatching function that calculate the nearest vehicle: calculation of the distance towards such vehicles needs some different way of calculation, not using direct distances. Verification and validation of the model To make the DEST usable in logistics consul- tancy for the initiator of this research, Deerns Consulting Engineers, the DEST was verified and validated using a number of techniques. For validation of the conceptual model, face validation and entity traces were performed by experts. These experts did not find any inconsistencies in the conceptual representation of the AGVS. For verification of the computerized model seven different techniques were used: animation, comparison with mathematical models, degenerate tests, extreme condition tests, internal valid138 K. Davina 2012.TEL.7687 An AGVS design tool ity, parameter variability analysis and traces. The outcomes of these tests verified the correct implementation of the conceptual model into the DEST. Finally, operational validation was performed to check the consistency of the model when comparing with the real-life situation. The techniques used to perform this check were: comparison to other validated models, face validity, operational graphics and parameter variability analysis. The outcomes of these methods acknowledged the correct implementation of the reallife system into the DEST. Adaptation of the system for future changes in AGV systems and hospital logistics In order to give Deerns Consulting Engineers the possibility to change the program in the future, the AGVS was designed and implemented in such a way that extending the program can easily be done. Control algorithms can be added since the inputs and outputs of these algorithms are consistent and AGVs can be triggered to do other tasks along their way with the positioning of a new (trigger) flag along its route without changing the AGV process. Possibility of extending the usability of the software The simulation data is saved in a format which is easily accessible. The format, a Microsoft Access database, will also remain supported for the next couple of years. This provides the user with the option to change the graphical user interface according to new demands and wishes or, if required, replace it with a different one. Test case: Medical Center of Alkmaar To demonstrate the working of the DEST, a design was made for a test case. This study provided a good insight for the building designers: the decision to make only certain parts of the hospital accessible for AGVs has a great impact on the AGV system. This impact can now be quantified and aids in the decision making process for designing the hospital. The 13 scenarios tested provide good insight in what can be expected when certain decisions are made. For this hospital a payback time of 5 to 6 years can be reached, well within the technical lifetime of such a system, making implementation of an AGV system a solid cost saving opportunity. K. Davina 2012.TEL.7687 139 An AGVS design tool Recommendations Conclusions with respect to the improvement found using certain algorithms are based on one or a few examples. To check whether these algorithms are applicable to almost all hospital cases, tests need to be performed using different layouts. Next to this the larger tests were ran with a single seed value. In order to obtain better funded conclusions from these values more tests with different seeds should be performed. In order to further extend the program several steps have to be performed in the following order: 1. Implement a signaling system/flag type that makes route recalculation possible; 2. Implement blocking of waypoints and recalculation of route if that happens; 3. Implement a process that checks after every assignment if a job should be given to a different AGV or if the jobs of two AGVs should be switched; 4. Make it possible for AGVs to have two assigned jobs. This way an AGV may be assigned a job at the destination of the first job. It also makes implementing more advanced methods dispatching methods [BY96] possible; 5. Calculate a better idling position for the AGV based on historical data or advanced knowledge on future jobs. Implementing these steps will create a program capable of simulating advanced systems. Improvements to decrease the number of calculated average values needed for certain parameters, these numbers can be implemented in the simulation: 1. Add job handling speed. For certain jobs a maximum speed might be required; 2. Add AGV speed characteristics (acceleration, deceleration, corner speed); 3. Turn radius and orientation. This might be combined with a check if AGVs can make the turn suggested in the design; 4. Type of AGV (bidirectional or monodirectional). As a follow-up research, the impact of battery capacity on the design of hospital AGV system design should be investigated. The impact of adding more charging stations, better control strategies with respect to idling behaviour in combination with battery capacity can result in a different approach in design of such systems. 140 K. Davina 2012.TEL.7687 Bibliography [Aer05] Aerocom. Pneumatic tube systems in hospitals [online]. November 2005. URL: http: //www.aerocom-usa.com/files/AC3000.pdf. [ANP11] ANP. Minister: Geen vast budget meer voor ziekenhuizen. Trouw, March 2011. URL: http://www.trouw.nl/tr/nl/4500/Politiek/article/detail/1860061/2011/03/ 14/Minister-Geen-vast-budget-meer-voor-ziekenhuizen.dhtml. [BY96] Yavuz A. Bozer and Chih-kuan Yen. material handling systems. Intelligent dispatching rules for trip-based Journal of Manufacturing Systems, 15(4):226–239, 1996. URL: http://dx.doi.org/10.1016/0278-6125(96)84549-3, doi:10.1016/ 0278-6125(96)84549-3. [Che87] T C E Cheng. A simulation study of automated guided vehicle dispatching. Robotics and Computer-Integrated Manufacturing, 3(3):335–338, 1987. URL: http://dx.doi. org/10.1016/0736-5845(87)90041-X, doi:10.1016/0736-5845(87)90041-X. [Dav11] Koen Davina. Hospital Logistics. Technical report, 2011.TEL.7550, Transportation Engineering and Logistics, Delft University of Technology, February 2011. [DeT10] DeTelegraaf. Angst terugkeer wachtlijsten na afknijpen ziekenhuizen. De Financiele Telegraaf, December 2010. URL: http://www.zkn.nl/consumenten/nieuws/ angst-terugkeer-wachtlijsten-na-afknijpen-ziekenhuizen/. [Ege] Egemin. Egemin Fork Lift Vehicles [online]. URL: http://www.egemin.com/modules/ page.phtml?pageid=1476&linkreset=1. 141 An AGVS design tool [ET84] Pius J Egbelu and Jose M A Tanchoco. Characterization of automatic guided vehicle dispatching rules. Int. J. of Prodn. Res., 22(3):359–374, 1984. URL: http://dx.doi. org/10.1080/00207548408942459, doi:10.1080/00207548408942459. [GHS98] Tharma Ganesharajah, Nicholas G Hall, and Chelliah Sriskandarajah. Design and operational issues in AGV-served manufacturing systems. Annals of Operations Research, 76(0):109–154, January 1998. URL: http://dx.doi.org/10.1023/A:1018936219150, doi:10.1023/A:1018936219150. [HPK93] J Huang, U S Palekar, and S G Kapoor. A Labeling Algorithm for the Navigation of Automated Guided Vehicles. Journal of Engineering for Industry, 115(3):315–321, 1993. URL: http://link.aip.org/link/?MSE/115/315/1. [JBT] JBT. line]. John Bean URL: Technologies Hospital AGV’s [on- http://www.jbtc-agv.com/solutions/products/ special-application-automatic-guided-vehicles-agvs/ atlis-hospital-automatic-guided-vehicle.aspx. [JJS+ 07] J B Jun, S H Jacobson, J R Swisher, J B Jun, S H Jacobson, and J R Swisher. Application of Discrete-Event Simulation in Health Care Clinics: A Survey. Journal of the Operational Research Society, 50(2):109–123, December 2007. URL: http:// www.jstor.org/stable/3010560. [Kel03] Kelly tube systems. KELLY SYSTEMS AUTOVAC PNEUMATIC TUBE SYSTEM [online]. August 2003. URL: http://www.kellytubesystems.com/images/autovac. pdf. [KK96] C M Klein and J Kim. AGV dispatching. International Journal of Production Research, 34(1):95–110, 1996. URL: http://dx.doi.org/10.1080/00207549608904893, doi: 10.1080/00207549608904893. [KT91] Chang W Kim and J M A Tanchoco. Conflict-free shortest-time bidirectional AGV routeing. International Journal of Production Research, 29(12):2377–2391, 1991. URL: http://www.informaworld.com/smpp/content~db=all~content=a777787393, doi: 10.1080/00207549108948090. 142 K. Davina 2012.TEL.7687 An AGVS design tool [KT93] Chang Wan Kim and J M A Tanchoco. automated guided vehicle system. 31(9):2123–2138, 1993. Operational control of a bidirectional International Journal of Production Research, URL: http://www.informaworld.com/smpp/content~db= all~content=a778240894, doi:10.1080/00207549308956848. [LAdK06] Tuan Le-Anh and M.B.M. de Koster. A review of design and control of automated guided vehicle systems. European Journal of Operational Research, 171(1):1–23, May 2006. URL: http://dx.doi.org/10.1016/j.ejor.2005.01.036, doi:10.1016/j. ejor.2005.01.036. [LKY+ 03] Jae Kook Lim, Kap Hwan Kim, Kazuho Yoshimoto, Jun Ho Lee, and Teruo Takahashi. A dispatching method for automated guided vehicles by using a bidding concept. OR Spectrum, 25(1):25–44, February 2003. URL: http://dx.doi.org/10.1007/ s00291-002-0116-0, doi:10.1007/s00291-002-0116-0. [LV01] Chulung Lee and J A Ventura. Optimal dwell point location of automated guided vehicles to minimize mean response time in a loop layout. International Journal of Production Research, 39(17):4013–4031, 2001. URL: http://dx.doi.org/10.1080/ 00207540110054605, doi:10.1080/00207540110054605. [McH95] R McHaney. Modelling battery constraints in discrete event automated guided vehicle simulations. International Journal of Production Research, 33(11):3023– 3040, November 1995. URL: http://www.tandfonline.com/doi/abs/10.1080/ 00207549508904859, doi:10.1080/00207549508904859. [Muu08] Freek Muurling. Het ontwerpen van een simulatiemodel voor buispostinstallaties. Technical report, 2008.TL.7233, Transportation Engineering and Logistics, Delft University of Technology, 2008. [Nan00] WP Nanry. Solving the pickup and delivery problem with time windows using reactive tabu search. Transportation Research Part B: Methodological, 34(2):107– 121, February 2000. URL: http://linkinghub.elsevier.com/retrieve/pii/ S0191261599000168, doi:10.1016/S0191-2615(99)00016-8. [NT05] D Naso and B Turchiano. Multicriteria Meta-Heuristics for AGV Dispatching Control Based on Computational Intelligence. K. Davina 2012.TEL.7687 Systems, Man, and Cybernetics, Part 143 An AGVS design tool B: Cybernetics, IEEE Transactions on, 35(2):208–226, April 2005. URL: http: //dx.doi.org/10.1109/TSMCB.2004.842249, doi:10.1109/TSMCB.2004.842249. [OBK99] Christopher Oboth, Rajan Batta, and Mark Karwan. Dynamic conflict-free routing of automated guided vehicles. International Journal of Production Research, 37(9):2003– 2030, 1999. URL: http://dx.doi.org/10.1080/002075499190888, doi:10.1080/ 002075499190888. [Ozk09] A.G. Ozkil. Service robots for hospitals: A case study of transportation tasks in a hospital. In Automation and Logistics, 2009. ICAL ’09. IEEE International Conference on, pages 289–294, 2009. URL: http://dx.doi.org/10.1109/ICAL.2009.5262912, doi:10.1109/ICAL.2009.5262912. [Pag82] E Page. Tables of Waiting Times for M/M/n, M/D/n and D/M/n and Their Use to Give Approximate Waiting Times in More General Queues. The Journal of the Operational Research Society, 33(5):453–473, May 1982. URL: http://www.jstor. org/stable/2581664. [QH01] Ling Qiu and Wen-Jing Hsu. routing of AGVs. A bi-directional path layout for conflict-free International Journal of Production Research, 39(10):2177– 2195, 2001. URL: http://dx.doi.org/10.1080/00207540110038531, doi:10.1080/ 00207540110038531. [Sar05] R.G Sargent. Verification and validation of simulation models. In Simulation Conference, 2005 Proceedings of the Winter, 2005. URL: http://dx.doi.org/10.1109/ WSC.2005.1574246, doi:10.1109/WSC.2005.1574246. [SH92] Ihsan Sabuncuoglu and Don L Hommertzheim. Dynamic dispatching algorithm for scheduling machines and automated guided vehicles in a flexible manufacturing system. International Journal of Production Research, 30(5):1059–1079, 1992. URL: http: //dx.doi.org/10.1080/00207549208942943, doi:10.1080/00207549208942943. [Swi05] Swisslog AG. Memorial Hermann Southwest Hospital: Transcar AGV Robot System Automates Hospital Bulk Transport [online]. October 2005. URL: http: //www.swisslog.com/hcs-agv-memorialhermann.pdf. 144 K. Davina 2012.TEL.7687 An AGVS design tool [Swi07] Swisslog AG. Healthcare Solutions - AGV benefits [online]. December 2007. URL: http://www.swisslog.com/hcs-agv-benefits.pdf. [Swi08] Swisslog AG. RAIL-BASED CONVEYOR SYSTEMS [online]. April 2008. URL: http://www.swisslog.com/hcs-tvs-multicar-unicar-2.pdf. [Swi09a] Swisslog AG. Pneumatic Tube Systems [online]. June 2009. URL: http://www. swisslog.com/hcs-pts-translogic.pdf. [Swi09b] Swisslog AG. SYSTEMS TRANSCAR [online]. June AUTOMATIC 2009. GUIDED URL: VEHICLE (AGV) http://www.swisslog.com/ hcs-agv-transcar-overview.pdf. [TDT95] F Taghaboni-Dutta and J M A Tanchoco. Comparison of dynamic routeing techniques for automated guided vehicle system. International Journal of Production Research, 33(10):2653–2669, 1995. URL: http://www.informaworld.com/smpp/content~db= all~content=a779873002, doi:10.1080/00207549508945352. [TTT00] K. K. Tan, K.C. Tan, and K. Z. Tang. Evolutionary tuning of a fuzzy dispatching system for automated guided vehicles. Systems, Man, and Cybernetics, Part B: Cybernetics, IEEE Transactions on, 30(4):632–636, August 2000. URL: http: //dx.doi.org/10.1109/3477.865187, doi:10.1109/3477.865187. [Vee03] HPM Veeke. Simulation integrated design for logistics. PhD thesis, Delft University of Technology, Delft, June 2003. URL: http://resolver.tudelft.nl/uuid: 22d9b8ce-e32d-40b6-8b84-4c08c16720ec. [Vis06] Iris F.A. Vis. Survey of research in the design and control of automated guided vehicle systems. European Journal of Operational Research, 170(3):677–709, May 2006. URL: http://dx.doi.org/10.1016/j.ejor.2004.09.020, doi:10.1016/j. ejor.2004.09.020. [VO00] Hans P M Veeke and Jaap A Ottjes. TOMAS: Tool for object-oriented modelling and simulation. In Proceedings of the Business and Industry Simulation Symposium, pages 1–6, Washington D.C., April 2000. Delft University of Technology. URL: http: //citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.17.8158. K. Davina 2012.TEL.7687 145 An AGVS design tool [VOL08] HPM Veeke, JA Ottjes, and G Lodewijks. The Delft Systems Approach. Springer London, London, 7 edition, 2008. URL: http://www.springerlink.com/index/10. 1007/978-1-84800-177-0_7, doi:10.1007/978-1-84800-177-0{\_}7. [Wik11a] Wikipedia. A* search algorithm [online]. 2011. URL: http://en.wikipedia.org/ wiki/A*_search_algorithm. [Wik11b] Wikipedia. Dijkstra’s algorithm [online]. 2011. URL: http://en.wikipedia.org/ wiki/Dijkstra%27s_algorithm. [Wit11] Jochem Wit. Afstudeeropdracht simulatiemodel AGV. Deerns Raadgevende Ingenieurs BV, January 2011. 146 K. Davina 2012.TEL.7687 Appendix A Scientific paper 147 An AGVS design tool 148 K. Davina 2012.TEL.7687 Battery management considerations for the design of hospital based automated guided vehicle systems K. Davina∗ , Ir. J. Wit† , Ir. M.B. Duinkerken‡ , Prof. dr. ir. G. Lodewijks‡ ∗ Email: research@koendavina.com http://nl.linkedin.com/in/koendavina † Deerns Consulting Engineers, Rijswijk, The Netherlands Email: j.wit@deerns.nl ‡ Department of Marine and Transportation Technology (M&TT) Mechanical, Maritime and Materials Engineering Delft University of Technology, Delft, The Netherlands Email: M.B.Duinkerken@tudelft.nl Abstract—Developments in AGV systems makes applicability of these systems easier for hospital environments. These systems are different from production systems in the distribution of flows to be handled during a day and the non-availability of battery changing personnel: the AGVs will have to charge automatically. The effect of the difference in workload during the day and the necessity for charging makes battery management a crucial part of designing such a system. In this paper the effects of different design aspects of battery management is researched using discrete event simulation and a specific hospital test case. For that purpose, elevators and batteries are added to the simulations. The hospital researched has a very standard hospital layout and the outcomes are thus applicable for a lot of hospitals. The different aspects researched are the impact of battery capacity, the impact of adding distributed parking and charging spaces and the impact of choosing dispatching algorithms based on average pickup times and the number of jobs handled during a peak. Changing battery capacity can improve the average pickup times, in this situation the pickup time was cut in half. If it is a good solution for a certain scenario depends on the workload distribution. Adding parking or charging stations is something that should be done with care. In this situation the proposed addition of parking and charging stations in some cases doubled the average pickup time, depending on the dispatching algorithm. Adding these locations for AGVs should be substantiated with simulations to make it an improvement on the existing system. Choosing a dispatching system based on the remaining battery charge did not prove an improvement. Only in certain situations this type of dispatching may prove valuable. Concluding, adding battery management in simulations and designing whilst keeping battery management, and control of AGVs with this management implemented, in mind is important for hospital applications. Failure to do so might result in large pickup times not found in simulations ignoring battery capacity and dispatching from locations resulting in illogical job assignments. I. I NTRODUCTION Continuing improvements in the field of Automated Guided Vehicle (AGV) systems ease its implementation in sectors other than production environments. Recent developments in the Netherlands call for their application in hospital environments for logistics purposes. The types of hospital logistics flows suitable for AGV transport are numerous and include meals and snacks, linen, consumables, waste and medicines, which, on average, results in almost 150 transport meters per bed per day [1]. This specific type of application brings with special considerations with respect to battery management: a hospital does not want battery replacement stations, nor does it require 24 hour shifts. On the other hand, the varying demand in such a system creates possibilities for opportunity charging [2]. In order to choose the right battery and the right type of management of this battery for a hospital environment a study was performed to assess the impact of these choices. This type of study was already suggested by [2] and the necessity was again emphasized by [3]. In this paper the impact of battery management considerations is researched using a specific case: the Medical Center of Alkmaar, currently under development in the Netherlands. This hospital has a very standard layout for its logistics purposes and thus represents a big part of the hospitals for the Netherlands. First, this paper studies the influence of battery capacity on the number of AGVs required to handle a certain demand. Second, it studies the influence of distributed parking and charging stations throughout a hospital complementary to a central charging station were all AGVs can charge at once. Third, it researches the impact of two dispatching rules based on remaining battery capacity. This paper does not research the influence of technical limitations of a battery including, but not limited to, battery degradation, a lower capacity limit that may not be exceeded or requirements on the number and length of charging cycles. II. S IMULATION T OOL The impact of changing the before stated parameters is researched with a simulation tool extending the TOMAS framework with an AGV module for hospital systems. The original TOMAS framework was programmed by [4], the AGV module for hospital system by [1]. The AGV module adds, next to paths and nodes standardly available in any AGV software, batteries, charging stations and elevators to the simulation. It also provides the possibility to create custom Number of transports per half hour Number of transports 40 30 20 Apothecary 10 Logistics Point 0 6 8 10 12 14 16 18 20 22 Time of day Fig. 1. The number of transports per half hour for a day dispatching rules. This tool was thoroughly tested, verified and validated. III. S IMULATION INPUT For the simulation, input on AGV characteristics, system layout and transport flows are required. The flows are modeled by scaling the logistic flows table of another hospital. The transport times are kept the same, the number of loads is scaled. This gives the number of loads during the day per half hour as shown in Fig. 1. This is representation of the expected arrival times of jobs; the arrivals are modeled using certain distributions. The total flow input can be found in [1]. The Medical Center of Alkmaar has a layout as presented in Fig. 2. In its base form all charging stations are located at the logistics point. Most of the logistics flows originates at the logistics point, some originate at the apothecary. For all flows a return flow is also present. The three elevator blocks contain, from left to right, 4, 4 and 2 elevators at each block. Each elevator has a chance of being occupied of 80% with an exponentially distributed waiting time with a mean of 60 seconds when the elevator is occupied. The AGVs are assumed to loose 6 seconds entering the elevator, as well as 6 seconds leaving the elevator. The exact assumptions used for the elevators can be found in [1]. The energy usage of the AGVs is as for light loaded AGVs as presented in [2]. These figures are presented in Table I. Draws are given in Ampere or mAh. In this system an AGV will always move to the nearest parking space when it becomes idle and no more jobs are unassigned at that moment. If no parking space is available, it will move to the nearest available charging station. Only when the AGV reached that location, it can become available again for other tasks. The full logic and working of the system is described in [1]. Fig. 2. Overview of the hospital layout of the Medical Center of Alkmaar. Yellow blocks are stations. Red blocks are elevators. The part where the AGV may drive is indicated with the green dashed line, in this case only in the basement and from the elevators to the stations. The origin of transport jobs is always the logistics point or the apothecary and return flows will end here as well. TABLE I E NERGY DRAWS OF A LIGHTLY LOADED AGV Description Pickup Dropoff Driving empty Driving loaded Waiting Parking Unit [mAh] [mAh] [A] [A] [A] [A] Value 18 14 10 15 5 1 In the standard situation 8 AGVs are available with a battery capacity of 30 Ah. These AGVs are dispatched using the MOD-FCFS algorithm [5], meaning the first available AGV (FAV) is coupled to the first job that came into the system. AGVs will however first check if there is already a job at the station where they are currently at. In the case where additional parking or charging stations are added two extra dispatching algorithms are added: the shortest travel distance (STD) algorithm and the nearest vehicle (NV) algorithm. In the STD algorithm, instead of the job making the choice, the AGV that became idle the first will choose the job closest to its location. For the NV algorithm the AGV closest to the job longest in the system is chosen for that job. Only when there is already a job at the station the AGV ended, it will first do that job. IV. M ETHOD The influence of choosing a different type of battery management is measured by comparing the values for average time to pickup a load and the number of jobs done at 20:00 hours to measure the throughput capacity after a peak period when the batteries of all AGVs are lower on power. First the influence of changing the battery capacity is tested. In this case the battery capacity is changed to 40 Ah and 50 TABLE II I MPACT OF CHANGING BATTERY CAPACITY ON THE AVERAGE PICKUP TABLE III I MPACT OF ADDING PARKING AND CHARGING STATIONS WHEN USING THE TIME AND THE NUMBER OF JOBS DONE AFTER THE PEAK FIRST AVAILABLE VEHICLE Capacity [Ah] 30 40 50 Average pickup time [s] Index 826 100 572 69 388 47 Nr of jobs done at 20:00 [Qty] Index 525 100 522 99 534 102 Ah keeping the rest of the parameters equal. Second, the influence of distributed parking and charging spaces is investigated. First, this is done by adding 3 parking spaces on the third floor: one at every elevator. After that the same test is done, but now with 3 charging stations instead of parking stations. Third, the base case and the case using the 50 Ah battery are ran using different dispatching algorithms. One algorithm used is the HRBC algorithm, always picking the AGV with the highest remaining battery charge instead of picking the first available vehicle (FAV). The other algorithm used is the LRBC algorithm, always picking the AGV with the lowest remaining battery charge instead of picking the first available vehicle (FAV). V. R ESULTS The impact of changing the battery capacity of the AGV on the average pickup time and the number of jobs done at 20:00 is displayed in Table II. Especially the impact on the pickup time is significant. The fact that the AGV requires recharging during a period of demand diminishes the capacity of the system and an increase in battery capacity can help the AGV get through these periods without recharging. It may then recharge at a moment where the demand is lower. The impact of changing the battery capacity on the number of jobs done at 20:00 is not significant. The average pickup time is thus not only lower because more jobs are handled in total, it actually takes longer to get to a certain job and in the end (approximately) the same number of jobs is handled. In Table III the simulation outcomes of adding additional charging and parking stations is displayed. Simply adding these distributed parking places is bad for the overall system performance in terms of the average pickup time. This is partly because of the choice of algorithm in how it chooses the AGV. In case of the standard algorithm used here it chooses the AGV that came available first. This would mean one of the AGVs parking or charging on one of the added positions is required to pickup a load at the logistics point. At this place a number of AGVs is already parked. The influence of this algorithm on the poor performance of the distributed parking and charging stations is further investigated by choosing a different algorithm. Another explanation is the fact that almost half of the jobs in the system start at the logistics station. The chance that a job will start exactly at the station where the AGV is parked, is very small. The AGV thus still have to take an elevator to a job and although being very close to it, looses a big amount of time because of this. No additional spaces 3 additional parking spaces 3 additional charging spaces Average pickup time [s] 826 1644 1651 Nr of jobs done [Qty] 525 512 518 If the STD algorithm is used, the AGV will pick a job closest to the location it became available. This will make sure AGVs pickup a job if they are near to it, not first driving to the other side of the hospital to pickup a job. The impact of choosing this algorithm over the first available vehicle algorithm is displayed in Table IV. From this, one can see the impact of this algorithm when no additional parking and charging stations are implemented. It diminishes the average pickup time by 35%. Adding parking or charging stations, however, still creates a slower responding system, compared to a system without additional parking and charging stations. This stems from two things. First, the order in which AGVs choose where to go is in the order in which they became idle. If the AGV that first becomes idle is at one of the distributed parking or charging spots, it has a big chance needing to go to the logistics station, making it actually a bad choice for that AGV to pickup that job when other idling AGVs might be near that station. If on the other hand a peak in demand enters the system, the AGVs can handle more transports, going rapidly from one drop-off to the next pickup, which can be seen from the number of jobs done in Table IV: for all situations the number of jobs done at 20:00 (in the peak) goes up. Second, and this is only applicable to charging stations, if an AGV needs to charge because of battery depletion, it will go to the nearest charging station. After charging, the closest job is probably not at the station next to where the AGV is charging and there is a big chance the AGV will need to take the elevator before reaching the nearest job. If AGVs are all charging at the logistics station, there is a big chance a job will be available there when the AGV finished charging. In conclusion, this generates much higher average waiting times than without distributed parking and charging stations. Alternatively, positioning vehicles at a better location depending on the jobs expected might prove useful, studies on optimal vehicle dwelling locations do promise shorter response times [6]. However, these studies ignore battery management and elevators, as are required in hospitals, and thus are not representative for this specific application. Further research should be done, addressing this possible improvement. Using the NV algorithm for choosing the AGV produces the output as listed in Table V. If no additional spaces are added this algorithm performs almost the same as for the FAV algorithm. If additional parking and charging stations are added, the average pickup times go up, however, not as much as for the FAV algorithm. TABLE IV I MPACT OF ADDING PARKING AND CHARGING STATIONS WHEN AGV S TABLE VI I MPACT OF CHOOSING A BATTERY CAPACITY DRIVEN ALGORITHM ON THE PICKUP THE JOB CLOSEST BY AVERAGE PICKUP TIME No additional spaces 3 additional parking spaces 3 additional charging spaces Average pickup time [s] 536 1173 1116 Nr of jobs done [Qty] 528 528 529 TABLE V I MPACT OF ADDING PARKING AND CHARGING STATIONS WHEN USING THE NEAREST VEHICLE FOR THE OLDEST JOB No additional spaces 3 additional parking spaces 3 additional charging spaces Average pickup time [s] 823 1481 1462 Nr of jobs done [Qty] 523 520 520 Capacity [Ah] 30 50 FAV [s] 826 388 HRBC [s] 841 396 LRBC [s] 895 427 TABLE VII I MPACT OF CHOOSING A BATTERY CAPACITY DRIVEN ALGORITHM ON THE NUMBER OF JOBS DONE RIGHT AFTER THE PEAK Capacity [Ah] 30 50 FAV [Qty] 525 534 HRBC [Qty] 521 533 LRBC [Qty] 521 530 is still able to handle previous peaks in slower times. The conclusion for this algorithm is thus the same as for the two previous ones, adding parking or charging stations worsens the average pickup time and throughput. Again, the system does remain stable, it can still handle the jobs as can be seen from the number of jobs handled. Another reason for the poor performance of distributed parking and charging stations in this situation can be the fact that AGVs may need to take two elevators to get at the closest station, while driving to the logistics point might be faster. This is not incorporated in the way the AGVs choose their idling location, they only drive to the one closest by. The impact of choosing a parking or charging location to which the travel time is the lowest is something that should be addressed in a follow-up research. The impact of choosing a remaining battery capacity driven algorithm is displayed for the HRBC algorithm in Table VI. From these numbers no improvement is noticeable when choosing such an algorithm. If the HRBC algorithm is used for dispatching, improvement can be made if the battery capacity of all AGVs combined is enough to get through all peaks seperately, after which all AGVs can charge again. To get to this point, more simulations need to be done to determine this capacity. When AGVs are required to charge during some of the bigger peaks, choosing this algorithm will only take all AGVs out of service for charging at the same time, resulting in poor performance for the jobs then waiting to be picked up. If the LRBC algorithm is used, small peaks cannot even be handled and AGVs will be required to charge within these peaks. If a more constant flow of jobs is expected choosing a dispatching algorithm of this sort ensures that the maximum number of AGVs out of service because of charging will stay low, it is however a worse solution for this case compared to other algorithms. For the amount of jobs handled within the last peak the numbers do not change a lot. A slightly lower number of jobs is handled when choosing one of the battery capacity driven algorithms. This means the jobs are still handled, and there is no big lag in handling jobs. The system is thus still stable, it VI. C ONCLUSION The influence of battery capacity, extra charging and parking spaces and battery capacity driven algorithms was tested on a specific case. Changing battery capacity has a very big influence on the average pickup time of jobs during a day in an AGV system. This is mainly triggered by the insufficient power in the battery during a peak. When a battery has enough capacity to handle peaks and charge during slow times large decreases of average pickup time can be measured. Incorporating battery capacity as a design parameter is thus essential in the design of an AGV system. Implementing extra charging of parking spaces should still be an addition to the system, but only when appropriate dispatching functions are chosen and a location for these spaces is chosen keeping in mind the expected starting location of jobs. This was however not proven in this research. The impact of adding these spaces to a system can decrease performance if the impact of this algorithm or the position of these spaces with respect to the demand is not substantiated. Next to that, adding these additional stations is not as straightforward as might be the case in production systems, the influence of battery management, the distribution of jobs during a day and the impact of elevators cannot be ignored. In conclusion, the importance of battery management in simulations is again emphasized, because adding or removing these extra stations might give an undesirable effect when looking at the average pickup time of jobs. Battery capacity driven algorithms picking either the AGV with the lowest remaining or highest remaining battery charge did not improve the AGV system; it actually deteriorates the performance. Only if a specific case is presented, for instance when the battery capacity of all AGVs combined is enough to handle a peak, choosing such an algorithm can be useful. In order to test this, more research has to be performed testing the impact of these algorithms on different job input scenarios and different hospital layouts. VII. R ECOMMENDATIONS R EFERENCES Given the outcomes of this research a number of followup researches should be done. First of all, research should be done on where an AGV should park or charge in this type of system, simply taking the space closest by has an undesirable effect. Second, the impact of adding charging and parking spaces as well as choosing an AGV based on remaining battery charge should be performed using different battery capacities to assess the impact of the chosen capacity on these outcomes. Third, the impact should be studied for different workload profiles, some having more peaks, some having a more evenly distributed workload. Choosing a dispatching algorithm based on battery capacity might prove useful in some of these situations. Finally, a study has to be performed how all these conclusions relate to different hospital layouts. [1] K. Davina, “Development of a simulation-based tool for designing AGVsystems for hospital logistics,” 2012.TEL.7678, Transportation Engineering and Logistics, Delft University of Technology, Tech. Rep., Jun. 2012. [2] R. McHaney, “Modelling battery constraints in discrete event automated guided vehicle simulations,” International Journal of Production Research, vol. 33, no. 11, pp. 3023–3040, Nov. 1995. [3] I. F. Vis, “Survey of research in the design and control of automated guided vehicle systems,” European Journal of Operational Research, vol. 170, no. 3, pp. 677–709, May 2006. [4] H. P. M. Veeke and J. A. Ottjes, “TOMAS: Tool for object-oriented modelling and simulation,” in Proceedings of the Business and Industry Simulation Symposium. Washington D.C.: Delft University of Technology, Apr. 2000, pp. 1–6. [5] M. M. Srinivasan, Y. A. Bozer, and M. CHO, “TRIP-BASED MATERIAL HANDLING SYSTEMS: THROUGHPUT CAPACITY ANALYSIS,” IIE transactions, vol. 26, no. 1, pp. 70–89, 1994. [6] C. Lee and J. A. Ventura, “Optimal dwell point location of automated guided vehicles to minimize mean response time in a loop layout,” International Journal of Production Research, vol. 39, no. 17, pp. 4013– 4031, 2001. ACKNOWLEDGMENT The authors would like to thank the experts at Deerns Consulting Engineers for their technical support and helpful insights. Appendix B The Assignment by Deerns Consulting Engineers Deze opdracht betreft modelvorming & simulatie. Deerns raadgevende ingenieurs bv heeft behoefte aan een simulatiemodel, waarin AGV systemen onder andere kunnen worden beoordeeld op lay-out, capaciteit en wacht- en bestemmingstijden. De laatste jaren constateert Deerns een sterke opkomst van dergelijke systemen in de gezondheidszorg, met name voor interne distributie van linnen, maaltijden, magazijngoederen, steriele goederen, post, afval et cetera. Deze opkomst heeft onder andere te maken met de toegenomen omvang van interne distributie in ziekenhuizen, de toegenomen kosten van personeel en de afgenomen beschikbaarheid van personeel. Ook speelt hierin een rol, dat moderne systemen geen voorzieningen in de vloer meer nodig hebben, maar navigeren op basis van bouwkundige onderleggers en positiesensoren. Aangezien Deerns betrokken is bij het ontwerp van veel grote ziekenhuizen, wil het voor zijn opdrachtgevers de lay-out, omvang en uitvoering van dergelijke systemen van tevoren kunnen optimaliseren door de prestaties op het gebied van capaciteit, bezetting en wacht- en bestemmingstijden te kunnen berekenen. Technisch inhoudelijk: De opdracht omvat het ontwikkelen van een simulatiemodel in Delphi Enterprise Dynamics 8, waarin grootschalige systemen met talloze laad-losposities, AGV-karren, oplaadpunten, paden (gangen), knopen (kruisingen) op een snelle en gebruiksvriendelijke manier kunnen worden 155 An AGVS design tool gemodelleerd. Aan dit model dient een willekeurig verkeersprofiel van zendingen te kunnen worden aangeboden (bestemming, aankomsttijd, prioriteit et cetera), zowel door middel van een centraal spoorboekje met alle dagelijkse transporten, als met lokaal verzend- en ontvangstpatroon per station. Beide op basis van random generator met exponentiele spreiding en als vaste lijst met zendingen (spoorboekje). Met het model moet kunnen worden geoptimaliseerd: • Het aantal benodigde AGV’s; • Het aantal (buffer) ontvangst- en verzendposities per station; • Het aantal en de positie van oplaadpunten voor AGV’s; • Optimalisatie van de af te leggen route door AGV’s op basis van analyse van het netwerk en de te verwachten drukte op paden/knopen; • Optimalisatie van de toewijzing van AGV’s aan aanvragen, waarbij minimaal kan worden gekozen tussen: volgorde van aanvraag (fifo), kortste wachttijden aanvragen, hoogste bezetting AGV’s, kortste afgelegde afstand AGV’s, resterend bereik accu’s, maximaal percentage dubbelslagen (= een zending afleveren, waarbij een lege kar retour kan worden meegenomen); • Overname van een haalopdracht door een AGV die dichter bij vrijkomt (continue optimalisatie door tussentijdse bestemmingswijziging). Het model dient minimaal de volgende functionaliteit te kennen: • Analyse van de bezetting van AGV’s (rijden, wachten op pad, wachten op laad-lospositie, laden/lossen, inactief, opladen accu), zowel getalsmatig (uitvoerfile) als in grafieken; • Analyse van de bezetting van paden (gangen), zowel getalsmatig (uitvoerfile) als in grafieken; • Analyse van de bezetting van ontvangst- en verzendposities per station, zowel getalsmatig (uitvoerfile) als in grafieken; • Analyse van de wachttijd, reistijd en bestemmingstijd per zending, per station en per zendingtype (wel of geen prioriteit), zowel getalsmatig (uitvoerfile) als in grafieken; 156 K. Davina 2012.TEL.7687 An AGVS design tool • De rijdsnelheid dient afhankelijk te zijn van het pad (c.q. de gangbreedte en publiek gebied of niet), waarbij sommige paden onbeperkt tweerichtingsverkeer toelaten (brede gang), sommige paden onbeperkt eenrichtingsverkeer (in een vaste richting) en sommige paden beperkt eenrichtingsverkeer toelaten (in beide richtingen, waarbij het pad bezet kan zijn als er al een AGV rijdt (bijvoorbeeld bocht met krappe bochtstraal, waar passeren onmogelijk is). De snelheid wordt gereduceerd bij gevaar (obstakels), bij automatische deuren en andere doorgangen en in bochten; • AGV’s kunnen meerdere verdiepingen in het ziekenhuis bedienen door op afstand liften op te roepen en te gebruiken. De liften dienen minimaal de volgende (beperkte) functionaliteit te kennen (wachttijd uit een verdeling, deuropentijd, inrijdtijd, deursluittijd, reistijd afhankelijk van hoogte en hefsnelheid, uitrijdtijd). Liften kunnen maar een AGV tegelijk vervoeren, dus de wachttijd voor een lift wordt geloot (als lift vrij is) of berekend (als de lift al een AGV vervoert); • Aan zendingen moet een prioriteit kunnen worden gegeven, bijvoorbeeld maaltijdtransporten met een maximale aflevertijd vanwege temperatuur; • De lay-out van het netwerk dient te kunnen worden ingetekend op een voor de klant herkenbare onderlegger in PDF formaat en ACAD formaat. Hierbij dienen diverse verdiepingen gelijktijdig zichtbaar te kunnen worden gemaakt; • Animatie van het proces in 2D. Hierbij dient de status van AGV’s zendingen, paden en stations door middel van kleuren herkenbaar te zijn. AGV’s hierbij tekenen in overeenstemming met rijdrichting en orientatie laad-/losstation en oplaadpunt; • Instelbare parameters AGV: transportsnelheid AGV, versnelling/vertraging AGV, verliestijd knopen, verliestijd omkeren, verliestijd laden, verliestijd lossen; • Instelbare parameters accu: bereik (in tijd en in afgelegde meters), laadtijd et cetera afhankelijk van operationele eisen (hefcapaciteit, snelheid en actieradius); • Analyse met beide hoofdsoorten AGV’s moet mogelijk zijn: universele onderladers (niet richtingselectief), heftruck (richtingselectief, moet keren en draaien); • Het moet gemakkelijk en niet te arbeidsintensief zijn om een netwerk lay-out te definieren of te wijzigen. Het moet zowel in een notepad omgeving kunnen, als in aangeboden invulK. Davina 2012.TEL.7687 157 An AGVS design tool velden. Indien een waarde in een invulveld gewijzigd moet worden, dient niet het gehele model opnieuw hoeven te worden ingevoerd; • Het moet mogelijk zijn om een dag, dagdeel (instelbare begin- en eindtijd) of run van meerdere dagen (met verschillende startwaarden van de randomgeneratoren) te testen; • De resultaten zowel getalsmatig (uitvoerfile) als in grafieken beschikbaar stellen, waarbij ten minste gemiddelde waarde, minimale waarde, maximale waarde en standaarddeviatie beschikbaar komen; • Simulaties moeten reproduceerbaar zijn door identieke startwaarden van de randomgeneratoren toe te passen (ten behoeve van scenariostudie, bijvoorbeeld optimalisatiecriterium); • Beschikbaarheid AGV’s, laadstations, knopen en paden moet instelbaar zijn in percentage uptime en downtime en MTTR (mean time to repair). Proces inhoudelijk: • Naast de ontwikkeling van het hierboven omschreven simulatiemodel, omvat de opdracht tevens de volgende onderdelen: • Aantoonbare verificatie en validatie • Gebruikersinstructie/presentatie (intern bij Deerns) • Gebruikershandleiding • Toepassing van het model voor de analyse van een bestaand of nog te bouwen ziekenhuis • Eindrapportage • The supervisor, Ir. Jochem Wit 158 K. Davina 2012.TEL.7687 Appendix C PROPER model for the AGV system 159 An AGVS design tool 160 K. Davina 2012.TEL.7687 An AGVS design tool Handle transport tasks without logistics personnel Check key performance indicators Control SC SC Track Job Dispatch Job LS Wait for dock AGV Jobs in User Accept LS Wait for empty slot LS SC Register Job AGV Put in empty slot LS LS Transfer Job LS AGV LS Pick from dock AGV Calculate Route SC Drive Get Route AGV US Transport AGV SC Register job perfomance SC Wait for US AGV SC Wait for Job AGV US Deliver AGV AGV Accept US SC User Finish Job Release US US Jobs out Wait for empty slot Wait for goods US LS Wait for AGV US Transfer Resources used Resources available Available docks Available vehicles LS Transform Figure C.1: Total proper model of the conceptual model K. Davina 2012.TEL.7687 Available docks AGV 161 US An AGVS design tool 162 K. Davina 2012.TEL.7687 Appendix D Database registration types Table D.1: Job values registration types Regtype Info drivingdistance drivingtime endtime enroutetime jobintime starttime waitforclaimelement waitfordockenter waitfordockexit waitforloading distance the job has travelled time the job has travelled the time the job is removed from the system the time it took from pickup to drop-off is 1 if the job is in time, 0 otherwise the time the job is created in the system the time a job has to wait for a claim element when enroute the time it takes for the job to get a position in a dock the time it takes for the job to exit the system after drop-off the time the job has to wait from entering the dock to pickup 163 An AGVS design tool Table D.2: Queue data registration types Regtype Info length meanwt meanlength Queue length at the moment The mean waiting time in the queue The mean length of the queue Table D.3: Claim data registration types Regtype Info claimchange registration of a change in number of claimers Table D.4: AGV values registration types Regtype Info batteryempty chargetime drivingdistance drivingtime drivingtimetocharging drivingtimetoparking drivingtimeunloaded jobassignment jobdone jobpickup waitforclaimelement waitforelevator# Number of times the battery went empty Time spend charging Distance driven by AGV Time driving with load Time spend driving to charging Time spend driving to parking Time driving without load position in the queue of the assigned job (start=0) Number of jobs deliver Number of jobs picked up time spend waiting to claim time spend waiting for an elevator, where #= 1 busy with jobs 2 enroute to parking space 3 enroute to charging station The time it takes for the elevator to get at the correct floor Time waiting for a dock to become available for a dropoff Time waiting for the dock with the assigned job time spend riding an elevator, where #= 1 busy with jobs 2 enroute to parking space 3 enroute to charging station waitforelevatorreal waitforroutetodockdropoff waitforroutetodockpickup waitinelevator# 164 K. Davina 2012.TEL.7687 Appendix E Expert validations The following experts from the transport and logistics department of Deerns Consulting Engineers validated parts of the work. E.1 Conceptual Model Validation Jos van Velzen ir. Jochem Wit Senior Specialist Senior Expert Deerns Consulting Engineers Deerns Consulting Engineers 165 An AGVS design tool E.2 Operational Model Validation ir. Jochem Wit ir. Matthijs de Kleine Senior Expert Specialist Deerns Consulting Engineers Deerns Consulting Engineers Jos van Velzen Senior Specialist Deerns Consulting Engineers 166 K. Davina 2012.TEL.7687 An AGVS design tool E.3 Expert feedback “The simulation program offers a versatile range of possibilities for AGV system assessment. In the hospital projects Deerns consults for, it should be possible to simulate with different layouts, numbers of stations, buffer positions, charging and parking positions and numbers and characteristics of AGV’s. The simulation model offers all these possibilities. Additionally, it is possible to study the effect of different dispatching and routing algorithms, and charging strategies on the system performance. This offers the possibility to compare the systems and controls of several suppliers. The GUI is constructed logically, but will require an elaborated tutorial to define the correct manner and nature of parameter input for creating system lay-outs. The output database is extensive, which offers the possibility to perform several additional statistical operations with the output data. The animation is basic and could have been more attractive for client presentation. Finally, the results and the effect of variation of input parameters by a sensitivity analysis, appear reliable and are within range of existing systems.” ir. Jochem Wit Senior Expert and Team Leader Transport and Logistics Deerns Consulting Engineers ”On tuesday the 29th of May 2012 I have tested the simulation suite, which is part of the graduation assignment of Koen Davina. The suite has a logical structure which makes structured working possible. The menu structure is clear and organized. Inputting the data or making changes or additions to the input is made easy because of this. It however remains necessary to have a certain level of basic knowledge of AGV systems and the associated logistic choices. The tool addresses the parameters that we deemed necessary, but it also provides parameters added by the developer. Because of these extra contributions the tool became more flexible, giving us the option to adopt future developments in the simulations. This concerns, for example, the parameters for to be applied batteries, as well as the time delay variable for nodes in the AGV K. Davina 2012.TEL.7687 167 An AGVS design tool route. The results of the simulation are presented in a clear way. The output files are thus well suited for usage in reports. The final result is considered a good result and we expect that it will serve us for years.” Jos van Velzen Senior Specialist Transport and Logistics Deerns Consulting Engineers ”The simulation program offers the necessary flexibility to use project specific input. The program gives enough output data for a thorough understanding of the problem at hand, without cluttering the entirety. Therefore the program offers sufficient starting point for making its use valuable. The results the simulation tool produces, are logically interpretable. In addition, the outputs generated by the tool are in sync with the expectations. This is also true for changes in output data when changing the input. A short explanation was sufficient to be able to use the simulation tool. The graphical user interface is logical and gives a clear overview.” ir. Matthijs de Kleine Specialist Transport and Logistics Deerns Consulting Engineers 168 K. Davina 2012.TEL.7687 Appendix F Testcase data 169 An AGVS design tool Table F.1: Assumptions done for input values for the performed test case Description Unit Elevators Door delay on enter Door delay on exit Average waiting time - for dedicated elevators sec sec sec sec 3 3 60 90 min min 3 5 Stations Job removal time: - logistics point - other stations Total nr of docks per station: (equal amount for loading and unloading) - Logistics point - At elevator block 2 - At elevator blocks 1 and 3 Dock buffer size AGV speed Pickup time Dropoff time Elevator drive in time Elevator drive out time Charge enter time Charge exit time Park enter time Park exit time Node delay time Energy usage Pickup Dropoff Driving empty Driving loaded Waiting Parking 170 6 4 2 unlimited [m/s] sec sec sec sec sec sec sec sec sec Battery Fast charging Slow charging Turning point Charge to minimal % Opportunity charging Safety factor power calculation [Units/hour] [Units/hour] [Units] [Units] [Units/sec] [Units/sec] [Units/sec] [Units/sec] K. Davina Value 1 3 3 3 3 3 3 3 3 1 40000 10000 65% 30% No 1.3 65 50 10 15 5 1 2012.TEL.7687 An AGVS design tool Table F.2: All transport flows used for the test case From To Type Start time End time Nr of jobs Priority Maximum transit time Apothecary Station 1-3 Random 09:00 11:00 1 1 45 Apothecary Station 1-2 Random 09:00 11:00 2 1 45 Apothecary Station 1-1 Random 09:00 11:00 1 1 45 Apothecary Station 2-3 Random 09:00 11:00 1 1 45 Apothecary Station 2-2 Random 09:00 11:00 2 1 45 Apothecary Station 2-1 Random 09:00 11:00 1 1 45 Apothecary Station 3-3 Random 09:00 11:00 1 1 45 Apothecary Station 3-2 Random 09:00 11:00 2 1 45 Apothecary Station 3-1 Random 09:00 11:00 1 1 45 Apothecary Station 4-3 Random 09:00 11:00 1 1 45 Apothecary Station 4-2 Random 09:00 11:00 2 1 45 Apothecary Station 4-1 Random 09:00 11:00 1 1 45 Apothecary Station 5-3 Random 09:00 11:00 1 1 45 Apothecary Station 5-2 Random 09:00 11:00 2 1 45 Station 1-3 Apothecary Random 15:00 16:00 1 2 180 Station 1-2 Apothecary Random 15:00 16:00 2 2 180 Station 1-1 Apothecary Random 15:00 16:00 1 2 180 Station 2-3 Apothecary Random 15:00 16:00 1 2 180 Station 2-2 Apothecary Random 15:00 16:00 2 2 180 Station 2-1 Apothecary Random 15:00 16:00 1 2 180 Station 3-3 Apothecary Random 15:00 16:00 1 2 180 Station 3-2 Apothecary Random 15:00 16:00 2 2 180 Station 3-1 Apothecary Random 15:00 16:00 1 2 180 Station 4-3 Apothecary Random 15:00 16:00 1 2 180 Station 4-2 Apothecary Random 15:00 16:00 2 2 180 Station 4-1 Apothecary Random 15:00 16:00 1 2 180 Station 5-3 Apothecary Random 15:00 16:00 1 2 180 Station 5-2 Apothecary Random 15:00 16:00 2 2 180 Logistics Point Station 0-1 Single 06:00 1 1 45 Logistics Point Station 1-2 Single 06:00 6 1 45 Logistics Point Station 2-2 Single 06:00 6 1 45 Logistics Point Station 2-1 Single 06:00 3 1 45 Logistics Point Station 3-2 Single 06:30 6 1 45 Logistics Point Station 4-2 Single 06:30 6 1 45 Logistics Point Station 4-1 Single 06:30 3 1 45 Logistics Point Station 0-1 Single 11:00 1 1 45 Logistics Point Station 1-2 Single 11:00 6 1 45 Logistics Point Station 2-2 Single 11:00 6 1 45 Logistics Point Station 2-1 Single 11:00 3 1 45 Logistics Point Station 3-2 Single 11:30 6 1 45 Logistics Point Station 4-2 Single 11:30 6 1 45 Logistics Point Station 4-1 Single 11:30 3 1 45 Logistics Point Station 1-2 Single 16:00 6 1 45 Logistics Point Station 2-2 Single 16:00 6 1 45 Logistics Point Station 2-1 Single 16:00 3 1 45 Logistics Point Station 3-2 Single 16:30 6 1 45 Logistics Point Station 4-2 Single 16:30 6 1 45 Logistics Point Station 4-1 Single 16:30 3 1 45 Station 0-1 Logistics Point Single 07:00 1 2 90 Station 1-2 Logistics Point Single 07:00 6 2 90 Station 2-2 Logistics Point Single 07:00 6 2 90 Station 2-1 Logistics Point Single 07:00 3 2 90 Station 3-2 Logistics Point Single 07:30 6 2 90 Station 4-2 Logistics Point Single 07:30 6 2 90 Station 4-1 Logistics Point Single 07:30 3 2 90 Station 0-1 Logistics Point Single 12:00 1 2 90 Station 1-2 Logistics Point Single 12:00 6 2 90 Station 2-2 Logistics Point Single 12:00 6 2 90 Continued on next page K. Davina 2012.TEL.7687 171 An AGVS design tool Table F.2: All transport flows used for the test case From To Type Start time Nr of jobs Priority Maximum transit time Station 2-1 Logistics Point Single 12:00 End time 3 2 90 Station 3-2 Logistics Point Single 12:30 6 2 90 Station 4-2 Logistics Point Single 12:30 6 2 90 Station 4-1 Logistics Point Single 12:30 3 2 90 Station 1-2 Logistics Point Single 17:00 6 2 90 Station 2-2 Logistics Point Single 17:00 6 2 90 Station 2-1 Logistics Point Single 17:00 3 2 90 Station 3-2 Logistics Point Single 17:30 6 2 90 Station 4-2 Logistics Point Single 17:30 6 2 90 Station 4-1 Logistics Point Single 17:30 3 2 90 Logistics Point Station 1-2 Single 10:00 2 1 45 Logistics Point Station 2-2 Single 10:00 2 1 45 Logistics Point Station 2-1 Single 10:00 1 1 45 Logistics Point Station 3-2 Single 10:00 1 1 45 Logistics Point Station 4-2 Single 10:00 2 1 45 Logistics Point Station 4-1 Single 10:00 1 1 45 Logistics Point Station 0-1 Single 14:00 1 1 45 Logistics Point Station 1-2 Single 14:00 2 1 45 Logistics Point Station 2-2 Single 14:00 2 1 45 Logistics Point Station 2-1 Single 14:00 1 1 45 Logistics Point Station 3-2 Single 14:00 2 1 45 Logistics Point Station 4-2 Single 14:00 1 1 45 Logistics Point Station 4-1 Single 14:00 1 1 45 Logistics Point Station 0-1 Single 19:00 1 1 45 Logistics Point Station 1-2 Single 19:00 1 1 45 Logistics Point Station 2-2 Single 19:00 1 1 45 Logistics Point Station 2-1 Single 19:00 1 1 45 Logistics Point Station 3-2 Single 19:00 2 1 45 Logistics Point Station 4-2 Single 19:00 2 1 45 Logistics Point Station 4-1 Single 19:00 1 1 45 Station 1-2 Logistics Point Single 10:30 2 2 45 Station 2-2 Logistics Point Single 10:30 2 2 45 Station 2-1 Logistics Point Single 10:30 1 2 45 Station 3-2 Logistics Point Single 10:30 1 2 45 Station 4-2 Logistics Point Single 10:30 2 2 45 Station 4-1 Logistics Point Single 10:30 1 2 45 Station 0-1 Logistics Point Single 14:30 1 2 45 Station 1-2 Logistics Point Single 14:30 2 2 45 Station 2-2 Logistics Point Single 14:30 2 2 45 Station 2-1 Logistics Point Single 14:30 1 2 45 Station 3-2 Logistics Point Single 14:30 2 2 45 Station 4-2 Logistics Point Single 14:30 1 2 45 Station 4-1 Logistics Point Single 14:30 1 2 45 Station 0-1 Logistics Point Single 19:30 1 2 45 Station 1-2 Logistics Point Single 19:30 1 2 45 Station 2-2 Logistics Point Single 19:30 1 2 45 Station 2-1 Logistics Point Single 19:30 1 2 45 Station 3-2 Logistics Point Single 19:30 2 2 45 Station 4-2 Logistics Point Single 19:30 2 2 45 Station 4-1 Logistics Point Single 19:30 1 2 45 Logistics Point Station 1-3 Random 08:00 10:00 3 1 60 Logistics Point Station 1-2 Random 08:00 10:00 5 1 60 Logistics Point Station 1-1 Random 08:00 10:00 2 1 60 Logistics Point Station 2-3 Random 08:00 10:00 3 1 60 Logistics Point Station 2-2 Random 08:00 10:00 5 1 60 Logistics Point Station 2-1 Random 08:00 10:00 2 1 60 Logistics Point Station 3-3 Random 08:00 10:00 3 1 60 Logistics Point Station 3-2 Random 08:00 10:00 5 1 60 Continued on next page 172 K. Davina 2012.TEL.7687 An AGVS design tool Table F.2: All transport flows used for the test case From To Type Start time End time Nr of jobs Priority Maximum transit time Logistics Point Station 3-1 Random 08:00 10:00 2 1 60 Logistics Point Station 4-3 Random 08:00 10:00 2 1 60 Logistics Point Station 4-2 Random 08:00 10:00 3 1 60 Logistics Point Station 4-1 Random 08:00 10:00 2 1 60 Logistics Point Station 5-3 Random 08:00 10:00 2 1 60 Logistics Point Station 5-2 Random 08:00 10:00 2 1 60 Logistics Point Station 5-1 Random 08:00 10:00 2 1 60 Logistics Point Station 0-3 Random 19:00 20:00 1 1 60 Logistics Point Station 0-2 Random 19:00 20:00 1 1 60 Logistics Point Station 0-1 Random 19:00 20:00 1 1 60 Logistics Point Station 5-3 Random 19:00 20:00 1 1 60 Logistics Point Station 5-2 Random 19:00 20:00 2 1 60 Logistics Point Station 5-1 Random 19:00 20:00 1 1 60 Station 1-3 Logistics Point Random 08:00 10:00 3 1 60 Station 1-2 Logistics Point Random 08:00 10:00 5 1 60 Station 1-1 Logistics Point Random 08:00 10:00 2 1 60 Station 2-3 Logistics Point Random 08:00 10:00 3 1 60 Station 2-2 Logistics Point Random 08:00 10:00 5 1 60 Station 2-1 Logistics Point Random 08:00 10:00 2 1 60 Station 3-3 Logistics Point Random 08:00 10:00 3 1 60 Station 3-2 Logistics Point Random 08:00 10:00 5 1 60 Station 3-1 Logistics Point Random 08:00 10:00 2 1 60 Station 4-3 Logistics Point Random 08:00 10:00 2 1 60 Station 4-2 Logistics Point Random 08:00 10:00 3 1 60 Station 4-1 Logistics Point Random 08:00 10:00 2 1 60 Station 5-3 Logistics Point Random 08:00 10:00 2 1 60 Station 5-2 Logistics Point Random 08:00 10:00 2 1 60 Station 5-1 Logistics Point Random 08:00 10:00 2 1 60 Station 0-3 Logistics Point Random 19:00 20:00 1 1 60 Station 0-2 Logistics Point Random 19:00 20:00 1 1 60 Station 0-1 Logistics Point Random 19:00 20:00 1 1 60 Station 5-3 Logistics Point Random 19:00 20:00 1 1 60 Station 5-2 Logistics Point Random 19:00 20:00 2 1 60 Station 5-1 Logistics Point Random 19:00 20:00 1 1 60 Logistics Point Station 0-3 Static 06:00 1 2 180 Logistics Point Station 0-1 Static 06:10 1 2 180 Logistics Point Station 1-3 Static 06:20 1 2 180 Logistics Point Station 1-2 Static 06:30 1 2 180 Logistics Point Station 1-1 Static 06:40 1 2 180 Logistics Point Station 2-3 Static 06:50 1 2 180 Logistics Point Station 2-2 Static 07:00 1 2 180 Logistics Point Station 3-3 Static 07:10 1 2 180 Logistics Point Station 3-1 Static 07:20 1 2 180 Logistics Point Station 4-3 Static 07:30 1 2 180 Logistics Point Station 5-3 Static 07:40 1 2 180 Logistics Point Station 5-2 Static 07:50 1 2 180 Logistics Point Station 0-2 Static 13:00 1 2 180 Logistics Point Station 1-2 Static 13:15 1 2 180 Logistics Point Station 2-2 Static 13:30 1 2 180 Logistics Point Station 3-2 Static 13:45 2 2 180 Logistics Point Station 4-2 Static 14:00 2 2 180 Logistics Point Station 0-3 Static 17:30 1 2 180 Logistics Point Station 0-2 Static 17:40 1 2 180 Logistics Point Station 0-1 Static 17:50 1 2 180 Logistics Point Station 1-3 Static 18:00 1 2 180 Logistics Point Station 2-3 Static 18:10 1 2 180 Logistics Point Station 2-1 Static 18:20 1 2 180 Logistics Point Station 3-3 Static 18:30 1 2 180 Continued on next page K. Davina 2012.TEL.7687 173 An AGVS design tool Table F.2: All transport flows used for the test case From To Type Start time Nr of jobs Priority Maximum transit time Logistics Point Station 3-1 Static 18:40 End time 1 2 180 Logistics Point Station 4-1 Static 18:50 1 2 180 Logistics Point Station 5-3 Static 19:00 1 2 180 Logistics Point Station 5-2 Static 19:10 2 2 180 Logistics Point Station 5-1 Static 19:20 1 2 180 Station 0-3 Logistics Point Static 06:00 1 2 180 Station 0-1 Logistics Point Static 06:10 1 2 180 Station 1-3 Logistics Point Static 06:20 1 2 180 Station 1-2 Logistics Point Static 06:30 1 2 180 Station 1-1 Logistics Point Static 06:40 1 2 180 Station 2-3 Logistics Point Static 06:50 1 2 180 Station 2-2 Logistics Point Static 07:00 1 2 180 Station 3-3 Logistics Point Static 07:10 1 2 180 Station 3-1 Logistics Point Static 07:20 1 2 180 Station 4-3 Logistics Point Static 07:30 1 2 180 Station 5-3 Logistics Point Static 07:40 1 2 180 Station 5-2 Logistics Point Static 07:50 1 2 180 Station 0-2 Logistics Point Static 13:00 1 2 180 Station 1-2 Logistics Point Static 13:15 1 2 180 Station 2-2 Logistics Point Static 13:30 1 2 180 Station 3-2 Logistics Point Static 13:45 2 2 180 Station 4-2 Logistics Point Static 14:00 2 2 180 Station 0-3 Logistics Point Static 17:30 1 2 180 Station 0-2 Logistics Point Static 17:40 1 2 180 Station 0-1 Logistics Point Static 17:50 1 2 180 Station 1-3 Logistics Point Static 18:00 1 2 180 Station 2-3 Logistics Point Static 18:10 1 2 180 Station 2-1 Logistics Point Static 18:20 1 2 180 Station 3-3 Logistics Point Static 18:30 1 2 180 Station 3-1 Logistics Point Static 18:40 1 2 180 Station 4-1 Logistics Point Static 18:50 1 2 180 Station 5-3 Logistics Point Static 19:00 1 2 180 Station 5-2 Logistics Point Static 19:10 2 2 180 Station 5-1 Logistics Point Static 19:20 1 2 180 Logistics Point Station 0-3 Exp. Distr. 07:30 20:30 1 1 60 Logistics Point Station 0-2 Exp. Distr. 07:30 20:30 1 1 60 Logistics Point Station 0-1 Exp. Distr. 07:30 20:30 1 1 60 Logistics Point Station 1-3 Exp. Distr. 07:30 20:30 3 1 60 Logistics Point Station 1-2 Exp. Distr. 07:30 20:30 3 1 60 Logistics Point Station 1-1 Exp. Distr. 07:30 20:30 1 1 60 Logistics Point Station 2-3 Exp. Distr. 07:30 20:30 3 1 60 Logistics Point Station 2-2 Exp. Distr. 07:30 20:30 3 1 60 Logistics Point Station 2-1 Exp. Distr. 07:30 20:30 1 1 60 Logistics Point Station 3-3 Exp. Distr. 07:30 20:30 3 1 60 Logistics Point Station 3-2 Exp. Distr. 07:30 20:30 3 1 60 Logistics Point Station 3-1 Exp. Distr. 07:30 20:30 1 1 60 Logistics Point Station 4-3 Exp. Distr. 07:30 20:30 2 1 60 Logistics Point Station 4-2 Exp. Distr. 07:30 20:30 2 1 60 Logistics Point Station 4-1 Exp. Distr. 07:30 20:30 2 1 60 Logistics Point Station 5-3 Exp. Distr. 07:30 20:30 2 1 60 Logistics Point Station 5-2 Exp. Distr. 07:30 20:30 3 1 60 Logistics Point Station 5-1 Exp. Distr. 07:30 20:30 2 1 60 Station 0-3 Logistics Point Exp. Distr. 07:30 20:30 1 2 180 Station 0-2 Logistics Point Exp. Distr. 07:30 20:30 1 2 180 Station 0-1 Logistics Point Exp. Distr. 07:30 20:30 1 2 180 Station 1-3 Logistics Point Exp. Distr. 07:30 20:30 3 2 180 Station 1-2 Logistics Point Exp. Distr. 07:30 20:30 3 2 180 Station 1-1 Logistics Point Exp. Distr. 07:30 20:30 1 2 180 Continued on next page 174 K. Davina 2012.TEL.7687 An AGVS design tool Table F.2: All transport flows used for the test case From To Type Start time End time Nr of jobs Priority Maximum transit time Station 2-3 Logistics Point Exp. Distr. 07:30 20:30 3 2 180 Station 2-2 Logistics Point Exp. Distr. 07:30 20:30 3 2 180 Station 2-1 Logistics Point Exp. Distr. 07:30 20:30 1 2 180 Station 3-3 Logistics Point Exp. Distr. 07:30 20:30 3 2 180 Station 3-2 Logistics Point Exp. Distr. 07:30 20:30 3 2 180 Station 3-1 Logistics Point Exp. Distr. 07:30 20:30 1 2 180 Station 4-3 Logistics Point Exp. Distr. 07:30 20:30 2 2 180 Station 4-2 Logistics Point Exp. Distr. 07:30 20:30 2 2 180 Station 4-1 Logistics Point Exp. Distr. 07:30 20:30 2 2 180 Station 5-3 Logistics Point Exp. Distr. 07:30 20:30 2 2 180 Station 5-2 Logistics Point Exp. Distr. 07:30 20:30 3 2 180 Station 5-1 Logistics Point Exp. Distr. 07:30 20:30 2 2 180 Logistics Point Station 0-2 Random 06:00 21:00 1 1 45 Logistics Point Station 0-1 Random 06:00 21:00 1 1 45 Logistics Point Station 1-3 Random 06:00 21:00 1 1 45 Logistics Point Station 1-2 Random 06:00 21:00 1 1 45 Logistics Point Station 1-1 Random 06:00 21:00 1 1 45 Logistics Point Station 2-3 Random 06:00 21:00 1 1 45 Logistics Point Station 2-2 Random 06:00 21:00 1 1 45 Logistics Point Station 3-3 Random 06:00 21:00 1 1 45 Logistics Point Station 3-2 Random 06:00 21:00 1 1 45 Logistics Point Station 3-1 Random 06:00 21:00 1 1 45 Logistics Point Station 4-3 Random 06:00 21:00 1 1 45 Logistics Point Station 4-2 Random 06:00 21:00 1 1 45 Logistics Point Station 5-3 Random 06:00 21:00 1 1 45 Logistics Point Station 5-2 Random 06:00 21:00 1 1 45 Station 0-2 Logistics Point Random 06:00 21:00 1 2 180 Station 0-1 Logistics Point Random 06:00 21:00 1 2 180 Station 1-3 Logistics Point Random 06:00 21:00 1 2 180 Station 1-2 Logistics Point Random 06:00 21:00 1 2 180 Station 1-1 Logistics Point Random 06:00 21:00 1 2 180 Station 2-3 Logistics Point Random 06:00 21:00 1 2 180 Station 2-2 Logistics Point Random 06:00 21:00 1 2 180 Station 3-3 Logistics Point Random 06:00 21:00 1 2 180 Station 3-2 Logistics Point Random 06:00 21:00 1 2 180 Station 3-1 Logistics Point Random 06:00 21:00 1 2 180 Station 4-3 Logistics Point Random 06:00 21:00 1 2 180 Station 4-2 Logistics Point Random 06:00 21:00 1 2 180 Station 5-3 Logistics Point Random 06:00 21:00 1 2 180 Station 5-2 Logistics Point Random 06:00 21:00 1 2 180 Logistics Point Station 3-2 Static 13:00 2 1 45 Station 3-2 Logistics Point Static 17:00 2 1 180 K. Davina 2012.TEL.7687 175 An AGVS design tool 176 K. Davina 2012.TEL.7687