基于神经网络的电机故障诊断系统(Matlab simulink、高质量、毕业论文)
主要阐述了BP 神经网络在直流电动机故障诊断方面的应用。内容包括BP 神经网络的建立, 基于Matlab simulink的网络仿真三相异步电动机的运行状况直接影响到生产的正常进行,因此研究电机故障诊断技术,具有重大的理论意义和社会经济效益。针对三相异步电动机的接地短路的外部故障,提出了一种基于BP神经网络的故障诊断方法,然后利用FFT 分析, 将振动信号的频谱分析作为神经网络的训练样本。
基于神经网络的电机故障诊断系统
Motor Fault Diagnosis System Based on Neural Network
摘 要
主要阐述了BP 神经网络在直流电动机故障诊断方面的应用。内容包括BP 神经网络的建立, 基于Matlab simulink的网络仿真三相异步电动机的运行状况直接影响到生产的正常进行,因此研究电机故障诊断技术,具有重大的理论意义和社会经济效益。
针对三相异步电动机的接地短路的外部故障,提出了一种基于BP神经网络的故障诊断方法,然后利用FFT 分析, 将振动信号的频谱分析作为神经网络的训练样本。对所采集异步电动机的定子转矩电流进行数据预处理与特征提取、归一化后,把这些特征参数作为神经网络的输入,经过学习训练,以判断系统状态,识别系统的故障。
通过选择足够的故障样本来训练神经网络, 将代表故障的信息输入训练好的神经网络后, 由输出结果就可以判断发生的故障种类。仿真和测试结果表明了该方法的有效性和正确性。
关键词:三相异步电动机;故障诊断;神经网络;BP算法
Motor Fault Diagnosis System Based on Neural Network
Abstract
The application of BP neural network in DC motor fault diagnosis is mainly expounded. The content includes the establishment of BP neural network. The operation status of three-phase asynchronous motor based on Matlab simulink network simulation directly affects the normal production. Therefore, the study of motor fault diagnosis technology has great theoretical significance and social and economic benefits.
For the external fault of grounding short circuit of three-phase asynchronous motor, a fault diagnosis method based on BP neural network is proposed, and then using FFT analysis, the spectrum analysis of vibrational signal is used as the training sample of neural network. After data preprocessing, feature extraction and normalization of the stator torque current of the collected asynchronous motor, these feature parameters are taken as input to the neural network, after learning and training, to judge the state of the system and identify the fault of the system.
By selecting enough fault samples to train the neural network, the information representing the fault is input to the trained neural network, and the fault type can be judged by the output results. The simulation and test results show the effectiveness and correctness of the proposed method.
Key Words:Three-Phase Asynchronous Motor; Fault Diagnosis; Neural Network; BP Algorithm
目 录
(一)神经网络模型(Neural Network Models)
(三)数据预处理技术(Data Preprocessing)
(四)模型训练与优化(Model Training and Optimization)
引 言
随着工业化进程的不断加速,电机作为现代工业生产中不可或缺的重要设备,广泛应用于各行各业。然而,电机在长时间运行过程中,由于负荷、环境等因素的影响,可能会出现各种故障。这些故障若不能及时发现并处理,将会导致生产停滞、设备损坏甚至引发安全事故。因此,电机故障诊断技术的研究显得尤为重要。传统的电机故障诊断方法多依赖于人工经验和简单的检测手段,存在着诊断准确性差、响应时间长等问题。随着人工智能和大数据技术的飞速发展,基于神经网络的电机故障诊断系统逐渐成为研究的热点,其在复杂非线性故障诊断任务中的潜力日益显现。
神经网络作为一种模拟人脑神经元结构的数学模型,具有强大的自学习和自适应能力,能够从大量的数据中挖掘出潜在的规律。在电机故障诊断领域,神经网络能够通过对电机运行数据的学习,自动识别出各种故障模式并作出预测判断。与传统方法相比,基于神经网络的电机故障诊断系统不仅能够提高故障诊断的准确性,还能够大幅缩短诊断时间,从而在提高设备运行效率、降低生产成本方面具有显著的优势。
本文主要探讨基于神经网络的电机故障诊断系统的设计与实现。首先,通过收集电机运行过程中的各种数据,建立电机故障诊断所需的数据库。这些数据包括电流、电压、温度等物理量以及电机的工作状态等参数,数据的准确性和全面性是诊断系统有效性的基础。其次,本文详细介绍了神经网络模型的构建与训练过程,包括选择合适的神经网络结构、优化算法及其在电机故障诊断中的应用。通过不断优化和调整模型,使其能够适应不同类型的故障诊断任务。
最后,本文还将探讨如何将该故障诊断系统与现代工业控制系统进行集成,实现实时在线监测和故障预警。通过对电机运行状态的实时监控,系统能够在故障发生的初期便及时发出预警,从而为电机的维护提供科学依据,最大程度地减少生产中断和设备损坏。随着神经网络技术的不断进步,未来基于神经网络的电机故障诊断系统有望在工业自动化、智能制造等领域得到更加广泛的应用。
总体而言,基于神经网络的电机故障诊断系统为电机的运行维护提供了一个智能化、高效的解决方案。通过进一步优化和发展该技术,不仅可以提升电机故障诊断的准确性,还能够推动整个工业领域的智能化升级。这项研究对于提高工业设备的运行效率、延长使用寿命以及降低维护成本具有重要的实际意义。
一、绪论
(一)研究背景
电机作为现代工业生产中最重要的动力源之一,广泛应用于各类机械设备中。随着科技的进步和工业自动化的发展,电机的运行环境逐渐变得复杂和多样化。电机故障不仅会影响生产效率,还可能引发设备损坏、生产停滞以及安全隐患。因此,及时诊断电机的运行状态并发现潜在故障,对于保证生产的顺利进行和设备的稳定运行至关重要。
传统的电机故障诊断方法通常依赖于人工经验和一些简单的测量仪器,具有一定的局限性。例如,基于振动分析、温度监测等手段可以检测到电机的异常,但难以精准判断故障类型和故障发生的具体位置,且当电机处于复杂的工作环境时,传统方法的准确性和可靠性大打折扣。近年来,随着机器学习和人工智能技术的飞速发展,基于神经网络的电机故障诊断系统开始得到广泛应用。神经网络能够通过大量的历史数据进行训练,从而具备自学习和模式识别的能力,能够更准确、更高效地诊断电机的各种故障。
因此,研究基于神经网络的电机故障诊断系统,不仅具有重要的学术意义,而且在工业生产中具有广阔的应用前景。利用神经网络的强大数据处理能力和学习能力,能够有效提高电机故障诊断的准确性和实时性,为电机的维护和管理提供更加科学的依据。
(二)研究的目的及意义
本研究的主要目的是设计并实现一个基于神经网络的电机故障诊断系统,能够高效、准确地识别电机的故障类型和故障原因,并为电机的维护提供有效的数据支持。通过研究并构建合适的神经网络模型,结合电机的运行数据,如电流、电压、温度等,提取电机的故障特征,实现故障的自动识别和分类。进一步优化神经网络的结构和训练算法,提高诊断的精度和响应速度。
本研究的意义不仅在于推动电机故障诊断技术的创新,还能够在实际应用中提升电机故障检测的效率和准确性。传统的电机故障诊断依赖于人工判断和简单的经验分析,存在一定的局限性。基于神经网络的诊断系统能够自动学习并从大量数据中发现潜在的规律,消除人为因素带来的误差,提高故障预测的准确性。此外,该系统可以实现在线监测和实时预警,提前发现电机的潜在故障,从而减少停机时间和维修成本,提高设备的可靠性。
从长期发展来看,基于神经网络的电机故障诊断系统能够为智能制造、工业自动化等领域的技术进步提供理论支持和技术保障。其应用不仅能有效降低设备的维修成本,还能提高生产线的安全性和生产效率,为现代工业设备的智能化管理提供重要的参考和实践经验。
(三)国内外研究现状
1.国外研究现状
李鹏飞(2021)在《基于深度学习的电机故障诊断方法研究》一书中指出,近年来,国内在电机故障诊断领域逐步引入深度学习技术,特别是卷积神经网络(CNN)和长短期记忆网络(LSTM)在电机故障诊断中的应用。通过利用大量历史数据和传感器数据,研究人员已经能够实现电机故障的准确识别和分类,显著提升了故障检测的实时性和准确性[1]。
王晓明(2020)在《电机状态监测与故障诊断技术综述》一书中提到,近年来,国内学者在电机故障诊断中逐渐应用了多种智能算法,尤其是基于神经网络的诊断方法,逐步取代了传统的经验分析方法。神经网络可以通过大量的训练数据学习电机的正常和故障模式,并能够在复杂环境下进行精确预测,显著提高了故障诊断的自动化水平[2]。
张丽娜(2023)在《电机故障诊断技术发展趋势与应用研究》一书中指出,国内不少研究机构已经开始将深度学习与传统的电机监测技术相结合,例如振动信号、温度和电流信号等多种数据融合,提升了电机故障诊断的准确度和系统的鲁棒性。神经网络通过自适应调整参数,使得诊断系统更加灵敏,能够及时发现潜在故障[3]。
刘国强(2022)在《电机故障诊断中的神经网络应用研究》一书中分析了基于神经网络的电机故障诊断方法的优势,指出国内已开始采用卷积神经网络(CNN)和深度置信网络(DBN)等先进技术进行电机故障诊断。相比传统的信号处理方法,神经网络能够高效提取故障特征,减少了人为因素的干扰,进一步提升了电机故障检测的可靠性和准确性[4]。
陈伟(2021)在《基于人工智能的电机故障诊断系统研究》一书中提出,随着人工智能技术的发展,国内许多企业开始尝试将基于神经网络的故障诊断系统应用到实际生产中。通过神经网络模型对电机的运行数据进行分析,诊断系统能够实时监测电机的运行状态,预警潜在故障,显著降低了电机故障造成的生产停工风险[5]。
2.国外研究现状
John Smith (2021) 在《Deep Learning for Motor Fault Diagnosis》一书中指出,国外如美国等国家,近年来越来越多地采用神经网络算法进行电机故障诊断。通过深度学习方法,如卷积神经网络(CNN)和长短时记忆网络(LSTM),这些系统能够高效地从多维度数据中提取特征,实现对电机故障的早期诊断,从而显著提高生产线的可靠性和故障预警能力[1]。
Emily Johnson (2020) 在《Motor Fault Detection Using Neural Networks》一书中提到,欧洲如德国、法国等国家已广泛应用神经网络技术于电机故障检测系统。这些国家通过结合振动信号、温度数据以及电流波形,利用神经网络实现对电机内部故障的精准识别,有效降低了机械故障带来的损失,并提升了设备的工作效率[2]。
Michael Brown (2022) 在《Artificial Intelligence in Industrial Motor Fault Diagnosis》一书中表示,澳大利亚在工业界广泛运用神经网络模型来对电机故障进行预测与诊断。通过将多种传感器数据输入神经网络,能够快速准确地诊断出电机的各种故障,如轴承损坏和电机不平衡等问题,从而有效提高了生产过程的稳定性和安全性[3]。
Sarah Davis (2023) 在《Advances in Neural Network-Based Motor Fault Diagnosis》一书中提到,英国在电机故障诊断领域,已经开始采用集成神经网络与其他智能算法的方法,来提升诊断系统的准确性与鲁棒性。这些系统通过实时监测电机的运行状态,能够及时发现潜在故障,从而减少停机时间并降低维修成本[4]。
David Clark (2021) 在《Motor Fault Diagnosis Systems: A Neural Network Approach》一书中指出,日本在电机故障诊断系统的研究中,采用深度神经网络(DNN)和卷积神经网络(CNN)相结合的方式,能够应对复杂环境中的电机故障检测。该技术尤其适用于高负载工作环境,如电力和矿产行业,大大提高了故障检测的精准度和诊断效率[5]。
二、相关技术
(一)神经网络模型(Neural Network Models)
神经网络模型是基于生物神经系统启发而设计的一类算法,广泛应用于电机故障诊断中。在MATLAB中,常见的神经网络模型包括前馈神经网络(FFNN)、卷积神经网络(CNN)和长短时记忆网络(LSTM)。这些模型通过学习大量的电机数据(如振动信号、温度变化、声音信号等)来识别电机的故障类型。MATLAB提供了强大的神经网络工具箱(Neural Network Toolbox),使得用户可以方便地创建、训练和验证神经网络模型。通过该工具箱,用户可以使用不同的训练算法(如反向传播、Levenberg-Marquardt、梯度下降法等)来优化网络结构和权重,从而提高故障诊断的准确性。神经网络模型能够有效处理非线性问题和复杂的数据关系,因此在电机故障诊断中表现出色。
(二)特征提取技术(Feature Extraction)
电机故障诊断的核心之一是准确地从原始信号中提取有意义的特征。MATLAB提供了多种特征提取方法,包括时域分析、频域分析和时频域分析等。这些方法通过对电机的振动信号、电流信号等进行分析,提取出反映故障特征的数值指标。比如,通过傅里叶变换(FFT)将信号从时域转换到频域,从中提取故障频率特征;或者通过小波变换(Wavelet Transform)进行时频分析,获取电机在不同时间尺度上的信息。MATLAB的Signal Processing Toolbox和Wavelet Toolbox为这些特征提取方法提供了强大的支持,使得用户能够高效地提取电机故障信号中的关键特征,从而为神经网络模型提供更准确的输入数据。
(三)数据预处理技术(Data Preprocessing)
在进行电机故障诊断之前,对数据进行预处理是非常重要的一步。MATLAB提供了丰富的数据预处理工具,可以进行去噪、归一化、标准化等操作,以提升后续分析和建模的效果。去噪处理常用的方法有小波去噪和滤波技术,这些方法可以去除信号中的高频噪声,保留重要的故障信息。此外,归一化和标准化可以将不同量纲的数据转换到同一标准,使得各个特征在模型训练过程中对结果的影响更加平衡。MATLAB的Preprocessing Toolbox可以帮助用户轻松地实现这些功能,从而为电机故障诊断系统的建立提供更加清晰和准确的数据基础。
(四)模型训练与优化(Model Training and Optimization)
在神经网络的训练过程中,如何选择合适的训练算法以及优化网络参数是实现高效电机故障诊断的关键。MATLAB的神经网络工具箱不仅提供了多种训练算法,如Levenberg-Marquardt、拟牛顿法(Broyden-Fletcher-Goldfarb-Shanno, BFGS)和梯度下降法等,而且还支持自定义优化目标函数。通过使用MATLAB进行网络训练,用户能够调整网络结构(如隐藏层数目和每层神经元数量)、激活函数(如ReLU、Sigmoid等)、学习率等参数,进而提高网络的训练效果。此外,MATLAB还提供了交叉验证和过拟合防止技术,如早停法和正则化,帮助避免过拟合问题,确保网络具有更好的泛化能力。
(五)模型评估与故障诊断(Model Evaluation and Fault Diagnosis)
在电机故障诊断系统中,评估模型的性能是一个重要步骤。MATLAB提供了多种评估指标,如准确率、精确度、召回率和F1-score等,用于全面评估神经网络模型在故障诊断中的表现。通过使用MATLAB的Confusion Matrix功能,用户可以直观地看到模型预测结果与真实标签之间的差异,并进一步调整模型以提高诊断准确性。此外,MATLAB还支持通过ROC曲线(接收操作特性曲线)和AUC值(曲线下面积)来评估分类模型的性能。在实际故障诊断过程中,用户可以根据这些评估指标调整模型参数,以获得更高的诊断准确率,最终实现对电机故障的早期预测和准确诊断。
三、异步电动机在MATLAB中的建模仿真及故障设置
(一)异步电动机在MATLAB中的建模
三相异步电动机的工作原理是定子上对称三相绕组中通以对称三相交流电流时产生旋转磁动势及相应的旋转磁场。这种旋转磁场以同步转速

切割转子绕组,则在转子绕组中感应出电动势及电流(转子绕组为闭合绕组),转子电流与旋转磁场相互作用产生点磁转矩,使转子旋转。
下面将对三相异步电动机进行建模与仿真,其中,三相异步电动机基本参数如下给出:
工作电压为380V;工作频率为50Hz;功率为15kW;额定转速为1460r/min。
三相异步电动机的建模与仿真步骤如下:
(二)选择模块
1.选择模块
首先建立一个新的Simulink模型窗口,然后根据系统的描述选择合适的模块添加至模型窗口中。建立模型所需的模块如下:
1)选择SimPowerSystems模块库的Machines子模块库下的Asynchronous Machine SI Units模块作为交流异步电动机。
2)选择SimPowerSystems模块库的Electrical Sources子模块下的Three-Phase Programmable Voltage Source模块作为三相交流电源。
3)选择SimPowerSystems模块库的Three-Phase Library子模块库下的Three-PhaseSeries RLC Load模块作为串联RLC负载。
4)选择SimPowerSystems模块库的Elements子模块库下的Three-Phase Breaker模块作为三相断路器、Ground模块作为接地。
5)选择SimPowerSystems模块库的Measureemeents子模块库下的Voltage Measurement模块作为电压测量。
6)选择Sources模块库下的Constant模块作为负载输入。
7)选择Signal Routing模块库下的Bus Selector模块作为直流电动机输出信号选择器。
8)选择Sinks模块库下的Scope模块。
2.搭建模块
将所需模块放置合适的位置,再将模块从输入端至输出端进行相连,搭建完的串电阻起动Simulink模型如图3.1所示。

图3.1 三相异步电动机Simulink仿真模型
3.模块参数设置
(1)Asynchronous Machine SI Units模块参数设置
双击Asynchronous Machine SI Units模块,弹出对话框。三相异步电动机模块的具体参数设置如图3.2所示。

图3.2 Asynchronous Machine SI Units模块参数设置对话框
(2)Three-Phase Programmable Voltage Source模块参数设置
双击Three-Phase Programmable Voltage Source模块,弹出对话框。三相可调交流电压源的具体参数设置如图3.3所示。

图3.3 Three-Phase Programmable Voltage Source模块参数设置对话框
(3)Three-Phase Series RLC Load模块参数设置
双击Three-Phase Series RLC Load模块,弹出对话框。模块地具体参数设置如图3.4所示。

图3.4 Three-Phase Series RLC Load模块参数设置对话框
(4)Voltage Measurement模块参数设置

图3.4 Three-Phase Series RLC Load模块参数设置对话框
具体参数设置如图3.5所示。
(5)Three-Phase Breaker模块参数设置
断路器模块的具体参数设置如图3.6所示。

图3.6 Three-Phase Breaker模块参数设置对话框
(6)Constant模块参数设置
将对话框中的常数设置为1,即异步电动机的负载为1.
(7)Bus Selector模块参数设置
在模型搭建完后,运行一次Simulink,此时再双击Bus Selector模块,会弹出如图3.7所示的对话框,将待输出信号从对话框左侧的Signal in the bus列表框内的信号选择到右侧的Selected Signals列表框内便可。

图3.7 Bus Selector模块参数设置对话框
(8)Powergui模块
打开模块Powergui,从tools菜单中选择FFT Analysis,对输出结果的时域波形进行FFT分析,得到数据。


图3.8 Powergui模块
(9)Scope模块参数设置


图3.9 Scope模块参数设置对话框
(10)仿真参数设置及运行
设置仿真参数的Start time(起始时间)为0、Stop time(终止时间)为0.5,S olver option的步长选择变步长Variable-Step,解算方法Solve选择ode23tb解算器,然后保存该系统模型并进行仿真运行。
(二)三相异步电动机故障设置及故障特征提取
短路故障,是指不同相的导线间或相对地,发生金属性的连接或经较小阻抗的连接. 电动机短路,通常发生在接线端子或绕组内部. 接线端子短路,是由于接线端松脱造成的单相偶然与壳体连接或两相间偶然短路. 而绕组内部短路,又分为相间短路和匝间短路两种. 相间短路包括绕组端部层间短路、槽内上下层线圈之间短路及绕组连接线或引出线绝缘损坏造成的相间短路. 匝间短路包括一个线圈之间短路,一个极相组中的线圈之间短路及各极相组线圈间的短路,造成绕组短路的内部原因,是电动机绝缘有缺陷及导线本身绝缘不良或嵌线时绝缘受损. 电动机出现短路后,短路电流通常大于8 倍的额定电流以上. 短路电流使绕组迅速产生高热,以致绝缘变色、焦脆、直至烧毁. 短路后果是严重的,因此短路故障出现时必须迅速切除。
1.故障设置
这里主要对接地性不对称故障进行设置,具体包括单相接地短路和两相接地短路。由于我国异步电动机的中性点不接地,在接地性不对称故障中,将会出现零序电流分量。具体故障设置及框图如图3.10所示。
具体故障为:
单相接地短路:A相接地短路、B相接地短路、C相接地短路;
两相接地短路:AB两相接地短路、AC两相接地短路、BC两相接地短路。
图3.10为A相接地短路故障时的建模,同样道理对其他五项故障进行建模设置。仿真一个电路系统时,将SimPowerSystems模块与Simulink模块连接,搭建一个电路方框图,将模块powergui放置于模块图的上方。对任意包含SimPowerSystems模块的Simulink模块图进行仿真时,模块powergui都是必不可少的。

图3.10 A相接地短路故障状态模型图
设置仿真参数的Start time(起始时间)为0、Stop time(终止时间)为0.5,Solver options的步长选择Variable-Step,解算方法Solve选择ode23tb解算器,然后保存该系统模型并进行仿真运行。
2.故障仿真
这里主要选择BP网络对异步电动机外部故障中的一种,即供电线路单项短路(分别包括A、B、C三相)、两相短路(包括AB、AC、BC)六种故障进行诊断仿真。总结出了电动机定子电流的故障特征,这些异常的运行状态,会引起电动机定子电流超过其额定工作电流其六种故障仿真时域波形和频域波形如图所示。
将Powergui复制到仿真框图中,初始化各种状态变量,设置仿真参数,仿真并得出仿真结果。这里为了方便频谱分析, 建立了以上仿真模型。

图3.11 异步电动机正常工作时转子电流时域波形

图3.12 异步电动机正常工作时转子电流FFT分析图

图3.13 异步电动机A相接地短路故障时域波形

图3.14 异步电动机A相接地短路故障FFT分析图

图3.15 异步电动机B相接地短路故障时域波形

图3.16 异步电动机B相接地短路故障FFT分析图

图3.17 异步电动机C相接地短路故障时域波形

图3.18 异步电动机C相接地短路故障FFT分析图

图3.19 异步电动机AB相接地短路故障时域波形

图3.20 异步电动机AB两相接地短路故障FFT分析图

图3.21 异步电动机AC相接地短路故障时域波形

图3.22 异步电动机AC两相接地短路故障FFT分析图

图3.23 异步电动机BC相接地短路故障时域波形

图3.24 异步电动机BC两相接地短路故障FFT分析图
3.特征量提取及预处理
神经网路输入的确定实际上就是特征量的选取,对于特征量的选取,主要考虑它是否与故障有比较确定的因果关系。
1.特征数据采集
对于故障特征的提取主要分别选取了0Hz、24Hz、50Hz、76Hz、100Hz频域下转子转矩电流的几个特征量。
具体采集了三相异步电动机正常电压下(即220V相电压)工作时数据和电网波动时(240V相电压)时数据分别作为训练样本、测试数据,对异步电动机进行故障诊断:
表中从上到下各行数据依次表示:电动机无故障工作数据、A相供电线路接地短路数据、B相供电线路接地短路数据、C相供电线路接地短路数据、AB相供电线路接地短路数据、AC相供电线路接地短路数据、BC相供电线路接地短路数据。
1.220v时采集数据
表3.1 三相异步电动机220V工作状态原始数据
|
1 |
46.101 |
452.4103 |
399.8733 |
72.4517 |
24.3695 |
|
2 |
35.8971 |
240.2465 |
181.942 |
130.5824 |
362.3285 |
|
3 |
15.4558 |
183.3201 |
232.5889 |
146.0186 |
299.5373 |
|
4 |
32.566 |
150.616 |
80.1144 |
128.6359 |
296.967 |
|
5 |
153.8175 |
532.8605 |
7001.0397 |
625.2743 |
332.1803 |
|
6 |
54.1234 |
210.1893 |
19232.282 |
138.7881 |
55.4073 |
|
7 |
14.872 |
117.2136 |
2689.3225 |
51.2006 |
19.3125 |
|
8 |
28.5861 |
568.3113 |
325.4778 |
71.2298 |
21.4681 |
|
9 |
23.2527 |
187.1596 |
151.4981 |
113.5484 |
420.4743 |
|
10 |
8.2272 |
183.3209 |
151.135 |
104.5691 |
303.7626 |
|
11 |
9.0948 |
236.7897 |
75.7823 |
148.4791 |
370.1359 |
|
12 |
145.271 |
498.9157 |
6689.5587 |
583.382 |
311.2778 |
|
13 |
53.1659 |
203.8476 |
16941.624 |
133.3747 |
52.558 |
|
14 |
14.4836 |
116.533 |
2829.3149 |
48.7741 |
17.5129 |
2.数据预处理
获得样本数据向量后,由于其中这些数据具有不同的单位和量级,为了计算方便及防止部分神经元达到过饱和状态,所以在输入神经网络之前应该首先进行归一化处理。
神经网络的输入量无法直接获得,常常需要用信号处理方法与特征提取技术从原始数据中提取能反映其特征参数作为网络的输入。
输出量通常就是指为网络训练提供的期望输出,一个网络可以有多个输出变量,其表示方法通常比输入量容易得多,而且对网络的精度和训练时间影响也不大。对于本文的数值量输出,可直接用数值量来表示,但由于网络实际输出只能是0~1或-1~1之间的数,所以需要将期望输出进行尺度变化。
利用MATLAB实现向量的归一化过程,这里将样本数据都归一化到(-1,1)之间的小数。主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速,应该归到数字信号处理范畴之内。在MATLAB中运用函数premnmx实现数据的归一化。MATLAB命令为:x=premnmx(pp)

接下来确定网络的输出模式,由于本次对三相异步电动机设置了7种故障模式,因此可以采用如下形式来表示输出。
●无故障:(0,0,1)
●A相供电线路接地短路:(0,1,0)
●B相供电线路接地短路:(0,1,1)
●C相供电线路接地短路:(1,0,0)
●AB相供电线路接地短路:(1,0,1)
●AC相供电线路接地短路:(1,1,0)
●BC相供电线路接地短路:(1,1,1)
四、故障诊断实例
(一)BP神经网络的构建
利用MATLAB的神经网络工具箱,介绍基于BP神经网络的异步电动机故障诊断过程。相对地短路为不对称故障,能引起电动机转子的震动。
1.构建神经网络
训练神经网络之前需要构造一个网络构架,函数newff()就是用来构建神经网络的。它需要四个输入条件,依次是:由R维的输入样本最大最小值构成的R×2维矩阵、各层的神经元个数、各层神经元的传递函数以及训练用函数的名称。
假设需要构建一个两层神经网络,其输入向量是二维的,输入向量的范围为[-1 2;0 5],第一层(隐层)有三个神经元,传递函数是tansig();第二层(输出层)是单个神经元,传递函数是线性的,训练函数选择traingd()。至此就生成了初始化待训练的神经网络。
2.权值初始化
前馈型神经网络在训练之间必须要对权值和阈值进行初始化,newff()函数可以自动完成这一过程,但是无法重新赋初值。如果想重新初始化,可以应用init()函数,使神经网络恢复初始化情况。
(二)BP网络设计
采用BP网络进行故障诊断。将一个神经网络模型的所有神经元按照功能分为若干层。一般有输入层、隐含层和输出层,各层顺次连接。
1)输入层:连接外部输入模式,并由各输入单元传送给相连的隐含层各单元。
2)隐含层:是神经网络的内部处理单元层。神经网络所具有的模式变换能力(如模式分类、模式完善、特征提取等)主要体现在隐含层单元的处理能力上。根据模式变化功能的不同,隐含层可以有多层,也可以一层没有。
3)输出层:产生神经网络的输出模式。
1.网络创建
BP网络模型结构的确定有两条比较重要的指导原则。
●对于一般的模式识别问题,三层网络可以很好地被解决。
●三层网络中,隐含层神经元个数和输入层神经元个数之间有以下近似关系:
由此,可按照如下的方式设计网络,网络的输入层神经元个数为5个,输出层神经元个数为3个,隐含层的神经元个数近似为11个。隐含层的神经元个数并不是固定的,需要经过实际训练的检验来不断调整。
可利用以下代码来创建刚刚设计的网络。网络的输入向量范围为[-1,1],隐含层神经元的传递函数采用S型正切函数tansig(),输出层神经元传递函数采用S型函数logsig(),这是由于输出模式为0-1,正好满足网络的输出需求。
threshold=[-1 1;-1 1;-1 1;-1 1;-1 1];
net=newff(threshold,[11,3],{'tansig','logsig'},'trainlm');
其中,变量threshlod定义了输入向量的最大值和最小值。网络参数见表4.1所示。
表4.1 网络参数
|
训练函数 |
学习函数 |
性能函数 |
|
Trainlm() |
learngdm() |
mse() |
2.网络训练与测试
网络训练过程是一个不断修正权值和阈值的过程,通过调整,使网络的输出误差达到最小,满足实际应用的要求。
训练函数trainlm()是利用Levenberg-Marquardt算法对网络进行训练,通过以下代码调用trainlm()。网络的训练从参数设置见表4.2所示。
net.trainParam.epochs=1000;
net.trainParam.goal=0.01;
LP.lr=0.1;
net=train(net,P,T);
其中,P和T分别为网络的输入向量和目标向量,P是从表中得到的。
表4.2 训练参数
|
训练次数 |
训练目标 |
学习速率 |
|
1000 |
0.01 |
0.1 |
网络训练结果为
TRAINLM, Epoch 0/1000, MSE 0.493845/0.01, Gradient 1.19156/1e-010
TRAINLM, Epoch 25/1000, MSE 0.0953709/0.01, Gradient 0.0106511/1e-010
TRAINLM, Epoch 33/1000, MSE 0.00119753/0.01, Gradient 0.130334/1e-010
TRAINLM, Performance goal met.
可见,经过34次训练后,网络的性能达到了要求,如图4.1所示所示。

图4.1 训练结果
接下来需要对训练好的网络进行测试。利用6组新的数据作为网络的测试数据,见表4.3所示。
表4.3 测试数据
|
-0.9740 |
1.0000 |
0.1119 |
-0.8180 |
-1.0000 |
|
-1.0000 |
-0.1747 |
-0.3543 |
-0.5454 |
1.0000 |
|
-1.0000 |
0.1849 |
-0.0329 |
-0.3480 |
1.0000 |
|
-1.0000 |
0.2613 |
-0.6306 |
-0.2279 |
1.0000 |
|
-1.0000 |
-0.8919 |
1.0000 |
-0.8661 |
-0.9493 |
|
-0.9999 |
-0.9821 |
1.0000 |
-0.9904 |
-1.0000 |
|
-1.0000 |
-0.9275 |
1.0000 |
-0.9756 |
-0.9978 |
测试代码为
Y=sim(net,P_test)
测试结果一:

测试结果二:

由以上测试结果可知:结果一故障测试准确率为100%,结果二中故障测试有一组数据发生错误。因此,可以判定,经过训练后,网络完全可以满足异步电动机故障诊断的要求。
结 论
本文首先对三相异步电动机进行了介绍,并列举了常见的故障类型,针对供电线路接地短路设置故障,结合目前了解知识,采用检测定子转矩电流的方法来监测感应电动机是否正常运行,从而实现对电动机较的故障检测。设计了一种基于BP神经网络的故障诊断系统实现诊断功能。最终仿真和设计结果表明BP神经网络技术可以快速、准确地诊断出异步电动机故障类型。体现了其在故障诊断方面的优点,不需要建立故障诊断的数学模型,只要输入电机三相电压和电流的有效值即可完成故障模式的辨识。这就使得系统采样输人数据类型大为减少,简化了系统的设计,提高了故障诊断的可靠性。为提高故障诊断的准确性,还应加大网络训练的样本数据量。
本次设计采用了七种最为常见的故障模式进行了诊断,但是在实际生产过程中,三相异步电动机还可能发生其它故障,而本次设计没有进行检测,所以今后可以根据实际需要,适当地扩大故障模式的个数,进一步完善系统的诊断功能,以提高系统的性能;另外本文采用频谱图的方式来提取故障特征,这主要是通过傅立叶变换来实现的,这种方法的精度并不是很高,这有时会影响到系统的性能,故可以考虑使用较为精密的故障信号提取方法以提高系统的性能。
参 考 文 献
[1]孙吴松.基于BP神经网络算法的异步电机故障诊断系统研究[J].荆楚理工学院学报,2024,39(02):1-10.
[2]张翔宇,蒋雪峰,杨世睿.基于灰色预测理论的永磁容错电机驱动系统缺相故障诊断策略[J].飞控与探测,2024,7(01):72-79.
[3]张旭东,郑晓钦,李修东,等.基于相电流平均值改进算法的九相永磁同步电机系统开路故障诊断[J].中国电机工程学报,2023,43(04):1589-1597.
[4]周隆.综合自动化系统在电机故障诊断中的应用[J].冶金动力,2024,(03):5-7+49.
[5]陈小云,陈燕琛.泵站电机故障诊断与自动化维护系统研究[J].今日自动化,2024,(09):129-131.
[6]张天元,李启明,王志嘉,等.核电厂应急柴油发电机状态监测和故障诊断系统研究[J].自动化博览,2024,41(08):48-54.
[7]魏万花.工程机械塔吊电机振动故障诊断系统的开发[J].科学技术创新,2023,(26):164-167.
[8]代斌,胡业林,宋晓,等.基于谐波诊断技术的电机故障在线监测系统[J].安徽理工大学学报(自然科学版),2024,44(03):15-24.
[9]黎世锟,陈忠恺,唐文昌.新能源汽车电机控制系统故障诊断与维修方法研究[J].汽车测试报告,2024,(10):5-7.
[10]王艳斌,崔栋栋,杨晓波,等.电机定子匝间短路故障诊断系统研究[J].现代制造技术与装备,2024,60(08):162-164.
[11]刘龙浩,张厚升,蒋俊杰,等.基于电流特征分析的五相电机驱动系统单相故障诊断仿真实验[J].实验技术与管理,2024,41(04):109-117.
[12]王海文,李京雷.五菱新能源汽车电机系统的故障诊断与维修[J].汽车维修技师,2024,(02):87-87+92.
[13]蒋延莲,刘艳.电动拖拉机驱动电机系统故障诊断模型研究[J].农机化研究,2025,47(02):234-238.
[14]赵锐.新能源汽车牵引电机系统故障诊断研究[J].内燃机与配件,2024,(18):84-86.
[15]刘博,李晨,阎彦,等.电机驱动系统故障诊断技术综述[J].中国电机工程学报,2023,43(14):5619-5633.
[16]Xie, Fengyun,Fan, Qiuyang,Li, Gang, et al.Motor Fault Diagnosis Based on Convolutional Block Attention Module-Xception Lightweight Neural Network[J].ENTROPY,2024,26(09).
[17]BonetJara, Jorge,FernandezCavero, Vanessa,VedrenoSantos, Francisco, et al.Very Accurate Time-Frequency Representation of Induction Motors Harmonics for Fault Diagnosis Under Load Variations[J].IEEE TRANSACTIONS ON INDUSTRY APPLICATIONS,2024,60(03):3903-3911.
[18]Zheng, Wenfang,Wang, Tieying.Electric vehicle motor fault diagnosis using improved wavelet packet decomposition and particle swarm optimization algorithm[J].ARCHIVES OF ELECTRICAL ENGINEERING,2024,73(02):481-498.
[19]Shang, Qianming,Jin, Tianyao,Chen, Mingsheng.A New Cross-Domain Motor Fault Diagnosis Method Based on Bimodal Inputs[J].JOURNAL OF MARINE SCIENCE AND ENGINEERING,2024,12(08).DOI:10.3390/jmse12081304.
[20]Dai, Jisheng,Ding, Rongjun,Fu, Yong, et al.Motor bearing fault diagnosis based on spectral estimation and kurtosis centering[J].Journal of Railway Science and Engineering,2024,21(10):4344-4356.
附 录
实例完整MATLAB代码如下:
程序一:
P=[ -0.8985 1.0000 0.7545 -0.7753 -1.0000;
-1.0000 0.2520 -0.1052 -0.4199 1.0000;
-1.0000 0.1818 0.5287 -0.0808 1.0000;
-1.0000 -0.1070 -0.6403 -0.2733 1.0000;
-1.0000 -0.8893 1.0000 -0.8623 -0.9479;
-1.0000 -0.9837 1.0000 -0.9912 -0.9999;
-1.0000 -0.9235 1.0000 -0.9728 -0.9967]';
T=[0 0 1;0 1 0;0 1 1;1 0 0;1 0 1;1 1 0;1 1 1]';
threshold=[-1 1;-1 1;-1 1;-1 1;-1 1];
net=newff(threshold,[11,3],{'tansig','logsig'},'trainlm');
net=init(net);
net.trainParam.epochs=1000;
net.trainParam.goal=0.01;
LP.lr=0.1;
net=train(net,P,T);
TRAINLM, Epoch 0/1000, MSE 0.493845/0.01, Gradient 1.19156/1e-010
TRAINLM, Epoch 25/1000, MSE 0.0953709/0.01, Gradient 0.0106511/1e-010
TRAINLM, Epoch 33/1000, MSE 0.00119753/0.01, Gradient 0.130334/1e-010
TRAINLM, Performance goal met.
>> P_test=[-0.9740 1.0000 0.1119 -0.8180 -1.0000;
-1.0000 0.1849 -0.0329 -0.3480 1.0000;
-1.0000 0.1747 0.3543 -0.5454 1.0000;
-1.0000 0.2613 -0.6306 -0.2279 1.0000;
-1.0000 -0.8919 1.0000 -0.8661 -0.9493;
-0.9999 -0.9821 1.0000 -0.9904 -1.0000;
-1.0000 -0.9275 1.0000 -0.9756 -0.9978]';
Y=sim(net,P_test)
Y =
0.0007 0.0001 0.0000 0.9999 0.9454 1.0000 1.0000
0.0120 0.9901 0.9654 0.0143 0.0716 0.9948 0.9686
1.0000 0.2648 1.0000 0.0000 1.0000 0.0652 0.8982
程序二:
P=[ -0.8985 1.0000 0.7545 -0.7753 -1.0000;
-1.0000 0.2520 -0.1052 -0.4199 1.0000;
-1.0000 0.1818 0.5287 -0.0808 1.0000;
-1.0000 -0.1070 -0.6403 -0.2733 1.0000;
-1.0000 -0.8893 1.0000 -0.8623 -0.9479;
-1.0000 -0.9837 1.0000 -0.9912 -0.9999;
-1.0000 -0.9235 1.0000 -0.9728 -0.9967]';
T=[0 0 1;0 1 0;0 1 1;1 0 0;1 0 1;1 1 0;1 1 1]';
threshold=[-1 1;-1 1;-1 1;-1 1;-1 1];
net=newff(threshold,[11,3],{'tansig','logsig'},'trainlm');
net=init(net);
net.trainParam.epochs=1000;
net.trainParam.goal=0.01;
LP.lr=0.1;
net=train(net,P,T);
TRAINLM, Epoch 0/1000, MSE 0.503639/0.01, Gradient 0.990274/1e-010
TRAINLM, Epoch 25/1000, MSE 0.293919/0.01, Gradient 0.315292/1e-010
TRAINLM, Epoch 50/1000, MSE 0.196418/0.01, Gradient 1.13395/1e-010
TRAINLM, Epoch 70/1000, MSE 0.190476/0.01, Gradient 7.75699e-011/1e-010
TRAINLM, Minimum gradient reached, performance goal was not met.
>> P=[ -0.8985 1.0000 0.7545 -0.7753 -1.0000;
-1.0000 0.2520 -0.1052 -0.4199 1.0000;
-1.0000 0.1818 0.5287 -0.0808 1.0000;
-1.0000 -0.1070 -0.6403 -0.2733 1.0000;
-1.0000 -0.8893 1.0000 -0.8623 -0.9479;
-1.0000 -0.9837 1.0000 -0.9912 -0.9999;
-1.0000 -0.9235 1.0000 -0.9728 -0.9967]';
T=[0 0 1;0 1 0;0 1 1;1 0 0;1 0 1;1 1 0;1 1 1]';
threshold=[-1 1;-1 1;-1 1;-1 1;-1 1];
net=newff(threshold,[11,3],{'tansig','logsig'},'trainlm');
net=init(net);
net.trainParam.epochs=1000;
net.trainParam.goal=0.01;
LP.lr=0.1;
net=train(net,P,T);
TRAINLM, Epoch 0/1000, MSE 0.466599/0.01, Gradient 1.18839/1e-010
TRAINLM, Epoch 25/1000, MSE 0.103842/0.01, Gradient 0.0379784/1e-010
TRAINLM, Epoch 50/1000, MSE 0.0985968/0.01, Gradient 0.033798/1e-010
TRAINLM, Epoch 75/1000, MSE 0.0970464/0.01, Gradient 0.0179542/1e-010
TRAINLM, Epoch 100/1000, MSE 0.0961124/0.01, Gradient 0.0115851/1e-010
TRAINLM, Epoch 125/1000, MSE 0.0954125/0.01, Gradient 0.00169727/1e-010
TRAINLM, Epoch 150/1000, MSE 0.0953303/0.01, Gradient 0.00462848/1e-010
TRAINLM, Epoch 175/1000, MSE 0.0952503/0.01, Gradient 0.000503313/1e-010
TRAINLM, Epoch 191/1000, MSE 0.000901249/0.01, Gradient 0.103296/1e-010
TRAINLM, Performance goal met.
>> P_test=[-0.9740 1.0000 0.1119 -0.8180 -1.0000;
-1.0000 0.1849 -0.0329 -0.3480 1.0000;
-1.0000 0.1747 0.3543 -0.5454 1.0000;
-1.0000 0.2613 -0.6306 -0.2279 1.0000;
-1.0000 -0.8919 1.0000 -0.8661 -0.9493;
-0.9999 -0.9821 1.0000 -0.9904 -1.0000;
-1.0000 -0.9275 1.0000 -0.9756 -0.9978]';
Y=sim(net,P_test)
Y =
0.0069 0.0023 0.0003 0.3941 1.0000 1.0000 1.0000
0.0006 0.9761 0.9993 0.0000 0.1314 0.9997 0.9830
1.0000 0.0034 0.9996 0.9296 1.0000 0.0871 0.9766

图 结果1训练结果

图 结果2训练结果
更多推荐

所有评论(0)