初级GPSSWorld语言-理论知识

1 实体的分类

根据实体在系统中的作用和行为分为:活动实体 和 固定实体

活动实体:系统中可以移动的人、设备、设施等,它的行为是能够引起系统中其他实体的行为、属性或状态发生变化,从而导致系统状态发生变化。

固定实体 分为:资源实体和统计实体

(1)资源实体:设施 FACILITY、队列QUEUE、存储器STORAGE、逻辑开关LOGIC

(2)统计实体:统计表TABLE

2 基本结构、语句组成及自定义符号

2.1 程序的基本结构

说明部分(可省略)

模块部分(主体)

控制部分

2.2 语句的组成

模块语句(可以产生、消亡活动实体和改变活动实体的属性/状态)

命令语句:定义语句、控制语句

3 与活动实体有关的模块

执行了CLEAR命令以后,系统中活动实体将重新从1开始编号

常用活动实体属性

(1)活动实体的参数(2)优先级(3)标记时间(4)装配编号(5)当前所处模块(6)下一个模块

活动实体在系统中可能采取的行动:产生(进入系统)、运动、转向、消失(离开系统 )

3.1 GENERATE(产生活动实体)模块

唯一一个不需要活动实体去触发执行的模块

GENERATE        A,B,C,D,E

A:活动实体产生的时间间隔均值

B:时间间隔半区间或为函数修正

C:第一个活动实体应该产生的活动实体的总数

D:系统中应该产生的活动实体的总数

E:优先级

GENERATE        7,2        ;活动实体产生的时间间隔为5-9之间均匀分布的一个数

GENERATE       7,2,20        ;在第20个时间单位产生第一个活动实体

GENERATE       7,22,,10        ;共产生10个活动实体

GENERATE       7,,,,1        ;优先级为1

GENERATE       ,,,10        ;在仿真时间为0时同时产生10个实体 

A和D不能同时省略

如果GENERATE之前还有其他模块,那么这些活动一定要在下一个GENERATE之前结束(TERMINATE)或转向(TRANSFER)

3.2 ADVANCE(活动实体延时)模块

ADVANCE        A,B

A:延迟时间的均值(必须)

B:半区间

3.3 ASSIGN(活动实体参数赋值)模块

依赖于活动实体而存在

ASSIGN        A,B,C

A:需要赋值或改变值的参数

B:加减的数值,前面没有-+就直接替换

C:函数的编号

ASSIGN        1,2        ;将2赋值给活动实体的1号参数

ADVANCE        P1        ;活动实体延时参数1中的数值,也就是延时2个单位

ASSIGN        20-,-3        ;将20号参数减去-3

3.4 TRANSFER(转向)模块

TRANSFER        A,B,C,D

A:跳出模块

1、无条件转向(A省略)

TRANSFER        ,B

2、概率转向模式

TRANSFER        A,B,C

A概率去C,1-A概率去B;A是正整数就除以1000

3、BOTH模式

TRANSFER        BOTH,B,C        ;测试B、C哪个可以去去哪个,如果都可以就优先B

4、ALL模式

TRANSFER        ALL,ADDB,ADDC,3

ADDB

ADDC

先去 ADDB,不行去ADDC,还是不行去ADDB的第3个模块,一直下一个如果都拒绝就停留在这里下次再重新尝试

5、PICK模式

随机模式

TRANSFER        PICK,ADDB,ADDC        ;随机去一个

6、参数模式

A=P

TRANSFER       PICK,1,2        ;取出1号参数的值,加上2即为目标去向

7、函数模式

TRANSFER       FN,Function,C        ;先计算函数值再加上C即为去向

8、子程序模式

A=SBR

9、同时模式

A=SIM

3.5 PRIORITY(优先级)模块

PRIORITY        A,B

A:优先级

B:可选操作数(缺省或BU)

无条件进入

3.6 BUFFER模块

进入后被放到当前事件链(CEC)中同优先级活动实体的后面

3.7 TERMINATE (消除活动实体)模块

终止模块,后面不会再有其他模块接续

与START 控制语句配合使用,实现仿真长度的控制

TERMINATE        A

TERMINATE        1        ;结束当前活动实体,并从仿真终止计数器中减去1

4 与设施有关的模块

SEIZE  RELEASE  成对出现

一个设施只能被一个活动实体占用,当活动实体到达某个设施面前要请求服务时,总要先检查设施是否被其他活动实体占用

每个设施两种状态:忙busy、空闲idle

4.1 SEIZE(获得设施控制权)模块

SEIZE        A

占有设施,条件进入(先判断是否为空)

4.2 RELEASE(释放设施控制权)模块

释放前先占用,占用完TERMINATE前必须释放

5 与队列有关的模块

需要排队等候时,可以选择队列及其有关的模块来对等待的活动实体的情况进行统计

QUEUE DEPART  一般具有对应关系,但是不一定要是一一对应,因为一个队列可能有多个出口

5.1 QUEUE(进入队列排队)模块

可以完成排队的全部过程,包括第一个离开后,后面的向前移动,每个排队的活动实体的等待时间的统计等

QUEUE        A,B                

QUEUE        2        ;活动实体排在2号队列,队长增加1

QUEUE        LINE1,20        ;活动实体排在名为LINE1的队列,队长增加20

5.2 DEPART(离开队列)模块

DEPART        A,B

实体离开A队列,队长减少B

6 与存储器有关的模块及定义语句

6.1 STORAGE 定义语句

NAME        STORAGE        A

NAME:存储器的名称,必须合法,不能是数字

BAR        STORAGE        10        ;叫做BAR的容器,容量为10

6.2 ENTER(进入存储器)模块

ENTER        2        ;进入2号存储器,存储量+1

ENTER        BAR,20        ;进入名字为BAR的存储器,存储量+20

和SEIZE一样为有条件进入,已满或剩余容量不够无法进入,滞留在ENTER的前一个模块

6.3 LEAVE(离开存储器)模块

LEAVE        A,B

离开前保证存储器当前容量≥离开的

7 相关控制语句

7.1 START语句

START与TERMINATE一起控制仿真过程的长度,通常用于程序的末尾

START        A,B,C,D

B:打印操作数,为NP或缺省

7.2 RESET语句

将系统中的所有统计值和仿真钟的相对时间恢复到0,但是不改变仿真的当前状态

咩有操作数,经常和START结合起来进行预热系统 仿真预热

7.3 CLEAR语句

CLEAR        A

A=ON OFF 缺省

  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值