数字孪生(预测性维护)
数字工厂工作台左侧“专业软件 → 数字孪生”。卖出去的每一台 WQR-105 减速器在这里都有一个“分身”:它的出厂数据(工单、输出轴序列号和检测值、设计版本、跑合记录)、持续收到的现场运行数据(转矩、转速、油温、振动),和前几轮已经有的寿命模型(轴承 L10、输出轴疲劳、热平衡油温、润滑油)。平台用它们算“用掉了多少、还剩多少、哪里快坏了、该做什么”,报警、开维修单进 ERPNext,并把整个机队的实际载荷反馈给设计。
配套实验:实验 13 减速器数字孪生与预测性维护,页面右上角可下载指导书和报告模板(Word),课程接口里也有链接。
一、孪生从哪来
- 出厂建档:跑合试验台做完一台 WQR-105(发出转矩记录)就建孪生;装配用的输出轴按先进先出分配一根检验合格的 SH-301,记下它的 6 项检测值;设计版本取当时输出轴的现行参数。3 个现场日后(运输、安装)开始在客户处运行,三类客户轮流分配。
- 情景设备:教学模式第一次启动(或重置实验 7 情景)时,已有 12 台在三类客户处运行 3–30 个月的设备,其中矿山一台轴承正在损坏、港口一台散热变差、港口一台换油过期。
- 真设备:没建档的序列号发来数据也收,自动建一个“现场接入”的档(见第六节)。
二、现场数据
现场的采集器每个现场日上报一条“运行摘要”(总线消息 twin.telemetry,主题 wq/gearbox/field/<序列号>/telemetry):运行小时、起动次数、输入转速、平均 / 最大转矩、转矩雨流计数、转矩—小时分布、环境温度、平均 / 最高油温、振动烈度。
教学模式下客户现场是模拟的:三类客户(矿山皮带机、港口输送、食品厂包装线)按各自的工况生成数据,同一台同一天每次一样。现场时钟默认 1 分钟 = 1 个现场日;30 分钟没人看“数字孪生”页会自动停,有人打开就从停的地方接着走。
三、看一台
左边是机队:红(严重)、黄(警告)、绿(正常),可按客户筛选、按健康度 / 剩余寿命排序。点一台,右边是它的分身:
- 报警:标题、数据说明、原因与依据、建议,以及“开维修单”按钮。
- 三维健康图:按真实尺寸画的三根轴、四个齿轮(分度圆)、六个轴承、箱体;轴承按已用寿命着色(振动报警的那个标红),输出轴按疲劳着色,箱体按油温残差和换油着色。鼠标停上去看数。
- 五张卡片:最先到期的轴承(已用 L10、约剩多久)、输出轴疲劳、换油、油温实测 − 模型、振动烈度(ISO 10816-1 分区)。
- 曲线(最近 30 / 90 / 365 天):油温实测、热平衡模型、环境温度;振动(带 A–D 分区底色);转矩平均 / 最大(额定线)。
- 六个轴承表:型号、C、额定工况下的径向力和 L10、已用、约剩。
- 假如:负载 50–130%、轴端加风扇(散热系数 17.45 → 31)、输出轴换 40Cr → 最先到期的轴承、输出轴、换油间隔、平均油温,现在 vs 假如(按最近 30 个现场日的实测工况重算)。
- 出厂数据、维修与报警记录。
- 请 AI 说说这台怎么了:用到模型时次数计入每人每小时的 AI 上限;没配模型时用规则写。
四、报警规则
| 报警 | 条件 | 说明 |
|---|---|---|
| 散热变差 | 油温比热平衡模型高(平滑后)> 6 ℃ 警告、> 12 ℃ 严重 | 振动正常 → 风扇、积灰、通风、油少;振动也在上升 → 先查轴承 |
| 油温高(工况) | 最高油温 > 90 ℃ 但和模型一致 | 不是故障,建议加风扇或降载 |
| 轴承早期损坏 | 振动 ≥ 1.8 mm/s(C 区)且最近 7 天在上升;≥ 4.5(D 区)严重 | 指向模型里消耗最高的轴承,估算几天进 D 区 |
| 过载 | 最近 7 天平均转矩 > 额定 | 冲击多(30 天里 ≥ 10 天超过 2 倍额定)只作提示 |
| 轴承寿命 | 已用 L10 ≥ 80% 警告、≥ 100% 严重 | 建议计划停机时预防性更换 |
| 输出轴疲劳 | Miner 损伤 ≥ 50% | 探伤、复核设计 |
| 换油 | 过期警告、14 天内到期提示 | 当量小时:油温 70 ℃ 以上每高 10 ℃ 按 2 倍计 |
新出现的报警会发 AI 提醒(看板、AI 工厂助手里能看到),升级的再提醒,消失的自动关闭。
五、维修闭环
- 报警上点“开维修单”(或“开维修单:换油”),看预览:标题、优先级(严重的为“紧急”)、设备、诊断、依据、要做什么。
- 确认开单:经桥接写进 ERPNext 的服务工单(Issue),设备序列号在自定义字段“设备序列号”里;报警标“已派单”。
- 修完后在维修单上写维修记录,点“维修完成”:孪生里对应寿命复位(换轴承 → 该轴承归零;换油 → 当量小时归零;清洁散热 → 残差归零),模拟现场里对应的故障消失,报警变“已解决”,ERPNext 的服务工单改为 Resolved 并写上处理结果。
六、接入真设备
现场采集器(ESP32、PLC 网关等)每天用 HTTPS 发一条运行摘要:
POST https://factory.<域名>/api/twin/telemetry
Authorization: Bearer <WQ_TWIN_DEVICE_KEY>
Content-Type: application/json
{"serial": "WQR105-2610-01", "day": "2026-10-04", "period_h": 24, "run_h": 15.2, "starts": 6, "n_in_rpm": 1450,
"torque_mean_nm": 298, "torque_max_nm": 610, "t_amb_c": 22.5, "oil_t_c": 71.3, "oil_t_max_c": 76.0, "vib_mm_s": 0.82,
"rainflow": [[305, 305, 6], [30, 300, 27000]], "load_hist": [[275, 3.8], [300, 7.6], [325, 3.8]]}
- 钥匙
WQ_TWIN_DEVICE_KEY在服务器/opt/wenquest/factory/.env里(部署时自动生成);没有钥匙的请求一律拒绝。 - 格式和模拟器发的一样;不合格式的返回 422 并说明哪个字段不对;同一台旧日期、重复的数据不再累加。
- 试发:
python tools/twin_device.py --hub https://factory.<域名> --key <钥匙> --serial REAL-0001 --days 3(在仓库factory/digital/下运行)。
七、机队数据反馈设计
页面底部“机队数据反馈设计”按客户汇总最近一年:平均每天运行小时、平均转矩、轴承当量转矩(立方平均)占额定的比例、日最大转矩 P95、卡料天数、最先到期的轴承和每年用掉 L10 的比例,并给设计建议(例如矿山客户中间轴换 6306)。“把现场结论带到设计台”:设计台填好现行参数和这段说明(不发布)。
八、机械臂关节孪生
页面底部“机械臂关节孪生”:选一次已完成的“运动与动力分析”计算(一个搬运循环),填每天运行小时,建孪生。平台按电机选型助手自动选的谐波减速器(安全系数 1.2),用样本的寿命公式 L10 = 7000 h ×(额定力矩 / 平均负载力矩)³ ×(2000 / 平均输入转速)算每个关节,按每天运行小时累计(每天负载在 ±10% 内变,按 3 次方折算),看哪个关节先到期。
九、老师控制台
页面右上角(只有老师看得到):现场时钟(停住、1 / 3 / 10 / 30 天每分钟);每台现在的故障;给任何一台“制造”故障(散热变差、轴承损坏、过载)或清除。故障从当前现场日开始生效,学生只能从数据里发现。
十、限制
- 现场数据目前是模拟的;真设备接入口已有,等试点企业或实验室设备。
- 轴承用基本额定寿命 L10(没有 ISO 281 的润滑、污染修正),不算齿轮本身的寿命;受力布置是简化的(两支点简支、三轴同平面)。
- 振动只用一个振动烈度值,不做频谱分析。
- 机械臂关节孪生按同一个搬运循环重复,不接真机器人的数据。