Flexsim 教程1

模型1

在第一个模型中,我们将研究三种产品离开一条生产线进行检验的过程。有三种不同类型的临时实体将按照正态分布的时间间隔到达。临时实体的类型符合1、2、3 的均匀分布。当临时实体到达时,它们进入暂存区待检验。有三个检验台。一台用于检验类型1,另一台检验类型2,第三台检验类型3。教验后的临时实体放到传送带上。通过传送带,送到吸收器离开模型。

模型1数据
发生器到达速率:normal(20,2)秒

暂存区最大容量:25个临时实体

检验时间:exponential(0,30)秒

传送带速度:1米/秒

 参数及逻辑

发生器

离开触发:

代码

Object current = ownerobject(c);
Object item = param(1);
int port = param(2);
{ // ************* PickOption Start ************* //
/***popup:SetLabelAndColor*/
/**设置标签和颜色*/
Object involved = /** \nObject: *//***tag:object*//**/item/**/;
string labelname = /** \nLabel: *//***tag:label*//**/"Type"/**/;
Variant value = /** \nValue: *//***tag:value*//**/duniform(1, 3, getstream(current))/**/;
involved.color = Color.fromPalette(value);
involved.labels.assert(labelname).value = value;
} // ******* PickOption End ******* //

暂存区

Object item = param(1);
Object current = ownerobject(c);
/***popup:ByExpression*/
/**指定*/
double value = /** \nOutput Port: *//***tag:expression*//**/item.Type/**/;
/** \n\nNote: The expression may be a constant value or the result of a command (item.Type, item.labelName, duniform(1,2), etc).*/
return value;

模型2

在模型1的基础之上,在模型的产品检验环节,将使用一组操作员执行预置工。这里共有两名操作员,每次使用其中一名进行预置。完成以后,就可以进行检验了,检验过程中不需要操作员在场。在开始预置之前,操作员必须将临时实体搬运到检测台。验完成后,临时实体自动移动到传送带
上。
当临时实体离开传送带后,将放置到一个暂存区,通过叉车把他们送到吸收器。

当暂存区1来货物时,任务分配器默认分配给操作员1,当到了产品检测环节时,操作员2过去进行检测10s(预置时间10s)。

模型3

学习内容:

  • 如何使用全局表定义路径
  • 如何设置叉车的行走路径
  • 如何创建网络路径中的样条线
  • 如何定制和输出报告
  • 如何多次运行模型

根据货物类型分发至不同端口 ,在模型3中用3个货架代替吸收器,用来存储装运前的临时实体(见图3-1)。需要改变传送带1和3的物理布局,使它们的末端弯曲并接近暂存区。引用一个全局表,所有类型为1的临时实体都送到货架2,所有类型为2的临时实体都送到货架3,所有类型为3的临时实体都送。采用网络节点实体,建立叉车的网络路径,当它从传送带暂存区往货架运输临时类体时使用此网络路径。用实验器设置模型的多次运行,得出统计方差并计算关键绩效指标的置信区间。

标签使用模型

根据发生器的不同类型进行统计,并在临时实体上标注产生的次序,是第几个。

发生器的发生器设置创建触发:设置标签与颜色

离开触发根据代码设置:

发生器设置标签:

临时实体设置标签:

代码设置:

/**Custom Code*/
Object current = ownerobject(c);
Object item = param(1);
int port = param(2);
treenode thenode1 =  current.labels["item1produced"];
treenode thenode2 =  current.labels["item2produced"];
treenode thenode3 =  current.labels["item3produced"];

double value =  1;
if(item.Type == 1){
	inc(thenode1,value);
	setlabel(item,"itemtypeorder",inc(thenode1,value));
}
if(item.Type == 2){
	inc(thenode2,value);
	setlabel(item,"itemtypeorder",inc(thenode2,value));
}
if(item.Type == 3){
	inc(thenode3,value);
	setlabel(item,"itemtypeorder",inc(thenode3,value));
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值