INCA二次开发-MIP
1.INCA介绍
INCA是常用的汽车ECU测试和标定的,广泛应用于动力总成等领域。INCA提供了丰富的接口,供用户自动化、定制化。本公众号通过几篇文章,介绍下一些二次开发的方法,本篇介绍MIP。
2.MIP
MIP(MATLAB Integration Package))是INCA提供的MATLAB接口。如下图所示:INCA是服务器端,MATLAB是客户端。
1)安装
需要专用安装包和license,建议安装到MATLAB路径下。安装完成后,需要“更新工具路径缓存”。
2)文档
INCA的安装目下ETAS\INCA7.2\Manuals有MIP手册《INCA_MIP_R16_EN.pdf》。
(回复“MIP文档”获取)
3)Ring Buffer(循环缓冲区)
INCA提供了一个缓冲区,可以存储30s的变量值,保证了数据的连续性和实时性。
3.常用MIP函数
接下来按照执行的先后顺序介绍
1)打开
%% Open
% Establish the connection from MATLAB to INCA
IncaOpen;
% Connects to the currently opened experiment
IncaOpenExperiment;
MATLAB先连接INCA,再连接到当前已打开的实验环境,输出结果:
2)变量操作
%% Measure element
% Add measure element in current group
IncaAddMeasureElement('WorkbaseDevice1',[],'B_GREEN');
IncaAddMeasureElement('WorkbaseDevice1',[],'B_RED');
IncaAddMeasureElement('WorkbaseDevice1',[],'B_YELLOW');
% Start measure
data=[];
time=[];
IncaShowMessages(0);
IncaSetMeasureReadMode(0)
IncaStartMeasurement;
deltaT=0;
% Measure for 20 seconds
while(deltaT<20)
pause(0.1)
[t,d]=IncaGetRecords( 'WorkbaseDevice1','TimeC',500);
data = [data; d];
time = [time; t];
if( length(time))
% Calculate time measured
deltaT = time( length(time)) - time(1);
end
end
IncaStopMeasurement;
IncaShowMessages(1);
% Plot the results
plot(time, data);
此段代码参考了MIP手册中的示例代码,首先添加3个变量,然后采集20s的数据,绘制曲线,输出结果:
3)标定量操作
%% Calibration element
% Add calibration element
IncaAddCalibrationElement('WorkbaseDevice1','DEMO_CONSTANT_1');
% Get calibration value
value=IncaGetCalibrationValue('WorkbaseDevice1','DEMO_CONSTANT_1');
% Set calibration value
DEMO_CONSTANT_1=10;
result=IncaSetCalibrationValue('WorkbaseDevice1','DEMO_CONSTANT_1',DEMO_CONSTANT_1);
首先添加标定量,其次获取值,修改值,输出结果:
4)关闭
%% Close
IncaClose;
退出INCA,输出结果:
(回复“MIP例子”获取示例代码)
4.INCA-COM vs MIP
本公众号介绍了INCA的2种二次开发方式,对比如下:
方案 |
优点 |
缺点 |
INCA-COM |
免license,可以完全控制INCA; |
数据实时性和完整性差,无ring buffer; |
MIP |
数据实时性和完整性好,有ring buffer; |
需要单独license; |
最新文章
- [转]pycharm的一些快捷键
- 使用C#开发ActiveX控件(新)
- ‘Cordova/CDVPlugin.h’ file not found
- 【BZOJ-1017】魔兽地图DotR 树形DP + 背包
- DB2 嵌入式应用中定义游标(开放平台上)
- springmvc学习第二天
- IOS杂笔- 7(类方法load与initialize的区别 浅析)
- 解决服务器连接错误Host ‘XXX’ is not allowed to connect to this MySQL server
- 第三百三十五天 how can I 坚持
- AlwaysOn实现只读路由
- SQL server概述
- Polygon对象
- mybatis延迟加载一对多
- 关于css盒模型
- Java的动手动脑(七)
- 文献--A Survey on Server-side Approaches to Securing Web Applications
- install scala &; spark env
- ​学会用各种姿势备份MySQL数据库
- canvas-圆弧形可拖动进度条
- C++库研究笔记--用__attribute__((deprecated)) 管理过时代码
热门文章
- iOS隐藏键盘的几种方式
- Android进阶(二十四)Android UI---界面开发推荐颜色
- Uva - 1594 - Ducci Sequence
- Android开发-Listview中显示不同的视图布局
- Cocos2D:塔防游戏制作之旅(十六)
- 【一天一道LeetCode】#100. Same Tree(100题大关)
- 11.2、Libgdx的音频之音乐
- [WinForm]dataGridView导出到EXCEL
- Java集合之Collection
- 【Android 应用开发】Android 数据存储 之 SQLite数据库详解