全球FlexSim系统仿真中文论坛

搜索
楼主: 慧娴亚伦

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

[复制链接]
 楼主| 慧娴亚伦 发表于 2014-3-26 20:17:17 | 显示全部楼层
[i=s] 本帖最后由 慧娴亚伦 于 2014-3-26 21:24 编辑 [/i]

本次TFT活动已经截止。
     由于是第一次的正式活动,为鼓励大家积极参与,因此试题比较简单。考虑到大家基本上都能实现题目的要求,本次活动也不会提供参考答案,有兴趣的朋友可以参考前面的几楼的有效回复。一些朋友的模型错误都是在细节地方没有处理好。这体现出我们在进行flexsim建模的过程中,要通过最后的效果来检验自己的模型以及代码是否正确完成,并不是只要代码不报错模型即为正确的。
     本次题目一共有4位朋友得到了有效回复。他们的论坛ID分别是:
     a445608540、大摸鱼、1010265352、oxci
     他们将获得指定积分,没有获得积分的朋友期待您的下次参与。
     与Beta版一样,在这里给大家一个延伸思考的方向:大家在学习flexsim过程中,是否注意到工具-追踪变量这个功能,其实运用这个功能也可以很灵活的来追踪每一个实体一些变量。
     再次感谢大家的参与和支持,没有参与者活动将无法开展,希望各位还能继续支持TFT的接下来的活动,再次感谢!
yangkaichong 发表于 2014-4-16 18:08:57 | 显示全部楼层
载下来看看!!!
CPF2000 发表于 2014-7-22 08:10:44 | 显示全部楼层
学习了..............
CPF2000 发表于 2014-7-22 08:56:43 | 显示全部楼层
[b] [url=http://www.flexsim.asia/redirect.php?goto=findpost&pid=12005&ptid=4384]21#[/url] [i]慧娴亚伦[/i] [/b]


demo版“追踪变量”是无法使用 的。
 楼主| 慧娴亚伦 发表于 2014-7-22 09:11:53 | 显示全部楼层
[b] [url=http://www.flexsim.asia/redirect.php?goto=findpost&pid=13241&ptid=4384]24#[/url] [i]CPF2000[/i] [/b]


不好意思,没有考虑到这一点。
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
 楼主| 慧娴亚伦 发表于 2014-8-3 11:17:12 | 显示全部楼层
回复26楼:
       您的模型有一些问题,因为您最终给item添加的加工时间标签的值,并不一定对应item的实际加工时间,只是都服从同一个分布和参数。
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
 楼主| 慧娴亚伦 发表于 2014-8-5 10:33:10 | 显示全部楼层
回复28楼:
          这样就完成了模型的要求。:)
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.是否指的是如果使用标签序号而非标签名称,会稍稍快一点?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-3-28 17:00 , Processed in 0.072451 second(s), 12 queries .

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

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