数字孪生+人工智能和ML预测维护

Ashwini Kumar Sinha

583

重型发动机、发动机和机器对工厂、车辆和其他各种设备的运转至关重要。他们的高效工作对于防止任何技术上的干扰是非常重要的。例如,如果一艘游艇或一艘轮船上的重型发动机突然停止工作,那么运输就会被困在海洋中央,使船上许多人的生命处于危险之中。然而,早期的故障检测可以防止这种事故的发生。

当像马达这样的机器开始变小时,它们的噪音和功率消耗会随着振动的变化而增加。通过了解这些微小的变化,我们可以预测不同机器发生故障的可能性,从而在其他故障发生之前对其进行维修、维护和保护。

因此,为了解决上述问题,我们将开发一个ML模型,监测机器产生的声音和振动,检测微小的变化,并预测故障,进行预测性维护。在一段时间内,ML模型将学习机器在正常和故障情况下产生的声音差异。通过处理结果,它将推断更改是否表明有任何故障。如果是,则会提前发出警报,以便采取必要的措施防止任何损害。

材料清单

注意:您可以用任何蓝牙或USB麦克风替换语音帽。

毫升模型训练

你可以选择不同的平台,如TensorFlow, SensiML, Edge Impulse等来创建一个ML模型。这里,我使用Edge Impulse来训练ML模型。要学习如何创建ML模型并对其进行训练,请参考以下文章:基于x射线Covid检测

训练ML模型,利用音频信号检测声音和振动中的任何微小变化。为此,在Raspberry Pi上安装EDGE Impulse依赖项(请参阅上面的文章以了解安装过程)。

执行如下命令安装依赖项

curl - sl https://deb.nodesource.com/setup_12.x | sudo bash -

Sudo apt install -y GCC g++ make build-essential nodejs sox gstreamamer1.0 -tools gstreamamer1.0 -plugins-good gstreamamer1.0 -plugins-base

安装NPM -g -unsafe-perm

接下来,创建一个新项目,并使用EDGE Impulse连接树莓派项目

Edge-impulse-linux

我将这个项目命名为“数字孪生和物联网预测性维护”。但是,您可以给它取您所选择的任何其他名称。

现在打开在Linux终端或web浏览器中接收到的URL。然后,您将看到上传数据以训练ML模型的选项。选择“麦克风”选项并上传电机的音频。注明“正常”或“有缺陷”,视乎情况而定。在“正常”的标签下,我上传了一个运转正常的马达的声音。对于“缺陷”的标签,我上传了一个发动机的音频,没有适当的油和运行在超载的条件。记录电机在低、高电压和轴吸状态下的音频。

接下来,选择ML模型的参数、处理和学习块进行音频分类和处理。我选择了Spectrogram用于音频处理,神经网络Keras用于ML学习。

在“声谱图”中,从收集的音频数据中选择要设置为有缺陷的机器声音参数的部分。

接下来,进入神经网络分类器并添加参数层来训练ML模型。

无花果
无花果
无花果
无花果
无花果

部署毫升模型

在对ML模型的正确率满意之后(我得到的正确率约为90%),就可以考虑部署它了,为此必须根据部署的地点选择合适的微控制器。

选择一个Linux单板,在Raspberry上打开Linux终端,通过运行命令下载ML模型文件

edge-impulse-linux-runner下载modelfile.eim

在终端。

vb
vn

编码

在开始编码之前,在树莓派上安装依赖项和Edge Impulse库。同时,确保复制Edge Impulse SDK。

要完成上述操作,请在终端中运行以下命令

Sudo apt-get安装libatlas-base-dev libportaudio0 libportaudio2 libportaudiocpp0 portaudio19-dev

Pip3安装edge_impulse_linux -ihttps://pypi.python.org/simple

pip3安装edge_impulse_linux

git克隆https://github.com/edgeimpulse/linux-sdk-python

现在,打开Edge Impulse克隆的Python SDK文件夹。转到示例,打开audio文件夹并创建一个新的Python脚本文件,文件名由您选择(这里我将其命名为DigitalTwinpredict.py)。

接下来,打开classiy .py Python文件(存在于同一个SDK文件夹中),并将classiy .py的代码复制到DigitalTwinpredict.py中(在您的情况下文件名不同)。现在在这里导入AIY引脚和使用AIY语音帽的其他功能。

在那之后,使用如果条件为声音标签设置分数,即正常或有缺陷。如果ML模型处理声音时检测到的分数大于70%,那么在代码中设置一个函数,该函数使用LED照明发送警报,并表示电机正在接近故障。

fxgf
vn

测试

然后,将.eim文件中的模型文件复制到代码所在的文件夹中。然后打开终端,在Python中运行代码,并指定.eim ML模型文件的路径。现在听音频样本。如果你有多个音频输入设备,它可能会问你音频端口号。对于这种情况,选择为系统默认,然后运行电机声音,这可能有一些变化,表明可能的故障。

我创建的模型处理了发动机在正常情况下运行的各种声音,没有润滑剂和摩擦轴,当它超载等。因此,只要ML检测到类似于过载电机发出的声音,或者当轴遇到摩擦时,声音发生变化,就会发出警报,说明可能需要在未来进行维修。

gcgh
bvnbv

下载ML模型数据集和代码

分享你的想法和评论

请输入您的评论!
请在这里输入你的名字