您的位置:首页 > 编程语言 > MATLAB

用Matlab开发Predix Analytics(1)开发一个Matlab分析模型

2017-04-13 17:04 357 查看
作者:唐翊国,开发者生态资深经理,GE数字集团

23年工作经验,长期在杜邦、欧文斯科宁、庄信万丰等从事制造业信息化工作,规划、实施了大量MES、SAP ERP、LIMS、BPM等项目,积累了丰富的制造业数字化转型经验。

摘要

在本系列博客中,我会以示例的形式分享如何在Windows 7操作系统上用Matlab开发一个分析模型,然后部署这个模型到Predix Cloud上。注意:目前Predix支持的Matlab 版本是R2011b和R2012a,本文中是以R2011b作为实例的。

准备工作

在我们开始用Matlab开发一个分析模型前,我们要检查一下开发环境,确保安装了Matlab R2011b,特别是检查安装了Java Builder,可以通过检查以下路径,

C:\Program Files\MATLAB\R2011b\toolbox\javabuilder\jar

存在一个javabuilder.jar文件来确认。

与之对应的,我们需要安装JDK 1.7 (JDK 1.8不能成功编译这个版本的Matlab文件),可以从以下网址下载

http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html

注意:安装完JDK 1.7后,我们必须手工设置Windows环境变量。

打开控制面板,选择系统-> 高级系统设置



点击“环境变量”



创建一个新的系统变量

“CLASSPATH” = “;”



创建一个新的系统变量

 “JAVA_HOME”= “C:\Program Files\Java\jdk1.7.0_80”



编辑 “Path” 并增加“C:\Program Files\Java\jdk1.7.0_80\bin;”



开发一个Matlab分析模型

我不是一个“数据科学家”

, 所以我会从Predix在Github上的代码库中借鉴一个现成的Matlab模型,访问

https://github.com/PredixDev/predix-analytics-sample

在命令行中克隆这个例子:

git clonehttps://github.com/PredixDev/predix-analytics-sample



我们可以找到一个Matlab 文件LocomotiveRegression.m,它位于:

C:\PxDev\predix-analytics-sample\analytics\demo-RTM-loco\demo-RTM-loco-matlab-r2011b\data\locomotive

按照Predix 分析服务的要求,LocomotiveRegression.m 要使用一个“JSON” 模块来处理JSON 文件的解析工作 ,我们可以从Matlab的社区中下载到这个JSON模块:

https://cn.mathworks.com/matlabcentral/fileexchange/20565-json-parser

为了确保这个模型能正常工作,我们新建一个文件夹,

C:\PxDev\matlab

复制LocomotiveRegression.m,JSON.m,还有LocoData.json 到C:\PxDev\matlab。

在创建一个新的test.m 文件,

fname = 'LocoData.json';
fid = fopen(fname);
raw = fread(fid,inf);
input = char(raw');
fclose(fid);
tstart=clock;
output = LocomotiveRegression(input);
fprintf('Analytics used $%.4fs\n',etime(clock,tstart));
在Matlab中运行test.m,我们可以看到这个模型耗时14.7秒处理了JSON文件中的数据,并得到相应的结果,见下图中的output字段。





测试好模型后,我们要把它变成一个可以在Predix上运行的Java Jar包。在Matlab里运行deploytool



输入这个项目的名字:LocoRegression,选择类型为 “Java Package” 。



点击OK,我们就创建好了一个目前还是空的Java 包



只需要简单地从C:\PxDev\matlab里拖放LocomotiveRegression.m 和JSON.m 这两个文件到“Build”页签就可以了,



然后点击右上角的“Build”

按钮,Matlab就开始把这两个Matlab 模型文件转化成一个Java Jar 包:



一旦创建过程结束,我们就可以找到生成的LocoRegression.jar 文件,其位于

C:\PxDev\matlab\LocoRegression\distrib

复制LocoRegression.jar 到

C:\PxDev\predix-analytics-sample\analytics\demo-RTM-loco\demo-RTM-loco-matlab-r2011b\src\main\resources\lib

从C:\Program Files\MATLAB\R2011b\toolbox\javabuilder\jar里复制 javabuilder.jar到

C:\PxDev\predix-analytics-sample\analytics\demo-RTM-loco\demo-RTM-loco-matlab-r2011b\src\main\resources\lib



在命令行中运行以下命令来生成一个完整的Jar包:

cdC:\PxDev\predix-analytics-sample\analytics\demo-RTM-loco\demo-RTM-loco-matlab-r2011b

mvn clean package



生成成功后,我们可以看到一个demo-RTM-loco-matlab-r2011b-1.0.0-SNAPSHOT.jar文件:

C:\PxDev\predix-analytics-sample\analytics\demo-RTM-loco\demo-RTM-loco-matlab-r2011b\target



这个文件就是我们后续要部署到Predix Cloud上的可执行Matlab分析模型了。

 

注意:

当你开发自己的Matlab Jar 包时,务必要记得对

C:\PxDev\predix-analytics-sample\analytics\demo-RTM-loco\demo-RTM-loco-matlab-r2011b\src\main\java\com\ge\predix\insight\analytic\demo\matlab\LocoRegDemo.java

文件做相应的修改。

在使用中您有任何问题,请访问我们的论坛http://bbs.csdn.net/forums/GEPredix

GE数字集团的技术专家们会在线回答您的问题。

也请访问我们在CSDN的Predix专区http://predix.csdn.net/ 了解更多Predix的内容和相关活动。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息