技术文章和通讯

集中、保护和扩展为企业部署算法

彼得•韦伯MathWorks


你可以共享一个MATLAB®函数与一位同事通过电子邮件,但是这种方法不能很好地扩展到更大的群体。例如,你不能保证每个人都使用最新版本的功能,你可以不限制对专有代码的访问。如果你足够的机器上安装功能以适应高峰使用,剩下闲置机器慢的时期。企业级应用程序部署项目的架构师解决这些问题采用客户机-服务器软件开发模型。

MATLAB客户机MATLAB生产服务器™将MATLAB桌面客户机-服务器计算的好处。中央位置的算法确保所有客户都使用相同的版本。远程执行和加密保护知识产权(IP):最终用户可以调用算法,但不能访问源代码。增加容量,您可以添加本地工人或MATLAB生产服务器部署实例在云计算环境中,如微软®Azure™和Amazon Web服务。

本文演示了这些功能与预见性维护应用程序,估计一个电动马达的健康。

你可以自由下载示例代码MATLAB MATLAB生产服务器的客户端

应用程序:评估电机和预见性维护健康

预测维修系统监控设备卫生防止意想不到的失败。例如,他们估计一个汽车的剩余使用寿命(原则)来表示时,电动机应更换和检测异常行为识别汽车需要检查。

我们的应用程序发送时间序列电机传感器收集的数据预测维护使用机器学习算法来估计荷重软化和扫描反常行为(图1)。

图1所示。运动健康应用程序体系结构。

图1所示。运动健康应用程序体系结构。

应用程序由两部分组成:一个MATLAB运动健康应用程序显示一个给定的电机的状态和MATLAB生产服务器预见性维护分析应用程序包含两个预见性维护算法。这种客户机-服务器架构分离功能职责:客户端应用程序管理数据访问和显示,而服务器算法分析数据。客户端依赖于服务器提供的应用程序编程接口(API),但既不需要,也没有访问,实现。

服务器:算法和接口

每个算法适用于不同的机器学习技术,每个汽车传感器产生的时间序列数据。荷重软化算法估计时间使用线性回归模型和失败预测从预测性维护工具箱™函数。异常检测算法将传感器事件划分为正常或异常使用自定义看到下面成了支持向量机(SVM)和线性规划求解统计和机器学习的工具箱™。金宝app两种算法使用增量学习不断更新他们的模型,适应漂移wear-related电动机退化造成的传感器数据。因此,无论是模型需要在部署前训练。

因为最终用户两种算法适用于相同的数据流,服务器提供了一个入口点,processMotorData。每个元素的时间序列数据,processMotorData返回一个原则估计和一个标志指示是否发生异常。

函数[荷重软化,异常]= processMotorData(数据、初始化)c = mps.cache.connect (“MotorData”,“连接”,“LocalRedis”);如果初始化c。AnomalyModel = initAnomalyData ();c。RULModel = initMotorRULData ();结束(异常,c。AnomalyModel] = detectAnomaly(数据、c.AnomalyModel);[荷重软化,c。RULModel] = remainingMotorLife(数据、c.RULModel);结束

客户端通常调用processMotorData多次在处理流数据,将流分解成以时间为顺序的窗户和发送每个窗口,因为它变得可用。MATLAB生产服务器有一个无状态的体系结构:它重置每次调用后的执行状态,防止客户端之间的数据泄漏。算法利用增量学习以来,他们改善通过更新模型在处理每个窗口。但执行状态重置将消除这些变化从MATLAB生产服务器内存。保存更改为下一个电话,我们在外部拯救他们数据缓存mps.cache.connect。部署算法把流分为团体基于电动机ID和维护每个电机的数据缓存和机器学习模型。

客户端:访问算法和可视化数据

我们做processMotorData可用于客户端开发者通过部署MATLAB生产服务器的一个实例在一个档案命名MotorAnalytics。打电话给processMotorData从MATLAB,你安装一个MATLAB插件MotorAnalytics,使用MATLAB MATLAB生产服务器的客户端。

> > prodserver.addon.install ('MotorAnalytics”、“本地主机”,9910年)

安装插件的地方processMotorData在MATLAB函数路径。调用processMotorData发送一个请求到MATLAB生产服务器托管processMotorData,实现了预测维护算法。每个客户端安装插件访问相同的预见性维护算法,如图2所示。

图2。MATLAB桌面客户端访问processMotorData通过MATLAB生产服务器。

图2。MATLAB桌面客户端访问processMotorData通过MATLAB生产服务器。

客户端开发

插件安装,终端用户可以与之交互processMotorData从MATLAB桌面功能。MATLAB帮助命令,例如,显示帮助文本从原始功能和postscript表明processMotorData在MATLAB生产服务器上运行。

> >帮助processMotorData processMotorData计算剩余使用寿命对于给定的电动机,和扫描电机数据异常。[荷重软化,异常]= processMotorData(数据、initState)提要数据motor-specific机器学习模型并返回剩余使用寿命(原则),发现任何异常(异常)。函数由MATLAB生产服务器。服务器主机:localhost服务器端口:9910

这是所有的人类可读的内容附加。任何知识产权processMotorData获得了AES加密对MATLAB生产服务器主机。

我们创建了一个两版与MATLAB应用MATLAB程序设计,可以让你选择一个电动机数据集和视图的结果数据通过预测性维护算法。汽车数据集由48小时传感器读数每分钟采样一次。电动机的荷重软化,48小时期间出现的线形图估计几分钟前失败。异常出现在红点线图时被发现。

图3显示了电机数字8的状况。情节显示一些异常和临时降低估计荷重软化前跌至零。从72小时为零的速度大约12 hours-indicates更换马达的紧迫性。

图3。可视化的健康运动8。

图3。可视化的健康运动8。

水平扩展

MATLAB算法部署到生产服务器规模:MATLAB生产服务器自动添加容量(在一定范围内),以应对日益增长的需求。MATLAB生产服务器的一个实例可能24工人。工人处理请求,同时,如果主机有足够的CPU资源。我们建议每个工人的一个核心。

为了演示需求扩展,我们开始从三个独立的预测分析应用MATLAB桌面会话。我们跑一个程序的副本,等待它完成,然后同时运行所有三个。

图4展示了结果。每个应用程序的副本显示左边的图表分析的结果。MATLAB生产服务器指示板,显示在右边,显示活动工作进程的数量和请求的吞吐量。即时捕获,仪表板显示三个活跃的工作进程和一个大约18信息每秒的吞吐量。

图4。需求水平扩展的结果。

图4。需求水平扩展的结果。

仪表板的条形图显示吞吐量的历史。每个群酒吧表示一段时间的活动。短条捕获时期只有一个应用MATLAB生产服务器发送请求和显示大约六请求的吞吐量。高酒吧捕获时期三个桌面应用程序发送请求。在第二个时期,MATLAB生产服务器自动激活另外两个工人,扩展需求和提高吞吐量18第二个消息。

集中、保护和规模

安装在网络上的一个位置,AES加密保护和动态可扩展,processMotorData现在是一个企业级的服务。您可以创建可部署的档案MotorAnalytics通过使用MATLAB编译器SDK™和MATLAB生产服务器。安装和使用功能processMotorData然而,所有你需要的是MATLAB和免费下载MATLAB MATLAB生产服务器的客户端金宝app支持包。

2021年出版的

查看相关文章的能力