全球FlexSim系统仿真中文论坛

搜索
楼主: 慧娴亚伦
打印 上一主题 下一主题

【TFT 2014.03.25 FlexSim仿真模型题(1)】

[复制链接]
35#
xinglei 发表于 2014-11-18 16:42:55 | 只看该作者
34#
丫头盖 发表于 2014-10-9 10:53:19 | 只看该作者
之前做过一个不同加工时间的模型,是在指导下完成的,以后可以多学习了~
33#
 楼主| 慧娴亚伦 发表于 2014-9-16 09:00:27 | 只看该作者
[b] [url=http://www.flexsim.asia/redirect.php?goto=findpost&pid=13955&ptid=4384]32#[/url] [i]zorsite[/i] [/b]


这样写代码上确实更精简一些。
32#
zorsite 发表于 2014-9-16 08:54:02 | 只看该作者
[i=s] 本帖最后由 zorsite 于 2014-9-16 08:55 编辑 [/i]

[quote]回复版主::loveliness:
处理器做了一些修改,将“处理结束时触发”删除,"send to port"的判断不变,然后在“process time”那里使用if语句:
double value1 = normal(10, 3, 0);
double value2 = exponential(1 ...
[size=2][color=#999999]carol 发表于 2014-8-5 08:58[/color] [url=http://www.flexsim.asia/redirect.php?goto=findpost&pid=13401&ptid=4384]http://www.flexsim.asia/images/common/back.gif[/url][/size][/quote]


不知道这样的代码会不会简单一些?
[code]int t=getitemtype(item);
if(t==1) double n = normal(10, 3, 0);
if(t==2) double n = exponential(10, 3, 0);
if(t==3) double n= lognormal2(0, 10, 0.3, 0);
setlabelnum(item,1,n);
return n;[/code]
31#
 楼主| 慧娴亚伦 发表于 2014-9-15 21:52:01 | 只看该作者
是的,楼上理解的没错。因为flexsim中如果使用字符串格式来寻找指定的节点,会占用稍微多一点的资源,因此会更慢一些,不过只会在大型模型中影响较大,小模型几乎是不影响的。
30#
zorsite 发表于 2014-9-15 14:35:28 | 只看该作者
[b] [url=http://www.flexsim.asia/redirect.php?goto=findpost&pid=11973&ptid=4384]11#[/url] [i]慧娴亚伦[/i] [/b]
给标签赋值,可以直接用addlabel,也可以先addlabel,然后再用setlabelnum。使用addlabel比较直接,代码比较精简。使用setlabelnum按照标签表中的序号给标签赋值,比如setlabelnum(item,2,5.5) 。这里的2指的是item标签列表中的第二个标签。在setlabelnum函数说明中有这么一句话:A rank is a slightly faster reference.是否指的是如果使用标签序号而非标签名称,会稍稍快一点?
29#
 楼主| 慧娴亚伦 发表于 2014-8-5 10:33:10 | 只看该作者
回复28楼:
          这样就完成了模型的要求。:)
28#
carol 发表于 2014-8-5 08:58:14 | 只看该作者
[i=s] 本帖最后由 carol 于 2014-8-5 09:01 编辑 [/i]

回复版主::loveliness:
处理器做了一些修改,将“处理结束时触发”删除,"send to port"的判断不变,然后在“process time”那里使用if语句:
double value1 = normal(10, 3, 0);
double value2 = exponential(10, 3, 0);
double value3 = lognormal2(0, 10, 0.3, 0);
if(getitemtype(item)==1)
{
setlabelnum(item,"pstime",value1);
return value1;
}
else if(getitemtype(item)==2)
{
setlabelnum(item,"pstime",value2);
return value2;
}
else if(getitemtype(item)==3)
{
setlabelnum(item,"pstime",value3);
return value3;
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
27#
 楼主| 慧娴亚伦 发表于 2014-8-3 11:17:12 | 只看该作者
回复26楼:
       您的模型有一些问题,因为您最终给item添加的加工时间标签的值,并不一定对应item的实际加工时间,只是都服从同一个分布和参数。
26#
carol 发表于 2014-8-3 10:37:57 | 只看该作者
菜鸟求指点!:loveliness:
1.发生器:setitemtypeandcolor  duniform(1,3)
2.box class:setlabel(name:pstime   value:0)
3.处理器:
(1)process time
int case_val=getitemtype(item)
switch (case_val) {
case1  return normal(10, 3, 0);
case2  return exponential(10, 3, 0);
case3  return lognormal2(0, 10, 0.3, 0);
default  return 1;
}
(2)处理结束时触发
if(getitemtype(item)==1)
setlabelnum(item,"pstime",normal(10,3,0));
else if(getitemtype(item)==2)
setlabelnum(item,"pstime",exponential(10, 3, 0));
else if(getitemtype(item)==3)
setlabelnum(item,"pstime",lognormal2(0, 10, 0.3, 0));
(3)send to port
double value=getlabelnum(item,"pstime")
if(value<3 || value>15)
return 2;
else return 1;

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|全球FlexSim系统仿真中文论坛 ( 京ICP备14043114号-2 )

GMT+8, 2024-5-19 21:22 , Processed in 0.067040 second(s), 12 queries .

Powered by Discuz! X3.3© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表