1. 引言
科技浪潮推动了工业领域的智能化进程,自动化设备的广泛应用显著提升了生产效率与产能。然而,要实现全面自动化,必须解决生产线中的故障识别与预测问题。故障智能报警技术能够有效监控生产线状态,及时预警,防止生产中断和经济损失。在汽车制造业等领域的研究中,已探索出多种基于传统机器学习及深度学习算法的故障识别与预测方法[1]。XGBoost算法作为一种高效的集成学习方法,实际运用中,在速度控制和生产优化方面表现出色[2] [3],但仍面临模型拟合度不高、预测准确性不足等问题[4]。不过XGBoost算法在处理非线性关系和复杂数据时更具有高效性,可以实现对生产线故障的及时预警和有效预防,从而减少生产中断,提高整体生产效率。因此,本研究旨在通过XGBoost算法提高生产线故障预测的准确性和可靠性,为工业智能化转型提供创新性解决方案。此外,遗传算法以其强大的全局搜索能力被广泛应用于排班流程等领域[5]。在工业生产线中,故障的智能识别与预测对于提高生产效率、降低维护成本具有重要意义。并且随着企业规模的扩大和生产效率的提升,合理的人员配置也是一个重要问题,不合理的排班不仅会影响员工的工作效率,也会对企业的生产效率和产品质量造成不良影响。因此,研究并解决排班问题对于A企业的可持续发展具有重要意义,通过引入遗传算法,优化A企业的排班问题,以提高生产效率、降低成本并提升员工满意度。
2. 模型与方法介绍
2.1. XGBoost算法在故障预测中的应用
XGBoost是一种基于GBDT的高效、灵活、可扩展的梯度提升算法,是GBDT算法的一种变种,也归属于一种监督算法。此外,它还是一种boost算法,具有伸缩性强、便捷的可并行构建模型的特点。XGBoost与GBDT的基本思想一致,都是利用加法模型与前向分步算法实现学习的优化过程,XGBoost是利用加法模型与前向分步算法实现学习的优化过程,其预测过程如下:
(1)
其中,
表示回归X树,K为回归树的数量[6] [7]。
XGBoost在GBDT的基础上进行了很多改进,通过优化目标函数,提高了模型的精确度和训练速度,并且与其他机器学习算法相比,XGBoost在处理非线性关系和复杂数据模式方面更具优势。此外,其内置的交叉验证功能有助于评估模型性能,确保预测的可靠性。
2.2. 遗传算法在排班优化中的应用
2.2.1. 遗传算法基本原理及优势分析
遗传算法(Genetic Algorithm, GA)是一种模拟自然选择和遗传机制的优化算法,通过模拟生物进化过程中的选择、交叉和变异等操作,不断迭代优化求解问题的解空间。与其他优化算法相比,遗传算法具有更强的鲁棒性和全局搜索能力[8]。遗传算法的基本步骤包括选择优良个体、交叉组合生成新个体、变异以避免局部最优,直至满足终止条件,标准遗传算法的流程如图1所示[9]:
Figure 1. Genetic algorithm flowchart
图1. 遗传算法流程图
遗传算法通过模拟生物进化过程,不断迭代优化,然后找到合理的排班方案,具体步骤如下:
1) 编码:将排班方案表示为染色体,即一个由基因组成的序列。每个基因可以代表某个员工在某个时间段内的排班情况。
2) 初始化种群:随机生成一定数量的染色体作为初始种群,每个染色体代表一个可能的排班方案。
3) 适应度评估:根据适应度函数计算每个染色体的适应度值,适应度值越高表示排班方案越优。
4) 选择:根据适应度值选择一定数量的优秀染色体作为父代,用于生成下一代。
5) 交叉:对父代染色体进行交叉操作,生成新的子代染色体。交叉操作可以保留父代染色体的优秀基因,同时引入新的基因组合。
6) 变异:对子代染色体进行变异操作,以一定概率改变某些基因的值。变异操作可以增加染色体的多样性,避免陷入局部最优解。
7) 迭代:重复上述步骤,直到达到预设的迭代次数或适应度值不再显著提高为止。最终得到的染色体即为最优排班方案。
2.2.2. 遗传算法在排班问题中的适用性
排班问题涉及多个约束条件,如班次需求、工人技能等,而遗传算法能够灵活处理这些约束,通过适应度函数评估排班方案的质量,实现优化目标。与其他优化算法相比,遗传算法具有更强的鲁棒性和全局搜索能力,可以设置更加合理的排班方案。
3. 数据预处理及可视化分析
3.1. 数据来源及预处理
本文数据来源是第12届泰迪杯A题数据(https://www.tipdm.org),选取了A工厂中编号为M101至M110的生产线和操作人员作为研究对象,针对这些生产线上的各类执行设备和检测设备的工作情况进行了详细记录。全面收集整理了每一道工序的执行信息,包括工序的状态、工序间的衔接情况以及产量合格数等关键数据。其初始数据的具体说明如图2所示:
Figure 2. Initial feature state
图2. 初始特征状态
由于处始数据量庞大,十条生产线的数据读取后共有10,485,750条记录。经检查,数据中未发现异常值,因此无需进行剔除处理。为了更有效地进行描述性统计分析,我们根据每天的不同时间段以及各产品线的生产时间进行了分层随机抽样。经过处理后,最终样本量减少至787,230条,这大幅降低了数据规模,同时保持了数据的代表性。
针对企业发展,我们对A工厂的工人进行了工龄的统计,得到工龄比例如表1所示:
Table 1. Ratio of length of service
表1. 工龄比例
工龄 |
比率 |
1 |
0.2 |
2 |
0.2 |
3 |
0.1 |
4 |
0.2 |
5 |
0.2 |
6≤ |
0.1 |
可以看出该工厂大部分人的工龄是均匀分布在1年到5年之间的,特别是集中在前两年的工龄段和第四、五年的工龄段。
3.2. 数据可视化与相关性分析
然后我们将十条生产线的35个指标进行Spearman相关性分析,得到大多数指标与故障情况之间呈现正相关,结合故障运用和实际情况,为了更好地提高模型性能和贴合测试集,我们将全部数据进行拟合,将预处理之后的数据进行收集,对类故障数进行整理,详细如表2所示:
Table 2. Number of faults occurring for each type of fault
表2. 各类故障发生的故障数
故障编号 |
M101 |
M102 |
M103 |
M104 |
M105 |
M106 |
M107 |
M108 |
M109 |
M110 |
总计 |
1001 |
19,019 |
3003 |
8008 |
12,012 |
5005 |
19,019 |
7007 |
15,015 |
9009 |
6006 |
103,103 |
2001 |
0 |
4002 |
4002 |
24,012 |
8004 |
12,006 |
2001 |
22,011 |
10,005 |
8004 |
94,047 |
4001 |
32,008 |
16,004 |
8002 |
72,018 |
8002 |
44,011 |
36,009 |
20,005 |
60,015 |
12,003 |
308,077 |
4002 |
76,038 |
4002 |
20,010 |
8004 |
16,008 |
20,010 |
8004 |
36,018 |
16,008 |
32,016 |
236,118 |
4003 |
48,036 |
8006 |
16,012 |
24,018 |
28,021 |
16,012 |
8006 |
48,036 |
8006 |
44,033 |
248,186 |
5001 |
80,016 |
20,004 |
15,003 |
15,003 |
0 |
70,014 |
5001 |
20,004 |
0 |
45,009 |
270,054 |
5002 |
70,028 |
25,010 |
25,010 |
35,014 |
75,030 |
30,012 |
25,010 |
40,016 |
120,048 |
30,012 |
475,190 |
6001 |
42,007 |
12,002 |
12,002 |
12,002 |
24,004 |
30,005 |
6001 |
108,018 |
54,009 |
42,007 |
342,057 |
6002 |
66,022 |
12,004 |
24,008 |
78,026 |
12,004 |
72,024 |
66,022 |
18,006 |
126,042 |
72,024 |
546,182 |
从表2可以看出,总故障数为2,374,464,类故障5002和类故障6002的故障类型更为普遍,M102和M108在多数故障类型中故障数较低,其他的故障数普遍呈现正态性,类故障图如图3所示:
Figure 3. Failure count chart for each production line
图3. 各生产线故障数图
4. XGBoost算法在故障智能识别中的应用
4.1. 模型建立及预测
4.1.1. 模型建立及检验
由于初始数据的庞大,而XGBoost算法在处理大规模数据集时表现优异,对于初始数据,首先将九个故障指标设为被检测变量y,并将物料推送气缸推送状态、物料推送气缸收回状态等25个变量作为输入特征X,使用XGBoost算法进行模型拟合。对于总共787,230条数据,以8:2的比例划分为训练集和测试集。该模型的分类结果如图4所示:
Figure 4. Model analysis diagram
图4. 模型分析图
将该模型应用于预测集后,可以看出预测值的准确率接近于1,这表明算法具有很高的拟合度。通过将模型的预测值与测试集的实际值进行对比,我们构建了混淆矩阵如图5所示:
Figure 5. confusion matrix
图5. 混淆矩阵
4.1.2. 故障持续时间预测
故障预测能够提前发现生产线的潜在问题,为维修和预防提供宝贵时间,减少生产中断,提高整体生产效率。针对已有的生产线,我们取时间状态一致的特征值众数,模拟了长度为1,048,575的生产线M201的所有X值,并进行建模和预测,首先将已建立的XGBoost模型用于预测故障类型,确定每次故障开始的时间点,假设初始时间为0,计算每次故障的持续时间。预测的故障概率分布如图6所示:
Figure 6. Predicted probability distribution plot
图6. 预测概率分布图
对持续预测的结果进行整理,每类故障持续时间详细如表3所示。
从表3可以看出,9类故障的总故障数共为17,328次,累计故障时长为133,595秒。其中,类故障2001的累计时长最少3874秒,持续时间也是最短的,即积累日期为158,开始时间为3323秒,持续时间是16秒。而故障持续最长的是类故障4001开始时间是1973秒的4001,持续时间高达219秒。并且故障累计时间最长和总故障数最多的是4003,总故障数最少的是4002,只有92次。
根据故障预测的结果,可以建立故障预警系统,并根据XGBoost算法提供的特征重要性,对生产线进行故障排查和维护保养,并优化生产流程。
Table 3. Class failure duration prediction
表3. 类故障持续时间预测
故障编号 |
日期 |
开始时间 |
持续时长/秒 |
累计时长/秒 |
总故障数 |
1001 |
320 |
15,309 |
173 |
7613 |
401 |
2001 |
158 |
3323 |
16 |
3874 |
595 |
4001 |
85 |
1973 |
219 |
6454 |
128 |
4002 |
256 |
26,353 |
174 |
4875 |
92 |
4003 |
353 |
25,624 |
91 |
36,584 |
6080 |
5001 |
249 |
9290 |
77 |
14,652 |
2184 |
5002 |
192 |
23,023 |
196 |
28,507 |
3591 |
6001 |
316 |
6248 |
151 |
20,231 |
2655 |
6002 |
159 |
18,920 |
21 |
10,805 |
1602 |
4.2. 故障与产量关系分析
整理合格数、不合格数以及九类故障数据时,对于每个生产的产品,结果只有两种:合格或不合格。通过将当日累积的合格数与不合格数相加,可以得到当日单个生产线的总产量。同样地,将当日合格数除以当日总产量,即可计算出当日的合格率。预测整理的故障数据对各变量求平均后,得到表4:
Table 4. Annual average value of variables
表4. 变量年均值
变量 |
数量 |
产量 |
1437.023077 |
合格率 |
0.999444223 |
持续时间 |
物料推送装置故障1001 |
6.165384615 |
物料检测装置故障2001 |
8.576923077 |
填装装置检测故障4001 |
5.292307692 |
填装装置定位故障4002 |
9.919230769 |
填装装置填装故障4003 |
6.457692308 |
加盖装置定位故障5001 |
5.613461538 |
加盖装置加盖故障5002 |
6.403846154 |
拧盖装置定位故障6001 |
10.38461538 |
拧盖装置拧盖故障6002 |
4.751923077 |
故障次数 |
物料推送装置故障1001 |
0.111538462 |
物料检测装置故障2001 |
0.157692308 |
填装装置检测故障4001 |
0.088461538 |
填装装置定位故障4002 |
0.184615385 |
填装装置填装故障4003 |
0.103846154 |
加盖装置定位故障5001 |
0.1 |
加盖装置加盖故障5002 |
0.103846154 |
拧盖装置定位故障6001 |
0.180769231 |
拧盖装置拧盖故障6002 |
0.088461538 |
观察表4可知,生产线的合格率高达99.94%,各类故障平均每天发生的次数较低,且不同类型的故障发生频率相差不大。然而,在各类故障的平均持续时间上,物料检测装置故障2001、填装装置定位故障4002和持续时间_拧盖装置定位故障6001,故障持续时间较长,因此,需要对这三类故障进行重点监测与维护。
将工龄与表4的数据进行结合,绘制出相关性的热力图为图7:
Figure 7. Heat map of correlation of variables
图7. 各变量相关性热力图
观察热力图结果,可得出以下结论:
1) 产量与其他变量的相关性较弱,可能是因为生产线中的故障次数和持续时间对其影响较小。
2) 类故障4001的故障次数与合格率呈极强的负相关性。该故障导致传送带无法停止,填装装置定位器无法固定容器,影响后续流程,降低合格率。企业应重点加强对此故障的监督和维修。
3) 类故障1001的持续时间与类故障5001、类故障6002的持续时间及故障次数呈正相关。该故障导致物料无法推出或气缸无法收回,影响后续加盖和拧盖流程。
4) 类故障2001的持续时间与类故障5002的持续时间呈正相关。物料检测失败导致物料推送和传送带停止,影响后续流程。
5) 类故障4001的持续时间与类故障5001的持续时间呈正相关。容器上传但未检测到,导致产品无法正确定位和加盖。
6) 类故障5001的持续时间与类故障6002的持续时间及故障次数呈正相关。若定位器无法固定产品,则产品无法加盖,影响后续拧盖流程。故障次数越多,持续时间越长,加剧了拧盖装置的故障。
然后根据图7我们可以发现产量与合格率存在较弱的负相关性,表明产量越多,故障也增多,合格率因此下降。对于合格率,大部分指标都与其有着较弱的负相关性,故障多了势必造成合格率下降。对于工龄,9类故障的持续时间与工龄均呈现较弱的负相关性,说明随着工龄的增加,对故障的应对处理能力会增强。总的来说,企业应加重对物料推送装置故障1001、物料检测装置故障2001和填装装置检测故障4001三处的监测和维修,因为它们处于生产线的前端也是重要的位置节点,这三处的故障发生,会进一步引致后续加盖装置和拧盖装置环节的故障发生,从而严重拉低产品质量。
5. 遗传算法在人员排班优化中的应用
5.1. 问题描述与模型建立
优化排班方案对于提高生产效率、降低人工成本具有重要意义,不合理的排班可能导致人员配置偏差,影响生产效率。为了解决这一问题,我们采用遗传算法来实现工业生产线中的排班优化,相较于传统的人工调度或简单的规则调度,遗传算法能够搜索全局最优解,更适应于动态变化的生产环境。
我们以如下情况为例,在A企业进入旺季时,生产线需要加大单量以满足市场需求,假设排班时间为1周,一年的排班方案可以以周排班方案循环,生产线共10条,需要每天运行,班次分为早班8~16点,中班16~24点以及晚班0~8点,考虑到员工上5休2,因此在班次设计中,增加了休息班次,需要42名工人,考虑到A工厂的操作人员工龄比例,每个工龄需要人数如表5所示。
Table 5. Number of workers
表5. 工人数
工龄 |
比率 |
数量 |
1 |
0.2 |
8 |
2 |
0.2 |
8 |
3 |
0.1 |
4 |
4 |
0.2 |
9 |
5 |
0.2 |
9 |
6≤ |
0.1 |
4 |
以这42名工人为研究对象,通过算法设计,得到最佳的操作人员排班方案。
5.2. 遗传算法优化排班方案的设计与实现
5.2.1. 遗传算法函数设计
每条生产线之间没有差异,因此生产线与操作人员之间可以任意搭配。以最小化排班次数为目标,目标函数为:
(2)
(3)
其中,周
,班次
,即早班,中班和晚班,员工编号
。
约束条件为:
(4)
(5)
(6)
(7)
其中,
为每个班次每天需要在岗的人数,即10人。
5.2.2. 适应度函数设计
适应度函数的设计旨在对排班方案的质量进行量化评估,从而为遗传算法提供评价标准,评价不同方案的质量,算法优先考虑那些能平衡工作负荷且满足所有约束条件的方案。适应度函数首先遍历每一天的班次,然后对每个班次中的工人数量与期望值之间的偏差进行累加。如果某个班次的工人数量与期望值相差较大,则适应度值会受到惩罚。适应度函数的目标是尽量减少每天每个班次工人数量与期望值之间的偏差,从而使得排班方案更加合理。
5.2.3. 遗传算子选择
① 选择算子:选择操作采用的是锦标赛选择方法。通过对种群中个体的适应度得分进行排序,选择适应度最好的两个个体作为父母。
② 交叉算子:交叉操作采用的是单点交叉方法。通过随机选择一个交叉点,然后将两个父个体在交叉点之后的基因串进行交换,生成两个新的子个体。
③ 变异算子:变异操作采用的是随机变异方法。通过对每个个体的每个基因进行随机变异,如果随机数小于变异率,则随机选择一个非休息的班次进行替换。特别地,还考虑了前一天是晚班的情况,保证了第二天不会安排早班。
5.3. 结果与优化分析
在排班配置问题中,使用遗传算法并设置合理的参数是一种有效的优化方法,针对只有42位工人的情况,算法需要在有限的资源下进行优化,并综合考虑多种排班需求。为了确保算法的性能和效果,根据遗传算法的设计,利用Python3.9,模型参数设置如表6所示。
Table 6. Parameterisation
表6. 参数设置
参数 |
参数值 |
种群大小 |
100 |
变异率 |
0.1 |
迭代次数 |
100 |
该方案能够满足所有工作需求,同时考虑到工人的工龄、工作量、休息时间等因素。通过迭代优化,遗传算法给出一周的最佳人员排班方案如表7所示。
Table 7. Work schedule
表7. 人员排班表
日期 |
班次 |
M101 |
M102 |
M103 |
M104 |
M105 |
M106 |
M107 |
M108 |
M109 |
M110 |
1 |
早 |
B001 |
B006 |
B007 |
B009 |
B011 |
B020 |
B028 |
B031 |
B039 |
B040 |
1 |
中 |
B004 |
B012 |
B013 |
B014 |
B023 |
B027 |
B032 |
B033 |
B036 |
B041 |
1 |
晚 |
B002 |
B010 |
B017 |
B019 |
B024 |
B026 |
B029 |
B030 |
B034 |
B038 |
2 |
早 |
B003 |
B008 |
B015 |
B016 |
B018 |
B022 |
B025 |
B035 |
B037 |
B042 |
2 |
中 |
B001 |
B005 |
B012 |
B014 |
B021 |
B024 |
B028 |
B031 |
B040 |
B041 |
2 |
晚 |
B004 |
B007 |
B019 |
B020 |
B023 |
B029 |
B030 |
B033 |
B036 |
B039 |
3 |
早 |
B002 |
B003 |
B008 |
B013 |
B017 |
B021 |
B022 |
B032 |
B037 |
B042 |
3 |
中 |
B005 |
B009 |
B010 |
B011 |
B018 |
B025 |
B026 |
B027 |
B035 |
B038 |
3 |
晚 |
B004 |
B006 |
B007 |
B015 |
B016 |
B023 |
B030 |
B031 |
B033 |
B034 |
4 |
早 |
B001 |
B014 |
B015 |
B016 |
B018 |
B022 |
B027 |
B035 |
B036 |
B040 |
4 |
中 |
B002 |
B003 |
B006 |
B009 |
B010 |
B017 |
B024 |
B037 |
B038 |
B042 |
4 |
晚 |
B008 |
B011 |
B012 |
B013 |
B019 |
B020 |
B021 |
B028 |
B029 |
B039 |
5 |
早 |
B005 |
B009 |
B023 |
B025 |
B026 |
B029 |
B032 |
B034 |
B039 |
B041 |
5 |
中 |
B002 |
B007 |
B008 |
B016 |
B024 |
B027 |
B033 |
B035 |
B037 |
B040 |
5 |
晚 |
B001 |
B004 |
B012 |
B015 |
B018 |
B022 |
B030 |
B031 |
B038 |
B042 |
6 |
早 |
B003 |
B005 |
B006 |
B013 |
B019 |
B025 |
B028 |
B032 |
B036 |
B041 |
6 |
中 |
B008 |
B009 |
B010 |
B011 |
B014 |
B017 |
B020 |
B021 |
B026 |
B034 |
6 |
晚 |
B002 |
B004 |
B007 |
B016 |
B018 |
B022 |
B027 |
B030 |
B031 |
B035 |
7 |
早 |
B006 |
B011 |
B012 |
B015 |
B023 |
B024 |
B029 |
B034 |
B036 |
B037 |
7 |
中 |
B001 |
B013 |
B014 |
B019 |
B020 |
B021 |
B025 |
B038 |
B041 |
B042 |
7 |
晚 |
B003 |
B005 |
B010 |
B017 |
B026 |
B028 |
B032 |
B033 |
B039 |
B040 |
合理的排班能确保关键岗位始终有合适的员工在岗,降低因人员不足或配置不当导致的生产停滞风险。遗传算法不仅能有效平衡员工工作量,避免某些员工过度劳累,而其他员工则相对轻松的情况,从而提高了员工满意度和工作效率,还有助于降低企业成本,因为合理的排班能减少不必要的加班和人员浪费,从而实现资源的最优配置。
6. 结论与建议
通过对生产线故障数据的深入研究,本文利用XGBoost算法构建了一个高效的故障识别与预测模型。该模型不仅具有较高的拟合度和预测准确率,还对生产线M201上的故障次数进行了详细分析,并预测了故障持续时间。研究结果表明,生产线每月总故障数为17,328次,累计故障时长为133,595秒。其中,填装装置故障4001最长持续时间为219秒,物料检测装置故障2001最短持续时间为16秒。通过相关性分析,我们发现产品合格率与填装装置故障4001的故障次数之间存在显著负相关关系,这表明控制此类故障对于提升产品合格率至关重要。此外,其他故障之间的复杂相关性也被揭示,这些故障多发生在生产线的关键前端位置,企业应加强对这些环节的监测和维护工作,以防止后续工序受到影响,从而严重影响整体的产品质量。在人力资源优化方面,本研究应用遗传算法制定了详细的排班计划。通过迭代优化,得到了一周内42名员工的最佳操作人员排班方案。该方案考虑了员工的工作时间和休息安排,确保了排班的均衡性和生产效率的最大化。
建议企业推广智能化排班系统,根据生产需求和员工情况自动调整排班方案,提高工作效率和员工满意度。建立故障监测与预警系统,利用传感器和物联网技术,实时监测生产线上的设备状态和运行数据。建立完善的故障数据库,收集并整理各类故障的发生时间、持续时间、影响范围等信息。同时加强对员工的技能培训,提高他们的故障识别和处理能力。
NOTES
*通讯作者。