实验4:生产-库存系统仿真

发布时间:2024-08-27

系统假设和系统生产、储存发货流程描述如下:① 保证原材料是充足的;② 原材料送至机器M1前,每耗时uniform(120,20)s加工出一件半成品;一单位原材料能加工出10件半成品。③ 然后依次送到其他各道工序加工:到机器M2前加工,每件半成品加工时间为uniform(5,2)min;到机器M3前加工,加工时间normal(300,30)s;到机器M4前加工,加工时间为normal(6,1)min;最后成为最终产品。

实验4 生产-库存系统仿真

1. 实验目的

1. 学习仿真技术在库存管理和生产-库存领域的应用;

2. 了解库存控制策略仿真的概念;

3. 培养复杂系统的抽象建模能力,并注意局部细节问题;

4. 在实验练习中学习仿真结果分析的概念,稳态型仿真、终止型仿真,以及置信区间等相关概念;

5. 加深学生对仿真技术的全面认识。

2.使用软件

软件名称:Flexsim 3.0

所属公司:Flexsim公司

主要功能:离散事件系统仿真

3.实验要求

1. 实验前预习,阅读预习资料;

2. 实验按照老师指导实验步骤进行;

3. 提交实验报告。

4.实验内容

系统描述与系统参数

某企业要投产一条简单的加工线,如图4-1所示。

图4-1 生产-库存系统平面布置示意图

该企业认为市场情况好,能制造出来就能卖出去,因此选择了传统的推动式面向库存的生产模式。系统假设和系统生产、储存发货流程描述如下:

系统假设和系统生产、储存发货流程描述如下:① 保证原材料是充足的;② 原材料送至机器M1前,每耗时uniform(120,20)s加工出一件半成品;一单位原材料能加工出10件半成品。③ 然后依次送到其他各道工序加工:到机器M2前加工,每件半成品加工时间为uniform(5,2)min;到机器M3前加工,加工时间normal(300,30)s;到机器M4前加工,加工时间为normal(6,1)min;最后成为最终产品。

① 保证原材料是充足的;

② 原材料送至机器M1前,每耗时uniform(120,20)s加工出一件半成品;一单位原材料能加工出10件半成品。

③ 然后依次送到其他各道工序加工:到机器M2前加工,每件半成品加工时间为uniform(5,2)min;到机器M3前加工,加工时间normal(300,30)s;到机器M4前加工,加工时间为normal(6,1)min;最后成为最终产品。

④ 每加工两个半成品之间需要uniform(60,10)s的调整时间。

⑤ 原材料经过四道工序加工成成品,入成品库存储;假设仓库容量足够大。 ⑥ 当机器M1加工完一个原材料时,立即从原材料库中提料,保持持续生产。 ⑦ 当有订单或需求到达时,按照需求提货出库,订单到达时间间隔服从随机分布uniform(500,10)min;每个订单的需求量为normal(80,5)个单位的产品。

实验要求:

对这样一个生产库存系统进行建模仿真,分别按1)连续一个月(每天按24h计算)运行和2)每次运行24小时重复30次仿真运行,连续监测库存信息,即库存量随时间的变化情况,并统计有无缺货发生,缺货率和缺货量为多少。

假设存在以下情况,试建模仿真分析。

① 预测认为:每次需求量接近normal(80,5)的随机分布,分析这个投产方案的规划是否合理?生产中有没有瓶颈?库存随时间的变化是怎样的?

② 假设市场扩大需求增长,每次需求量增长为normal(90,5)的随机分布,仍然采用原来的配置方案,是否还能满足市场需求?为了满足需求从而占领市场,从扩大生产能力的角度如何调整系统的资源配置?

5.实验步骤

(1)将实际问题抽象成两个子系统:生产模块和库存控制模块。

(2) 按要求编写生产系统的逻辑代码。

(3) 编写库存控制系统的逻辑代码。

(4) 调试模型。

(5) 运行输出与结果分析。

(6) 系统调整与分析。

6.具体仿真步骤

系统假设和系统生产、储存发货流程描述如下:① 保证原材料是充足的;② 原材料送至机器M1前,每耗时uniform(120,20)s加工出一件半成品;一单位原材料能加工出10件半成品。③ 然后依次送到其他各道工序加工:到机器M2前加工,每件半成品加工时间为uniform(5,2)min;到机器M3前加工,加工时间normal(300,30)s;到机器M4前加工,加工时间为normal(6,1)min;最后成为最终产品。

(1)构建模型布局

打开Flexism3.0,新建一个模型。从对象库中拖放所需的对象到建模视图中,并根据实验内容的描述修改各实体的名字如图6-1。

图 6-1 模型布局

(2)定义工件流程

按住A键,同时用鼠标左键点击Source对象并且按住鼠标左键不放,然后拖动鼠标至M1对象。此时会出现一条黄线连接Source 和M1对象。然后松开鼠标左键,黄线将变成一条黑线,表示Source对象和M1对象的端口已经连接上。同理,将M1与Queue1相连,Queue1与M2,将M2与Queue2相连,Queue2与M3相连,M3与M4相连,M4与PartQueue相连,Sourceorder与

Separatororder相连,Separatororder与BackOrderQueue相连。连接后的模型如图6-2所示。

图6-2 模型连接

系统假设和系统生产、储存发货流程描述如下:① 保证原材料是充足的;② 原材料送至机器M1前,每耗时uniform(120,20)s加工出一件半成品;一单位原材料能加工出10件半成品。③ 然后依次送到其他各道工序加工:到机器M2前加工,每件半成品加工时间为uniform(5,2)min;到机器M3前加工,加工时间normal(300,30)s;到机器M4前加工,加工时间为normal(6,1)min;最后成为最终产品。

(3)发生器参数设置

双击Source对象,打开其参数对话框,;修改产品流出间隔时间,从 “到达时间间隔”下拉框中选择“常值”并将参数修改为0,如图6-3所示。

图 6-3 原材料到达时间

如上所述在Sourceorder的“到达时间间隔”下拉框中选择使用均匀分布并将参数修改为最小值为600,最大值为30000,如图6-4所示。

图 6-4订单发生器

(4)处理器及暂存区参数设置

双击M1对象,打开其参数对话框,修改处理时间,从“处理时间”下拉框中选择“均匀分布”;修改选项的默认参数点击Template按钮修改其中的棕褐色的参数值,将最小值设为20,最大值设为120,如图6-4。分解器界面中点击“一般分解”前得圆圈,选择“指定数量”,并将参数设置为“10”,如图6-5。同理,将Separatororder的处理时间设置为返回一个为0的常值时间,将分解器的“指定数量”参数设置为normal(80,5)。

系统假设和系统生产、储存发货流程描述如下:① 保证原材料是充足的;② 原材料送至机器M1前,每耗时uniform(120,20)s加工出一件半成品;一单位原材料能加工出10件半成品。③ 然后依次送到其他各道工序加工:到机器M2前加工,每件半成品加工时间为uniform(5,2)min;到机器M3前加工,加工时间normal(300,30)s;到机器M4前加工,加工时间为normal(6,1)min;最后成为最终产品。

图6-4 M1加工时间设置

图 6-5分解数量设置

双击M2对象,打开其参数对话框,修改处理时间,从“处理时间”下拉框中选择“均匀分布”;修改选项的默认参数点击Template按钮修改其中的棕褐色的参数值,将最小值设为120,最大值设为300,如图6-6。同理,将M3的处理时间设置为(normal 300,30)s,M4的处理时间设置为(normal 360,60)s 。

图6-6 M2处理时间设置

系统假设和系统生产、储存发货流程描述如下:① 保证原材料是充足的;② 原材料送至机器M1前,每耗时uniform(120,20)s加工出一件半成品;一单位原材料能加工出10件半成品。③ 然后依次送到其他各道工序加工:到机器M2前加工,每件半成品加工时间为uniform(5,2)min;到机器M3前加工,加工时间normal(300,30)s;到机器M4前加工,加工时间为normal(6,1)min;最后成为最终产品。

(5)订单—库存设置

将PartQueue的容量设置为10000,在“暂存区触发器”界面中点击“收集结束触发”后的“AI”键弹出如图6-7的窗口。

图6-7收集结束触发代码窗口

在该代码窗口中输入以下代码:

fsnode* item = parnode(1);

fsnode* current = ownerobject(c);

//PROSESTART

//库存代码设定

//PROSEEND

//PARAMSTART

//PARAMEND

//PROSESTART

//

//PROSEEND

for (int ranknum = 1; ranknum <= content(BackOrderQueue); ranknum++) {

fsnode *OtherItem = rank(BackOrderQueue,ranknum);

if( getitemtype(item) == getitemtype(OtherItem) )

{

moveobject(item,ShippedParts,0);

moveobject(OtherItem,SatisfiedOrders,0);

return 0;

系统假设和系统生产、储存发货流程描述如下:① 保证原材料是充足的;② 原材料送至机器M1前,每耗时uniform(120,20)s加工出一件半成品;一单位原材料能加工出10件半成品。③ 然后依次送到其他各道工序加工:到机器M2前加工,每件半成品加工时间为uniform(5,2)min;到机器M3前加工,加工时间normal(300,30)s;到机器M4前加工,加工时间为normal(6,1)min;最后成为最终产品。

}

}

同理打开BackOrderQueue的“收集结束触发”的代码窗口,并在窗口中输入如下代码:

fsnode* item = parnode(1);

fsnode* current = ownerobject(c);

//PROSESTART

//订单代码设置

//PROSEEND

//PARAMSTART

//PARAMEND

//PROSESTART

//

//PROSEEND

for (int ranknum = 1; ranknum <= content(PartQueue); ranknum++)

{

fsnode *OtherItem = rank(PartQueue,ranknum);

if( getitemtype(item) == getitemtype(OtherItem) )

{

moveobject(item,SatisfiedOrders,0);

moveobject(OtherItem,ShippedParts,0);

return 0;

}

}

点击软件界面顶部的“工具”菜单栏,选择“工具栏”,弹出一个如图6-8的窗口;点击全局指针弹出一个“全局实体指针列表”,将全局实体指针数设置为4,并分别在每一行输入PartQueue、ShippedParts、BackOrderQueue、SatisfiedOrders,设置后的“全局实体指针列表”如图6-9所示。

系统假设和系统生产、储存发货流程描述如下:① 保证原材料是充足的;② 原材料送至机器M1前,每耗时uniform(120,20)s加工出一件半成品;一单位原材料能加工出10件半成品。③ 然后依次送到其他各道工序加工:到机器M2前加工,每件半成品加工时间为uniform(5,2)min;到机器M3前加工,加工时间normal(300,30)s;到机器M4前加工,加工时间为normal(6,1)min;最后成为最终产品。

图6-8 全局数据、事件、代码、标量窗口

图6-9 全局实体指针设置

(4)编译运行仿真

先点击编译按钮,在 点击运行按钮如图

6-9

图6-9编译 运行

(5)分析仿真结果

将需求量设置为服从normal(80,5)的随机分布的生产库存系统模型,按每月30天,每天24h连续连续运行后的统计表如表6-1所示。

系统假设和系统生产、储存发货流程描述如下:① 保证原材料是充足的;② 原材料送至机器M1前,每耗时uniform(120,20)s加工出一件半成品;一单位原材料能加工出10件半成品。③ 然后依次送到其他各道工序加工:到机器M2前加工,每件半成品加工时间为uniform(5,2)min;到机器M3前加工,加工时间normal(300,30)s;到机器M4前加工,加工时间为normal(6,1)min;最后成为最终产品。

表 6-1 生产库存运行统计报告

从上表的数据中我们可以看出BackOrderQueue(订单需求量)的input(需求)为14537,output(满足量)为7218,由此可见该生产系统并不能满足需求,其缺货量为7319,缺货率高达50.34%。观察该系统的统计报告的contentavg列(平均容量)Queue1为9861,Queue2的值约为10,Queue3的值也约为10,不难发现该生产系统的最大的瓶颈发生在Queue1之后的处理器M2,由于Queue2,Queue的平均库存值也较大因此说明该M3与M4的处理环节也需要进行改进。

如果该系统不变扩大市场需求量为normal(90,5)的随机分布,那该系统市场满足率将更低,如统计报告表6-2所示。

系统假设和系统生产、储存发货流程描述如下:① 保证原材料是充足的;② 原材料送至机器M1前,每耗时uniform(120,20)s加工出一件半成品;一单位原材料能加工出10件半成品。③ 然后依次送到其他各道工序加工:到机器M2前加工,每件半成品加工时间为uniform(5,2)min;到机器M3前加工,加工时间normal(300,30)s;到机器M4前加工,加工时间为normal(6,1)min;最后成为最终产品。

表6-2 市场需求增大后的系统统计报告

改进方法:由于市场需求大于生产系统的生产能力,因此该系统需要从扩大生产力的角度出发解决问题。发展生产力可以减少单位处理环节的时间,提高效率,根据本系统的实际情况,我们不难发现,要满足市场需求必须将处理器的处理时间进行大幅改变,设置为极小的时间值,这在实际生产环境中很难做到。因此,在这里建议增加每个环节处理器的数量,同一个环节多个处理器并行运行,提升生产系统的生产能力。

实验4:生产-库存系统仿真.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219