How do I calculate an inverse engine torque map from an engine torque map?
22 次查看(过去 30 天)
显示 更早的评论
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?
0 个评论
回答(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 个评论
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
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);
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!