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개)
Zikobrelli
2014년 6월 16일
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
Narayani
2014년 12월 4일
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 ?
Zikobrelli
2015년 3월 29일
i'm not very experienced with simulink, but if it works with matlab, it should be ok.Look at your vector dimensions on simulink
KyoungSeok Han
2016년 2월 20일
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
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에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!