依据Carsim中导出的Tor=G(spd,Thr)二维表数据,制作Thr=F(spd,Tor)二维表,灵感来自B站up忠厚老实的老王。
其中:Tor为发动机转矩(Engine torque),spd发动机转速(Engine,speed),Thr为节气门开度(Throttle).
主要思路:将原二维数组重整,即spd、Thr、Tor三个变量的关系一一对应,将其分别放入三个行向量中,最后,利用matlab自带的scatteredInterpolant进行散点插值,从而得出Thr=F(spd,Tor)二维表。完整代码如下:
%% 读取数据
filename = '125KWengine.xls';
sheet = 1;
xlRange = 'A1:K23';
data = xlsread(filename,sheet,xlRange);
%% 手动取出有效数据
[r,c]=size(data);
spd=data(4:r,1)';
thr=data(1,2:c);
torque_table=data(4:r,2:c);
[r1,c1]=size(torque_table);
%% 将数据转成行向量
%参数:
% x_thr 节气门行向量,维度:1*(r1*c1)
% y_spd 转速行向量,维度:1*(r1*c1)
% z_tor 转矩行向量,维度:1*(r1*c1)
z_tor=torque_table(:,1)';
for i=2:c1
z_tor=cat(2,z_tor,torque_table(:,i)');
end
y_spd=kron(ones(1,c1),spd);
thr_temp=kron(ones(r1