摘要:今天,工业研发工程师正被数据淹没。一次发动机测试可以在 10kHz+的频率下,通过数千个通道生成数以千兆字节计的传感器数据。以前,工程师可能会将这些数据存入存储,并使用 MATLAB 等工具批量处理。现在,随着数字孪生成为主流,越来越多的研发工程师选择在实时数
今天,工业研发工程师正被数据淹没。一次发动机测试可以在 10kHz+的频率下,通过数千个通道生成数以千兆字节计的传感器数据。以前,工程师可能会将这些数据存入存储,并使用 MATLAB 等工具批量处理。现在,随着数字孪生成为主流,越来越多的研发工程师选择在实时数据上运行模拟模型。
MATLAB 并不完全适合实时处理。虽然可以做到,但过程痛苦。从技术和经济两方面来说都是如此。当我们的创始人曾在 McLaren 工作时,他们将大部分数据管道从 MATLAB 迁移到了 Python,这既便宜又容易让每个人学习。你们也应该这样做。为什么?从长远来看,这将帮助你们以更快的速度、更低的成本开发出更好的产品。
在深入探讨之前,让我们明确一点:我们绝对没有反对 MATLAB。只是它并不非常适合现代工业 4.0 用例,这些用例需要实时数据处理。MATLAB 仍然是一个非常强大的工具!让我们首先看看它如何成为科学计算的默认工具。
MATLAB(代表 MATrix LABoratory)是在 20 世纪 70 年代末由数学教授 Cleve Moler 创建的,作为他学生使用 LINPACK 和 EISPACK 库的工具,这些库是用于数值线性代数的,无需具备 Fortran 知识。MATLAB 于 1984 年成为商业软件应用。
随着时间的推移,MATLAB 的功能已从线性代数扩展到包括信号处理、控制系统和其他许多领域的工具箱。在 20 世纪 90 年代,它增加了 Simulink,这是一种用于系统仿真的图形建模工具,使其在工程和应用科学领域变得流行。如今,MATLAB 在机器人技术和机器学习等领域得到广泛应用。
工程师和科学家喜欢它的集成开发环境,它提供了一个统一的平台用于编码、测试和分析数据。MathWorks 还提供了出色的支持、文档和培训,并提供针对特定行业的工具箱库。
问题在于这一切都不便宜。事实上,它可能非常昂贵。
为了简化,假设您有一个由 10 名工业研发工程师组成的小团队,他们每年使用 MATLAB。对于这个团队来说,每年的费用大约是 8,600 美元。三年后,费用将达到 25,800 美元。而且这还不包括他们最受欢迎的产品之一 Simulink。
Simulink 的年度许可证费用约为 1330 美元;在使用 MATLAB 和 Simulink 三年后,您将花费大约 65700 美元。然后,还有工具箱。我们不会详细介绍这些,但如果包含其中几个,您很容易在三年内花费大约 100000 美元。
如果您想在服务器上自动运行 MATLAB 或 Simulink,您还需要另一个许可证。管理这些服务器许可证是一件非常痛苦的事情,尤其是在尝试在云中使用 MATLAB 时。只需查看这个许可证错误速查表,了解用户经常遇到的问题。如果您想在虚拟化环境(如 Docker)中运行 MATLAB,您的工程师可能需要花费许多许多小时来调试这类错误。
这是否值得麻烦和复杂性?嗯,不是。尤其是考虑到许多支持 Python 的 IDE 都是完全免费的(例如 Visual Studio Code 和 PyCharm 社区版)。可以使用免费的开源工具在云端运行和部署独立进程。
工业研发有其独特的复杂性,例如集成硬件和运行高级数学算法。然而,有人可能会认为 MATLAB 在满足工业 4.0 需求方面扩展性不佳,因此它的高昂价格和运营成本已不再值得。
更多研发团队正在拥抱数字孪生的概念,其设计需要实时数据。对于初学者来说,数字孪生是一个动态的、虚拟的物理资产、系统或过程的复制品(如汽车的引擎或生产线上的机器)。它通过使用其物理对应物的数据实时更新。与静态的模拟模型不同,数字孪生允许您实时模拟、监控和优化性能。
这使得数字孪生成为一款出色的研发工具,因为您可以使用实时数据来模拟各种“如果”场景。您可以在不影响实际物理资产或流程的情况下测试新想法并探索不同选项。
挑战在于,您需要一定的基础设施来正确运行这些,如果过度依赖 MATLAB,可能会很麻烦。为了说明这一点,让我们看看一篇题为“针对工业流程的自动化和系统化数字孪生测试”的学术论文中的例子(大多数公司不会分享其内部研发管道的细节,所以这是次优选择)。
该论文描述了一个数字孪生(DT),该孪生模拟了锻造工厂中钢棒感应加热的复杂过程。它模拟了加热炉和钢棒的动态行为、用于管理该过程的控制系统以及监控它的传感器数据。目标是利用实时数据帮助优化和自动化生产线。
让我们跳过技术细节,但这个例子帮助我们理解 DT 架构的组件是如何部署的。他们使用了一个深度强化学习(DRL)模型作为控制机制的一部分,通过与数字孪生环境交互来学习优化生产过程。
以下图表是我们对他们的架构的重新诠释。我们对其进行修改,因为他们最初用于流处理的 Python 库 Faust,已不再由其原始创建者 Robinhood 维护。
因此,我们用 Quix 替换了 Faust。所有其他组件保持不变。OPC-UA 服务器将工厂数据发送到 ThingsBoard 物联网网关,该网关将 OPC-UA 数据转换为 MQTT,并将其发送到 MQTT 代理。Quix Streams(在 Quix Cloud 中运行)使用 MQTT 连接器读取消息,收集数据,并将其转换为指标。它创建处理数据的常规快照,并将其与数字孪生模拟的数据进行比较。然后,数字孪生中的模拟可以根据“现实生活中的”工厂数据进行更新。
您还可以在容器中运行 MATLAB 来处理数据,但您很快就会遇到一个主要障碍。
我们处理了许多在 Docker 中运行 MATLAB 遇到困难的团队——例如,一家可再生能源公司的数字化转型团队就遇到了这个问题。他们想使用数字孪生在反应器内模拟化学过程。在云中运行 MATLAB 应用程序的成本太高了,所以他们想切换到 Python。这是因为 MATLAB 容器远大于 Python 容器,需要更多资源,并且在 AWS 等平台上运行成本更高。
迁移到 Python 使团队能够使用更小、更高效的容器,减少资源消耗,从而降低他们的云计算费用。这也有助于他们避免在容器内验证 MATLAB 许可证的技术麻烦。还有其他运营上的优势。Python 更加简洁,通常与容器化配合得更好。这使得他们能够更快地工作,并使部署和管理他们的应用程序变得更加容易。
请注意,团队并没有完全放弃 MATLAB,因为他们希望重用一些现有的 MATLAB 函数。他们打算构建将应用这些函数到传感器数据流中的处理服务。目标是提取 MATLAB 中的有价值算法并将它们作为 Python 应用程序部署。
Python 很可能在您组织的其他部分被广泛使用。如果工业 4.0 是关于连接和整合数据,您希望大多数工具都能使用同一种语言。
该公司在上一节中提到:他们已经将 Python 用于大部分 API 和后端开发。通过将更多的分析和建模组件融入 Python,他们希望减少更广泛开发流程中的摩擦。
目标是为了标准化他们的工具并全面提升开发者体验。他们还希望将实时数据整合到他们的网络平台上。Python 可以轻松处理实时数据处理,并且拥有良好的库(例如Quix Streams)来构建必要的工具。
MATLAB 向 Python 的转变似乎是企业更广泛地将其技术栈标准化在 Python 周围的举措的一部分。这一举措将使管理公司软件基础设施变得更加容易,并允许创建一个更加一致的开发环境。随着公司的发展,它需要一种易于扩展且成本效益高的技术栈。基于 Python 的应用程序具有高度的扩展性,并且可以轻松部署在任何云平台上。
让我们坦诚地说——从 MATLAB 迁移到 Python 并不是一项小任务。您的团队需要时间来学习新工具和移植现有代码。会有抱怨。会有成长的痛苦。但问题是:对于大多数工业研发团队来说,这种转型是不可避免的,您等待的时间越长,积累的技术债务就越多。
墙上的字已经写明了。Python 正成为实时数据处理、机器学习和数字孪生开发的既定标准。它更经济高效,拥有更大的人才库,并且与现代云基础设施集成得更好。虽然 MATLAB 仍然是某些专业任务的优秀工具,但它并非为满足工业 4.0 的实时、云原生需求而设计。
好消息是您不必一夜之间做出转换。MATLAB 与 Python 具有出色的互操作性,因此您可以同时使用两者作为过渡策略。从小处着手——可能是一个新项目或一个可以从实时处理中受益的具体组件。利用这个机会在您的团队中建立 Python 的专业知识和信心。随着时间的推移,您可以逐步迁移更多组件,同时保留在合理位置运行的 MATLAB 关键功能。
记住,这不仅仅是为了节省许可证费用或寻找更便宜的劳动力。这是为了确保你的研发能力具有未来性。随着数字孪生和实时处理在工业创新中变得更加核心,你需要一个技术栈来保持同步。Python 不仅仅是一种成本削减措施——它是对你组织在工业 4.0 时代创新和竞争能力的战略投资。
来源:EdgeAITech