打造齿轮箱测功机(Gearbox Dynamometer)
Gearbox Dynamometer
- ThriftyBuilder
- 6 天前
- 7 分钟阅读
更新:15 小时前
作者: Mateo Peña Doll
我构建了这个定制的齿轮箱测功机(又称dyno),用于测试我从头开始设计和制造的船用变速器。通常,我的变速器用作水翼电动船的下单元齿轮箱。
作为电动船舶行业的咨询机械工程师,我需要一种方法来对开发的变速器进行长达 1000 小时的耐久性测试。但是,由于dyno实验室每小时收费 100 美元以上,因此外包对我来说不是一个选择。解决方案?构建我自己的 AC Dynamometer。最初出于需要,后来迅速发展成为一个完全集成、数据驱动的测试平台,配备定制的扭矩测量、水冷、CAN总线集成和基于Python的仪表板。
这个项目成为了一个论文级别的机械测试深入研究。从设计 8020 铝制框架、调整电机控制器到校准应变片,我感觉自己获得了控制系统和测试工程的学位。很多事情我都是通过实践学习的。这篇文章是关于dyno本身的:我是如何构建它的,我遇到的挑战,以及使其工作的技术细节。
Dyno 概览
从左到右:输入电机(又名驱动电机),其垂直轴进入齿轮箱。从齿轮箱输出的是动态扭矩传感器,然后是皮带减速(提高速度)。皮带之后是输出电机(又名 Dyno,或 Regen)。
本质上,这个dyno测量进入齿轮箱的轴功率和输出的轴功率。 轴功率 = 扭矩 * 速度。有了正确的参数,我可以模拟从轻型巡航负载到全油门加速的任何情况,同时监控齿轮箱的性能。
dyno系统通过向驱动电机输入功率,然后从 Dyno 电机再生输出功率来工作。该系统有各种损耗,机械和电气损耗,因此再生功率是输入功率的一小部分(在最佳条件下约为 70% 的整体效率)。大约 30% 的损耗最终来自电源的 220VAC 分相输入(来自电网,需要花钱)。我将在下面详细介绍电源。dyno可以处理驱动电机处约 30kW 连续功率和 50kW 峰值功率。
电缆原理图 (DR 为驱动电机,DY 为 Dyno/Regen)
我选择了所需功率范围内的 PMAC 电机,最终选择了 Motenergy ME1616。对于控制,我选择了 Sevcon Gen4 Size 6 控制器,它们有完善的文档且被广泛使用。让 ME1616 与 Sevcon 协同工作需要使用 Sevcon DVT 工具进行调整。现在我精通 Sevcon DVT。非常感谢 Motenergy 和 Endless-Sphere 论坛支持我提供电机控制信息和配置文件。
传感器
测量扭矩和速度并非易事,除此之外,还需要跟踪几个其他参数来了解系统行为。所有数据都使用基于 Arduino 的 DAQ 系统运行我的自定义程序来捕获。
- 扭矩和速度 - 在齿轮箱输入轴和输出轴上测量
- 效率 - 输出轴功率除以输入轴功率
- 温度 - 外壳、油、水和环境温度
- 内部齿轮箱压力
由于 Sevcon 控制器有自己的数据,并且需要监控/校准,我还监控:
- 电机和控制器温度
- 电压和电流
- 电机速度和扭矩(已报告)
- 许多其他细节
基于 Arduino Due 的 DAQ 系统
对于传感器,我使用了低成本的 Arduino 兼容模块。 Arduino Due 捕获传感器数据,通过 CAN 总线传输,并且还充当错误检测器和故障触发器,如果需要,可以停止系统。每个传感器都有自己的通信协议、噪声敏感性,并且为我设置带来了独特的挑战。在本文章的末尾,我将详细介绍学习和未来改进。
- 扭矩传感器:Daysensor DYN-200 (500 Nm, 4-20mA 输出)
- 应变片放大器:SparkFun SEN-13879(基于 HX711) - 我喜欢这些!
- 压力传感器:Honeywell HSCSANN015PA2A3 (I2C)
- 电流传感器:Adafruit INA228 (I2C) - 不幸的是,我从来没有真正让它工作
- 热电偶放大器:Adafruit 1778 (AD8495, K-Type)
- CAN 收发器:Copperhill SN65HVD230
仪表板和数据库
管理所有 50 多个数据点需要设置一个自动数据收集系统,使用 MongoDB 存储所有内容以供后期分析。为了管理数据库并实时监控数据,我使用 Tkinter 构建了一个自定义的 Python 仪表板,并通过 IXXAT 到 USB 转换器集成了 CAN 总线。特别感谢 ChatGPT 完成了大部分编码工作:)
控制和数据图
自定义 Python 仪表板
电源
如果我说,我为 dyno 提供 10kW 功率的方式很节俭。如前所述,该系统在最佳条件下以约 70% 的效率运行,并且驱动电机功率要求(齿轮箱的输入功率)设置为 30kW 连续。这意味着我需要至少 9kW 的连续电网功率来弥补系统损耗。需要明确的是,齿轮箱本身的机械损耗要低得多,大多数效率损失来自电机的热损失。
我首先使用了几年前我做过的电动汽车改造中的旧 NiMH 电池组。问题是什么?充电慢,效率低(~65%)。所以我开始寻找更好的电源,发现获得电源最便宜的方法是翻新的服务器电源单元(Server PSU)。我最终选择了白金级的 HP DPS-1200FB-1 A (RMN: HSTNS-PD19, P/N: 570451-101)。我将 8 个这些连接在一起,构建了一个 10kW 的电源,花费约 125 美元,现在这才是便宜的电源!我使用了 this breakout from WizardOfWire。感谢在线社区,包括 Seidel-Philipp's blog 和这个 MoneroMining reddit post ,指导我选择、浮动和操作这些 PSU。
PSU 被浮动并串联连接,以提供 100A at 100VDC(免责声明:这些 PSU 的额定电压不是 100V,因此按规定此设置不安全,但它确实对我有用)。
电源,10kW (100V, 100A),使用 HP DPS-1200FB-1 A (RMN: HSTNS-PD19, P/N: 570451-101)
220VAC 分相配电,带有 KETOTEK 电能表 (D52-2047HD)。
扭矩校准
输入反作用扭矩传感器内置于带有挠性构件的定制电机板中,我在其中放置应变片以测量扭矩引起的应变。我使用了 Omega 剪切应变片 SGT-2H/350-SY13,带有 Vishay 精密电阻 PTF65350R00BXEK 用于惠斯通电桥。最初,我从单个应变片开始,但横向力引入了太多的误差。添加第二个径向对称的应变片可以进行差分应变测量,从而显着提高了精度。
电机安装板上挠曲的 FEA 结果
安装到电机板的差分应变片
为了校准输入反作用扭矩传感器,我使用了 DYN-200 动态扭矩传感器作为参考。我编写了一个自定义 Arduino 程序,该程序执行自动稳定性检测,确保仅在读数稳定时才记录读数。然后,该程序输出施加的扭矩 (Nm) 和测得的应变之间的相关曲线,从而可以准确地将应变片读数映射到实际扭矩值。
运行扭矩校准 Python 脚本,从 Arduino Due 读取数据
使用 DYN 动态扭矩传感器校准电机板上的应变片(反作用扭矩传感器)
校准结果;Y 轴显示 DYN 扭矩传感器报告的扭矩,单位为 N*m;X 轴显示 HX711 应变片放大器报告的反应应变(无单位)
示例结果
由于保密原因,我无法详细介绍测试结果,但我可以给出一个带有部分删除的通用示例。
dyno 最重要的结果是齿轮箱效率。我以恒定速度运行 dyno,并改变扭矩。这是一个图,您可以在其中看到齿轮箱的输入和输出轴功率,以及效率。我通过获取速度的导数来过滤加速度接近零的数据,该导数在图中以黄色突出显示。只有突出显示的部分才令人感兴趣,因为瞬态结果将包括各种动态组件的动量变化(对此分析不感兴趣)。
轴功率和效率随时间变化
如果采用突出显示的效率区域,并将其绘制在漂亮的颜色编码图上,您将得到以下结果。然后我在各种速度下重复此操作。
扭矩与速度的效率图
从齿轮箱测功机学习
我在构建 dyno 时学到了很多东西。我的大多数挫折和调试都与传感器和噪声有关。来自电机控制器的 EMI 定期关闭我的 CAN 总线(和其他数字通信线路),EMI 还将噪声引入我的模拟传感器,并且在高电流导体上的接地差难以管理。
Sevcon 接地
SevconGen4 被认为是低压系统,设计师决定将其制成单电压系统。电压在逻辑和功率电子器件之间共享。Size 6 控制器可以处理高达 550A 的电流(我只将其推到约 300A),因此两个 Sevcon 之间的负极电缆上的压降对 IO 和 CAN 总线造成了严重破坏。我设法通过在两个 Sevcon 之间连接一根巨大的 2/0 负极电缆来缓解这种情况。将来,我肯定会尝试寻找具有隔离逻辑的控制器。Sevcon Dragon 8 系列具有这种隔离,但它们对于我的应用来说功率不足。
模拟传感器隔离
事实证明,在嘈杂的环境 (EMI) 中读取模拟传感器是一项挑战,尤其是在存在任何接地泄漏或回路的情况下。最好的方法是将模拟传感器与电源系统隔离,特别是保持 Arduino 与 Sevcon 控制器隔离。目前,唯一共享接地的原因是 CAN 总线通信,但隔离的 CAN 收发器可以解决此问题。
此外,一些传感器会引入自己的接地泄漏,这会导致问题且难以检测。完全隔离的传感器架构(其中每个传感器都是单独隔离的)将显着提高可靠性。
迁移到专用 DAQ 系统
更强大的解决方案是使用专门构建的数据采集系统 (DAQ),而不是在 Arduino Due 的输入引脚上管理多个模拟传感器。DataQ DI-4718B-E 看起来很有希望,因为它支持范围广泛的输入,并且可以消除手动集成每个传感器的开销。主要挑战是 Arduino(处理 CAN 总线)和 DataQ(传感器采集)之间的通信。
一个可能的解决方案是 Arduino 和 DataQ 之间的串行通信。根据 DataQ 的 GitHub 存储库,使用 UDP 数据包通过以太网集成可以在本地网络上实现 1 到 3 毫秒的延迟。由于这不需要互联网访问,我可以简单地将两个设备连接到本地网络交换机以进行高速通信。
另一种选择是切换到 Raspberry Pi 或 Teensy,它们是 USB 主机(与 Arduino 不同,后者只是 USB 设备)。这将简化与基于 USB 的 DataQ 的集成,并保持 CAN 总线上的实时数据流。
这些改进将显着减少噪声问题,提高传感器精度,并简化数据采集,从而使dyno系统更加强大和可扩展。
非常感谢你的阅读!