Download presentation
Presentation is loading. Please wait.
1
第4章 GPSSWorld 常用语句及其使用 本章主要内容:
1. 系统数字属性(System Numerical Attributes) ( SNA ) 2. 定义语句的用途 3. 变量定义 4. 函数定义 5. 存储器定义 6. 符号定义 7. GPSSWorld语言编程举例 语句
2
4-1 系统数字属性 (SNA) 在GPSSWorld语言使用中, 系统状态参数或活动实体的参数可能不是常数,这种在模拟中变化的参数如何使用呢? GPSSWorld 语言中各种参数的使用常常借助系统数字属性(System Numerical Attributes SNA )每类参数都有一个代码, 并加一变量名或数字码来区分同一参数中的不同情况. 常用 SNA 有: C 模拟时钟 P$p_ 动态实体所带的p_1参数 V$x_ 名为x_1 的自定义变量 Q$q_ 名为q_1队列的当前长度 RNj [ 0, 1000) 之间的均匀分布随机数, j 为随机数发生器号 FN$fx_ 名为fx_1的自定义函数 : 其中 $ 是 GPSS/PC 要求的,在GPSSWorldWorld中,只有当j是变量名是才用 $ 。如果用数字,则为P1、V3、Q1、FN1等等。
3
4-1 系统数字属性 (SNA) TERMINATE 在程序中使用参数时, 利用 SNA (系统属性码) 十分方便. 例:
GENERATE 18,6 ASSIGN car_x1, 将 35 吨赋于 car_x1 参数 : (转到 L_SI) GENERATE 45,10 ASSIGN car_x1, 将 70 吨赋于car_x1参数 L_SI ENTER St_1, (P$car_x1) 一号存储器中加入car_x1参数值 ASSIGN car_x3, C 将当前时间赋给car_x3号参数 TERMINATE
4
各种属性一览表 表一 序号 分类 属性码 表示内容 1 模拟钟 C1 模拟当前时钟,相对时钟 2 AC1 绝对时钟 3 活动实体 P$v_j 动态实体所带的名为v_j的参数 4 PR 优先级 5 M1 活动实体寿命 6 MP 参数传输时间 7 变量 V$v_j 名为v_j的自定义变量值 8 函数 FN$v_j 名为v_j的自定义函数值 9 队列 Q$v_j 名为v_j的队列的当前长度 10 QA$v_j 名为v_j的队列的平均长度 11 QM$v_j 名为v_j的队列的最大长度 12 QC$v_j 名为v_j的队列的总排队人数 13 QZ$v_j 名为v_j的队列的未排队人数(经过而不等候的人数) 14 QT$v_j 名为v_j的队列的活动实体的平均等待时间 15 QX$v_j 名为v_j的队列不包括零等待活动实体的平均等待时间
5
各种属性一览表 表二 序号 分类 属性码 表示内容 16 设施 F$v_j 名为v_j的设施的状态,使用中为1,闲置为0 17 FR$v_j
各种属性一览表 表二 序号 分类 属性码 表示内容 16 设施 F$v_j 名为v_j的设施的状态,使用中为1,闲置为0 17 FR$v_j 名为v_j的设施的利用率 18 FC$v_j 名为v_j的设施的的活动实体总数 19 FT$v_j 每个活动实体对名为v_j的设施的平均占用时间 20 存储器 S$v_j 名为v_j的存储器的当前含量 21 R$v_j 名为v_j的存储器的剩余容量 22 SR$v_j 名为v_j的存储器的利用率(‰) 23 SA$v_j 名为v_j的存储器的平均含量 24 SM$v_j 名为v_j的存储器的最大容量 25 SF$v_j 名为v_j的存储器满为1,不满为0 26 SC$v_j 名为v_j的存储器的进入计数 27 保存值 X$v_j 名为v_j的保存值数值 28 随机数 RN$v_j 名为v_j的存随机数发生器产生的随机数 29 逻辑开关 LR$v_j 名为v_j的逻辑开关打开时为1,否则为0 30 LS$v_j 名为v_j的逻辑开关打开时为0,否则为1 31 模 块 N$v_j 名为v_j的模块活动实体总进入数 32 W$v_j 名为v_j的模块活动实体当前进入数
6
XN1 TG1 Z1 BV$v_x CA$v_x CC$v_x CH$v_x CM$v_x CT$v_x A1 FC$v_x FI$v_x
新增属性 表三 分类 属性码 (v_x为实体名) 表示内容 活动实体 XN1 系统中激活的活动实体数 TG1 系统模拟时的剩余计数,该数的初值由START nnn 指定。 Z1 剩余内存,由操作系统返回 BV$v_x 返回由BVARIABLE定义的布尔变量值 用户链 CA$v_x 用户链平均长度 CC$v_x 用户链总长度 CH$v_x 当前用户链长度 CM$v_x 最大用户链长度 CT$v_x 用户链平均等待时间 装配集 A1 处于活动状态的装配集数目 设施 FC$v_x 设施已捕获的实体数 FI$v_x 设施被中断状态:1表示被抢先,0表示其它 FV$v_x 设施是否处于可用状态:1表示可用,0表示不可用。
7
新增属性 表四 GN$v_x TG1 TB$v_x TC$v_x TD$v_x 分类 属性码(v_x为实体名) 表示内容 活动实体
新增属性 表四 分类 属性码(v_x为实体名) 表示内容 活动实体 GN$v_x 进入分组中的实体数 TG1 系统模拟时的剩余计数,该数的初值由START nnn 指定。 表实体 TB$v_x 已进入表统计的实体的非加权平均数 TC$v_x 已进入非加权表统计的实体的数目 TD$v_x 已进入非加权表实体的标准差
8
4-1 系统数字属性 (SNA) 下面程序是一个模块的程序,请认真阅读程序,并用Plot Windows动态显示其结果.
GENERATE ASSIGN P_X1, RN1 ADVANCE TERMINATE
9
4-2 GPSSWorld语言的定义语句 本章介绍下列定义语句:
定义语句是用来对函数, 变量, 逻辑开关,存储器容量, 符号含义, 随机数种子, 用户自定义表格等进行事先说明。 相当于高级语言的说明语句。 因此, 定义语句应放在整个程序的前面。 本章介绍下列定义语句: 1. 变量定义 (VARIABLE) 2. 函数定义 (FUNCTION) 3. 存储器定义 (STORAGE) 4. 符号定义 (EQU)
10
4-2-1 变量定义语句 变量定义语句用来定义一组已知公式, 公式中可使用 SNA码及常用数学运算。(这有点类似高级编程语言C中的带公式的宏定义变量。) 语句格式如下: 变量名 VARIABLE 公式 变量名 FVARIABLE 公式 (定义浮点变量) 变量名 BVARIABLE 公式 (逻辑变量) 其中: 变量号由数字或字母组成, 如 1, 2, .....或var1,var2,… 公式为算术或逻辑表达式, 或常数, 可使用 SNA 码 例: myx_ VARIABLE #P$WEIGHT myx_ FVARIABLE (RN1#10) / P$X_1 myx_ BVARIABLE 6>P$x_2> 逻辑表达式
11
在程序中调用变量时, 采用 SNA 码, 即 V$变量名. 例: ASSIGN OB_x1, V$My_x1
变量在程序中的调用 在程序中调用变量时, 采用 SNA 码, 即 V$变量名. 例: ASSIGN OB_x1, V$My_x1 ASSIGN OB_x1+, V$My_y2 ADVANCE (P$OB_x1), (V$My_z3) 变量的定义必须在程序之前完成, 程序中间不能重新定义 !
12
函数定义语句是用来定义一组已知的数值函数, 因此需要函数的点数及各点的值, 或者使用 SNA 码。
4-2-2 函数定义语句 函数定义语句是用来定义一组已知的数值函数, 因此需要函数的点数及各点的值, 或者使用 SNA 码。 函数定义语句至少由二行组成, 其格式为: 函数名 FUNCTION A, B X1,Y1/ X2,Y2/ X3,Y3 ……… (数据行) 其中: A 自变量 X, 按 A 值在数据行中选 Y 值 B 函数的形式及点数 Cj 连续型 Dj 离散型 Ej Lj Mj j 为点数
13
例: 1. C类型(连续型) 中间采用 线性插值 方法确定 88.2 53.7 10.1 1.1 10.5 33.3
4-2-2 函数定义语句 例: C类型(连续型) FN$Output 中间采用 线性插值 方法确定 88.2 53.7 10.1 1.1 10.5 33.3 V$Input Output FUNCTION V$Input, C3 1.1, 10.1 / 10.5, 53.7 / 33.3, 88.2
14
例: 1. C类型(连续型) 4-2-2 函数定义语句 1 .8 中间采用 线性插值 方法确定 .3 .2 .7 1
FN$Fun_1 1 .8 中间采用 线性插值 方法确定 .3 .2 .7 1 Fun_1 FUNCTION RN2, C4 0, 0/ 0.2, 0.3/ 0.7, 0.8/ 1, 1 ( 如果A为RN,则特指累计概率分布函数)
15
4-2-2 函数定义语句 2. D型 (离散型) 40 20 P$Px_1 5 10 20 30
FN$Fun_2 40 20 P$Px_1 5 10 20 30 Fun_ FUNCTION P$px_1, D4 5, 10 / 10, 40 / 20, 30 / 30, 10 Fun_2 号函数由四个离散点组成, 自变量由参数 P$px_1 确定.
16
4-2-2 函数定义语句 2. 离散型 FN$ Ran1 10.0 9.92 4.67 4.2 RN(x) 0.2 0.4 0.6 0.8 1.0 A D type Function with a random argument is used to define a discrete probability distribution. The Function is specified as a cumulative distribution function (CDF) with 0 as the value of the left end point and 1 the value of the right end point. When such a Function is evaluated, a random number between 0 and is taken from the random number stream and is used. The smallest X value in the Function Follower Statement that is greater than or equal to the random number is selected. The associated Y value is returned as the value of the Function. Ran1 FUNCTION RN1,D5 0,0 / .2, 4.2/ .4, 6.67 / .8, / 1.0,10 如果A为RN,则特指累计概率分布函数.
17
X$QRA(自变量) Edisc(因变量)返回值 SR$Stor1 SR$Stor2 SR$Stor3 SR$Stor5 SR$Stor6
4-2-2 函数定义语句 3. E型 离散属性值 Edisc FUNCTION X$QRA,E5 1, SR$Stor1 / 3, SR$Stor2 / 5,SR$Stor3 / 9, SR$Stor5 / 10, SR$Stor6 X$QRA(自变量) Edisc(因变量)返回值 1 SR$Stor1 3 SR$Stor2 5 SR$Stor3 9 SR$Stor5 10 SR$Stor6 Type E - Discrete, "attribute valued" function. Each argument value or probability mass is assigned an SNA to be evaluated. A random argument is a special case. In Function Follower Statements of E type Functions, the X Values must be Expression, and the Y Values must be Integer, Real, Name, SNA, or ParenthesizedExpression. A type E Function is evaluated in the same way as a type D Function, except that a type E Function requires one more step. After the appropriate X value is chosen, the associated SNA (Y value) is evaluated and returned as the result of the Function.
18
Q$Barber(自变量) PAR1 PAR2 PAR3 PAR4 PAR5
4-2-2 函数定义语句 4. L型 列值函数 Listtype FUNCTION Q$Barber,L5 1, PAR1 / 2, PAR2 / 3, PAR3 / 4,PAR4 / 5, PAR5 Q$Barber(自变量) FN$Listtype(因变量)返回值 1 PAR1 2 PAR2 3 PAR3 4 PAR4 5 PAR5 Type L - List valued function. The argument value is used to determine the list position of the value to be returned. In Function Follower Statements of L type Functions, the X Values must be Integer, and the Y Values must be Integer, Real, or Name. The Function Follower Statements define a list of values from which the result is chosen. When the Function is evaluated, the argument is evaluated and used as the ordinal number (X value) of the list member. The Y value with that position within the list is returned as the result. If the argument is too large or less than 1, an Error Stop occurs. X values must begin with 1 and be incremented by 1 for each successive data pair. X values may not be omitted in Function Follower Statements.
19
X$Name1 Q$NamX Q$Nam4 Q$Nam6 F$Tan1
4-2-2 函数定义语句 Mlist FUNCTION X$Name1, M5 1,Q$Nnam1 / 2,Q$NamX / 3,Q$Nam4 / 4,Q$Nam6 / 5,F$Tan1 5. M型 属性列值函数 X$Name1 FN$ Mlist(因变量)返回值 1 Q$Nnam1 2 Q$NamX 3 Q$Nam4 4 Q$Nam6 5 F$Tan1 Type M - Attribute list valued function. The argument value is used to determine the list position of the SNA to be evaluated and returned as the result. In Function Follower Statements of M type Functions, the X Values must be Expression, and the Y Values must be Integer, Real, Name, SNA, or ParenthesizedExpression. A type M Function is evaluated in the same way as a type L Function, except that a type M Function requires one more step. After the list position is chosen, the associated SNA is evaluated and returned as the Y value.
20
函数规则 · The X values of Function Follower Statements must be non decreasing. · Function Follower Statements are NEVER line numbered. · A Function which has a random argument must describe a valid cumulative (累积) probability distribution in the Function Follower Statements. · All fields in a Function Command are required. · All X values and Y values in Function Follower Statements are required. · The number of data pairs stated in the B Operand of the FUNCTION Commands must correspond to pairs separated by slashes, [/], in the Function Follower Statements. · X1, the first probability value specifying a random continuous Function must be 0. CDF values must be nonnegative, nondecreasing, and may not exceed 1. · Function Follower Statements have no comments field.
21
函数规则 · In a Function Follower Statement, an X value is followed by [,], [,] is followed by a Y value, a Y value is followed by [/] or [CR], and [/] is followed by an X value. · CDFs must be nondecreasing between 0 and 1, inclusively. Any missing probability in C type Functions is given to the rightmost interval, otherwise missing probability is an error. · C,D, and L type Functions cannot have SNAs for Y values. · E and M type Functions must have SNAs, or parenthesized Expressions, for Y values. · L and M type Functions may not have random arguments. · The Function Follower Statements of L and M type Functions must have sequential X values starting with 1. Type M - Attribute list valued function. The argument value is used to determine the list position of the SNA to be evaluated and returned as the result. In Function Follower Statements of M type Functions, the X Values must be Expression, and the Y Values must be Integer, Real, Name, SNA, or ParenthesizedExpression. A type M Function is evaluated in the same way as a type L Function, except that a type M Function requires one more step. After the list position is chosen, the associated SNA is evaluated and returned as the Y value.
22
4-2-2 函数定义语句 例: 一检查员检查时间的概率分布为: 检验时间 发生频率 累计频率 15 0.1 0.1 16 0.6 0.7
检验时间 发生频率 累计频率 则函数可定义为: fun_ FUNCTION RN1, D3 0.1, 15 / 0.7, 16 / 1.0, 17
23
停车场问题 车辆类型 占位 出现概率 累计概率 自行车 1 45% 电动车 2 35% 80% 摩托车 3 15% 95% 小汽车 6 5%
100% F_S FUNCTION RN3,D4 0.45,1/0.8,2/0.95,3/1,6
24
4-2-3 存储器定义语句 存储器定义语句用来定义存储器的容量, 其格式如下: 1. 单独定义: 存储器号 STORAGE 容量
2. 集中定义: STORAGE S$存储器号, 容量/ .... 例: sto_ STORAGE sto_ STORAGE 在程序中使用存储器时, 可使用其 SNA 码 S$sname 表示sname存储器的当前含量。
25
4-2-4 符号定义语句 由于 GPSSWorld/PC 不能直接使用符号型名称, 必须将符号定义成相应的数字。这一工作由符号定义语句完成, 定义后的符号就可以在程序中使用。 符号定义语句格式如下: 符号 EQU 数字 例: LINE EQU JON EQU F_ EQU
26
4.3 GPSSWorld 语言编程举例 例4.3.1 串联排队系统
某个只有一台加油器的汽车加油站, 加油的汽车到达间隔时间为均匀分布,均值为100秒,方差为 10秒。 到达加油站后先排队等候,再加油, 加油服务时间也为均匀分布,均值为80秒,方差为 8秒。加油后司机要去交费窗口排队等待交费,交费时间也为均匀分布,均值为50秒,方差为 30秒。在例 3.4 所建的模型中我们将等候加油的队列定为1号队列,等候交费的队列定为2号队列,将加油器为1号设施,收费员为2号设施。这些队列和设施的代号是用数字来表示的。
27
4.3 GPSSWorld 语言编程举例 GENERATE 100,10 ;汽车到达 QUEUE LINE_1 ;排等候加油的队列
SEIZE F_O ;占用(加油机)设施 DEPART LINE_1 ;离开队列 ADVANCE ,8 ;加油所需时间 RELEASE F_O ;释放加油机 QUEUE LINE_ ;排队交费 SEIZE F_M ;锁定收款员,准备交费 DEPART LINE_2 ;离开交费队列 ADVANCE ,30 ;交费过程所需时间 RELEASE F_M ;结束交费,释放收款员 TERMINATE ;离开加油站,已加油车辆增加一个计数。
28
例4.3.2 具有二个入口的加油站这是一个具有二个入口的加油站,二个入口可同时进车, 但只站一队等候, 应如何编制程序
4.3 GPSSWorld 语言编程举例 例4.3.2 具有二个入口的加油站这是一个具有二个入口的加油站,二个入口可同时进车, 但只站一队等候, 应如何编制程序 GENERATE ,10 ;第一入口汽车到达 TRANSFER ,T_COM ;转向语句T_COM所在位置。 GENERATE ,10 ;第二入口汽车到达 T_COM QUEUE LINE_1 ;两个入口排等候加油的公共队列 SEIZE F_O ;占用(加油机)设施 DEPART LINE_1 ;离开队列 ADVANCE ,8 ;加油所需时间 RELEASE F_O ;释放加油机 QUEUE LINE_ ;排队交费 SEIZE F_M ;锁定收款员,准备交费 DEPART LINE_2 ;离开交费队列 ADVANCE ,30 ;交费过程所需时间 RELEASE F_M ;结束交费,释放收款员 TERMINATE ;离开加油站,已加油车辆增加一个计数
29
例4.3.3 具有二台加油机和两个入口的加油站。其它数与4.3.2相同
4.3 GPSSWorld 语言编程举例 例4.3.3 具有二台加油机和两个入口的加油站。其它数与4.3.2相同 S_O STORGE ;加油机数量 GENERATE ,10 ;第一入口汽车到达 TRANSFER ,T_COM ;转向语句T_COM所在位置。 GENERATE ,10 ;第二入口汽车到达 T_COM QUEUE LINE_1 ;两个入口排等候加油的公共队列 ENTER S_O ;加油机有空闲,则获取一台加油,否则等候 DEPART LINE_1 ;离开队列 ADVANCE ,8 ;加油所需时间 LEAVE S_O ;释放加油机 QUEUE LINE_ ;排队交费 SEIZE F_M ;锁定收款员,准备交费 DEPART LINE_2 ;离开交费队列 ADVANCE ,30 ;交费过程所需时间 RELEASE F_M ;结束交费,释放收款员 TERMINATE ;离开加油站,已加油车辆增加一个计数。
30
4.3 GPSSWorld 语言编程举例 例 4.7 传输带上的质量检查 若加工后的零件放在传输带上运输, 零件到达第一个检查员及每个检查员之间需要输送 2 分钟。通过模拟分析每个检查员的工作情况,有多少零件在通过第三个检查员后仍检查不到。
31
4.3 GPSSWorld 语言编程举例 三个检查员在传输带上工作框图
32
4.3 GPSSWorld 语言编程举例 GENERATE 5 ADVANCE 2 TRANSFER BOTH, NET1, CON1
NET1 SEIZE F_T1 ADVANCE , 9 RELEASE F_T1 TERMINATE * CON1 ADVANCE TRANSFER BOTH, NET2, CON2 NET2 SEIZE F_T2 RELEASE F_T2 * CON2 ADVANCE TRANSFER BOTH, NET3, CON3 NET3 SEIZE F_T3 ADVANCE , 9 RELEASE F_T3 TERMINATE CON3 TERMINATE
Similar presentations