How do I interpolate a value from two sample vectors and two actual vectors?

12 Ansichten (letzte 30 Tage)
I have a torque curve per rpm in two vectors:
rpm: 1250 1500 1750 2000 2500 3000 3500 4000 4500 5000 5500 6000
and torque: 194 259 325 383 420 420 413 410 395 383 343 275
So each vector is length 12. I also have real-time data in the form of two very long vectors giving rpm (rpm) and percent load (pctload).
I need to interpolate the actual, real-time torque value by multiplying the torque at that rpm(in the torque curve) by the percent load.
I have a feeling this can be done with the interp2 function, but am having trouble.
Any suggestions? clarification needed?
Thank you in advance.

Akzeptierte Antwort

Alan Gallagher
Alan Gallagher am 16 Mär. 2015
Bearbeitet: Alan Gallagher am 16 Mär. 2015
Figured it out:
tableN= list of rpm's from 1250 to 6000
tabletorque: list of tested torques at the N values
rpm= real-time rpms
pctload= real-time percent load
real_time_torque=interp1(tableN,tabletorque,rpm).*pctload;

Weitere Antworten (1)

Adam
Adam am 16 Mär. 2015
>> g = griddedInterpolant( rpm, torque );
>> g( 1777 )
ans =
331.264
should do the trick. There are numerous interpolation methods that will probably work too - interp1 probably, but your interpolation is 1d not 2d unless I am misunderstanding the problem.
The value coming from the griddedInterpolant function g above is your interpolated RPM which you can then match to your pctload.
  1 Kommentar
Alan Gallagher
Alan Gallagher am 16 Mär. 2015
Thanks Adam,
This was correct too, however, interp1 allowed me to create a vector of these values.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Interpolation finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by