INCA二次開發-MIP
來自專欄 汽車軟體技術
1.INCA介紹
INCA是常用的汽車ECU測試和標定的,廣泛應用於動力總成等領域。INCA提供了豐富的介面,供用戶自動化、定製化。本公眾號通過幾篇文章,介紹下一些二次開發的方法,本篇介紹MIP。
2.MIP
MIP(MATLAB Integration Package))是INCA提供的MATLAB介面。如下圖所示:INCA是伺服器端,MATLAB是客戶端。
1)安裝
需要專用安裝包和license,建議安裝到MATLAB路徑下。安裝完成後,需要「更新工具路徑緩存」。
2)文檔
INCA的安裝目下ETASINCA7.2Manuals有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(免費);
推薦閱讀:
※科技以人為本,或有一大波車內配置離我們遠去
※2017年新皇冠 情懷的演變過程
※北汽幻速兩款新車亮相北京車展,全新戰略下的新看點
※07款,別克英朗為什麼松離合會抖動?
※開車怎麼判斷車輪所在位置呢?