4.3 某一个加油站能够配给三个级别的燃油:①家庭取暖用的燃油;②轻工业用的燃油;③运输用的燃油。每一级别的燃油都有一个对应的油泵。订单中燃油的数量在3000加仑和5000加仑中变化,每次增加10加仑,是均匀分布。这个站点最多能容纳12辆车。来加油站装油的汽车到达的平均时间间隔是18分钟(服从指数分布),仿真加油站5天的运营情况,假设车辆加满油所需的时间由以下因素决定:
(1)油泵效率(对①②③这三种油分别为每1000加仑需要6,5和7分钟)。
(2)订单的大小。
(3)开始加油时站点已容纳的车辆数量(每一辆车需要额外的30秒)。
(4)两分钟的准备和安装时间。

解:

Station	STORAGE	12
VCT	FUNCTION	RN1,D3	;RN1作为自变量返回一个0~1的小数
.333,6/.667,5/1,7	;等概率进入3种油泵处加油
GENERATE	(EXPONENTIAL(1,0,18))
QUEUE	q_gas
ENTER	Station
ADVANCE	((3000+RN1@201#10)#FN$VCT/1000+0.5#S$Station+2)	;
LEAVE	Station
DEPART	q_gas
TERMINATE
GENERATE	60
TERMINATE	1
START	120	;24h*5d

解析:

ADVANCE中分别表示4个因素:

(3000+RN1@201#10)#FN$VCT/1000:订单的大小;油泵效率

0.5#S$Station:每一辆车需要额外的30秒

2:两分钟的准备和安装时间

指数分布函数:

自定义函数:

离散值函数:

SNA码:

运算符:

3.7 A、B、C是三个汽车清洗店,汽车以8±5分钟到达。服务以每15±6分钟完成一辆,每个清洗店同时只能清洗一辆汽车。顾客喜欢A超过喜欢B,喜欢B超过喜欢C。若喜欢的清洗店忙的话,则选择空的清洗店,否则离开,若到达和离开事件同时发生时优先处理离开事件。仿真100小时,估算三家汽车清洗店的利用率。若没有空的清洗店,则要排队等待,又将如何?(提示:对于第二问可以在第一问的基础上增加一个容量为3的存储器来实现)

解:

第一问-both方法

	generate	8,5
	transfer	both,a,sel1
sel1	transfer	both,b,sel2
sel2	transfer	both,c,out
out	terminate
a	seize	a1
	advance	15,6
	release	a1
	terminate
b	seize	b1
	advance	15,6
	release	b1
c	seize	c1
	advance	15,6
	release	c1
	terminate
	generate	60
	terminate	1
	start	100

第一问-all方法

	GENERATE	8,5
	RANSFER	ALL,ADDI,ADD4,4
ADD1	SEIZE	1
	ADVANCE	15,6
	RELEASE	1
	TERMINATE
ADD2	SEIZE	2
	ADVANCE	15,6
	RELEASE	2
	TERMINATE	ADD3
ADD3	SEIZE	3
	ADVANCE	15,6
	RELEASE	3
	TERMINATE	
ADD4	TERMINATE	GENERATE 6000
	TERMINATE	1
	START	1

第二问-both方法

que	storage	3	
	generate	8,5
	enter	que
	transfer	both,a,sel
sel	transfer	both,b,c
a	seize	a1
	advance	15,6
	release	a1
	leave	que
	terminate
b	seize	b1
	advance	15,6
	release	b1
	leave	que
	terminate
c	seize	c1
	advance	15,6
	release	c1
	leave	que
	terminate
	generate	60
	terminate	1
	start	100

3.12 顾客进人一个系统,要按序列经过两个服务站。第一站上有三位服务员,其服务质量相同,服务时间为335±160秒。第二站上只有一位服务员,服务时间为110±75秒,顾客以每隔120±50秒到达一位。如果站上服务员全忙,则顾客在相应的队列等待,要求按下列两种情况分别建立GPSSWorld模型,运行24小时,统计顾客逗留在系统中的平均时间情况,第一,假定两个队列的空间不受限制;第二,第二站上队列只有一个位置,以完成第一站服务的顾客发现第二站队列位置被占领时,不能离开第一站服务位置,即后面等待顾客不能进人第一站服务。

解:

FW1_BAR	STORAGE	3
	GENERATE	120,50
	QUEUE	Q_FW1
	ENTER	FW1_BAR
	DEPART	Q_FW1
	ADVANCE	335,160
	LEAVE	FW1_BAR
	QUEUE	Q_FW2
	SEIZE	S_FW2
	DEPART	Q_FW2
	ADVANCE	110,75
	RELEASE	S_FW2
	TERMINATE
	GENERATE	60
	TERMINATE 1
	START	24