SIMAN1.MOD

From Support

Jump to: navigation, search

Back to Model Library

See also: How to read .MOD pages

Contents

Description

Many popular simulation packages are based on what is known as a process worldview. (The process approach is also sometimes called network modeling.) Process-oriented simulation languages provide a series of pre-programmed blocks that represent some of the typical processing stages in a queueing system. Examples of such blocks include a block to represent the entity waiting (i.e., a QUEUE block) and another to represent the start of service (i.e., a SEIZE block).

SIGMA can be used to build a dynamic Windows subset of the manufacturing-specific simulation language, SIMAN. Two examples of this are SIMAN1.MOD and SIMAN2.MOD.

SIMAN1.MOD is a basic queuing model containing a subset of SIMAN blocks, where each block is a group of animated event vertices.

See Topics for more infromation.

State Variables

State Variables in SIMAN1.MOD
Variable Name Variable Description Size Type
NQ[i] Queue Size for each queue 10 Integer
NR[i] Number of busy resources of each type 10 Integer
S Storage Current number of entities in a DELAY 10 Integer
MR[i] Total number of resources of each type 10 Integer
ENT[j] Attributes of an entity 15 Real
RNK[i] Ranking attribute for each of the queues 25 Integer
ID Generic SIMAN (transient) entity ID number 1 Integer
QID Queue ID 1 Integer
CAP Queue Capacity 1 Integer
WAIT Queue waiting time for each queue 10 Real
AW Queue average waiting time for each queue 10 Real
CQ Queue count of number of customers who wait 10 Integer
SID Storage id number for places to wait during DELAY 1 Integer
RID Resource id number 1 Integer
QTY Resource quantity to be released 1 Integer
TW Total waiting time in the system of all entities 10 Real
NC Total count of entities entering the COUNT block 10 Integer
AWT Total average time in system until reaching COUNT 10 Real
CID Counter ID number 1 Integer
DISP Queue ranking for each queue 10 Integer


Vertices

Select Vertices from SIMAN1.MOD
Vertex Name Vertex Description State Changes
BEGIN The run starts ID=0, MR[1]=2, MR[2]=3
CREATE An entitiy is created, mark the time and place it in the system queue ENT[0]=ID, ENT[1]=CLK, NQ[0]=NQ[0]+PUT{FIF;0}
QUEUE Queue increases DISP=DISP[QID], ENT[0]=ID, ENT[1]=CLK, NQ[QID]=NQ[QID]+PUT{DISP;QID}, RID=QID
SEIZE A server is seized RID=1, QID=1, NR[RID]=NR[RID]+QTY, NQ[QID]=NQ[QID]-GET{FST;QID}, ID=ENT[0], CQ[QID]=CQ[QID]+1, WAIT[QID]=CLK-ENT[1], AW[QID]=AW[QID]*(CQ[QID]-1)/CQ[QID]+NQ[QID]/CQ[QID]
DELAY Entity is in STORAGE during its service S[SID]=S[SID]+1
RELEASE A server is released NR[RID]=NR[RID]-QTY
COUNT Entity leaves the system ENT[0]=ID, NQ[0]=NQ[0]-GET{KEY;0}, NC[CID]=NC[CID]+1, TW[CID]=TW[CID]+(CLK-ENT[1]), AWT[CID]=TW[CID]/NC[CID]

Initialization Conditions

This model has no initialization conditions.

Event Relationship Graph

There is no Event Relationship Graph available for this model.

SIMAN1.MOD as seen in SIGMA
SIMAN1.MOD as seen in SIGMA

English Translation

An English translation is a verbal description of a model, automatically generated by SIGMA.

The SIGMA Model, SIMAN1.MOD, is a discrete event simulation. 
I. STATE VARIABLE DEFINITIONS.
For this simulation, the following state variables are defined:
ENT[15]: Attributes of an entity  (real valued)
RNK[25]: Ranking attribute for each of the queues   (integer valued)
ID: Generic SIMAN (transient) entity ID number   (integer valued)
QID: Queue ID   (integer valued)
CAP: QUEUE Capacity   (integer valued)
NQ[10]: QUEUE Size for each queue   (integer valued)
MR[10]: RESOURCE total number of resources of each type   (integer valued)
WAIT[10]: QUEUE waiting time for each queue  (real valued)
AW[10]: QUEUE average waiting time for each queue  (real valued)
CQ[10]: QUEUE count of number of customers who wait   (integer valued)
NR[10]: RESOURCES, number of busy resources of each type   (integer valued)
S[10]: STORAGE Current number of entities in a DELAY   (integer valued)
SID: STORAGE id number for places to wait during DELAY   (integer valued)
RID: RESOURCE id number   (integer valued)
QTY: RESOURCE quantity to be released   (integer valued)
TW[10]: Total waiting time in the system of all entities  (real valued)
NC[10]: Total count of entities entering the COUNT block   (integer valued)
AWT[10]: Total average time in system until reaching COUNT  (real valued)
CID: COUNTER ID number   (integer valued)
DISP[10]: QUEUE ranking for each queue   (integer valued)
II. EVENT DEFINITIONS.
Simulation state changes are represented by event vertices (nodes or balls) in a SIGMA graph.  
Event vertex parameters, if any, are given in parentheses. Logical and dynamic relationships 
between pairs of events are represented in a SIGMA graph by edges (arrows) between event vertices.  
Unless otherwise stated, vertex execution priorities, to break time ties, are equal to 5.
1. The BEGIN() event occurs when the run starts.
   This event causes the following state change(s):
   ID=0
   MR[1]=2
   MR[2]=3
   After every occurrence of the BEGIN event:
   Unconditionally, schedule the CREATE(ID) event to occur without delay...
   using the parameter value(s) of ID,1,30*ERL{1},10.
   (Time ties are broken by an execution priority of 6.)
2. The CREATE(ID) event occurs when an entitiy is created, 
   mark the time and place it in the system queue.
   This event causes the following state change(s):
   ENT[0]=ID
   ENT[1]=CLK
   NQ[0]=NQ[0]+PUT{FIF;0}
   After every occurrence of the CREATE event:
   Unconditionally, schedule the CREATE(ID) event to occur in DISK{DISTNS.DAT;1} time units...
   using the parameter value(s) of ID+1.
   (Time ties are broken by an execution priority of 6.)
   Unconditionally, schedule the bQueue(ID,QID,CAP,DISP[QID]) event to occur without delay...
   using the parameter value(s) of ID,1,10,1.
3. The bQueue(ID,QID,CAP,DISP[QID]) event:
   This event causes the following state change(s):
   DISP=DISP[QID]
   ENT[0]=ID
   ENT[1]=CLK
   NQ[QID]=NQ[QID]+PUT{DISP;QID}
   RID=QID
   After every occurrence of the bQueue event:
   If NQ[QID]>CAP, then queue QID exceeded its capacity and customer balks;
   that is, schedule the bkQue(ID,QID) event to occur without delay...
   using the parameter value(s) of ID,QID.
   (Time ties are broken by an execution priority of 0.)
   If NQ[QID]<=CAP and NR[QID]<MR[QID], 
   then the QUEUE capacity is not exceeded and the resource is idle;
   that is, schedule the SIEZE(ID,RID,QTY) event to occur without delay...
   using the parameter value(s) of ID,QID,1.
4. The bkQue(ID,QID) event occurs when queue QID has its capacity exceeded .
   This event causes the following state change(s):
   NQ[QID]=NQ[QID]-GET{LST;QID}
   After every occurrence of the bkQue event:
   Unconditionally, connects to the balk block, if any;
   that is, schedule the BALK() event to occur without delay...
   using the parameter value(s) of ID.
5. The BALK() event:
   No additional events are scheduled here.
6. The SIEZE(ID,RID,QTY) event:
   This event causes the following state change(s):
   RID=1
   QID=1
   NR[RID]=NR[RID]+QTY
   NQ[QID]=NQ[QID]-GET{FST;QID}
   ID=ENT[0]
   CQ[QID]=CQ[QID]+1
   WAIT[QID]=CLK-ENT[1]
   AW[QID]=AW[QID]*(CQ[QID]-1)/CQ[QID]+NQ[QID]/CQ[QID]
   After every occurrence of the SIEZE event:
   Unconditionally, schedule the sDelay(ID,SID) event to occur without delay...
   using the parameter value(s) of ID,RID.
7. The sDelay(ID,SID) event occurs when entity is in STORAGE during its service.
   This event causes the following state change(s):
   S[SID]=S[SID]+1
   After every occurrence of the sDelay event:
   Unconditionally, schedule the eDelay(ID,SID) event to occur in DISK{DISTNS.DAT;2} time units...
   using the parameter value(s) of ID,SID.
   (Time ties are broken by an execution priority of 6.)
8. The eDelay(ID,SID) event occurs when entity departs the STORAGE for this delay block.
   This event causes the following state change(s):
   S[SID]=S[SID]-1
   After every occurrence of the eDelay event:
   Unconditionally, schedule the RELEAS(ID,RID,QTY) event to occur without delay...
   using the parameter value(s) of ID,SID,1.
9. The RELEAS(ID,RID,QTY) event:
   This event causes the following state change(s):
   NR[RID]=NR[RID]-QTY
   After every occurrence of the RELEAS event:
   Unconditionally, schedule the COUNT(ID,CID) event to occur without delay...
   using the parameter value(s) of ID,RID.
   If NQ[RID]>0 and NR[RID]<MR[RID], then schedule the SIEZE(ID,RID,QTY) event 
   to occur without delay...
   using the parameter value(s) of 0,RID,1.
10. The COUNT(ID,CID) event occurs when entity leaves the system.
    This event causes the following state change(s):
    ENT[0]=ID
    NQ[0]=NQ[0]-GET{KEY;0}
    NC[CID]=NC[CID]+1
    TW[CID]=TW[CID]+(CLK-ENT[1])
    AWT[CID]=TW[CID]/NC[CID]
    No additional events are scheduled here.

Comments

This model is not available using the educational version of SIGMA.




Back to top

Back to Model Library

Personal tools
Navigation