# How do I calculate an inverse engine torque map from an engine torque map?

19 views (last 30 days)
Sven on 4 Feb 2014
I am in the process of designing a torque based control structure for a racing motorcycle. As part of the control structure, a desired torque input has to be converted into a desired throttle angle. I already have the engine torque map, a two-dimensional table correlating throttle angle and RPM with torque (i.e. for a given throttle angle and engine speed, the engine will produce a certain torque). Now I need an inverse engine torque map that allows me to calculate the required throttle opening for the desired torque at the current engine speed).
My question is, what is the most efficient way to derive an _ inverse _ engine torque map from the regular engine torque map. Any suggestions for doing this automatically rather than manually?

Zikobrelli on 16 Jun 2014
RPM=[500 1000 1500 2000]';
alpha_throttle=[0.1 0.2 0.4 0.8];
torque_map=
[67 89 95 108
74 92 110 123
80 97 115 127
84 106 119 135];
RPM_dmnd=1000;
Torque_dmnd=92;
Z=interp2(RPM,alpha_throttle,torque_map',RPM_dmnd,alpha_throttle);
required_throttle=interp1(Z,alpha_throttle,Torque_dmnd);
KyoungSeok Han on 20 Feb 2016
I think simulink Matlab m function does not provide the interp1 or interp2 function. How can i find the new look up table about required throttle = f(torque, RPM), namely new table has the following structure, column -> torque (mx1) , raw = RPM(nx1) , table content= throttle (mxn).

Piyush George Alexander on 2 Oct 2018
Does this work if the torque is not monotonously increasing or decreasing ?
RPM=[500 1000 1500 2000]';
alpha_throttle=[0.1 0.2 0.4 0.8];
torque_map=[67 89 95 108 74 97 97 97 97 97 90 88 85 83 74 65];
surf(RPM,alpha_throttle,torque_map); figure(2) surf(RPM,alpha_throttle,torque_map'); RPM_dmnd=1000; Torque_dmnd=92;
Z=interp2(RPM,alpha_throttle,torque_map,RPM_dmnd,alpha_throttle);
figure(3) plot(Z,alpha_throttle);
required_throttle=interp1(Z,alpha_throttle,Torque_dmnd);