Apriori算法及神经网络在数控机床中应用研究
2023-10-12郭俊王颖李卓邓国群
郭俊,王颖,李卓,邓国群
(湖南汽车工程职业学院信息工程学院,湖南株洲 412001)
0 前言
质量和效率是工业制造永恒的主题,在金属切削加工智能制造中,影响质量和效率的关键装备是数控机床。数控机床属于精密制造装备,虽然在出厂时自身的技术指标均能达到相应水准,但是应用在实际产线时,其加工精度会受夹具、刀具、环境温度、振动、部件老化、工件材料一致性等因素影响[1]。而且,随着机械设备的不断使用,其稳定性及精准度逐步降低,势必影响加工环节误差,进而影响后续工艺[2-3]。
现阶段,有关各类误差补偿方法的研究有很多。文献[4]利用旋转进给轴热误差对数控机床进行补偿。文献[5]分析了数控机床在检测中触发式测头误差的变速补偿。文献[6]引入符合阿贝原则的数控机床几何误差进行建模,并推导出XYFZ型三轴机床适用的HTM几何误差补偿模型,以及给出模型正确使用的前提条件。文献[7]提出了基于LSTM循环神经网络的数控机床热误差预测方法,并利用聚类算法构建神经网络模型。上述方法大多专注于某种设备类型的某项指标进行误差补偿,其补偿效果有限、可复用性低。
而Apriori算法可快速发现海量数据集中的相关性,神经网络算法对于处理大量非结构化的工业大数据有独特的优势,能够有效补偿产品实际加工中产生的误差,大幅提升产品稳定性及精准度。因此,本文作者基于Apriori算法及神经网络方法,利用生产实践中产生的大量数据,找出不同状态下最优的补充参数,为运行中的车床提供即时、智能、精确的参数补偿策略,确保数控机床的稳定。
1 相关分析
1.1 关联规则分析
关联规则反映事物之间的关联性[8],能够从数据集中发现2个或多个数据之间的相关关系,即从数据集中找到出现高频次数的项目集,也称频繁项集。关联规则广泛应用于数据挖掘中,其具体概念如下:
定义1:已知集合F={f1,f2,…,fk},集合中的每个元素称为数据项,集合F称为项集,集合F中的数据长度称为项集长度,包含k个长度的项集称为k-项集。事物数据库集用D表示,对于每一个子事物集用T表示。设D是交易T的集合,T⊆F,设M是F的项集,如果M⊆T,称T包含M。
(1)
置信度fconfidence(M⟹N),表示包含M、N的交易数与包含M的交易数之比,如式(2)所示:
(2)
定义3:为了对关联规则进行量化和评估,设定min_sup值(最小支持度)和min_conf(最小置信度),对于项集M,如果支持度不小于min_sup值,且置信度不小于min_conf值,则项集M即为频繁项集。
1.2 Apriori算法分析
Apriori算法是实现关联规则最经典的算法[9],其原理是逐层迭代搜索。首先对数据集进行扫描,得到一维候选项集,利用设定的最小支持度,对一维候选项集进行剪枝,得到新的频繁项集,再由频繁项集连接成新的二维候选项集。Apriori算法通过k-1项集寻找k项集,不断重复剪枝步和连接步,直到最大频繁项集为空时,结束迭代过程。其剪枝步和连接步原理如下:
连接步:由k-1项集Lk-1与本身相连得到频繁项集Ck,记L1、L2为Lk-1前2个项集,设Li,[j]为任意子集第j项,如果两子集前k-2项相同,即(L1,[1]=L2,[1]∧L1,[2]=L2,[2]∧…∧L1,[k-2]=L2,[k-2]∧L1,[k-1] 剪枝步:Apriori算法的超集Ck可能是频繁,也可能不频繁,但所有频繁k-项集必在Ck中,因此,对k-项集Ck中所有(k-1)进行剪枝,删除所有非频繁(k-1)项子集,再由支持度得到Lk。 图1 全连接神经网络模型 神经网络的训练在于调整隐藏层的层数及各层权重,输出层节点的取值即为每层加权和,比如图1中A11、C1值分别如公式(3)、(4)所示: (3) (4) 同理,可求出A12,…,A1g的值及C2,…,Ck的值,具体如公式(5)(6)所示: [A11,A12,…,A1,g]=[W1,W2,…,Wp]· (5) [C1,C2,…,Ck]=[A11,A12,…,A1g]· (6) 误差补偿模型可分为两部分,第一部分为智能误差补偿模块。由于数据集中各特征值相差较大,先对数据集做0-1归一化处理,使它落入一个特定区间,以消除数值因大小不一造成挖掘效果偏差,从而提高数据收敛速度,有利于寻找全局最优解;再利用Apriori算法对生产企业提供的数据集进行筛选,得到更具针对性的数据集;之后利用神经网络方法调整参数,通过不断更新神经网络模型参数,构建合适的智能误差补偿模型;最后将训练好的误差补偿算法模型部署至云平台,用于加工误差精度补偿,从而减少机床加工误差。第二部分为视觉检测模块。先把合格与不合格2类样本图片作为训练数据上传至云平台;之后将图片缩放到合适尺寸,得到高质量的图片数据;再利用神经网络方法,训练选取的图片,使计算机掌握分辨工件合格与否的能力;最后将训练好的模型部署至云平台,用于验证工件是否合格。 利用误差补偿模型生产的工件,通过视觉检测模块辨别,区分为合格或不合格工件。如果不合格工件过多,则应重新调整误差补充算法。 系统整体设计如图2所示。 图2 系统整体设计 某企业提供的adjustment文件中,对于相同w1,w2,…,w18特征值,会对应不同c1,c2,…,c8补偿参数,具体如图3所示。另外,每一个补偿参数值在c1,c2,…,c8中出现次数有所不同,比如1.842在c1,c2,…,c8中出现次数分别为13次、3次、2次、1次、1次、0次、11次、6次。当1.842出现次数为13次和11次时,score值大于等于90,当1.842出现次数在11次以下时,score值小于90。因此,利用第1.1节中关联规则及第1.2节中Apriori算法,通过设定最小支持度,对于1.842作为c1,c2,…,c8补偿参数,c1和c7两列具有相关性,这两列对于1.842予以保留,其余列对于1.842予以删除。同理,利用关联规则及Apriori算法找出其余补偿数据在c1,c2,…,c8间的关联性,从而得到更具针对性数据集。 图3 相同特征值不同补偿参数所得结果不同 Apriori算法伪代码如下: Input:某企业工件生产事物数据库DataBase。最小支持度阈值min_sup。 Output:DataBase中最大频繁项集L。 (1)L1=find_frequent_1-itemsets(DataBase) (2)for(k=2;Lk-1≠f;k++) (3)Ck=apriori_gen(Lk-1,min_sup) (4)for each transactiont∈DataBase do{ (5)Ct=subset(Ck,t); (6)for each candidatec∈Ct (7)c.count++;} (8)Lk={c∈Ck|c.count>=min_sup} (9)returnL=UkLk; 其中:L是频繁项集;C是候选项集;apriori_gen是实现由频繁项集Lk-1生成候选项集Ck的过程。 依据某企业提供的相关文件adjustment.csv,利用第1.3节神经网络算法,对误差补偿算法进行训练部署,使数控系统具有误差自动补偿功能,在实际加工中,能有效提高工件生产合格率。adjustment.csv文件中共有9 999条数据,部分数据如图4所示。 图4 adjustment文件中部分数据 上图中:w1,w2,…,w18分别表示刀具磨损、温度、湿度等外部影响因素;c1,c2,…,c8为外部补偿参数;score值为工件合格评判标准,若score大于等于90分则工件合格,若score小于90分则工件不合格。 智能误差补偿算法具体实现步骤如下: 步骤1,数据清洗。数控机床加工中,会产生许多有问题的数据,比如残缺数据、噪声数据和冗余数据,这些脏数据对数据分析会有较大影响。而文中所用数据集,w1,w2,…,w18特征值中有很多Null值,即空值。因此,对于这些残缺值,使用均值a代替,具体如公式(7)所示: a=(w1+w2+…+w18)/18 (7) 步骤2,数据归一化处理。神经网络中数据之间往往具有不同的量纲,为了消除不同量纲的数据影响,需要对数据进行归一化处理,使它落定在一个特定区间。数据归一化能够提高收敛速度,有利于寻找全局最优解。常见的数据归一化有最大-最小标准化、0-1标准化、零-均值标准化。由于步骤1采用均值填充空值,因此文中采用0-1标准化。具体如公式(8)(9)所示: s2=[(w1-a)2+(w2-a)2+...+(w18-a)2]/18 (8) x*=[(w1+w2+w3...+w18)-a]/s (9) 其中:s2表示方差;s表示标准差;x*表示归一化后的数据。 步骤3,误差补偿算法模型训练。利用第1.3节神经网络模型,构建神经网络误差补偿算法模型,模型输入层节点18个,分别为特征值w1,w2,…,w18;输出层节点8个,分别对应r1,r2,…,r8,利用pycharm中TensorFlow的 tf.keras.Sequential函数,通过不断更新网络参数,得到最优模型。误差补偿算法模型伪代码如下: model = tf.keras.Sequential([ layers.Dense(512,input_dim=train_features.shape[1],activation="relu"), layers.Dense(512,activation="relu"), layers.Dense(512,activation="relu"), layers.Dense(train_labels.shape[1])]) model.compile(optimizer=tf.keras.optimizers. SGD(learning_rate=lr,momentum=0.9, loss="mse",nesterov=True,clipvalue=0.5, decay=lr/epochs_number),metrics=['acc']) 步骤4,误差补偿算法模型训练部署。将训练好的误差补偿算法模型部署至云平台,用于加工误差精度补偿,从而减少机床加工误差。 通过工业视觉进行工件训练,采集合格与不合格样本,并进行数据预处理、云平台存储,利用第1.3节神经网络算法,通过设定相应参数进行模型训练和部署。训练好的模型能够返回待测工件和标准件的相似度,使设备具有识别合格品和不合格品工件的功能。 视觉检测算法具体实现步骤如下: 步骤1,数据采集。利用视觉系统进行若干工件图像数据采集,确定工件样本图像数据库。 步骤2,数据预处理。对图片进行相关处理,选择质量高的图片进行训练。 步骤3,视觉检测模型训练。调用Pycharm中TensorFlow的 tf.keras.Sequential函数,通过不断更新网络参数,得到最优模型。视觉检测模型伪代码如下: model=tf.keras.Sequential([ layers.experimental.preprocessing.Rescaling(1./127.5,offset=-1), layers.MaxPooling2D(), layers.Conv2D(64,3,activation=‘relu’), layers.MaxPooling2D(), layers.Conv2D(128,3,activation=‘relu’), layers.MaxPooling2D(), layers.Conv2D(256,3,activation=‘relu’), layers.Conv2D(512,3,activation=‘relu’), layers.MaxPooling2D(), layers.Flatten(), layers.Dense(128,activation=‘relu’), layers.Dense(num_classes),]) model.compile(optimizer=‘adam’, loss=‘sigmoid’,metrics=[‘accuracy’]) 其中:activation=‘relu’为神经网络激活函数;loss=‘sigmoid’为损失函数;optimizer=‘adam’为选择器。 步骤4,视觉检测模型部署。将训练好的视觉检测模型部署至云平台,用于识别合格与不合格的工件。 (1)误差补偿模型仿真测试 将数据集分为训练集数据和测试集数据,训练集数据用于模型训练,测试集数据用于模型验证。利用Pyhton框架下的神经网络模型进行仿真测试,通过循环迭代,直至寻找到神经网络模型各参数最优解。仿真测试可分为2种情况:一种不对数据进行任何处理,得到图5所示结果;另一种对数据进行关联分析、归一化等数据预处理,得到图6所示结果。 对比图5、6可以看出:如果不对数据做任何处理,随着训练次数的增加,训练集数据和测试集数据精度虽然都有增加,但训练集数据和测试集数据最高精度也只有0.275、0.247;如果对数据集进行关联性、归一化处理,且利用第3.2节训好练的神经网络智能误差补偿算法,则训练集数据集和测试集数据集的最高精度分别可达0.97和0.96,精度较之前分别提高0.695和0.713。由此可见,神经网络智能误差补偿算法能够提高加工精度稳定性。 图5 数据不做任何处理结果 图6 对数据集处理后结果 (2)视觉检测模型仿真测试 通过工业视觉进行工件训练对合格与不合格样本数据采集,可分2种情形:一种是采集图片数量较少、图片质量较差,得到图7所示结果;另一种是采集图片数量多、图片质量好,且通过不断进行神经网络模型训练,得到图8所示结果。 对比图7、8可以看出:如果不对图片做任何处理,随着模型训练次数的增加,训练数据集和测试数据集的精度最高可达0.65和0.635;如果对图片进行相关处理,且利用第3.3节视觉检测算法,则训练集和测试集数据的精度分别可达0.99和0.91,精度较之前分别提高0.34和0.275。由此可见,神经网络视觉检测算法能大大提高物件合格与不合格检测率。 图7 图片未作处理 图8 图片相关处理 (3)实际测试 准备30个物料,用于实际加工,物料加工槽如图9所示。通过传送带,把物料传送至雕刻台,逐一雕刻,如图10所示。在雕刻过程中,云平台会通过智能误差补偿算法,用于加工误差精度补偿,从而提高产品合格率。雕刻完成后,通过视觉检测算法,验证工件图片是否合格。结果表明:30个雕刻物料都合格,合格率100%,具体如图11所示。 为解决数控机床加工精度稳定性问题,提出了一种基于Apriori算法及神经网络的智能模型。为提高数据有效性,采用Apriori算法进行数据关联性挖掘。为解决实际加工中加工精度受机床零部件、外部环境等因素的影响,采用神经网络构建智能误差补偿模型,提供即时、智能、精确的补偿方案。 为验证误差补偿模型对数控机床稳定性影响,采用神经网络构建视觉检测模型,对加工产品进行识别,判断其是否合格,并统计合格率。仿真结果表明:文中构建的误差补偿模型能够使训练集数据和测试集数据的精准度分别达到0.97和0.96,并且文中构建的视觉检测模型能够对测试集数据和训练集数据进行了有效识别,精度分别为0.99和0.91。实验结果表明:所有产品都符合精度要求,上述模型能够解决数控机床加工中稳定性问题。下一步的研究可以考虑加入聚类算法,结合神经网络训练数据集,并引入更大的数据集进行实验测试,分析其稳定性。1.3 神经网络算法分析
2 误差补偿模型
3 算法实现
3.1 基于Apriori算法的关联规则实现
3.2 基于神经网络智能误差补偿算法实现
3.3 基于神经网络视觉检测算法实现
4 结果测试
5 结语