PDA

View Full Version : Tyre Data



David Goodwin
10-10-2008, 06:32 PM
Ive done a search on here but none of the threads seem to answer my question which is,

I know there are large groups of you who have bought Tyre data, I was wondering how did you utilize it to its full potential? I know there is a lot of work involved with it, however how demanding did people find this to achieve the most out of their tyres? How adverse where its effects on your suspension geometry etc, and how adverse where its effects on your results?

Any help anyone can offer is greatly appreciated.

Cheers, Dave

MalcolmG
10-10-2008, 06:56 PM
I don't think there's any way you can consider suspension changes due to a better knowledge of the tyre behaviour as "adverse".

The majority of what I've done with the tyre data has been utilising the Miliken Research Associates tyre models that come with the data. They are basically MATLAB based models which characterise the behaviour of the tyres from the raw data, and allow you to input values like slip angle, normal force and camber and returns lateral force. You can quickly generate plots which give you a good idea of what the tyres want - which is also an excellent way to choose tyres - learn the characteristics based on the model and decide which you consider favourable.

I've been doing a lot of preparation for the design event by trying to better familiarise myself with the data, and it makes me wonder how you would defend your kinematics and tyre choice in the design event without tyre data

PSUAlum06
10-10-2008, 08:50 PM
I think the main things to look at are how the tires respond to load and camber changes, where the peak lateral force occurs, and the shape of the curve as it saturates (does it fall off sharply or is it flat.

The other thing that you might want to look at is overturning moment (Mx). If you divide it by normal force you'll be left with a deflection. While Bill Cobb (how's retirement btw?) might try to tell you that this'll give you a lateral springrate, what it's really giving you is the lateral deflection of the tire's pressure center(and not the centerline).

If you plot this as a function of slip angle for multiple loads and cambers you can get a really good idea of what is happening in the footprint of the tire under dynamic conditions.

Researchers with GM and Toyota have both put out papers on this in the last year or so. I won't point out who, but one of them is right and the other is wrong.

ed_pratt
10-11-2008, 05:23 AM
Hi guys,

this is a great topic, i hope a few more people put some input into it.
Im just starting to use the data and trying to learn what to look at. some of what we would like to look at is not covered in the milliken model and must be found by playing with the raw data in matlab. Things like camber vs. lateral force to check the optimum camber(for camber thrust generation) for a given normal load and consequently, camber sensitivity. I remember reading a thread that ben (UB racing ?) had started about giving a talk on the use of tyre data at west - perhaps if he could give us some tips on what else to look for and how we can alter our suspension kinematics to suit said data, or if anyone else cares to comment that would be great!

thanks

ed

J.R.
10-11-2008, 08:06 AM
A good way to see how much camber your tyres want, and how sensitive they are to load, is the tyre load sensitivity graph (ch 2 RCVD). This will allow you to determine just how sensitive your tyres are to load changes, compared to others, as well as camber angle that they are set at. This can lead to telling you what track you want to run, as well as the camber gain that is required by your tyres, and how critical that camber gain is.

exFSAE
10-11-2008, 09:17 AM
Dave-

Let me put this question to you. How could you design a suspension properly without having tire data?

The chassis reacts to tire forces and moments, and that is what the driver feels. Not imaginary points and lines moving around under him or going through him. My own feeling is I don't care what RC's and such do on their own.. I want to know what its doing to the tire forces and position... and how that's changing how much grip I have or the car handling.

David Goodwin
10-11-2008, 09:50 PM
exFSAE

Well this is what I'm wondering about. In previous yrs our teams have relied on the previous yrs experience with the tyres we use to base their designs on. Although this is a fairly "eyeballing it" way of doing things, without the proper analysis of the data, although useful to have, isn't that valuable.

In addition to this, our team is now going reducing in size for next yr, so the workload will now increase and I'm worried that if we do get this data, we won't be able to put in the valuable time and effort into analysing it appropriately.

exFSAE
10-12-2008, 08:52 AM
Originally posted by David Goodwin:
exFSAE

Well this is what I'm wondering about. In previous yrs our teams have relied on the previous yrs experience with the tyres we use to base their designs on. Although this is a fairly "eyeballing it" way of doing things, without the proper analysis of the data, although useful to have, isn't that valuable.

In addition to this, our team is now going reducing in size for next yr, so the workload will now increase and I'm worried that if we do get this data, we won't be able to put in the valuable time and effort into analysing it appropriately.

When I was a junior and then senior, first order of business was to throw out most of the "previous years experience" because a lot of it was "previous years crap." Assortment of myths, half-truths, and some facts sprinkled in from having done karting, and reading some Carroll Smith and Paul Haney books. You've got to look at the data and analyze it fresh, for yourself.

Anything like "well this is what last year's guys said..." instantly throws red flags in my book. Some of it is good stuff, a lot isn't. Besides, judges want nothing of it. If you can't prove it or show it, what good is it?

Anyway. I didn't know a damn thing about tire data before I looked at it for the first time. You'd be surprised how little "analysis" is required to realize a lot about how your suspension is going to have to work. Couple afternoons maybe?

How small is your team going to be? Ours was reduced from 13 to 11 to 9. Doesn't really matter anyway. Important thing isn't so much how many total team members you have, as much as how many good guys (and girls) vs how many flakes. 3-4 good people is what it generally seemed to come down to, to get the car done.

David Goodwin
10-12-2008, 09:01 AM
our team is going to be approx 12 guys including management.

I know what your talking about with previous years, but in some ways you do need to evolved the previous years car.

I believe we are leaning more towards getting the data, as not only will it provide us with invaluable data, but also successive years.

As the previous year has said, it is good to have from a judging perspective as it backs up your decision to go in a certain direction re: your design.

Hopefully given the time and persistence, we should be able to use this data effectively.

bahous
10-12-2008, 11:21 AM
On the tyre data subject, my team bought the DVD with the CALSPAN/TIRF data on it. All the data is written in MATLab code. There's a pdf file that explains in 3 lines how to retrieve the data.

However, since my knowledge in MATlab is not very extensive (almost non-existent), I don't know how to get the data that I need.

Anyone can give me a hand on the steps needed to get the data. Does it involve writing a new code or just removing comment signs from the given code?

thanks

JP Bahous
Suspension Manager

dkl
10-12-2008, 09:21 PM
bahous,

You can begin to get data from Matlab simply by removing appropriate comment signs, and a fair bit more by simply adapting the code a bit. Depending on how little experience you have, I'd recommend the MathWorks online tutorials, and of course the extensive built-in documentation for Matlab.

BillCobb
10-13-2008, 10:37 AM
Lets try this: Here is some Matlab code which allows you to play with the tire data on the TTC disk. You will need the Spline toolbox for it to work. I'm not sure how this will flow in the Forum paragraphs, but let's see. If all goes well, pick the B1175run1.dat file in the GUI panel. This looks best when used with the "Publish" feature from the Matlab Editor....

%% Matlab Processing of FSAE TTC Tire Test Data
%
% *Bill Cobb
% Vehicle Dynamics Center
% General Motors Corp. [soon to retire]
% (248) 515-5145
% (810) 588-9519
% william.a.cobb@gm.com
% zzvyb6@yahoo.com*
%

%% Introduction
% This Matlab code reads a user Selected TIRF Raw Text file for a Pure Slip
% test condition and produces Splined Surface Structures for all dependent variables.
%
% It is intended to be a starting point for FSAE users wishing to produce their own
% tire models. The resulting Matlab spline structures are compatible
% with various commercial and home grown handling simulations via a Simulink
% interface.
%

%% Fetching the data file name using builtin function
% |uigetfile| is handy to fetch the path and filename of your test file.
% You will probably want to make a change to the next line to match your TIRF file
% locations:

[filename pathname]= uigetfile('*.dat','Enter TIRF Test File','D:\Round3\RawData_ASCII_Metric\')

%% Importing a data file
% |importdata| is a built-in Matlab data readinf routine.
% The resulting structure |t| will have a set of text and numeric fields.

t = importdata([pathname filename])

%% Determination of Channel Names:
% Since TIRF files can contain any number of arbitrary data channels, we
% don't assume which ones are there or the order they are in.
%
% By the way, the TIRF channels we are assuming to be here are:
%
% |*SA* = Slip angle|
% |*IA* = Camber Angle|
% |*FZ* = Vertical Load|
% |*FY* = Lateral Force|
% |*MX* = Overturning Moment|
% |*MZ* = Aligning Moment|
% |*RL* = Rolling Radius|
%
% If any of these channels are not in the file, Houston, we're gonna have a
% problem.
%
% Here we go:

names = t.textdata{2}
nchans = size(t.data,2)

%% Eliminate Unused Data
% Here, we toss out the 1st 1500 pts (warmup). Brackets mean just go away:
%
t.data(1:1500,http://fsae.com/groupee_common/emoticons/icon_smile.gif=[];

%% Demultiplex Data Array into Unique Channels
% The next step is to pluck out the names of channels in the file and assign the data array elements to these names.
%
for n=1:nchans % demultiplex
[name,names]=strtok(names);
eval([upper(name) '= t.data(:,' num2str(n) ');']);
end

%% Spline the Slip Channel to locate Points of Interest
% Here we are going to sniff out the key locations in the slip stream
% corresponding to the beginning and ending of the slip sweep.
%
% First, define a point vector corresponding to the SA index.
% Then use the builtin spline function to give us a continuous function.
% By adding 3.5 to the slip angle data, we shift the function up towards
% the zero level. Remember that the test procedure starts the slip sweep
% beginning at -4 degrees.
%
% The reason for this will be revealed in the next step.
%
m = 1:length(SA); % point counter
sp = spline(m,SA+3.5); % fit a generic spline to locate zeros.

%% Locate Zeros Indicating Start and Stop Positions
% We now have a splined string of shifted slip angle. The zeros of this
% function include the beginning and ending of the slip sweep. There is some
% extra stuff in there, which may be of interest to the diehards:
%
z=fnzeros(sp); % location of zero crossings
z=round(z(1,http://fsae.com/groupee_common/emoticons/icon_smile.gif); % no dups and integer indices are required.

%% Checking your results with a plot
% Plotting the slip angle channel with the zero points indicated is a good
% check to see if there has been a problem. The full plot is a bit to
% muddy, so we zoom into the first few seconds of the run.

figure('Name','Locations of Test Slip Sweep william.a.cobb@gm.com','NumberTitle','Off') % Just checkin'
plot(m,SA,'r')

%% Eliminating unnecessary zero conditions
% Because there are some 'zero' points that we don't need, send them to the
% trash:

z([4:4:length(z)])=[]; % drop kick the shutdown points;

%% Show Abreviated Slip sequence with indicated Zeros
% This tells us we're on the right track:
hold on
xlim([0 3200]) % Don't need to see All the data...
plot(z,zeros(length(z)),'bo')
line([0 m(end)], [0 0],'color','k')
xlabel('Point Count')
ylabel('Slip Angle')
legend('Test Data','Computed Slip Points of Interest'),legend Boxoff

% Don't want to remember any data from apprevious processing session:

clear fmdata % not a speck of cereal..

%% Outputting scans of data for each slip, load, and camber condition
% Now we need to spew out the data as a sequential data vector for each
% separate slip, load and camber scan:
% q is the scan pointer
q = 0;
% Subset the data:
for n=7:3:length(z) % for some reason there are some repeat runs here. Skip them
sa=SA(z(n):z(n+2));
fz=FZ(z(n):z(n+2));
fy=FY(z(n):z(n+2));
mz=MZ(z(n):z(n+2));
mx=MX(z(n):z(n+2));
rl=RL(z(n):z(n+2));
ia=IA(z(n):z(n+2));

% Now we have collected the tire channels for each full slip sweep.
%
% Next step is to capture the rational data between the max and minimum
% values, peek at the endpoints, fix up some problems at the MZ endpoints,
% and proceed with data fitting.

[tmp,imn]=min(sa);
[tmp,imx]=max(sa);
p=1:length(sa);
rng=imx-50:imx+50; % This is a range of our data at maximum MZ
%
% Being careful not to use a Matlab reserved word for a variable name.
%
warning off % Keep down the chatter over multiple observations

% fit this data to a polynomial. Crude but fair. We are only using it
% to look for outliers.
pp=polyfit(p(rng),mz(rng)',3);
warning on
mzf=polyval(pp,p(rng));

% This step spots data values for MZ that are greater than an arbitray
% level. I believe these spikes are related to the MZ transient response.
% A smarter approach would be to use normalized residuals, but who did
% I just hear volunteer for that task?
%

ind=find(abs(mzf-mz(rng)') > 7);
mz(rng(ind))=mzf(ind);

rng=imn-50:imn+50;% This is a range of our data at minimum MZ
warning off
pp=polyfit(p(rng),mz(rng)',3);
warning on
mzf=polyval(pp,p(rng));

ind=find(abs(mzf-mz(rng)') > 7);
mz(rng(ind))=mzf(ind);

%% Spline fitting the continuous data to subset it with 1 Degrre increments
% with some tighter tension:
%
sp_fy=csaps(sa,fy,.1);
sp_mz=csaps(sa,mz,.1);
sp_mx=csaps(sa,mx,.1);
sp_rl=csaps(sa,rl,.1);

%% Check out Segment 10
% Just out of curiosity, what kind of data are we dealing ?

if isequal(n,10)
figure('Name',[upper(filename) ': Aligning Moment vs. Slip Angle & Vertical Load ' ' william.a.cobb@gm.com'],'numbertitle','off')
subplot(3,1,1)
hold on
plot(sa,fy,'.','color',[.5 .5 .5])
fnplt(sp_fy,'b')
title({['Fz= ' num2str(round(mean(fz))) ' N'];['IA= ' num2str(round(mean(ia))) '?']})
xlabel('Slip Angle')
ylabel('Lateral Force')
line([min(sa) max(sa)],[0 0],'color','k')
line([0 0],[min(fy) max(fy)],'color','k')
legend('Test Data','Fitted Data')
subplot(3,1,2)
hold on
plot(sa,mz,'.','color',[.5 .5 .5])
fnplt(sp_mz,'b')
xlabel('Slip Angle')
ylabel('Aligning Moment')
line([min(sa) max(sa)],[0 0],'color','k')
line([0 0],[min(mz) max(mz)],'color','k')
subplot(3,1,3)
hold on
plot(sa,mx,'.','color',[.5 .5 .5])
fnplt(sp_mx,'b')
xlabel('Slip Angle')
ylabel('Overturning Moment')
line([min(sa) max(sa)],[0 0],'color','k')
line([0 0],[min(mz) max(mz)],'color','k')
end

for sl=floor(min(sa)):1:ceil(max(sa)); % This is the only pushup step required:
q=q+1;
fmdata(q,1)=sl;
fmdata(q,2)=round(mean(ia));
fmdata(q,3)=mean(fz);
fmdata(q,4)=fnval(sp_fy,sl);
fmdata(q,5)=fnval(sp_mz,sl);
fmdata(q,6)=fnval(sp_mx,sl);
fmdata(q,7)=fnval(sp_rl,sl);
end
end
% All done with the hard work,

%% Sort Data Array by Camber, Slip and Load Groups
% Use |sortrows| to preserve the array correspondence.

fmdata = sortrows(fmdata,[2,1,3]);

%% Determining Data Sets (Slip, Load, Camber):
% Get the distinct values and counts of each data set:

incls = unique(round(fmdata(:,2)))'
nincls = length(incls)

slips = unique(round(fmdata(:,1)))'
nslips = length(slips)

%% Check Visuals for Zero Camber Subset:
% Stuck living in a 3-D world, we can only look at a graph of w=f(u,v).
% First sniff out indices of the zero camber rows:

inx0 = find(fmdata(:,2) == 0); % zero camber points

% then grab the rest of the zero camber condition data:

fmdata0 = fmdata(inx0,http://fsae.com/groupee_common/emoticons/icon_smile.gif;

% Next, we transpose the arrays to make our spline functions happy:

loads = mean(reshape(fmdata0(:,3),[],nslips),2)'
nloads = length(loads)
% Take a look at FZ:
fz0 = reshape(fmdata0(:,3),nloads,nslips)'
fy0 = reshape(fmdata0(:,4),nloads,nslips)';
mz0 = reshape(fmdata0(:,5),nloads,nslips)';
mx0 = reshape(fmdata0(:,6),nloads,nslips)';
%
% Normalized FY for you folks headed to the tire industry:
nfy0 = fy0./fz0

% now we are ready to rock 'n roll.
%% Beer break...
% All the test data has been reduced to a reasonable grid of fixed slips, cambers and loads.
% All that remains is to do something with it in the tire model world.

%% FY Surface Fit (Zero Camber):
% This process uses the spline toolbox functions to generate fitted surfaces.
% CSAPS is a cubic - smoothed spline allowing multiple obervations at grid
% points with default or user prescribed tension

LATE_SLIP_VERT = csaps({slips,loads},fy0,.9)
figure('Name',[upper(filename) ': Lateral Force vs. Slip Angle & Vertical Load ' ' william.a.cobb@gm.com'],'numbertitle','off')
fnplt(LATE_SLIP_VERT)
xlabel('Slip Angle (deg)')
ylabel('Vertical Load (N)')
zlabel('Lateral Force (N)')
view(45,45)

%% Cornering Stiffness Surface Fit (Zero Camber):

CS=fnder(LATE_SLIP_VERT,[1,0])
figure('Name',[upper(filename) ': Cornering Stiffness vs. Slip Angle & Vertical Load ' ' william.a.cobb@gm.com'],'numbertitle','off')
fnplt(CS)
xlabel('Slip Angle (deg)')
ylabel('Vertical Load (N)')
zlabel('Cornering Stiffness (N/deg)')

%% Normalized Lateral Force Surface fit
NLATE_SLIP_VERT = csaps({slips,loads},nfy0)
figure('Name',[upper(filename) ': Load Normalized Lateral Force vs. Slip Angle & Vertical Load ' ' william.a.cobb@gm.com'],'numbertitle','off')
fnplt(NLATE_SLIP_VERT)
xlabel('Slip Angle (deg)')
ylabel('Vertical Load (N)')
zlabel('Lateral Force (N)')
view(45,45)

% Wow, look at the mu on that baby, good as a Sprint Cup Left Side Tire !!

%Here's the traditional normalized cornering stiffness use in industry:
NCS=fnder(NLATE_SLIP_VERT,[1,0])
figure('Name',[upper(filename) ': Normalized Cornering Stiffness vs. Slip Angle & Vertical Load ' ' william.a.cobb@gm.com'],'numbertitle','off')
fnplt(NCS)
xlabel('Slip Angle (deg)')
ylabel('Vertical Load (N)')
zlabel('Normalized Cornering Stiffness (N/deg/N)')

%% MZ Surface Fit (Zero Camber):
ALNT_SLIP_VERT = csaps({slips,loads},mz0,.9)
figure('Name',[upper(filename) ': Aligning Moment vs. Slip Angle & Vertical Load ' ' william.a.cobb@gm.com'],'numbertitle','off')
fnplt(ALNT_SLIP_VERT)
xlabel('Slip Angle (deg)')
ylabel('Vertical Load (N)')
zlabel('Aligning Moment(Nm/deg)')
%
%% MX Surface Fit (Zero Camber):
OVTM_SLIP_VERT = csaps({slips,loads},mx0,.9)
figure('Name',[upper(filename) ': Overturning Moment vs. Slip Angle & Vertical Load ' ' william.a.cobb@gm.com'],'numbertitle','off')
fnplt(OVTM_SLIP_VERT)
view(30,45)
xlabel('Slip Angle (deg)')
ylabel('Vertical Load (N)')
zlabel('Overturning Moment (Nm)')
%
%% Pneumatic Scrub Surface Fit (Zero Camber):
PSCRUB_SLIP_VERT = csaps({slips,loads},1000*mx0./fz0,.9)
figure('Name',[upper(filename) ': Pneumatic Scrub vs. Slip Angle & Vertical Load ' ' william.a.cobb@gm.com'],'numbertitle','off')
fnplt(PSCRUB_SLIP_VERT)
view(30,45)
xlabel('Slip Angle (deg)')
ylabel('Vertical Load (N)')
zlabel('Pneumatic Scrub (mm)')
%
%% Pneumatic Trail Surface Fit (Zero Camber):
PTRAIL_SLIP_VERT = csaps({slips,loads},1000*mz0./fy0,.707)
figure('Name',[upper(filename) ': Pneumatic Trail vs. Slip Angle & Vertical Load ' ' william.a.cobb@gm.com'],'numbertitle','off')
fnplt(PTRAIL_SLIP_VERT)
view(30,45)
title('Although I would not produce Pneumatic Trail this way, good guess, though ...')
xlabel('Slip Angle (deg)')
ylabel('Vertical Load (N)')
zlabel('Pneumatic Trail (mm)')
%
%% Subset Scans of Zero Slip Angle
inx0 = find(fmdata(:,1) == 0); % zero slip points
fmdata0 = fmdata(inx0,http://fsae.com/groupee_common/emoticons/icon_smile.gif;
loads = mean(reshape(fmdata0(:,3),[],nincls),2)'
nloads = length(loads)
fy0 = reshape(fmdata0(:,4),nloads,nincls)';
mz0 = reshape(fmdata0(:,5),nloads,nincls)';
mx0 = reshape(fmdata0(:,6),nloads,nincls)';
%
%% FY Surface Fit (Zero Slip):
LATE_INCL_VERT = csaps({incls,loads},fy0,.9)
figure('Name',[upper(filename) ': Lateral Force vs. Camber Angle & Vertical Load ' ' william.a.cobb@gm.com'],'numbertitle','off')
fnplt(LATE_INCL_VERT)
xlabel('Camber Angle (deg)')
ylabel('Vertical Load (N)')
zlabel('Lateral Force (N)')
%
%% MZ Surface Fit (Zero Slip):
ALNT_INCL_VERT = csaps({incls,loads},mz0,.9)
figure('Name',[upper(filename) ': Aligning Moment vs. Camber Angle & Vertical Load ' ' william.a.cobb@gm.com'],'numbertitle','off')
fnplt(ALNT_INCL_VERT)
xlabel('Camber Angle (deg)')
ylabel('Vertical Load (N)')
zlabel('Aligning Moment (Nm)')

%% MX Surface Fit (Zero Slip):
OVTM_INCL_VERT = csaps({incls,loads},mx0,.9)
figure('Name',[upper(filename) ': Overturning Moment vs. Camber Angle & Vertical Load ' ' william.a.cobb@gm.com'],'numbertitle','off')
fnplt(OVTM_INCL_VERT)
xlabel('Camber Angle (deg)')
ylabel('Vertical Load (N)')
zlabel('Overturning Moment (Nm)')

BillCobb
10-13-2008, 10:41 AM
I just love it. The smiley face is a "colon closed parentheses string". WTF.

BillCobb
10-13-2008, 10:49 AM
If you get the first script to run, you will have force & moment data as a fucntion of 2 variables (slip and load). Add some more technology by making functions of slip, load, and camber (if you have the inclination). Extra points to make up functions of slip, load, camber and pressure). THEN you will have the tools to do a REAL optimization project.

Here's the slip, load, camber deal. BTW: you need a 4-D screen plot to look at this. Saving the functions saves some time and works well in the next feature: using this data with Simulink.

fy = reshape(fmdata(:,4),nloads,nslips,nincls);
LATE_VERT_SLIP_INCL = csaps({loads,slips,incls},fy)
figure('numbertitle','off','name','Lateral Force vs. Load, Slip and Camber william.a.cobb@gm.com','menubar','none')
slip=-2:1:2;
incl=0:.1:4;
load =-2000
cfy= squeeze(fnval(LATE_VERT_SLIP_INCL,{-2000,slip,incl}));
p=plot(incl,cfy);
grid on
legend('-2?Slip','-1?','0?','1?','2?')
xlabel('Camber Angle (deg)')
ylabel(['Lateral Force (N) @ ' num2str(load) ' N'])

mz = reshape(fmdata(:,5),nloads,nslips,nincls);
ALNT_VERT_SLIP_INCL = csaps({loads,slips,incls},mz)
figure('numbertitle','off','name','Aligning Moment vs. Load, Slip and Camber william.a.cobb@gm.com','menubar','none')
fnplt(ALNT_VERT_SLIP_INCL)
xlabel('Vertical Load (N)')
zlabel('Aligning Moment (Nm)')
ylabel('Slip Angle')

mx = reshape(fmdata(:,6),nloads,nslips,nincls);
OVTM_VERT_SLIP_INCL = csaps({loads,slips,incls},mx)
figure('numbertitle','off','name','Overturning Moment vs. Load, Slip and Camber william.a.cobb@gm.com','menubar','none')
fnplt(OVTM_VERT_SLIP_INCL)
xlabel('Vertical Load (N)')
zlabel('Overturning Moment (Nm)')
ylabel('Slip Angle')

save FSAE.mat LATE_VERT_SLIP_INCL ALNT_VERT_SLIP_INCL OVTM_VERT_SLIP_INCL

exFSAE
10-13-2008, 11:45 AM
you need a 4-D screen plot to look at this.

We knew you were crazy. But not that crazy.

bahous
10-13-2008, 11:50 AM
holy ****

BillCobb, you really went the extra mile here. thanks a lot. i'll read through it and try to apply it. i really appreciate it even though you probably just copy-pasted your code.

J.R.
10-13-2008, 12:51 PM
BillCobb,

I might be a minority here, but I just spent a LONG time developing a GUI for the tyre data to make things easier to work with. Having this code posted here by an industry professional basically negates any possible advantage that many hours of work and development may have brought to our team. I really appreciate your posts and insights, and love tips, but having a complete code posted to do all of the work for us really negates any benefit to actually putting in the time and developing this stuff on our own. If this code was included with the original data, and I didn't just spend a month building basically the same system (first time making GUI's) this would be awesome. Now having this posted here, if I had of spent that month working on something else, then this would be extremely helpful.

Does anyone else feel this way? If I am way off base just let me know. I am just curious why you would cut out all of the work for us? If I were still an engine guy, the equivalent seems to be posting a program that would allow you to scroll through runner lengths until you found the one you wanted, rather than working to find out how they work.

Again, I am not trying to be "Forum Police," but I think that this type of info is best included with the tyre data originally, or not at all. I doubt that we were the only team to put the work into developing something similar to this, so do any other teams feel the same way? Or do teams think this is okay for the comp. and those of us who put in the work just need to deal with it?

That said, I will still try and use this code as a comparison for my own http://fsae.com/groupee_common/emoticons/icon_wink.gif

Michael Palaszynski
10-13-2008, 01:09 PM
I hear where you're coming from JR. It makes complicated calculations, a plug and chug problem. Now teams can save time on these calculations and dedicate that time to something else.

But it can be a good thing. It's leveling the playing field. Teams who already fully understand how to analyze the data have gained nothing, and those who previously struggled with it now are given a chance to understand it.

scott_rfr
10-13-2008, 01:47 PM
J.R the way I view it is that no advantage has been gained to a team that has not spent the time developing a model. As you know already the MRA model is already provided and all Bill basically did was provide a way to view the data. Just because you can make pretty plots doesn't mean you will know what to do with it. Even after you run his scripts you need to know what it all means. I have spent a lot of time myself making a program to view the data and I think it's extremely helpful to see what industry is doing due to the fact that many teams work on there own and only during design event might they realize where there theories were right or wrong.

Scott

BillCobb
10-13-2008, 02:07 PM
This code only makes pretty pictures. Working it into a nonlinear simulation and showing the judges how you arrived at the pressure(s), camber, steer arm length, spring rates and anti-roll bar geometries would definitely score some points. That's where your effort should be. Just having the tires analytically available for plotting is not going to get you faster lap times or make your car more maneuverable. Besides, much of the Student Matlab I see is Fortran code with semi-colons added. Time to step up to the big league. BTW: I have an amusing MF5.2 fitter using a bootstrap technique that works pretty well as a Matlab demo. Since we aren't big Pacejka fans, I did it (just like this demo) for the education of car fans. Earlier in the year, I discussed this with Doug Milliken and I was planning to submit this and other codes along with the 4th test series. If you still need something to work on, apply it to the longitudinal data.

If anybody wants to do some car road testing, I can show how that ought to work, too. You build the instruments and record the data. But industry standard processing methods are relevant to this work. No need to reinvent the wheel, boys and girls.

BTW: Since virtually all Calspan test files are from the same template (FSAE or not), most of this script should work for you later in life. Follow a similar load, slip and camber input set and the math is pretty much the same.

J.R.
10-13-2008, 03:00 PM
Originally posted by BillCobb:
Besides, much of the Student Matlab I see is Fortran code with semi-colons added. Time to step up to the big league.

Wow, that's just insulting. As student's we work on what we think is important. A general understanding of the data I though would be something that is worth going into before attempting a model. All I was trying to say, is that this competition is about students learning, not about students being handed information. Judging by the rest of your posts you agree with this.

Why insult me for stating my opinion?

Bill, as I said, I really appreciate the help that you contribute to this forum and if this information had of been included with the tyre data from the beginning, I probably would have a model already developed, but this was the first step that was needed. If you think its a waste of time, why give it to us at all?


If anybody wants to do some car road testing, I can show how that ought to work, too. You build the instruments and record the data. But industry standard processing methods are relevant to this work. No need to reinvent the wheel, boys and girls.

If you're offering to buy the sensors and install them in our car, I definitely wouldn't complain http://fsae.com/groupee_common/emoticons/icon_wink.gif Plus, isn't the whole point of this competition to reinvent the wheel and understand why it's round?

Respectfully,

Mike Macie
10-13-2008, 04:01 PM
Originally posted by BillCobb:
I just love it. The smiley face is a "colon closed parentheses string". WTF.

Took me a while to figure this out.

Reading ahead > Me

BillCobb
10-13-2008, 04:49 PM
Never was trying to or hinting at an insult to anyone's creativity. I am truely sorry if I touched a nerve. My appology to you. Just offering free hints based on the OP. I'd include more House-isms if I was criticizing, such as: "J.R look at the advantage YOU have: just take the Bailey Ave/Genesee bus to Calspan and test your own tires!"

All it takes sometimes to kick start someone's career move into a topology is a wee bit of insight and an opportunity to try something out. Then they look off into the distance and an AHAA comes to life. I believe that is all I was doing. Your own work is still just as valuable because it is your team's. You are now a month ahead of anyone now just picking it up. That is an eon in the racing yearbook.

As far as Matlab experience claims, I've heard it all. But, there's no better way to intrigue a new user than to tease them into asking " what and why did they do it this way?". Unfortuaately with Matlab, you need to know almost all relevant functions before you start. That is, if you eventually want someone to pay you for the work...

A used Vbox is a good investment. I took one and figured out the understeer of my Bass boat with 3, 4 and 5 bladed propellers. Ask if you can borrow one. It worked for me. There a usually a few demo units on hand which they will loan out. Aren't they a sponsor? You need yaw rate and speed. These xducers are cheap. Matlab Instrument toolbox can run a NI card. (eBay).

PSUAlum06
10-13-2008, 06:17 PM
Bill,
I'd be interested in seeing your MF fitter. I have a couple unrelated data fitting projects and I want to see if there are any filtering or fitting strategies I can snag.

ben
10-14-2008, 12:43 AM
Originally posted by BillCobb:
Since we aren't big Pacejka fans,

I guessing by this, and the reference to Doug Milliken that you use the Milliken ND tyre model?

Would you care to elaborate on your (company's?) dislike of Pacejka?

Ben

PSUAlum06
10-14-2008, 03:17 PM
I just hope GM isn't stuck on something using the F, AT, G, and H functions.

BillCobb
10-14-2008, 06:04 PM
Ben: I won't speak for the company, but from my own point of view, there are 2 uses for tire data in math model form: Synthetic: (This is what I need), and analytic (this is what I have). There are 3 regions of handling performance of interest to a vehicle developer: straight ahead driving zone, moderate maneuvering/lane changing, and the all out avoidance maneuver. This is for Fy, Mz, Mx and Fx. What I see in tire tests from many sources and types of equipment (belts and load wheels) are these distinct zones. I have observed Pacejka functions generally missing 1 of the 3 zones. You can tune the fit to get any 2, but not all 3.

Then there is the complexity. Yikes, 20+ coefficients for fy. The fitting process takes some skill and insight, even with MF-Tool. Then exactly how do you go searching for particular families of tire performance where you have to reassemble all the data? Now, a simple and elegant Pacejka model with 4 terms (as in the Bosch:LapSim model) is very appealing: a slope, a peak, a slip at peak, and a couple load dependency terms is very handy for synthesis and specification.

BTW: look how many versions there are: '94, 96, 2001, 5.2, etc. Most with the same parameter names. Get the wrong file into the wrong evaluation function and you have a chocolate mess.

Then there is the MZ and MX issues as they relate to tire transient response: Current Pacejka runs a pneumatic trail function thru Fy to get MZ. But that means that with 0.0 Fy (at zero distance traveled) there is 0.0 Mz, and that's just not true.

Lastly, there is a bit of a asymmetry matching problem. Yes, they have conicity/plysteer and plyrat factors, but if the tires truely are asymmetric, you won't get the proper effect from the model.

Then there is the MX issue. The Pacejka MX function produces an unacceptable response surface. It looks nowhere near the model result for passenger car and truck tires (especially from tires you all say you know and love). The FSAE tires do look pretty good, though I must say, for MX. Just not pretty for the thousands or tires I have data on hand for.

The "company" uses B-Splines and I prefer and use piecewise polynomials in my tire tools. If the computer load is too much for you, feed the mice some protein.

Not sure what you are implying with comment about the F (normalized Fy), AT (normalized Mz), G (load transfer sensitivity) and H (load sensitivity) functions. These concepts are still usefull, but superceeded by real partial derivatives (as you can infer from my simple demos in the code I submitted for you to play with).

Anyone else get the Calspan code to run???

Mike Macie
10-14-2008, 06:57 PM
Originally posted by BillCobb:

Anyone else get the Calspan code to run???

It works fine if i run it as a m-file. But it doesn't when i try to publish to a html. I didn't look into it to see what the problem was.

Thanks again for sharing.

Zac
10-14-2008, 07:40 PM
Bill, an older SAE paper you might want to take a glance at (if you haven't already) is the Paper-Tire, from Pelz and Pottinger. It lays out some equations to go from physical tire properties (location and value of peak force, ratio of peak to slide, and cornering stiffness) to the macro pacejka coefficients.

I know it's probably old hat to you, but it might be useful to someone else on this forum. It gives you three things. First, you can use it to build a simple generic force and moment generator (once you expand it to include some sort of a load and/or camber sensitivity). It's the type of thing you need if you're trying to spec tire properties. Second, it gives actual physical meaning to what's normally a jumble of numbers. Finally, (and probably for the fsae guys, most importantly), it gives you a little bit of a sandbox to play in and see a lot of the inherent limitations and trade-offs in using a pacejka model.

and yeah, from what I've seen, the MX pacejka model is pretty rough. for a tire that's has a short or stiff sidewall, and has massive reserve load capacity (think corvette), you might be able to tweak the coefficients enough to get a not-unreasonable fit. but for a typical passenger car tire the MX response will quickly get out of control.

that script is pretty nice. hopefully it gives teams a good place to start and an interest in analyzing some force and moment data.

exFSAE
10-14-2008, 08:55 PM
There are 3 regions of handling performance of interest to a vehicle developer: straight ahead driving zone, moderate maneuvering/lane changing, and the all out avoidance maneuver.

I prefer the Race, Qualifying, and Tokyo Drift regions.

Plus, with Mz even though Pac does a pneumatic trail model there is a RSAT term in there as well to make it non-zero Mz @ 0 Fy, I believe.

BillCobb
10-14-2008, 10:48 PM
Of course there are rsat (plyrat and conrat) and plysteer and conicity for zero offset terms. The non-zero effect I'm referring to is the effect from a step steer input: Fy(0) is zero, Mz(0) is NOT in a tire, but IS in their models. ( Oops ).

ben
10-15-2008, 01:40 AM
Thanks Bill - interesting comments. From a racing perspective I find the number of coefficients a little excessive, and if the data's sparse in some areas the fit is more related to the method you choose to use than the actual data.

Given the sensitivity of cornering stiffness to tread modulus, we're having more joy comparing tyres using a slip angle sensor on the car at the moment.

Ben

df_fsmb
07-22-2010, 09:51 AM
It has been long since this subject was discussed here, but it helped me today anyway http://fsae.com/groupee_common/emoticons/icon_smile.gif

I have a question for you guys. We are a new team and certainly want to design our car (wheelbase, track, susp. geom. ...) on the basis of understanding the tires.

How many teams do you think are doing Formula SAE with this approach? Everyone?

I am curious because I see that there are more than 250 teams on the FSAE Tyre Conzortium list, who have paid to get the data, but on the other hand there is not so much talk of the tires on the forum, for example...

thewoundedsoldier
07-22-2010, 10:29 AM
There is a forum for TTC members on the MRA website.