Hello, hi again,
In the glorious times when I was an engineering student (IST of Lisboa,
1985) I had worked on a simulator of a car. I will try to remember what
I had done and introduce some new elements and factors. This will result
in a new model that can be implemented by GP3 F1 simulator. I will begin
with a intuitive introduction taking a simple problem of real life and
next I will go into the mathematical details of the model.
1. THE PROBLEM OF OPEL TIGRA-MINIMIZING THE ACCELERATION TIME BETWEEN
40-160Km/h
Imagine an Opel Tigra (Cx=0.22!!, the best Cx of the world!) behind a
very big TIR truck at speed of 40Km/h.
Before the overtaking the Tigra was with third gear. Is worthwhile to
reduce to second gear before overtaking?
Assume that Tigra gear box is defined by
Vmax1=40Km/h, Vmax2=80Km/h, Vmax3=120Km/h, Vmax4=160Km/h e
Vmax5=190Km/h.
The maximum rpm is max_rpm=6000 RPM.
We have that the rpm with third gear and speed of 40Km/h is
rpm(3,40Km/h)=40/120 6000=2000 rpm and the rpm with second gear is
rpm(2,40Km/h)=40/80 6000=3000 rpm.
As the maximum torque is attained at 4000 rpm, we are in the ascendent
zone of the curve of torque and therefore we have greater torque at 2nd
gear, so is worthwhile to reduce to second gear before overtaking.
Next, the Tigra driver must accelerate in 2nd gear until what speed?
He/she must accelerate until the speed, V, such that we have the rpm in
third gear, rpm(3,V), is a little less than 4000 rpm- rpm of maximum
torque, for example 3800 rpm.
We have rpm(3,V)=V/120 6000=3800 => So the Tigra driver must accelerate
in 2nd gear until the speed of 76 Km/h to which corresponds a rpm of
rpm(2,76Km/h)=76/80 6000=5700 rpm, very near the maximum rpm.
Repeating the reasoning, the Tigra driver must accelerate in third gear
until the speed, V, such that the rpm is rpm(4,V)=V/160 6000=3800 => So
he/she must accelerate in third gear until the speed of 101 Km/h which
corresponds a rpm of rpm(3,101Km/h)=101/120 6000=5067 rpm, far from the
maximum rpm.
Finally he/she must accelerate in fourth gear until the speed, V, such
that rpm(5,V)=V/190 6000=3800
therefore the Tigra driver must accelerate in fourth gear until the
speed of 120Km/h which corresponds a rpm of rpm(4,120Km/h)=120/160
6000=4500 rpm, a little bit after the maximum torque.
This ideal behavior of the Tigra driver can be obtained through an
automatic gear box- see next section.
2. MODEL OF AN AUTOMATIC GEAR BOX
The torque curve translates in the curve of engine maximum acceleration
a_engine(rpm), with
rpm=V/Vmax(gear) max_rpm, where max_rpm is the rpm at which the engine
produces the maximum power. In my model the torque curve is defined by
two straight segments, the ascendent segment with a big positive slope,
defined by a_engine(rpm)=c1 rpm+c2, with c1>0,c2>0 and the descendent
segment with a small negative slope, defined by a_engine(rpm)=c3 rpm +
c4, with c3<0, c4>0; this way we need only 3 points
(rpm0,a_engine(rpm0)), typical value is rpm0=1000 rpm,
(rpm1,a_engine(rpm1)), the point of maximum torque and
(rpm2,a_engine(rpm2)), where rpm2 can be for instance rpm2=max_rpm. If
we draw the graph of a_engine(rpm(gear,V)) we see that exists a point
of the descendent segment where the driver must change the gear to
gear+1 because a_engine(rpm(gear+1,V))>a_engine(rpm(gear,V)).
And when the driver pulls the foot and/or brakes? In that case the
engine 'brakes' proportionaly to rpm; therefore I model the engine
deceleration as
a_engine(rpm)=-max_decel rpm/rpm_max.
So when the driver pulls the foot and/or brakes our automatic gear box
searches the gear that maximizes the rpm but without surpassing max_rpm
(and break the engine!). These considerations led us to the following
model of an automatic gear box that I will use in the following
sections:
Acceleration:
1. Change to gear-1 if a_engine(rpm(gear-1,V))>a_engine(rpm(gear,V)).
2. Accelerate with the same gear while
a_engine(rpm(gear,V))>a_engine(rpm(gear+1,V)).
3. Change to gear+1 when a_engine(rpm(gear+1,V)) >
a_engine(rpm(gear,V)).
Deceleration:
1. When the driver pulls the foot and/or begins to brake change to
gear-k as lower as possible to maximize
rpm(gear-k,V) but still less or equal to max_rpm.
2. While rpm(gear-1,V)>max_rpm, decelerate with gear.
3. When max_rpm > rpm(gear-1,V), change to gear-1.
Very simpleI don't understand why the production cars don't have
automatic gear boxes
may be they are very spensive and have a low level of fiability?! While
the car constructers don't install automatic gear boxes on their models
they could apply this model and determine the optimal speeds/rpm to
change to gear+1 through the solution of a couple of linear equations
defined by gear=14, a_engine(rpm(gear,V))=a_engine(rpm(gear+1,V)) and
give these data to their clientsand buy my solution for this problem
implemented in Excel!
3. MATHEMATICAL MODEL AND ITS EXACT SOLUTION
In one line, my model is described by the following diferential
equation:
a(t)=dv/dt=a_engine(rpm(gear(t),v))-a_brakes(t)-(1+P_Mec_Losses(v))/mF1
1/2 rho Cx Sx v^2+g sin(longi_slope(t))
Where P_Mec_Losses(v)=c1 v+c2, c1<0, c2>0 is the percentage of losses
due to atrit and other mechanical losses. For a small enough time
interval, eg 0.1 s, gear(t), a_brakes(t) and longi_slope(t) will be
constants and therefore the equation can be written:
dv/(a v^2 + b v + c)=dt
Consulting my old table of integrals and solving for speed v we have
that
v(t)=(b (c1 exp(d t)-1) + d (c1 exp(d t)+1)) / (2 a (1- c1 exp(d t))),
where d=SQRT(b^2- 4 a c), c1=( 2 a b v(0) - d) / (2 a b v(0) + b + d).
Note that b=f1(gear,v) but b is constant for a certain interval
[v1(gear),v2(gear)]; c=f2(v) but c is constant for the same interval.
Although the expression of v(t) is simple, the exponential consumes lot
of CPU time and therefore I will implement my model with numerical
integration- see next section.
4. IMPLEMENTATION OF THE MODEL: NUMERICAL INTEGRATION
I consider a certain small enough time interval, Delta_t, and I consider
that between t and t+Delta_t the aceleration is constant and equal to
a(t). Assume that at t=0, v(0)=0, x(0)=0, we have
v(Delta_t)=a(0) Delta_t,
x(Delta_t)=1/2 a(0) Delta_t^2
v(2 Delta_t)=v(Delta_t)+a(Delta_t) Delta_t,
x(2 Delta_t)=x(Delta_t) + v(Delta_t) Delta_t+ ? a(Delta_t) Delta_t^2
and this way until N Delta_t, N any integer.
5. NUMERICAL EXAMPLES OF APPLICATION TO AN F1 CAR
In a later post, if I find the data, I will apply my model to the
calculation of the acceleration time and acceleration distance 0-Vmax
and times and braking distances Vmax-0Km/h of some production cars, eg
my dear Opel Tigra. For now I will apply my model to a typical F1 car.
V12 (!)Engine 3000cc=>P=800 HP (1 HP~746 watt) at max_rpm=17000 rpm,
Slow track=>Cd=1.4, Sx=1.8m^2
P_Mec_Losses=0.2,
P=1.2 ? 1.2 1.4 1.8 Vmax^3 => Vmax=69 m/s=249 Km/h, P=Fengine(17000)
Vmax=> Fengine(17000)=8649 N
mF1=620Kg (the regulations impose a minimum of 600Kg, see
http://www.fia.com/regle/reg_tec/f1-97-a.htm)
so a_engine(max_rpm)=1.42 g.
I will consider the maximum torque at rpm1=8500 rpm,
a_engine(rpm1)=a_engine(max_rpm)/0.65=2.19g , and
rpm0=1500 rpm, a_engine(rpm0)=0.35 a_engine(rpm1)=0.77g.
Gear Box:
Vmax1=50Km/h, Vmax2=100Km/h, Vmax3=150Km/h, Vmax4=200Km/h,
Vmax5=250Km/h, Vmax6=300Km/h.
Obtention of a_engine(rpm):
-deceleration: a_engine(rpm)=-max_decel * rpm/max_rpm, with
max_decel=0.3g
-acceleration, ascendent zone (rpm<rpm1):
a_engine(rpm)=(a_engine(rpm1)-a_engine(rpm0))/(rpm1-rpm0) rpm + b
0.77g=(2.19g-0.77g)/(8500-1500) 1500 + b => a_engine(rpm)= 1.42g/7000
rpm+0.47g
descendent zone (rpm>rpm1):
a_engine(rpm)=(a_engine(max_rpm)-a_engine(rpm1)/(max_rpm-rpm1) rpm + b
1.42g=(1.42g-2.19g)/(17000-8500) 17000 + b => a_engine(rpm)= -0.77g/8500
rpm + 2.96g
5.1 CALCULATION OF TIME AND DISTANCE OF BRAKING 249-120Km/h
Assume that the straight of the finishing line terminates in a curve
with entry speed of 120Km/h. When must the pilot begin to brake? We have
v(0)=69 m/s e x(0)=0. I begin to determine the points where the pilot
must change gear:
6th->5th: at 250Km/h so change to 5th gear when the braking begins,
5th->4th: when V<200Km/h, 4th->3th: when V<150Km/h,
I will consider a_brakes(t)=3g and longi_slope(t)=0o and Delta_t=0.2 s.
We have
a(0)= a_engine(rpm(5,249))-3g-0.00293 (249/3.6)^2=-249/250
0.3g-3g-1.43g=-4.7g(!!)
v(0.2)=69 - 4.7 9.81 0.2=59.7 m/s=215 Km/h(!!),
x(0.2)=69 0.2 - ? 4.7 0.04=13.71 m(!!)
a(0.2)= a_engine(rpm(5,215Km/h))-3g-0.00293 (215/3.6)^2=-215/250
0.3g-3g-1.07g=-4.33g
v(0.4)=59.7- 4.33 9.81 0.2=51.2 m/s=184 Km/h < 200Km/h=> change to 4th
gear
x(0.4)=13.71+59.7 0.2 - ? 4.33 9.81 0.04=24.8 m
a(0.4)= a_engine(rpm(4,184))-3g-0.00293 (184/3.6)^2=-184/200
0.3g-3g-0.78g=-4.06g
v(0.6)=51.2 - 4.06 9.81 0.2=43.2 m/s=156 Km/h
x(0.6)=24.8+ 51.2 0.2 - ? 4.06 9.81 0.04=34.2 m
a(0.6)= a_engine(rpm(4,156))-3g-0.00293 (156/3.6)^2=-156/200
0.3g-3g-0.56g=-3.79g
v(0.8)=43.2- 3.79 9.81 0.2=35.8 m/s=129Km/h<150Km/h => change to 3rd
gear
x(0.8)=34.2 + 43.2 0.2- ? 3.79 9.81 0.04=42.1 m
a(0.8)= a_engine(rpm(3,129))-3g-0.00293 (129/3.6)^2=-129/150
0.3g-3g-0.38g=-3.64g
Reducing now Delta_t=0.05
v(0.85)=35.8- 3.64 9.81 0.05=34.0 m/s=122Km/h
x(0.85)=42.1+35.8 0.05- ? 3.64 9.81 0.0025=44 m
Therefore the pilot must begin to brake and change gears 44 m before the
curve and the braking would take 850 ms(!).
5.2 CALCULATION OF ACCELERATION TIMES 0-100Km/h AND 0-249Km/h
I will consider Delta_t=0.5 s, v(0)=0 e longi_slope(t)=0o. Before
beginning the iterations I will obtain the speeds at which the gear must
be changed. first->2nd: we have a_engine(rpm(1,V))=a_engine(rpm(2,V)),
where the term of left side belongs to the descendent zone of the curve
of the torque and the term of the right side belongs to the ascendent
zona; so we have,
_-0.77g/8500 V/50 17000 + 2.96g=1.42g/7000 V/100 17000+0.47g
=>V12=38Km/h.
2nd->3rd: _-0.77g/8500 V/100 17000 + 2.96g=1.42g/7000 V/150
...
read more »