用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的内容和相关活动。
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的内容和相关活动。
相关文章推荐
- 用Matlab开发Predix Analytics(2)创建一个分析目录服务
- 用Matlab开发Predix Analytics(3)部署Matlab分析模型
- 针对SharePoint对象模型作二次开发的一个技巧
- ASP.NET MVC+LINQ开发一个图书销售站点(1):需求分析
- 移动端应用的推广分析模型--苦B开发必看
- 常用软件开发模型比较分析(一)
- 常用软件开发模型比较分析(一)
- 针对SharePoint对象模型作二次开发的一个技巧
- 常用软件开发模型比较分析(五)
- 一个项目搞定Android开发, Google天气预报开发之API的分析
- 开发一个12306网站要多少钱?技术分析12306合格还是不合格
- 常用软件开发模型比较分析(三)
- 关于模型驱动开发的一个小争论(zt)
- 浏览器对象BOM模型开发示意图分析(应用设计)
- 基于模型的可复用移动web应用程序开发-画出一个iPhone应用
- 一个项目搞定Android开发,Google天气预报整体功能的分析.
- 软件开发企业的一个研发、转发与销售之间的微笑模型
- 常用软件开发模型比较分析
- 基于模型设计的FPGA开发与实现:滤波器设计与实现(二)Matlab中滤波器的定点化
- 如何开发一个SocketServer-Client模型的程序