博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。
✅ 如需沟通交流,扫描文章底部二维码。


(1)基于AMESim仿真平台的液压系统故障样本数据库构建

四柱压力机液压系统在长期工业生产过程中真实故障样本的采集面临诸多困难,故障发生频率较低且部分故障一旦出现即会引发停机维修,导致可用于模型训练的故障数据严重不足。为解决数据稀缺问题,本研究以YT32-50型四柱压力机液压系统作为研究对象,在深入分析其工作原理与典型故障机理的基础上,利用AMESim专业仿真软件构建了一个高保真度的液压系统数字孪生模型。模型按照实际系统结构搭建了油泵、溢流阀、换向阀、单向阀、油缸以及管路等关键元件的精细化仿真模型,并通过实测数据对仿真参数进行了多轮校准,使得仿真信号与真实信号在压力波动、流量变化等关键指标上保持高度吻合。在校准好的仿真模型上,我们系统地注入了内泄漏增大、阀芯卡滞、油液污染、密封件失效等十余种典型故障类型,通过改变故障严重程度、运行工况以及外部负载等参数,生成了一个涵盖多类型、多等级、多工况的故障样本数据库。所构建的样本库为后续深度诊断模型的训练提供了充足的数据支撑,有效弥补了真实工业现场故障数据匮乏的不足。

(2)面向多源时序压力信号的注意力增强深度网络架构

四柱压力机液压系统在工作循环过程中会产生包括泵口压力、缸前腔压力、缸后腔压力以及流量等多个通道的时序监测信号,这些信号在故障发生时往往呈现出不同的响应模式,如何有效融合多源时序信息以挖掘隐藏的故障特征成为深度诊断的关键挑战。本研究构建了一种注意力增强的深度时序网络,其核心由三个相互协同的模块组成。第一个模块是多尺度时间卷积主干,通过堆叠的扩张卷积块在不同感受野上同时捕捉信号的瞬态冲击与缓变趋势,扩张系数的逐层递增使得网络能够在保持参数规模可控的前提下感知到更长的时序依赖关系。第二个模块是通道注意力子网络,它对各个监测通道的特征图进行全局池化后通过两层全连接计算注意力权重,使得诊断模型能够依据当前故障类型自适应地强调最相关的信号通道。第三个模块是时间注意力子网络,它沿着时间轴对每一帧特征计算重要性分数,引导模型聚焦于故障特征最为显著的时间片段。三个模块通过端到端方式联合训练,显著提升了模型对多源时序信号的特征提取效率。

(3)仿真到真实迁移的诊断模型领域适配机制

尽管AMESim仿真模型能够生成大量带有精确标签的故障样本,但仿真信号与真实工况下的实测信号之间仍然存在着不可忽视的分布差异,直接将仿真域训练好的模型部署到真实压力机会出现明显的诊断性能衰减。为弥合仿真与真实之间的领域间隙,本研究设计了一种渐进式领域适配机制。在适配过程的第一阶段,模型首先在仿真域上进行充分的预训练,通过大量带标签样本学习液压系统故障的基本判别规律。在第二阶段,我们引入对抗式领域判别器,该判别器试图区分输入特征是来自仿真域还是真实域,而特征提取器则通过梯度反转层学习生成域不变的特征表示。在第三阶段,模型利用真实域少量带标签样本以及大量无标签样本进行半监督微调,通过伪标签自训练机制逐步将模型决策边界向真实数据流形对齐。这种从全监督到对抗适配再到半监督微调的渐进式策略,使得最终诊断模型在真实四柱压力机液压系统上的故障识别准确率达到工程应用要求,同时保持了对未见过故障类型的合理鲁棒性。

import torch
import torch.nn as nn
import torch.nn.functional as F
from torch.autograd import Function

# 扩张卷积块:捕获不同尺度时序依赖
class DilatedConvBlock(nn.Module):
    def __init__(self, c_in, c_out, dilation):
        super().__init__()
        self.conv = nn.Conv1d(c_in, c_out, 3, padding=dilation, dilation=dilation)
        self.bn = nn.BatchNorm1d(c_out)

    def forward(self, x):
        return F.relu(self.bn(self.conv(x)))

# 通道注意力:自适应强调相关传感器通道
class ChannelAttention(nn.Module):
    def __init__(self, c, r=4):
        super().__init__()
        self.fc = nn.Sequential(
            nn.Linear(c, c//r), nn.ReLU(),
            nn.Linear(c//r, c), nn.Sigmoid())

    def forward(self, x):                              # x: (B, C, T)
        w = self.fc(x.mean(dim=2))                    # 全局池化 → 注意力
        return x * w.unsqueeze(-1)

# 时间注意力:聚焦故障显著时间片段
class TemporalAttention(nn.Module):
    def __init__(self, c):
        super().__init__()
        self.proj = nn.Conv1d(c, 1, 1)

    def forward(self, x):
        attn = torch.softmax(self.proj(x), dim=2)
        return x * attn

# 梯度反转层:用于对抗式领域适配
class GRL(Function):
    @staticmethod
    def forward(ctx, x, alpha):
        ctx.alpha = alpha
        return x.view_as(x)
    @staticmethod
    def backward(ctx, grad):
        return -ctx.alpha * grad, None

# 完整诊断网络:仿真→真实跨域适配
class HydraulicFaultNet(nn.Module):
    def __init__(self, n_ch=4, n_class=10):
        super().__init__()
        self.backbone = nn.Sequential(
            DilatedConvBlock(n_ch, 32, 1),
            DilatedConvBlock(32, 64, 2),
            DilatedConvBlock(64, 128, 4),
            ChannelAttention(128),
            TemporalAttention(128),
            nn.AdaptiveAvgPool1d(1))
        self.classifier = nn.Linear(128, n_class)
        self.domain_disc = nn.Sequential(              # 领域判别器
            nn.Linear(128, 64), nn.ReLU(),
            nn.Linear(64, 2))

    def forward(self, x, alpha=1.0):
        f = self.backbone(x).squeeze(-1)
        cls = self.classifier(f)
        # 通过梯度反转:特征提取器学习域不变特征
        dom = self.domain_disc(GRL.apply(f, alpha))
        return cls, dom


如有问题,可以直接沟通

👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇 

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐