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;
不需要安装其他程序即可运行;
快速GUI界面和流程开发;

数据实时性和完整性差,无ring  buffer;

MIP

数据实时性和完整性好,有ring  buffer;
 可连接到simulink模型;

需要单独license;
需要安装MATLAB或MATLAB Compiler
Runtime(免费);

最新文章

  1. [转]pycharm的一些快捷键
  2. 使用C#开发ActiveX控件(新)
  3. ‘Cordova/CDVPlugin.h’ file not found
  4. 【BZOJ-1017】魔兽地图DotR 树形DP + 背包
  5. DB2 嵌入式应用中定义游标(开放平台上)
  6. springmvc学习第二天
  7. IOS杂笔- 7(类方法load与initialize的区别 浅析)
  8. 解决服务器连接错误Host ‘XXX’ is not allowed to connect to this MySQL server
  9. 第三百三十五天 how can I 坚持
  10. AlwaysOn实现只读路由
  11. SQL server概述
  12. Polygon对象
  13. mybatis延迟加载一对多
  14. 关于css盒模型
  15. Java的动手动脑(七)
  16. 文献--A Survey on Server-side Approaches to Securing Web Applications
  17. install scala &amp; spark env
  18. ​学会用各种姿势备份MySQL数据库
  19. canvas-圆弧形可拖动进度条
  20. C++库研究笔记--用__attribute__((deprecated)) 管理过时代码

热门文章

  1. iOS隐藏键盘的几种方式
  2. Android进阶(二十四)Android UI---界面开发推荐颜色
  3. Uva - 1594 - Ducci Sequence
  4. Android开发-Listview中显示不同的视图布局
  5. Cocos2D:塔防游戏制作之旅(十六)
  6. 【一天一道LeetCode】#100. Same Tree(100题大关)
  7. 11.2、Libgdx的音频之音乐
  8. [WinForm]dataGridView导出到EXCEL
  9. Java集合之Collection
  10. 【Android 应用开发】Android 数据存储 之 SQLite数据库详解