管理系统模拟与 GPSS语言 1
MSSV1.0
第 3章 GPSS 语言概述
1,GPSS 语言的基本格式
2,GPSS 程序的基本组成
3,GPSS 程序举例
4,GPSS 程序框图
5,GPSS/PC 程序的运行
6,GPSS 语言的基本模块
7,GPSS 控制语句
8,GPSS 程序的标准输出
本章主要内容,
管理系统模拟与 GPSS语言 2
MSSV1.0
3-1 GPSS 语言的基本格式
GPSS 语言程序块的基本格式,
地址 操作码 数据场 注解
地址即语句号,最多由五个字母,数字组成,必须由字母打头,
从第一列开始, 必要时才用
操作码即模块或语句名称,可用前四个字母简写
由多个数据组成,各数据间用逗号分开
语句注释,可有可无
管理系统模拟与 GPSS语言 3
MSSV1.0
3-1 GPSS 语言的基本格式
语句模块举例,
例如一个 延时模块 应书写如下,
F5 ADVANCE 5,2 服务时间
地址 操作码 数据场 注解
或可写成,
F5 ADVA 5,2 服务时间
ADVA 5,2 服务时间
管理系统模拟与 GPSS语言 4
MSSV1.0
3-2 GPSS 程序的基本组成
GPSS 模拟程序,
SIMULATE
LINE EQU 1
JOE EQU 1
GENERATE 18,6
QUEUE LINE
SEIZE JOE
DEPART LINE
ADVANCE 16,4
RELEASE JOE
TERMINATE 1
START 25
END
控制语句, 控制模拟过程
定义语句, 定义函数,实体,变量,开关等
程序语句 (模 )块, GPSS 语言模块
控制语句,控制模拟过程
管理系统模拟与 GPSS语言 5
MSSV1.0
3-3 GPSS 程序举例
下面给出的程序是某 机械加工中心 系统的模拟模型。 该机械
加工中心有 9 名技工和 4 台同样的机器,每台机器需二位技工来
操作。 当一件工作到达时,先由一位职员进行记录工作,然后将工
作交给一位技工进行准备工具等工作,当加工工作开始时,第二名
技工过来帮助操作机器。 在工作完成之前,职员应完成记录及收
款的工作。 车间每天八小时工作,但只在前七小时收活,最后一小
时只完成已收下的活。 其它参数及其所编程序如下,
(1)职员做记录工作时间为 4 ± 2 分钟,收尾工作时间为 9± 4 分钟。
(2)加工工作到达间隔时间为 15 ± 3 分钟。
(3)技工准备工具时间为 10 ± 3 分钟,操作机械时间为 55± 30 分
钟。
(4)以上时间均为均匀分布。
管理系统模拟与 GPSS语言 6
MSSV1.0
控制语句
定义语句
SIMULATE
RMULT 1111,2222,3333,4444,5555,6666
LINE EQU 1 总队列 ( 1 号队列 )
CLERK EQU 1 职员 ( 1 号设施 )
OPER EQU 1 技工 ( 1 号存储器 )
MACH EQU 2 机器 ( 2 号存储器 )
OPER STORAGE 9
MACH STORAGE 4
1 FUNCTION RN$2,C2 工件到达间隔时间 (12 - 18)
0,720/1,1081
2 FUNCTION RN$3,C2 职员初步记录时间 (2 - 6)
0,120/1,361
3 FUNCTION RN$4,C2 技工准备工具时间 (7 - 13 )
0,420/1,781
4 FUNCTION RN$5,C2 机器操作时间 ( 25 - 85 )
0,1500/1,5101
5 FUNCTION RN$6,C2 职员的最后处理时间 ( 5 - 13 )
0,300/1,781
管理系统模拟与 GPSS语言 7
MSSV1.0
程序
模块
GENERATE FN$1 工件到达
QUEUE LINE 排总队列
SEIZE CLERK 占用职员
ADVANCE FN$2 登记与记录
RELEASE CLERK 释放职员
ENTER OPER,1 占用一个技工
ADVANCE FN$3 技工准备工具
ENTER OPER,1 占用第二个技工
ENTER MACH,1 占用一台机器
ADVANCE FN$4 加工工件
LEAVE MACH,1 释放机器
LEAVE OPER,2 释放二个技工
SEIZE CLERK 占用职员
ADVANCE FN$5 最后记录
RELEASE CLERK 释放职员
DEPART LINE 离开总队列
TERMINATE
GENERATE 3600 每班时间
TERMINATE 1
START 7,NP 七小时关门
GENERATE 3601 一小时收尾
START 1
END
管理系统模拟与 GPSS语言 8
MSSV1.0
按研究目的的要求,我们利用模拟
求解 平均每件工作周转时间不能超过 1.5
小时的情况下,求出机械与技工的最佳组
合方案。 读者可从中看到 GPSS 语言和
程序的基本格式和组成。因为 GPSS 程
序是 ASCII 文件,所以可在 WORD 或
WPS 环境下观察或编辑。
3-3 GPSS 程序举例
管理系统模拟与 GPSS语言 9
MSSV1.0
3-4 GPSS 程序框图
GPSS 语言有独特的框图符号:
QUEUE
DEPART
ADVANCE
SEIZE
RELEASE
TERMINATE
GENERATE 产生活动实体
排队
离队
延时
占用设施
释放设施
离开系统
管理系统模拟与 GPSS语言 10
MSSV1.0
GPSS建模步骤
简例, M/ M/ l排队, 服务系统, 来说明 GPSS建模步骤:
第一步, 将问题抽象为直观的思维模型流程图, 如图 1所示 。
第二步, 对上一步流程图的各种事件或活动, 选用能体现其含义
的适当的 GPSS的功能模块, 构成功能模块流图, 如图 2所示 。
第三步, 按照功能模块流图及有关参数, 编写功能模块语句 。
第四步, 再补充必要的函数, 变量等的定义语句以及控制模拟 运
行的控制语句形成 GPSS模型初稿, 供上机调试, 修改完善 。
第五步, 设计模拟方案, 重复模拟次数及随机数种子数等参数 。
第六步,上机模拟运行,分析结果,编写试验报告。
管理系统模拟与 GPSS语言 11
MSSV1.0
3-4 GPSS 程序框图
GENERATE 18,6
QUEUE LINE
SEIZE JOE
DEPART LINE
ADVANCE 16,4
RELEASE JOE
TERMINATE 1
GENERATE
QUEUE
SEIZE
DEPART
ADVANCE
RELEASE
TERMINATE
LINE
LINE
JOE
JOE
16,4
18,6
1
图 1图 2
管理系统模拟与 GPSS语言 12
MSSV1.0
3-5 GPSS/PC 程序的运行
1.进入系统:
C>CD\ GPSS
C:\GPSS>GPSS 回车
GPS> 进入 GPSS 系统
2.执行程序:
GPS>CON:=NAME.GPS 回车 (屏幕显示)
GPS>IN1.OUT=NAME.GPS 回车 (结果存盘)
GPSS NAME.GPS (直接运行程序 )
应同时给出路径
输出文件 *.OUT 可用文本编辑软件观察
3.退出系统
QUIT 回车
执行的程序
输出文件
管理系统模拟与 GPSS语言 13
MSSV1.0
3-6 GPSS 语言的基本模块
1,与活动 (流动 )实体有关的模块 5,与逻辑开关有关的模块
2,与设施有关的模块 6,……,.
3,与队列有关的模块
4,与存储器有关的模块
管理系统内设备及人的分类,
1,活动 (流动 )实体 系统中移动的人,设备等
2,资源实体
设施 系统中固定的人,设备等
存储器 可存储动态实体的仓库,物料场,煤仓等
逻辑开关 只具有两种工作状态的开关型设备
队列 需排队等候之处
3,统计实体
表 各类统计表
基本模块的分类,
管理系统模拟与 GPSS语言 14
MSSV1.0
3.6.1 与活动实体有关的模块
1,GENERATE 产生活动实体的模块
格式, GENERATE A,B,C,D,E,F,G
A 到达间隔时间均值
B 到达间隔时间方差,缺省为零
C 第一个动态实体产生的时间
D 应产生动态实体的总数
E 被产生动态实体的优先级,1-- 127
F 实体携带参数的个数,缺省为 12
G 参数类型,缺省为半字参数
例,
GENERATE 5,3,25 在第 25 时间单位产生第一个活动实体
GENERATE 5,2,,,15 优先级为 15
GENE 18,4,,25 共产生 25 个活动实体
GENERATE
管理系统模拟与 GPSS语言 15
MSSV1.0
2,ADVANCE 活动实体延时模块
格式, ADVANCE A,B
A 延迟时间均值
B 延迟时间方差
例,
ADVANCE 18,6
ADVA 25
3.6.1 与活动实体有关的模块
ADVANCE
管理系统模拟与 GPSS语言 16
MSSV1.0
3.6.1 与活动实体有关的模块
3,TRANSFER 活动实体的转向模块。
TRANSFER A,B,C
其中, A 转向方式,有三种情况,
( 1),逗号为无条件转向 B 域给出的地址。
(2) BOTH 先企图进入 B 域地址,不成就去 C
域地址,两个地址都不通,就保留在此模块中。
(3) 小数 表示去 C 域的百分比,1-A 为去 B 址
的百分比,通路是随机的。
B,C 为按 A 域条件应去的地址号
管理系统模拟与 GPSS语言 17
MSSV1.0
例, 无条件转向语句:
TRANSFER,L1 ‘无条件转向 L1
有条件转向语句:
TRANSFER,75,L1,L2
表示 75% 去 L2,25% 去 L1。
TRANSFER BOTH,L1,L2
表示先去 L1,不行就去 L2,若 L1与 L2都出不去,则活动实体只
能在本模块中等候。
3.6.1 与活动实体有关的模块
管理系统模拟与 GPSS语言 18
MSSV1.0
4,TERMINATE 活动实体消失模块
格式, TERMINATE A
A 离开系统的活动实体的个数
例,
TERMINATE 1
TERMINATE 10
TERM 活动实体离开,但不统计
3.6.1 与活动实体有关的模块
TERMINATE
管理系统模拟与 GPSS语言 19
MSSV1.0
3.6.1 与活动实体有关的模块
5,ASSIGN 活动实体参数的赋值语句。
ASSIGN A,B
其中, A 需要 赋值或 改变参数的参数号,A值后
部可加写 +,- 号,A 域中的 +,- 号
表示从原有参数中加上或减去 B
B 需要赋给参数 A 或从参数 A 中 + 或
- 的数值
A,B
管理系统模拟与 GPSS语言 20
MSSV1.0
下面是一个汽车装卸过程的程序示例
GENERATE 18,6,,,,2 每个实体有二个参数
ASSIGN 1,25 一号参数为汽车载重量,赋值 25 吨
ASSIGN 2,2 二号参数为空,重车标记
1 为空车,2 为重车
,(程序的其他过程)
.
ASSIGN 1+,10 汽车载重量变为 35 吨
,(程序的其他过程)
.
ENTER 1,35 卸入 1号矿仓
ASSIGN 1,0 汽车载重量变为 0 吨
ASSIGN 2,1 变成空车
:
.
TERMINATE
3.6.1 与活动实体有关的模块
管理系统模拟与 GPSS语言 21
MSSV1.0
3.6.2 与设施有关的模块
1,SEIZE 活动实体获得设施控制权的模块
格式, SEIZE A
A 活动实体所要控制的设施号或名称
例, SEIZE 2
SEIZE JON
SEIZE
管理系统模拟与 GPSS语言 22
MSSV1.0
2,RELEASE 活动实体释放 (离开 )设施的模块
格式, RELEASE A
A 被释放 (离开 )设施的号或名称
例,
RELEASE 1
RELEAE JON
RELE 5
3.6.2 与设施有关的模块
RELEASE
管理系统模拟与 GPSS语言 23
MSSV1.0
格式, QUEUE A,B
A 活动实体所要排的队号或名称
B 活动实体排队后,队长所增加的量,
缺省时为 1
例,
QUEUE 2
QUEUE LINE
QUEUE 3,15
1,QUEUE 活动实体排队的模块
3.6.3 与队列有关的模块
QUEUE
管理系统模拟与 GPSS语言 24
MSSV1.0
格式, DEPART A,B
A 活动实体所在的队列号或名称
B 活动实体离开队列后,队长减少的量,缺省时为 1.
例,
DEPART 2
DEPART LINE
DEPART 3,15
2,DEPART 活动实体离开队列的模块
3.6.3 与队列有关的模块
DEPART
管理系统模拟与 GPSS语言 25
MSSV1.0
1,ENTER 把活动实体放入某个存储器的模块
格式, ENTER A,B
A 进入存储器的号 (存储器的容量应事先定义)
B 进入 A 存储器后,存储器增加的量,缺省时为 1.
例, ENTER 2
ENTER STORE,25
ENTE S2,2
3.6.4 与存储器有关的模块
管理系统模拟与 GPSS语言 26
MSSV1.0
2,LEAVE 活动实体离开某存储器的模块
格式, LEAVE A,B
A 离开存储器的号
B 离开 A 存储器后,存储器减少的量,缺省时为 1.
例,
LEAVE 2
LEAVE STORE,25
LEAV S2,2
3.6.4 与存储器有关的模块
管理系统模拟与 GPSS语言 27
MSSV1.0
基本模块小结
与活动实体有关的模块,
1,GENERATE
2,TERMINATE
3,ADVANCE
4,ASSIGN
5,TRANSFER
与设施有关的模块,
1,SEIZE
2,RELEASE
与队列有关的模块,
1,QUEUE
2,DEPART
与存储器有关的模块,
1,ENTER
2,LEAVE
管理系统模拟与 GPSS语言 28
MSSV1.0
3.7 GPSS 语言的 控制语句
控制语句是用来控制模拟过程的,常用的语句如下,
1,SIMULATE 执行模拟
2,START A,B,C,D 控制模拟状态
A 使模拟终止的动态实体计数
B 从多少个活动实体开始打印统计报告
C 生成输出报告的计数间隔
D 输出动态实体的链状态
3,END 终止模拟
4,RESET 清除积累统计
管理系统模拟与 GPSS语言 29
MSSV1.0
3.8 GPSS 语言 基本模块编程举例
1.模拟的终止
例一, 利用 TERMINATE 和 START 控制
:
:
TERMINATE 1
START 25
END
:
:
TERMINATE 2
:
:
TERMINATE 1
START 50
END
管理系统模拟与 GPSS语言 30
MSSV1.0
:
:
TERMINATE 1
:
:
TERMINATE
START 25
END
例二, 利用时间控制
GENERATE 18,6
:
TERMINATE
GENERATE 3600
TERMINATE 1
START 2 模拟二小时
END
一个程序中
可有多个 GENE
模块
3.8 GPSS 语言 基本模块编程举例
管理系统模拟与 GPSS语言 31
MSSV1.0
例三, 利用终止语句控制
GENERATE 18,6
:
:
TERMINATE
:
TM TERMINATE 1000
START 1000
END
程序中需要终止的地方就转向 TM 语句
GOTO
3.8 GPSS 语言 基本模块编程举例
管理系统模拟与 GPSS语言 32
MSSV1.0
例四, RESET 的使用
GENERATE 18,6
:
:
TERMINATE 1
START 10
RESET
START 100
END
例五, QUEUE 的使用
:,
QUEUE 1 QUEUE 1
SEIZE 2 SEIZE 2
DEPART 1 ADVANCE 5
ADVANCE 5 RELEASE 2
RELEASE 2 DEPART 1
:,
设施 2 设施 2
队列 1 队列 1
3.8 GPSS 语言 基本模块编程举例
管理系统模拟与 GPSS语言 33
MSSV1.0
3.9 GPSS 的标准输出
GPSS 标准输出的组成,
1,扩充程序表
2,模拟钟及模块计数表 (BLOCK)
3,各类统计表
1) 设施统计 (FACILITY)
2) 队列统计 (QUEUE)
3) 存储器统计 (STORAGE)
4) 开关状态统计 ( SWITCH)
5) 模块链统计
6) 用户表
7) 内存变量表
管理系统模拟与 GPSS语言 34
MSSV1.0
RELATIVE CLOCK 144000 ABSOLUTE CLOCK 144000
BLOCK COUNTS
BLOCK CURRENT TOTAL BLOCK CURRENT TOTAL BLOCK CURRENT TOTAL
1 0 15 2 0 15 3 0 15
4 0 19054 5 0 18683 6 0 263
7 0 371 8 0 188 9 0 183
10 0 446 11 0 446 12 0 446
13 0 446 14 0 188 15 0 188
16 0 188 17 0 634 18 0 634
19 0 5 20 0 5 21 0 5
22 0 634 23 0 634 24 0 634
25 0 634 26 0 634 27 0 634
28 0 634 29 15 634 30 0 619
31 0 619 32 0 619 33 0 619
34 0 619 35 0 619 36 0 619
37 0 18420 38 0 18420 39 0 0
40 1 14400 41 0 14399 42 0 10868
43 0 10711 44 0 10569 45 0 10421
46 0 465 47 0 465 48 31 465
49 0 434 50 0 434 51 0 434
52 0 434 53 0 434 54 0 14368
模拟钟及模块计数
管理系统模拟与 GPSS语言 35
MSSV1.0
FACILITY AVERAGE NUMBER AVERAGE SEIZING PREEMPTING
UTILIZATION ENTRIES TIME/TRAN TRANS.NO,TRANS.NO.
1 0.01 188 5.19
2 0.02 446 5.63
STORAGE CAPACITY AVERAGE AVERAGE ENTRIES AVERAGE CURRENT MAXIMUM
CONTENT UTILIZ,TIME/TR CONTENT CONTENT
1 120 97.00 0.81 28474 494.60 109 120
2 1165 56.00 0.05 26474 306.63 42 1165
3 24000 31.00 0.00 26432 173.53 32 616
4 1937 1752.00 0.90 28365 8894.37 1891 1891
5 300 9.00 0.03 26432 50.00 0 280
设施与存储器统计
设施
储煤仓
管理系统模拟与 GPSS语言 36
MSSV1.0
QUEUE MAXIMUM AVERAGE TOTAL ZERO PERC,AVERAGE $AVERAGE TABLE CURRENT
CONTENT CONTENT ENTRIES ENTRIES ZERO TIME/TR TIME/TR NUMBR CONTENT
1 14 0.01 188 80 42.55 7.76 13.50 0
2 10 0.02 446 204 45.74 7.20 13.26 0
3 15 10.71 634 41 6.47 2432.53 2600.72 15
变量,
CONTENTS OF (NONZERO) FULLWORD SAVEVALUES
XF LOC VALUE LOC VALUE LOC VALUE LOC VALUE
11 26474 12 26432 13 26400 16 28474
队列与变量统计
队列,
管理系统模拟与 GPSS语言 37
MSSV1.0
LOGIC SWITCH - SET (ON) STATUS
SWITCH NAME NAME NAME NAME NAME NAME NAME NAME NAME
1 2 7 8 9
开关状态统计
逻辑开关
管理系统模拟与 GPSS语言 38
MSSV1.0
实验报告的书写
1,格式 1)留出装订位置
2)上,下,左,右应留出边
3)图,表要有号,四周要留空
管理系统模拟与 GPSS语言 39
MSSV1.0
实验报告的书写
2,内容
一, 问题的提出
二, 数据的收集
三, 分布族的选择
1)点统计法
2)柱状图法
3)概论图法
4)结论
四, 参数的确定
五, 拟合优度检验
1)直观检验
2)X 2 检验
六, 结论
管理系统模拟与 GPSS语言 40
MSSV1.0
上机前准备工作
1,准备好数据,
2,准备好程序,在纸上写好,
3,准备好上机计划和步骤
4,准备好记录的纸和笔
绘出的图若不能打印出来,应手工描绘出来,
写入实验报告。