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

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?

답변 (2개)

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);

댓글 수: 3

I tried using this code in a 'Matlab m function block' in simulink. It gives me a dimensionality error. However, when executed as a function in MATLAB it works perfectly well. Am I doing something wrong ?
i'm not very experienced with simulink, but if it works with matlab, it should be ok.Look at your vector dimensions on simulink
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
Piyush George Alexander 2018년 10월 2일

0 개 추천

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);

카테고리

도움말 센터File Exchange에서 Vehicle Dynamics Blockset에 대해 자세히 알아보기

질문:

2014년 2월 4일

답변:

2018년 10월 2일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by