为什么非得用仿真?
先说个场景。客户要建一条装配线,产品有几十种型号,每种的工艺路线还不一样。靠手算节拍?算一个月都算不明白。
仿真这玩意就是在这种时候派用场的。它能把设备、物料、人员、时间全搅在一起,跑几百万次模拟,告诉你到底能不能按期交货。
说实话,以前没仿真的时候,我们干过不少“拍脑袋”的事。记得有一次,预估某条线年产能10万件,结果投产以后实际只有8万——因为没算换型时间。后来用仿真把换型模型加进去,才发现当初差的不是一星半点。
现在做产线规划,不仿真都不敢签字。
建模第一步:数据采集,比想象中麻烦
很多人以为仿真建模就是画方块、连箭头。图样图森破。模型的灵魂是数据。
你拿到的工艺节拍是理论值吧?真实情况呢?操作工要走几步拿料,启动要按两个键,夹具夹紧还有延时。这些细节都得跑现场去测。我们拿着秒表蹲了半个月,才把一条线的真实节拍分布整出来。
数据一定要用分布,别用定值。比如节拍服从正态分布,均值50秒,标准差3秒。这样仿真才能反映波动。如果你给个固定50秒,那出来的就是理想国,没用。
还有物料到达间隔。你得看上游的实际产出,而不是理论节拍。有一次我们用了理论节拍当输入,下游缓冲区直接爆了,仿真报错。后来改成从现场数据拟合的分布,才正常。

模型搭建:几个容易忽略的细节

现在说软件里的操作。大部分商用软件都有对象库,工位、传送带、AGV。但对象库的默认参数往往不适合你的场景。
比如AGV,默认的加速度和转弯半径是理想化的。你根据买的车来改。我们遇过一次,仿真里AGV跑得飞快,实际却跑不起来——因为厂区通道宽度不够。这属于物理约束,必须建模。
还有一个坑:传送带速度。默认是恒定速度,但实际启动和停止都有加速减速。虽然每次都改,总有忘了的时候。忘了的后果?缓冲区流量计算全错。
对了,还有设备故障模型。别简单设个MTBF就完事。要分故障类型,有的故障是开机自检,有的是加工中随机。维修时间呢?也不一定是正态。我们一般用实测数据拟合,或者改用weibull分布差不多。
运行仿真的正确姿势
模型建好,先别急着跑大批量。
先做验证。怎么验证?把故障时间设成零,跑出来应该等于理想产能。如果不对,说明模型里有bug。
验证通过后,再设定运行时长。我们一般用多个随机数种子跑,然后取平均值。单次结果没意义,因为它是随机过程的一个样本。
还有一个设置叫“预热期”。刚开始系统是空的,得跑一段时间让线里填满物料,数据才稳定。不设预热期,你统计出来的均值会偏低,尤其是首件产出时间。
另外,仿真步长也要注意。事件驱动还是固定步长?对于以秒为单位的设备动作,固定步长选小一点,比如0.1秒。太大可能错失瞬时瓶颈。
结果分析:别看报表,看逻辑
仿真完事,软件输出一大堆图表。很多新人盯着柱状图,以为利用率最高就是瓶颈。
错。瓶颈的定义是约束整个系统产出能力的环节。有时候一个利用率只有60%的工位,因为它的产出波动大,反而卡住下游。你得看动态的队列长度和等待时间。
我们常用瓶颈分析图,看哪个工位前队列无限增长。这才是真瓶颈。

还有,别忽略“异常事件”。比如一台机器随机故障,在仿真里怎么建模?是服从指数分布吗?我见过不少人直接给个MTBF,但没考虑维修时间分布。这会导致可用率差挺多。
敏感性分析也很重要。参数稍微变一下,结论可能就翻盘。我们通常把节拍和故障率做±20%扫描,看看系统是不是脆弱的。
落地时的那些坑

仿真结论要落到实际,还得小心。
仿真里假设了理想的调度规则。实际工人不按规则来。比如仿真里规定先到先服务,但工人会优先处理紧急件。所以我们会在模型里加入多种调度策略,比较结果。
还有,仿真模型要持续更新。产线哪怕改了个工位,模型不同步,下次决策就掉坑里。我们吃过这个亏。
最后,也是最重要的:仿真不是圣旨,是决策辅助。它帮你看到可能性,但拍板还得靠你的工程判断力。
小结
核心就几点:数据要真实,模型要验证,结果要批判。
大概就是这样。感谢阅读,欢迎交流。