账号:
密码:
CTIMES / 文章 /   
企业部署演算法的集中管理、保护与扩充
以电动马达预测性维护应用为例

【作者: Peter Webb】2021年11月25日 星期四

浏览人次:【1263】
  

为了提升生产力,企业级规模的应用架构工程部署专案通常会采用主-从式软体开发模型,确认在足够数量的机台上所安装的函式能满足使用量。本文以一个估测电动马达健康的预测性维护应用来说明上述所需的功能。


如果你想把MATLAB函式分享给另一位同事,只要简单地透过Email就可以达成,不过这种方式可能不太适合较大的团队。举例来说,你没有办法确保每一个人都使用最新版本的函式,你也没有办法限制他人存取这些具有所有权的程式码。而且如果为了满足高峰期间的使用量而在足够数量的机台上安装了函式,离峰期间则会有机台处在闲置状态。为了处理这样的问题,企业级规模的应用架构工程部署专案通常会采用主-从式软体开发模型(client-server software development model)来解决。


MATLAB Client for MATLAB Production Server这组支援套件,可为桌上型MATLAB提供了主-从式运算(client-server computing)带来好处。它的作法是将演算法集中在一个位置存放,这可确保所有用户端使用的版本都相同;由远端执行并加密,则可以保护智慧财产(intellectual property;IP):终端使用者可以呼叫演算法,但不能存取原始程式码。


为了提升生产力,可以增加使用者端的workers,或者将MATLAB Production Server的范例部署在云端计算,如Microsoft Azure和Amazon Web Services等环境中。本文将以一个估测电动马达健康的预测性维护应用来说明这些功能。


应用:以预测性维护方法评估马达健康状态

透过预测性维护系统来监测设备的健康状态可预防意外的故障。举例来说,估计马达的剩余使用寿命(remaining useful life;RUL)以判断何时该替换马达,以及侦测异常行为来决定是否需要进行马达检验。


我们的应用范例是把马达感测器收集来的时间序列资料发送到预测性维护演算法,而该演算法则使用机器学习来估计RUL和检查异常行为(图1)。



图1 : 马达健康应用范例的架构。
图1 : 马达健康应用范例的架构。

这个应用包含了两部分:一是MATLAB马达健康状态app,它展示特定马达的状态,另一部分是MATLAB Production Server预测性维护的解析应用,内含两组预测性维护演算法。这个主从式架构把功能性的责任归属分为:使用者(client)端的app,用来管理资料存取与显示,而伺服器(server)端的演算法则负责分析这些资料。使用者需仰赖伺服器端提供的应用程式介面(application programming interface;API)连结,不需要、也不能存取执行结果。


伺服器端:演算法与介面

对马达感测器产生的时间序列资料,每一组演算法采用不同的机器学习技术来进行判定。 RUL演算法是使用一个线性回归模型来估计故障发生的时间,此模型是由「预测性维护工具箱」(Predictive Maintenance Toolbox)的predict函式所提供。异常行为侦测演算法则使用一个客制的单类(one-class)支援向量机(support vector machine;SVM)和一个线性求解器,将感测器事件分类为正常或异常,这些函式是来自于「统计与机器学习工具箱」(Statistics and Machine Learning Toolbox)。


这两组演算法都使用渐进式的学习来持续更新它们的模型,同时也考虑到因为马达磨损退化导致的感测器资料偏移,因此,两个模型都不需要在部署之前先经过训练。


由于终端使用者都会把同样的资料流跑在这两组演算法上,伺服器就提供一个入口点,所以透过processMotorData函式,针对时间序列资料上每一个元素,processMotorData就会送回一个RUL估计结果以及一个是否出现异常的标帜。


在处理资料流时使用者端通常会呼叫processMotorData好几次,然后把资料流分割为依时间排序的视窗,并且在每个视窗完成时送出。 MATLAB Production Server有一个无状态(stateless)的架构:它会在每一次呼叫之后重置执行状态,以避免资料在使用者之间泄漏。


由于演算法使用渐进式学习,它们会透过处理每一个视窗之后的模型更新来改善。不过,执行状态的重置功能会从MATLAB Production Server的记忆体清除掉这些变更。


为了让变更保留到下一次的呼叫,将它们储存在透过mps.cache.connect函式所建立的外部资料快取记忆体中,完成部署的演算法就会将资料流依马达编号ID来分组,并且为每一个马达保留一个资料快取记忆体和机器学习的模型。


使用者端:执行演算法和资料视觉化

我们将processMotorData 部署到一个MATLAB Production Server范例、命名为 MotorAnalytics档案的中,让使用者端的开发人员可以使用它。如果要从MATLAB呼叫processMotorData ,可以使用MATLAB Client for MATLAB Production Server里,从MotorAnalytics安装MATLAB add-on套件。


安装这个add-on套件时,把processMotorData函式放置到MATLAB的路径中。呼叫processMotorData时,会有一条需求被传送给MATLAB Production Server主机上去执行预测性维护演算法内的processMotorData函式,每一个安装了add-on的使用者端就能去执行这个相同的预测性维护演算法,如图2所示。



图2 : MATLAB桌上型使用者透过MATLAB Production Server存取processMotorDat。
图2 : MATLAB桌上型使用者透过MATLAB Production Server存取processMotorDat。

使用者开发

当add-on套件被安装之后,这些终端使用者就可以从他们桌面端的MATLAB来跟 processMotorData函式进行互动。举例来说,MATLAB的help指令显示了来自原始函式的协助文字讯息,后记则标明processMotorData是在MATLAB Production Server上执行。


add-on套件上人类都可以读懂的全部内容,任何执行 processMotorData演算法的IP智财会在MATLAB Production Server主机上以AES加密来确保安全性。


接着我们透过MATLAB App Designer来建立带有两个内嵌仪表板的MATLAB app应用程式,让使用者可以选择一个马达资料集,并检视该资料执行预测性维护演算法后所产生的结果。这个马达资料集是由48小时、一分钟取样一次的感测器读数所构成。该马达在这48小时期间内的RUL,会以距离到故障发生的估计分钟数的线性图表来呈现;当侦测到异常时,会以红色圆点标示在线性图表上。


图3呈现了第8号马达的状态。图表上标出了几个异常与一个估计RUL在跌入零之前的一段暂时性下降,这个在大约12小时内机器余命从72小时快速的下降到零,显示出有替换马达的急迫性。



图3 : 视觉化呈现第8号马达的健康状态。
图3 : 视觉化呈现第8号马达的健康状态。

水平方向的扩充

接下来,把演算法部署至MATLAB Production Server进行规模扩充:MATLAB Production Server可自动地加入容载量(在条件内)来回应增加的需求。每单一个MATLAB Production Server容纳案例可以最多有24个workers,每一个worker可独立地处理需求?如果主机有足够的CPU资源的话,还可以同时间进行。我们会建议每个worker分配一个核心。


为了说明需求导向的扩充,我们从三个分开的桌上型MATLAB单元开启predictive analytics app,先执行其中一个app副本,并等待它完成,接着让三个app全部同时执行。


图4为执行结果。在左边的图表可以看到每一个app副本的解析结果。右边的MATLAB Production Server仪表板展示了现行worker处理程序数量以及需求的处理量。在即时的截图上,仪表板显示有三个现行worker处理程序,以及每秒大约18笔讯息的处理量。



图4 : 需求导向的水平扩充结果。
图4 : 需求导向的水平扩充结果。

仪表板上的直条图绘制了处理量的历史。每一组直条代表一段时间的活动。较短的直条捕捉到的是只有一个app传送需求至MATLAB Production Server的那段时间,当时的处理量大约为每秒6笔需求。较长的直条代表三组桌上型app都在传送需求的时候。在第二段时间,MATLAB Production Server自动地启动两个额外的workers,藉由需求来带动扩充,并且让处理量增加到每秒18笔讯息。


集中化管理、保护与扩充

藉由开发之后,processMotorData这个演算法范例已经具备了安装于网路的一个位置、以AES加密机制保护、并且可动态扩展性的特点,已经是一项企业层级的服务。因此,可以利用MATLAB Compiler SDK和MATLAB Production Server即可建立如同本文所示范的MotorAnalytics可部署档案一样。不过,如果是要安装或使用 processMotorData等函式,只需要MATLAB和MATLAB Client for MATLAB Production Server支援套件就足够了。


(本文由钛思科技提供;作者Peter Webb任职于MathWorks公司)


相关文章
感测器中的AI – 嵌入式机器学习核心运行决策树分类器
机器学习模型设计过程和MEMS MLC
嵌入式系统部署AI应用加速开发周期
7种常见的电动车模拟案例
优化工厂制造系统能源效率的生态系
comments powered by Disqus
相关讨论
  相关新闻
» Exosite与泓格科技携手推出全新EXOWISE工业物联网解决方案
» 博世全产品联网带动成长 迎合2022年CES更有效气候行动需求
» 雷诺集团和达梭强化合作 透过3DEXPERIENCE平台加速转型
» 机器人载水任务高手过招 2022国研杯智慧机械竞赛开放报名
» 意法半导体G3-PLC Hybrid融合通讯晶片组获FCC认证
  相关产品
» 贸泽电子2021 Empowering Innovation Together系列收录关键技术
» 凌华推出新款COM-HPC Client Type与COM Express Type 6模组化电脑
» 智慧基础设施前进IIoT之路 浩亭提供可靠的乙太网工业应用方案
» 安勤推出新款采用EtherCAT的高效能Slot PC解决方案
» 德承推出新款高效低功耗强固型工业电脑─DI-1100系列

AD


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2022 远播信息股份有限公司版权所有 Powered by O3
地址:台北市中山北路三段29号11楼 / 电话 (02)2585-5526 / E-Mail: webmaster@ctimes.com.tw