0% found this document useful (0 votes)
207 views

Assignment - Discrete Event Simulation

This document contains instructions for 7 exercises using the SIMIO simulation software. Exercise 1 introduces the SIMIO workspace. Exercise 2 covers routing logic and creating sequence tables to define entity paths. Exercise 3 simulates a system with multiple product types and sources. Exercise 4 simulates the same system but with a single source. Exercise 5 improves on Exercise 4 by using a single sequence table. Exercise 6 simulates batch manufacturing of products in different colors based on quantities in a data table. Exercise 7 covers stochastic routing.

Uploaded by

Usama Ihaz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
207 views

Assignment - Discrete Event Simulation

This document contains instructions for 7 exercises using the SIMIO simulation software. Exercise 1 introduces the SIMIO workspace. Exercise 2 covers routing logic and creating sequence tables to define entity paths. Exercise 3 simulates a system with multiple product types and sources. Exercise 4 simulates the same system but with a single source. Exercise 5 improves on Exercise 4 by using a single sequence table. Exercise 6 simulates batch manufacturing of products in different colors based on quantities in a data table. Exercise 7 covers stochastic routing.

Uploaded by

Usama Ihaz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Content

Excercise 1 : Introduction to SIMIO (10min) ................................................................................... 1


Exercise 2: Routing logic (15min) .................................................................................................... 1
Exercise 3: Multi-product system with multiple sources (20min) .................................................... 2
Exercise 4: Multi-product system with single source (25min).......................................................... 3
Exercise 5: Multi-product systems, improvement (10min) ............................................................... 4
Exercise 6: Batch manufacturing (25min) ........................................................................................ 5
Exercice 7: Stochastic routing (15min) ............................................................................................. 6
Problem 1: Optimizing a Mobile Entity System ............................................................................... 7
Problem 2 : Integration of human factors......................................... Error! Bookmark not defined.

Excercise 1 : Introduction to SIMIO (10min)


In this exercise, a first example of a relatively simple simulation model will be dealt with. The goal
is to learn the SIMIO software workspace.

1. Make the above model: create a source, three servers and a sink. Connect them as shown
in the figure using a connector.
2. What is the difference between a connector, a path, and a timepath?
3. Start the simulation.

Exercise 2: Routing logic (15min)


In this exercise, the concept of routing in SIMIO will be introduced. The routing logic defined in
SIMIO makes it possible to simulate complex paths that can be seen in the real production systems for
processing variants of products.
1. Modify the previous model by adding a connector between the output
nodes of the server 3, the server 2 and the input node of the sink 1.
2. Add a connector between the output node of source 1 and the input
nodes of server 2 and 1
3. In the data tab, create a sequence table. Fill as shown in the figure on
the right:

EL MOUAYNI ISMAIL 1
4. Place a "ModelEntity" entity in the “Facility window”, modify the value of the "Initial
Sequence" parameter under the "Rooting Logic" part by putting the name of the sequence table
created in question 3.
5. Change the output node of all elements by setting the "Entity Destination" parameter under the
"Rooting Logic" part to the "By Sequence" value.
6. Start simulation. Comment the result.

Exercise 3: Multi-product system with multiple sources (20min)


The aim of this exercise is to realize a model under Simio to simulate a physical flow composed of
several variants of products with variant routing logic. Three types of products are considered, Part A
(red), Part B (green), and Part C (blue). Each type of product is generated by a single source, Part A is
produced by SourceA, Part B is produced by SourceB, and Part C is produced by SourceC. We consider
three servers that treat the different parts according to the following path:
➢ Part A : Server 1 – Server 2 – Sink1;
➢ Part B : Server 3 – Server 2 – Server 1– Sink 1;
➢ Part C : Server 2 – Sink1.
Therefore, for each part type, create a sequence table, named SequenceA, SequenceB and
sequenceC.
1. Using the model from the previous exercise, add two other sources, name the sources SourceA
(instead of Source1), SourceB, SourceC and delete the previous sequence table.
2. Create and complete the three sequence tables.
3. Place three '' DefaultEntity '' on the '' Facility '' interface, rename the '' PartA '', '' PartB '', ''PartC
''. For each of the entities, the "Initial Sequence" parameter of the "Routing Logic" must be
changed and the name of the corresponding sequence table must be changed. Change the colors
of the entities. For each source, change the "Entity Type" and put the corresponding entity.
4. Make connections SourceA-Server1-Server2-Sink1, SourceB-Server3-Server2-Server1-Sink1,
SourceC-Server2-Sink1 as shown in the figure below:

EL MOUAYNI ISMAIL 2
5. For each server, modify the distribution of service times by setting a triangular distribution of
parameters 0.5, 0.8, 1.2 (Random.Triangular (0.5, 0.8, 1.2)).
6. For each output node, set the Entity Destination Type under Rooting logic to "bySequence".
7. Start the simulation.

Exercise 4: Multi-product system with single source (25min)


For this exercise, we are considering that a single source generates several products, part A, part B, part
C. Each of these entities passes through a sequence of machines during its transformation. The operating
time on each machine (modeled by a server) depends on the part.
Part A (PartA) follows the sequence: Server 1 - Server 2 - Server 3 - Sink 1.
Part B (PartB) follows the sequence: Server 3 - Server 2 - Server 1 - Sink 1.
Part C (PartC) (Blue) follows the sequence: Server 2 - Sink 1.
1. Open the previous model, delete the two sources and leave one. Rename it "Source1". Modify
SequenceA SequenceB SequenceB SequenceC in the Data tab so that it corresponds to the new
sequences of parts A, B, C. Perform server connections in such a way as to cover the paths taken
by the parts.

EL MOUAYNI ISMAIL 3
2. In the Data tab, select each sequence table; use the "Standard Property" drop-down menu to
create an "Expression" type property. Name it Process Time.
3. For each sequence table, complete the column as follows:
➢ SequenceA: Input@Server1 = Random.Uniform(0.5, 0.9), Input@Server2 =
Random.Triangular(0.5, 1.1, 1.2), Input@Server3 = Random.Triangular(0.5, 1.1, 1.2),
Input@Sink1 = 0.0
➢ SequenceB: Input@Server3 = Random.Triangular(0.5, 0.8, 1.2), Input@Server2 = 1.5,
Input@Server1 = 1, Input@Sink1 = 0.0
➢ SequenceC: Input@Server2 = Random.Triangular(0.5, 1.2, 1.6), Input@Sink1 = 0.0
4. In the "Data" tab, add data table, name it "JobTable", add the following properties:
➢ (Entity Object Reference) PartType, set PartA, PartB, PartC as values ;
➢ (Expression) ProcessTime, set SequenceA.ProcessTime, SequenceB.ProcessTime,
SequenceC.ProcessTime as values;
➢ (Integer) ProductMix, set 10, 20, 30 as values;
➢ (Sequence Table) PartSequence, set SequenceA, SequenceB, SequenceC as values.

5. In "Facility Window", expand "Table Reference Assignments" under the source properties
window (Source1). Under "Before Creating Entities", set "Table name" to "JobTable" and the
Row Number property to "JobTable.ProductMixt.RandomRow". Under the On Created Entity
part, set the Table Name property to "JobTable.PartSequence" and leave Row Number blank.
6. Under the source, change the "Arrival, Logic Entity Type" to "JobTable.PartType".
7. For all servers, set the Process Time property under Processing Logic to JobTable.ProcessTime.
8. Verify that for all transfer nodes, the Entity Destination Type property is set to "By Sequence".
9. Start the simulation.

Exercise 5: Multi-product systems, improvement (10min)


This is an improvement of the previous exercise. The goal is to have a single sequence table instead
of several.
1. Open the previous model, in the Data tab; delete the JobTable ProcessTime and PartSequence
columns. Ignore error messages.
2. Add a new string and name it SequenceType. Use “Set Column As Key”. Fill the table as shown
in the figure below:

EL MOUAYNI ISMAIL 4
3. Add a new sequence table called "Sequeneces" consisting of a Sequence, named Sequence, and
expression “ProcessTime” for the operating times. Use the "Foreign Key" button to add a foreign
key, called "SequenceType". On the Logic tab, under column properties, assign
JobeTable.SequenceType to the Table Key attribute. Fill the table as shown in the figure below:

4. For the different servers, under ProcessingTime, assign the Sequence.ProcessTime expressions
instead of JobTable.ProcessTime. Verify that for model entities, Initial Sequence is empty. Start
simulation.

Exercise 6: Batch manufacturing (25min)


Consider that an infinite stock of car parts needs to be painted in two colors: green or blue. A table
is available that specifies the quantity to be produced for each product type (0 for green 1 for blue) in a
given cycle (cycle is resumed after all parts are produced):

Part Quantity
0 4
1 5
0 2
1 20
0 35
1 40

1. Conceptual model: create a model composed of a source, a server, and a sink (Sink) connected
respectively by a connector and a path. Add a "ModelEntity" from the standard library. Name it
"AnyEntity". Click on AnyEntity, and use the "Add Additional Symbol" button, click the "color"
icon to change the entity's color for the index 0. Keep the original index color 0.

2. Data table: In the "Data" tab in the tables’ panel, select "Add Data Table" to add a data table
named "DataTable1". Add two integer properties: PartType, and Quantity. Complete the table
according to the data presented at the beginning.
3. Click the "Definitions" tab and select the States panel. Add a discrete state variable, name it
"Index" to specify the row index of the table that is currently under processing. Similarly, define
a second discrete variable named "Count" to specify the produced quantity.
4. Define the process shown in the figure below: In the process tab, create a new process named
Process1, Place a step "Decide" followed by "Assign" in the "True" side of output. On the
“False” side, place another "Assign", followed by "Decide" and "Assign".

EL MOUAYNI ISMAIL 5
5. Change the name of the first Decide to DecideIsCurrentRowDone, which will compare the
quantity produced to the desired quantity in the DataTable1 table. Set the Decide Type to
Conditional Based, and in the expression (Expression property) the formula Count <DataTable1
[Index] .Quantity.
6. Change the name of the "Assign" step from the output "True" to "AssignPictureAndCount". On
the Properties tab, assign the attribute "State Variable Name" to "ModelEntityPicture" which is
a predefined variable and contains the index of the image to be displayed for the model entity.
In the "New Value" attribute, set the expression DataTable [Index] .PartType. In the
"Assignments (More) attribute, put the expression Count = Count +1. Explain the role of this
Assign.

7. Rename the Assign step on the False output side of the first Decide to AssignRowAndCount. In
the Properties tab, assign the "Count" variable to the "State Variable Name" attribute, set the
value 0.0 to "New Value" and the expression Index = Index +1 to "Assignments (More). Explain
the role of this step.
8. Rename the second Decide to DecideIfEndOfTable. Assign ConditionalBased to the "Decide
Type" attribute and Index> = DataTable1.AvailableRowCount to the Expression attribute.
Explain the role of this step.
9. Rename the last Assign to AssignRestart. Set Index to "State Variable Name" and value 1 to
New Value. Explain the role of this step.
10. Go to the "Facility" tab, on the Properties tab, under Add-On Process Triggers, assign Process1
to the "Entered" attribute. Start simulation.

Exercice 7: Stochastic routing (15min)


We are considering products which are initially produced on one of the three parallel machines M1, M2,
M3. The machine choice follows the following probability distribution:
• The product passes through M1 with probability 0.5;
• The product passes through M2 with probability 0.2;
• The product passes through M3 with probability 0.3.
After this first treatment, the product passes on to a second machine in order to be processed. The
operating time depends on the previous operation:
• The operating time is 3 if the product has passed through the machine 1;
• The operating time is 5 if the product has passed through the machine 2;
• The operating time is 6 if the product has passed through the machine 3.
1. Conceptual model: in the "Facility" tab, place a source and four servers. The first three are parallel
and lead to the fourth. The first three paths that bind the source and the first three servers have
different "Selection Weight" respectively .5, .3, .2. Explain these values.
2. On the "State Assignment" tab of each path to the server4, in the On Entering attribute, assign a
value to the ModelEntity.Priority variable as follows:
• 1 for products arriving from server 1;
• 2 for products arriving from server 2;
• 3 for products arriving from server 3;

EL MOUAYNI ISMAIL 6
3. On the Data tab, click the Lookup Table panel, create a new table, name itTProcessingTimes. Put
values 1, 2, 3 in the X column and 3, 5, 6 in the Y column. Explain the role of this data structure.
4. In the ProcessingTime attribute of the fourth server, put the expression TProcessingTimes
[ModelEntity.Priotity]. Start simulation.

Problem 1: Optimizing a Mobile Entity System


A system is envisaged for carrying out the process illustrated by the figure below:
Retour de la palette

Mettre en palette Traiter Détacher


Arrivée d une pièce
Produit fini
The part arrivals are defined according to the periods which are uniformly distributed between 0.75min
and 1.25min (one arrival corresponds to a single piece). The time required to set or detach parts from a
pallet is uniformly distributed between 10 and 20 seconds.
The operative time required to treat a single piece follows an exponential distribution with an
average of 0.9 min.
The time required to make the return of the pallets is also stochastic and follows a triangular
distribution of respective parameters: 5, 15, 25 minutes.
We ask:
1. Determine the number of pallets in circulation (a fixed number);
2. Determine the capacity of the pallets (2, 4 or 6).
Such as:
• The number of finished products per hour is 55.
• The average time spent by a part in the system is one hour maximum.
NB:𝑖𝑓 𝑆𝑛 = ∑𝑛𝑖=1 𝑋𝐼 𝑎𝑠 𝑋𝑖 follow an exponnential disribution of parameter 𝜇,
𝑠𝑜 𝑆𝑛 follows a distribution of parameter erlang 𝑛 𝑎𝑛𝑑 𝜇.

EL MOUAYNI ISMAIL 7

You might also like