To download a PDF version of this white paper, click here.
This white paper is intended to introduce Simio to a user new to simulation. It is intended for the manufacturing engineer, hospital quality engineer, logistics specialist, six sigma black belt, lean system manager, etc., who would like an overview of how Simio can help improve system performance. The purpose of this paper is to discuss the use and benefits of simulation, the basic concepts of modeling, and how to get started using Simio in your decision making.
Simio is a tool for building and executing dynamic models of systems so that you can see how they perform. Simio “acts out” and displays a 3D animation of the behavior of your system over time. Simio lets you see your proposed systems in operation before you build them or change them.
Although simulation and animation have been around for many years, Simio makes modeling dramatically easier by providing a new object-based approach. You select objects from libraries and graphically place them in your model. Objects represent the physical components in your system such as workstations, conveyors, and forklift trucks in a manufacturing facility, or the gurney in an emergency room of a hospital system. Object-based modeling is a very natural and simple approach to simulation modeling.
Simio makes 3D animation a simple and natural part of the modeling process. With Simio you can have a truly immersive 3D experience. You can layout your model with realistic spatial relations that accurately mimic your real life system.
Simio can be used to model a wide range of systems including manufacturing, healthcare, supply chain, transportation, defense, and mining. Although these systems are all unique in their own respect, from a modeling point of view they are very similar. In all of these systems we have entities (work pieces, trucks, passengers, patients, etc.) moving through a system that is constrained by resources (machines, pathways, security check points, doctors, etc.). To model these systems you model the flow of entities through the system and the resources that constrain that flow.
The systems that we model can be proposed systems that have yet to be built, or they can be existing systems for which we are considering changes. In either case the modeling process can provide significant benefits. The model is used to verify that the system will perform as expected.
Although many people accept the critical role that simulation plays in analyzing investments in new systems such as new manufacturing facilities, emergency rooms, etc., simulation also plays a critical role in process improvement applications. Many organizations apply techniques such as Six Sigma and Lean to analyze and improve their existing systems. Simulation is a natural adjunct to these activities by providing a way to analyze and test out proposed system improvements.
Simulation lets you see the impact of change. You can quickly make changes to your model to test out your ideas without disrupting your real system. With simulation you make your mistakes in the model, and not in your business.
Changes may not always produce the desired or expected results. Complex systems are often counterintuitive in their behavior and investments that address a problem in one area of the system may just move the problem to another area without improving the overall performance of the system. Simulation lets you separate the winning ideas from the losing ideas and optimize your business performance. Simulation lets you validate proposed designs and make the best use of your limited capital to focus your resources where they have the most impact on your results.
Simulation brings your ideas to life by providing an animated preview of a proposed change. You can also record and graphically display key performance measures for your system. This helps in not only analyzing proposed changes, but in communicating the benefits of those changes to the stakeholders in the system.
Finally, simulation is the one method that allows you to fully account for variation in your systems and the impact that it has on your overall system performance. Simulation lets you avoid the critical problems created by applying traditional static analysis to try to understand and predict the behavior of a variable and complex dynamic system.
One of the often overlooked aspects in the analysis of a systems performance is the role that randomness plays in determining the behavior of the system. By randomness we mean the idea that things occur within our system with variation from one to the next. Classical examples of randomness include the time between arrival of customers, the time between failures of equipment, or the time it takes to complete some activity.
Let's consider a very simple example where we have entities arrive to a single server for processing. We will assume that entities arrive an average of 10 minutes apart, and have a service time that averages 9 minutes. The entities might be customers arriving to a bank, work pieces arriving to machine, or patients arriving to a doctor's office. From a modeling perspective the basic system can be depicted as shown below.
We would like to study this system and answer the following two basic questions about this system's performance over a long period of time.
Since we know the average time between arrivals is 10 minutes and the average service time is 9 minutes, we can easily answer the first question. The server will be busy 90% of the time, and idle 10% of the time. However answering question 2 is not as simple and depends upon the underlying variation in the system. If we have no variation (i.e. entities always arrive exactly 10 minutes apart, and the service time is always 9 minutes), then no entity will ever wait for service. However as soon as we add variation to the system (e.g. individual entities take more or less than 9 minutes to process, but still average 9 minutes) we will begin to encounter waiting times. If we make our arrivals random (exponentially distributed) with an average time between arrivals of 10 minutes and keep our service time a constant 9 minutes, our average waiting time before starting service will be 40.5 minutes. If we also make our service time random (exponentially distributed) then our average waiting time doubles to 81 minutes. If our goal is to increase our utilization of the server, we can do so only at the expense of the average waiting time for the entities. For example if we have variation in both the arrival and service process and decrease our time between customers to 9.5 minutes (9.46% utilization), our waiting time will nearly double to 158 minutes. Increasing utilization by this small amount has a huge negative impact on customer waiting time. However if we can find a way to eliminate the variability in this system (e.g. by scheduling arrivals, eliminating variation in processing, etc.) this large waiting time drops to zero.
This simple example illustrates the important role that randomness plays in our systems. If you want to understand and improve your systems you must accurately model the variations that are inherent in the system. Static tools such as spreadsheets cannot account for the impact of variation on these types of systems. If you are trying to improve the system, anything you can do to reduce variability (e.g. reducing the variation in processing time, or scheduling arrivals) will have a significant impact on the system performance.
Modeling of random processes such as inter-arrival and service times is a subject for which entire books have been written (see e.g. Law and Kelton, Simulation Modeling and Analysis, McGraw Hill, New York, NY). As a beginner to simulation there are some very basic things you need to know to get started. All simulation products have a way to automatically generate random samples from a variety of distributions such as exponential, normal, lognormal, uniform, triangular, gamma, and beta. You specify random times in your model by entering a name of a distribution along with its associated parameters. The exact parameters are distribution dependent and may include things like mean, standard deviation, and minimum/maximum value. In many models you can get by using just the exponential and triangular distributions.
In most cases the inter-arrival times are represented using the exponential distribution, which has a single parameter that specifies the mean inter-arrival time. This has been shown to properly represent arrival processes that are purely random and independent. In Simio you can specify a random sample from an exponential distribution as Random.Exponential(mean), where mean is a numeric value specifying the mean time between arrivals (e.g. Random.Exponential(10)).
In many cases the service times are conveniently represented using a triangular distribution, which has three parameters that define the minimum, mode, and maximum value. In Simio you specify a random sample from a triangular distribution as Random.Triangular(minimum, mode, maximum), where mode is the most likely value. For example Random.Triangular(6,9,12) will generate random samples with a minimum value of 6, most likely value of 9, and maximum value of 12. By varying the minimum and maximum values you can see the impact of changing the variation of a service time on the waiting times and other performance measures in your system. As you reduce the range of samples for the service time the average waiting time will also reduce.
Variation is in nearly all real world systems, and it is the primary cause of inefficiency in our overall system performance. Simulation is a valuable tool for modeling these systems, and for understanding the impact of change.
Let's examine a Simio model of a very simple system in which entities arrive, are processed by a server, and then depart the system. This could represent work pieces being processed on a machine, or passengers checking in at a kiosk in an airport.
Although Simio provides a framework for building custom objects, it includes a Standard Object Library that lets you immediately start modeling with objects from the library. Use this library to quickly model a wide range of systems. This library is briefly summarized in the following table.
|Source||Creates entities that arrive to the system.|
|Sink||Destroys entities and records statistics.|
|Server||Models a multi-channel service process with input/output queues.|
|Combiner||Combines entities in batches.|
|Separator||Separates entities from batches.|
|Workstation||Models a 3-phase workstation with setup, processing, and teardown.|
|Resource||Models a resource that can be used by other objects.|
|Vehicle||Carries entities between fixed objects.|
|BasicNode||A simple intersection of links.|
|TransferNode||An intersection where entities set destination and wait on transporters.|
|Connector||A zero-time connection between two nodes.|
|Path||A pathway between two nodes where entities travel based on speed.|
|TimePath||A pathway with a specified travel time.|
|Conveyor||An accumulating/non-accumulating conveyor device.|
For this simple system we make use of the Source, Server, and Sink, along with a Connector. The Simio model for this system is shown below. Entities enter the system at the Source, move to a Server where they are processed one at time, and then travel to a Sink and depart the system.
You build this model by placing these objects in your facility model and entering property values for each object. For example the Source object has a property that specifies the time between entity arrivals (e.g. Random.Exponential(110)) which produces a random arrival process with a mean inter-arrival time of 10). The Server object has properties that specify things such as the capacity (i.e. the number of parallel operations that can be performed), and the processing time (e.g. Random.Triangular(6,9,12), which produces random processing times from a triangular distribution).
One of the difficult aspects of modeling in 3D is drawing the physical components of your system. Simio makes this easy by incorporating a direct interface to the massive library of totally free 3D symbols available on Google warehouse. This library contains hundreds of thousands of symbols of every type imaginable. If you want a symbol for a forklift truck, worker, car, airplane, boat, machine, ATM machine, etc., -- no problem -- click on the Google button and search the library for the symbol that is perfect for your model. For example we could replace the Server symbol in our model with the following 3D graphic from Google Warehouse.
Now that we have built our simple model, we would like to use it to gain understanding and insight into the system. We do this by setting up a set of experiments that define specific changes that we would like to evaluate, and then running those experiments to see the impact of the changes that we make on the system performance.
The following table is a summary of experiments performed with our simple model using Simio. Note that since our model contains random components we replicate the model 30 times for each scenario and then use the results from the 30 replications to compute a confidence interval for our performance measures. Note that these calculations are all performed automatically by Simio. The results clearly show the impact of variation and the tradeoff between achieving high server utilization and low wait times. Simio makes it easy to define and run different scenarios such as these and to record information on important key performance measures.
||Number Replications||Mean Time
|A||40||10||9||8/10||.90 +/- .004||38.5 +/- 2.6|
|B||40||10||9||6/12||.90 +/- .004||41.1 +/- 2.5|
|C||40||9.5||9||8/10||.94 +/- .004||70.6 +/- 6.6|
|D||40||9.5||9||6/12||.94 +/- .004||72.8 +/- 6.3|
Simio is a new modeling system designed to achieve three primary goals.
Simple for beginners: you can build models fast with drag and drop ease. Simio makes modeling dramatically easier by providing a new object-based paradigm that radically changes the way objects are built and used. You select objects from libraries and graphically place them in your model.
Powerful for experts: although you may start off as a beginner, as you gain experience in modeling you will want to model larger and more complex systems. You need a tool that is not just easy to learn, but flexible and powerful in the long run. With Simio you can employ multiple modeling paradigms and combine the ease of use of pre-built objects with the flexibility and power of creating your own objects.
3D for Impact: life-like 3D made easy for the first time. Create your own Models in 3D: Is there any better way to watch your model execute than to view it in 3D? Simio makes 3D animation a simple and natural part of the modeling process. For the first time you can have a truly immersive 3D experience without the added cost and complexity. You can also layout your model with realistic spatial relations that accurately mimic your real life system.
Although there are many simulation products on the market, we believe only Simio meets these three objects in a single product.
To get started with Simio contact us for a personal on-line demonstration of the software. We will lead you through the process of building a model and answer your questions on how to use the software to improve your business performance.
We also offer both public and on-site training classes that cover both the simulation process and model building with Simio. We can also tailor our training to meet your specific needs, or arrange for consulting services to assists you with your project.
With Simio you are buying not just a product but a team that is dedicated to your success. Simio is led by Dr. C. Dennis Pegden who founded Systems Modeling (now Rockwell) and pioneered the development of the widely used simulation products SLAM, SIMAN, and Arena. Simio is backed by a seasoned international team of experts that have a long and proven track record in simulation modeling.