JIT看板生产系统WITNESS仿真建模跟优化实现DOC 31页Word文件下载.docx
《JIT看板生产系统WITNESS仿真建模跟优化实现DOC 31页Word文件下载.docx》由会员分享,可在线阅读,更多相关《JIT看板生产系统WITNESS仿真建模跟优化实现DOC 31页Word文件下载.docx(32页珍藏版)》请在冰豆网上搜索。
由于生产线上具有多种物料,如外圈、内圈、加强筋、封口板、内隔板,每种类型物料所具有的价值不一样,需要统计各种物料的实际价值。
由于本实例并不是对实际的问题进行研究,仅仅是提供一种研究方法,所以为了便于对各种方案进行经济性比较,根据每件产品或部件的价值,给予它们附上对应的价值权重,然后进行统计计算。
假设加强筋最便宜,以它为1,每件物料经过一道工序加工后,每加工10分钟,价值增加一个单位,不足10分钟的按10分钟计,得出实例系统中物料的价值权重系数如表5.1,表中下划线前的字符为物料名称中文首字母。
表5.1物料价值权重系数表*
名称
Jqj_WS7
Fkb_WS7
Ngb_WS7
Jqj_WS8
Fkb_WS8
Ngb_WS8
Jqj_WS9
fkb_WS9
ngb_WS9
权重
1
2
4
3
5
Wq_WS1
Nq_WS1
Wq_WS2
Nq_WS2
Wq_WS3
Nq_WS3
Wq_WS4
Nq_WS4
Wq_WS5
30
35
34
38
37
44
42
47
Nq_WS5
Nq_WS6
Nq_WS10
Fkb_WS10
Ngb_WS10
WS11
WS12
49
52
8
83
151
系统中的在制品库存WIP计算公式如式(5-2):
(5-2)
式中:
——第i种物料在各工序后的缓冲区中的数量;
——第i种物料在各工序机器上等待加工或正在加工的数量;
——第i种物料在各工序间运输工具上的数量;
——第i种物料的价值权重。
在该系统的仿真模型中,某一仿真时点上的QFi、QMi、QTi都可以通过Witness提供的函数直接得出。
该指标的统计由目标函数UF.wip来计算,具体设计参看附录B部分。
(3)定单平均等待时间(AWT,AverageWaitingTime):
用于统计没能够及时被满足的订单在系统中的平均等待时间,用来揭示随机生产/库存系统对订单的反应灵敏度。
如果某一订单在提前期之前得到满足,则等待时间为零;
如果某一订单在提前期之后得到满足,则等待时间为当前时间与提前期的差值。
该指标数值越低,表示顾客满意度越高;
该指标数值越高,表示顾客满意度越低。
计算公式如式(5-3)所示。
(5-3)
n——仿真期间订单总数;
Ti’——第i批订单实际发运时间;
Ti——第i批订单预定发运时间;
WTi——第i批订单的等待时间;
SWT——仿真期间订单总等待时间。
在仿真模型中,这两项统计任务统一在订单处理单元中执行。
执行程序体参见附录B中DMD.demand_meet的“Actionsonfinish”部分。
(4)设备平均稼动率(OR,OperationRate):
用于统计生产系统中机器利用程度,仿真系统对机器类型的元素提供了标准状态统计函数,可以统计机器的空闲、运行、故障和维修等状态所占时间的百分比。
在进行生产系统优化过程中,需要使用的机器时间包括下列几种:
(i)最大操作时间:
指的是设备可用的最大时间,若设备本身为厂内自购,而非租借,且可完全由厂內自主使用,则最大操作时间一般为日历时间。
(ii)负荷时间:
为机器设备可稼动的时间,是最大操作时间扣除停机损失,停机损失包括计划上的休止时间,如休假、教育训练、保养等。
(iii)稼动时间:
是负荷时间减去停机时间,而停机时间包括批次转换、设备异常停止、修理、待料等时间。
机器稼动率=稼动时间/负荷时间。
(iv)故障间隔时间:
机器每运转多长时间就会出现一次故障,并需要维修。
(v)故障维修时间:
机器出现故障,修复所需的时间。
因此,本系统的设备平均稼动率计算公式如式(5-4)。
(5-4)
m——系统中工作单元的数量;
ORj——系统中第j个工作单元中机器设备的稼动率;
在仿真模型中,该统计任务通过函数来实现,程序设计参看附录B中的UF.OR1函数体。
1.4生产线平衡
在进行系统仿真之前,需要将每个工作单元中机器设备的设计稼动率加以平衡,这样仿真过程不会因为设备能力不平衡,导致某些工序过快成为瓶颈工序,使前后工序的机器设备因为等待而导致利用不足。
为了防止这一问题,将根据该系统的设计能力2500台/年,每年250个工作日来平衡生产线。
由于机器对每一部件的加工时间均值确定,只能通过设计每个加工单元中机器的数量来对生产线进行设计,使得生产线能够很好的满足设计的生产能力。
对每个工作单元机器数量的计算过程涉及到如下的变量符号,首先对它们加以说明。
TWT——TotalWorkTime:
每个工作单元中机器一年中的负荷时间;
QU——QuantityUnit:
每个工作单元所拥有的机器数量;
TQW——TotalQuantityofWork:
每个工作单元所完成的产品套数;
TC——TimeCycle:
每个单元完成一套产品的生产平均周期时间,例如:
WS3设备完成的一套产品为分别加工一个外圈、一个内圈,则平均周期时间为完成一个外圈的平均周期时间(30’)+完成一个内圈的平均周期时间(30’),共60分钟;
TNB——TotalNumofBreakdown:
全年机器发生故障的次数,每月1次,均值为12次;
RT——RepairTime:
单次机器维修所需时间,均值为半天,4小时,240分钟;
BR——BreakdownRate:
故障率,均值为240*12/240/480=2.5%;
BI——BreakdownInterval:
机器故障发生时间间隔;
OR——OperatingRate:
机器稼动率,假设为80%。
通过该产品的BOP,得出该系统生产单件最终产品,在各个生产单元上需要的平均周期时间TC如表5.2所示。
表5.2生产系统中生产单元TC表
单元
WS1
WS2
WS3
WS4
WS5
WS6
WS10
WS7
WS8
WS9
时间
50
90
60
120
40
130
20
45
通过系统的设计生产能力和机器的生产周期,同时考虑故障比率较低,在计算机器台数时将其忽略不记,设计计算公式如(5-5)所示。
(5-5)
式(5-5)中涉及四项变量,其中由于设备的故障、维修等所占时间比例忽略不记,所以机器全年负荷时间为TWT=250天*480分钟/天=120000分钟;
假设稼动率产品套数就是生产线的年设计能力,即TQW=2500;
从表5.2可以得出这12个工作单元的单套产品生产平均周期时间TCi。
所以根据式(5-5)可以得出每个工作站的机器数量计算公式,如式(5-6)。
(5-6)
计算式(5-6)可以得出每个加工单元所需的设备数量,如果结果是小数,取不小于结果的最小整数。
通过计算得出每个单元需要配备的机器数量如表5.3所示。
表5.3加工单元设备台数表
加工单元
设备数量
根据设备故障比率,可以计算出设备故障平均时间间隔,计算公式如式(5-7):
BI=TWT×
(OR-BR)/TNB=120000×
0.775/12=7750(5-7)
即每台设备加工时间累计达到7750分钟,就会发生故障,需要进行平均时间为240分钟的维修后,才可以继续运转。
1.5看板数量的确定
生产系统循环过程中看板的数量决定了生产、使用或转让的在制品数量,决定了系统运作效率的高低。
建立看板控制系统需要确定所需要的看板卡的数量。
对于本文的单看板生产系统需要确定生产看板的套数,以它来控制加工单元的开始生产或停止生产。
得到多数研究文献和实际应用接收的计算方式有如下两种:
文献[9]的最优看板计算公式(5-8)。
(5-8)
k——看板卡套数;
D——一段时期所需产品的平均数量;
L——补充订货的提前期;
S——安全库存;
C——容器容量。
文献[10]的看板数量计算公式(5-9)。
(5-9)
R——组件利用速度,如15件/分钟;
Tp——单件生产时间,如:
1.5分钟/件;
Td——箱子的运输和传送时间,如:
2.5分钟;
C——箱子的单位容量,如:
45件;
X——需求速率变化的百分比,如10%。
使用式(5-8)来确定看板数量,由于该公式没有应对动态需求这一项的变量,有效运用该公式的重要一步就是确定安全库存S的数值,而一旦动态需求的随机特征有所变化,该公式不能相应的进行反馈;
式(5-9)考虑到动态需求,在公式中设定了需求速率变化X这一项,但是它没有考虑到安全库存,计算出来的数值通常偏小,引起生产系统较严重的缺货现象。
本文研究生产/库存系统在需求和生产服务具有随机波动性时,随机变量的变异系数对系统绩效的影响,所以根据式(5-8)和式(5-9)进行修正,在式(5-9)添加安全系数α项,以保持看板数量能够对随机变量做出反应;
同时,考虑批处理作业,添加批处理数据项B,保持系统的有效运行。
对于生产看板数量的修正公式如(5-10)式。
(5-10)
k——生产看板数量;
[]——取大于表达式数值的最小整数;
R——组件利用速度;
B——下道工序对该部件的批处理数量;
Tp——单件生产时间;
Td——箱子的运输和传送时间;
C——箱子的单位容量;
X——需求速率变化的百分比;
α——安全系数。
同一产品生产线的利用速率R为每天设计产出量除以每天的时间。
在仿真实例中,产出量为每天10套,即R=10/480min=1/48(套/分钟);
B和Tp各个部件各不相同,见流程数据表附录A;
由于不考虑工序间运输时间对系统绩效的影响,取Td为0,C为1;
X就是需求随机分布函数的变异系数CV,如果是需求确定性实验,则X=0,如果为需求随机性实验,则X有需求的变异系数确定;
安全系数α通过仿真优化,暂取为1.7。
根据看板数量计算公式(5-9),对各个部件的各工序生产看板数量计算程序见附录B的InitialActions和看板计算函数UF.KB部分。
1.6仿真模型的WITNESS实现
通过对该随机生产/库存系统流程的分析和系统配置参数的设定,设计出系统的Witness仿真模型,其可视化界面如图5.4所示。
图5.4振动轮生产/库存系统Witness仿真界面
其中仿真模型中变量数据的初始化设置设计于Witness仿真模型的Initialize程序中,函数的逻辑结构、加工单元、原材料、半成品以及库存等实体元素的输入输出关系等都设计在这些元素对应的action或rule编辑框内,具体程序参考附录部分。
1.7模型参数优化
在计算机模型验证部分,为了证明计算机模型同理论模型是相符的,只考虑了计算机模型在确定型和随机型两种情况下的设备稼动率和故障率,以及产品产出数量,没有考虑系统的另外两个绩效指标:
库存水平和定单平均等待时间。
这两项指标与看板数量和维修人员数量之间具有很强的相关性。
因此为了研究各种可变因子变化对系统绩效的影响,需要建立一个统一的、优化的模型参数环境,需要对模型的相关参数进行优化取值,涉及的参数有看板安全系数α和维修工的数量,对其进行优化选择的准则是:
在制品库存尽可能低、定单平均等待时间尽可能低、维修工数量尽可能少。
将参数α和维修工的数量Qmen的可能取值设置如表5.8所示,从表上可以看出α有13种可选取值,Qmen有6个可能取值,累积有78种组合,现在寻求仿真模型在这78种方案的哪一种方案配置下,系统绩效最优。
表5.8优化参数的可能取值表
变量名称
可能取值
累积
α
[1.2,2.4]step=0.1
13
Qmen
[1,6]step=1
78
通过Witness仿真优化工具包optimize进行优化仿真运行,将实验结果导入到Excel中,按照定单平均等待时间AWT为第一排序字段、在制品库存WIP为第二排序字段,递增排列。
将排列结果的前9个相对最优配置方案及实验结果列入表5.9。
表5.9模型仿真参数优化结果数据表
WIP
AWT
OR
TPUT
4794
1.7
52.012
2520
1.8
5031
6
52.054
5140
52.053
5230
1.9
52.061
2.1
从表5.9可以看出,在确定性情况下,α取1.7和1.8两个数值得出的系统绩效相同;
再比较WIP数值,最低值为4794;
维修工数量直到第7条配置时,才为3人,少于第一条配置。
因此,选定第一条配置为系统的最优配置方案。
在下一章进行的仿真实验研究中,如果没有特别的说明,模型中的α和Qmen将确定为这两个数值(1.7和4)。
附录BWitness仿真程序
MODELINFORMATION:
ModelName:
productionandinventorysystemsimulation
ModelTitle:
optimizesystemparameters
ModelAuthor:
jiannywang
CreationDate:
ThuMar3111:
29:
172005
ModelNotes:
IndustrialEngineeringDepartment
BusinessAdministrationSchool
UniversityofJiangsu
InitialActions:
!
pm_var.mypns=100
!
pm_var.cv=0
Uvar.kbsafe=1.7
Uvar.PK_wl_qg=UF.KB(25)
Uvar.PK_wl_dpk=UF.KB(50)
Uvar.PK_wl_jy=UF.KB(30)
Uvar.PK_wl_hj1=UF.KB(60)
Uvar.PK_wl_zy=UF.KB(25)
Uvar.PK_nl_qg=UF.KB(20)
Uvar.PK_nl_dpk=UF.KB(40)
Uvar.PK_nl_jy=UF.KB(25)
Uvar.PK_nl_hj1=UF.KB(50)
Uvar.PK_nl_zy=UF.KB(20)
Uvar.PK_nl_cdm=UF.KB(50)
Uvar.PK_nl_zk=UF.KB(30)
Uvar.PK_jqj_qg=UF.KB(12*4)
Uvar.PK_jqj_tp=UF.KB(14*4)
Uvar.PK_jqj_yq=UF.KB(60*4)
Uvar.PK_ngb_qg=UF.KB(15*2)
Uvar.PK_ngb_tp=UF.KB(25*2)
Uvar.PK_ngb_yq=UF.KB(60*2)
Uvar.PK_ngb_zk=UF.KB(50*2)
Uvar.PK_fkb_qg=UF.KB(18*2)
Uvar.PK_fkb_tp=UF.KB(25*2)
Uvar.PK_fkb_yq=UF.KB(60*2)
Uvar.PK_fkb_zk=UF.KB(50*2)
Uvar.PK_hj2=UF.KB(30)
Uvar.PK_hj3=UF.KB(45)
Uvar.breakinterval=7750
Uvar.repairtime=240
_____________________________________________________________
ELEMENTNAME:
DMD.b_order
ElementType:
Buffer
Quantity:
1
Capacity:
1000
InputOption:
Rear
OutputOption:
First
SearchFrom:
Front
Actions
Input:
Uvar.totaldemand=Uvar.totaldemand+DMD.batchsize
Output:
Uvar.outpart=Uvar.outpart+DMD.batchsize
DMD.demand
Part
Type:
Variableattributes
Groupnumber:
1
InterArrivalTime:
UF.DIT()+1
FirstArrivalat:
310.0
MaximumArrivals:
Unlimited
Input/OutputRules
PUSHtoDMD.b_order
Create:
DMD.arrivaltime=TIME
DMD.batchsize=UF.DBS()+1
DMD.leadtime=UF.DLT()+1
DMD.demand_meet
Machine
Priority:
Lowest
SEQUENCE/WaitDMD.b_order#
(1),
WS12.store#(DMD.batchsize)
PUSHtoSHIP
Finish:
IFDMD.arrivaltime+DMD.leadtime+20<
TIME
Uvar.Nunsatisfy=Uvar.Nunsatisfy+1
Uvar.waittime=Uvar.waittime+TIME-DMD.arrivaltime-DMD.leadtime-20
ENDIF
pm_part.fengkouban
0
Uatt.tpnum=4
Uatt.qgnum=8