SIMAN1.MOD
From Support
- 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
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
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.
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.