0% found this document useful (0 votes)
62 views

QSSTB Manual English.

The document provides a manual for the Quasi-Static Simulation Toolbox (QSS-TB), which allows for fast estimation of fuel consumption for various powertrain systems. The QSS-TB uses a quasi-static approach where vehicle speed is given at discrete time steps, and acceleration and driving forces are calculated, rather than integrating differential equations of motion. This simplifies calculations and allows optimization of control strategies. The manual describes the elements and applications in the QSS-TB, including internal combustion engines, electric motors, batteries, and examples of hybrid vehicle simulations.

Uploaded by

auf
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
62 views

QSSTB Manual English.

The document provides a manual for the Quasi-Static Simulation Toolbox (QSS-TB), which allows for fast estimation of fuel consumption for various powertrain systems. The QSS-TB uses a quasi-static approach where vehicle speed is given at discrete time steps, and acceleration and driving forces are calculated, rather than integrating differential equations of motion. This simplifies calculations and allows optimization of control strategies. The manual describes the elements and applications in the QSS-TB, including internal combustion engines, electric motors, batteries, and examples of hybrid vehicle simulations.

Uploaded by

auf
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 42

Eidgenössiche Ecole polytechnique fédérale de Zurich

Technische Hochschule Politecnico federale di Zurigo


Zürich Swiss Federal Institute of Technology Zurich

QSS-Toolbox Manual

L. Guzzella, A. Amstutz

Engine Systems Lab Ð Institute of Energy Technology

October 1999
Preface

This text describes the design and use of the QuasiStatic Simulation-ToolBox (QSS-TB) which permits a fast
and simple estimation of the fuel consumption for many powertrain systems. This toolbox is used in ongoing
research projects and in the exercises to the lecture "Vehicle Powertrain Systems."

This is the manualÕs first version. The authors welcome any notifications of errors (in content or terminology),
suggestions for improvements or expansion, etc. (send an email to [email protected]).

The QSS-TB is provided to students and other interested persons under the following conditions only:

1. all rights to the program remain with the authors

2. the authors decline any liability related to the use of the QSS toolbox.

This document is not entirely self explanatory; at certain points, the consultation of the script to the lecture
"Vehicle Powertrain Systems" is necessary for comprehension. Its German version may be downloaded from the
website http:www.lms.ethz.ch.
A special thanks to Brigitte Rohrbach for the translation of this manual!
Contents

1 Introduction
1.1 Goals and limitations

1.2 The quasistatic approach

1.3 Introductory example

2 Elements
2.1 Cycles

2.2 Vehicles, ancillary devices

2.3 Internal combustion engines

2.4 Gear system

2.5 Electric motors and generators

2.6 Batteries

2.7 Fuel cells

2.8 Supercapacitors

2.9 Control systems

3 Applications
3.1 Example "Series hybrid vehicle"

3.2 Adding new elements

3.3 Embedding of QSS-TB programs in Matlab

3.4 Example "Optimal transmission design"

Page 3
1 Introduction

1.1 Goals and limitations

Prerequisites

The following two conditions must be met for a user to work efficiently with the QSS-Toolbox (QSS-TB):

• Users must be familiar with Matlab/Simulink, on which this toolbox is based. A familiarity with file
handling, the execution of a simulation, and the presentation of results are minimum prerequisites.

• Users must have a basic understanding of the physics and the design of powertrain systems.

What the QSS-TB can do

The QSS-TB makes it possible for powertrain systems to be designed quickly and in a flexible manner and to
calculate easily the fuel consumption of such systems. The QSS-TB contains examples of a number of elements.
Chapter 2 contains detailed descriptions of all these elements.

Users with a good grasp of the "philosophy" behind the QSS-TB (Sec. 1.2), who know the general structure of
a QSS-TB program (Sec. 3.1) and who have read the commentary in Section 3.2 below are well prepared, once
they have gained a little experience, to readily design and include new elements of their own.

The most efficient use of the QSS-TB can be made once users fully understand the techniques required (i.e., the
optimization routines) to integrate the toolbox with other programs. This allows a smooth integration with the
functionality of Matlab and all its other toolboxes.

Due to the extremely short CPU time it requires (i.e., on a regular PC, a speedup factor of 100 to 1000 for a
conventional powertrain), a QSS model is ideally suited for the optimization of the fuel consumption under
various control strategies.

What the QSS-TB cannot do

The quasistatic approach obviously is not suitable for the capture of dynamic phenomena, i.e. those adequately
described by differential equations. There are numerical approaches better suited for the efficient solution of those
problems. Typical examples of such problems are drivetrain ringing phenomena or the analysis of state events
such as stickslip effects.

In principle, the QSS-TB could be used for the calculation of vehicle pollutant emissions as well. However, due
to the current lack of reliable and easily acquired data describing the physics with sufficient accuracy, this first
version of the toolbox does not include these aspects.

Page 4
1.2 The Quasi Static Approach

Since the basic principles of the QSS are discussed in detail in the script to the lecture "Vehicle Propulsion
Systems ," our primary intention here is to show how the elements of the QSS-TB can be linked.

The key idea behind the QSS-TB is to reverse the usual cause-and-effect relationships of dynamic systems.
Rather than calculating speeds from given forces, based upon given speeds (at discrete times), the toolbox
calculates accelerations and determines the necessary forces.

Vehicle in the plane − traditional approach:


1
System: m ⋅ v˙ f (t ) = Fa (t ) − m f ⋅ g ⋅ cr − ⋅ ρ L ⋅ cw ⋅ A f ⋅ v 2f (t )
2
Cause: force Fa (t )
Effect: vehicle speed v f (t )

Vehicle in the plane − QSS approach:


1
System: m ⋅ v˙ f (t ) = Fa (t ) − m f ⋅ g ⋅ cr − ⋅ ρ L ⋅ cw ⋅ A f ⋅ v 2f (t )
2
Cause: v f ( k ⋅ h) , i.e., speed given at certain times

Effects: 1. Mean speed v f (t ) = (v f ( k ⋅ h + h) + v f ( k ⋅ h)) / 2 , ∀t ∈[k ⋅ h, k ⋅ h + h)

2. Acceleration v˙ f (t ) = (v f ( k ⋅ h + h) − v f ( k ⋅ h)) / h , ∀t ∈[k ⋅ h, k ⋅ h + h)

3. Driving force Fa (t ) (constant in the interval ∀t ∈[k ⋅ h, k ⋅ h + h) !)

The symbol "h" representing the step size of the QSS simulation, it is protected and cannot be newly defined. If
the accuracy is to be increased, the step size h may be decreased. However, not only will the calculations take
longer, but there are more efficient ways to solve these problems numerically.

On the basis of given values for speed and force, fuel consumption is calculated using so-called engine maps.
Surprisingly enough, this approach is valid for a number of different structures and elements, such as IC engines,
electric motors, intermediate storage devices, drivetrains, etc. It even permits the integration of control systems
in that these forces are assigned to the various drive elements in accordance with the internal control logic. A
few examples are shown below.

Page 5
1.3 An introductory example
Each program within the QSS-TB consists of the following two files:

1. the .m file (Matlab) where all system and control parameters are defined, and

2. the .mdl file (Simulink) where the system model is described (which contains the description of the drive
assembly).

It is always good programming practice not to enter any numerical values for the parameters directly in the .mdl
file (even though that would easily be possible). All parameter values belong in the .m file where they ought to
be commented briefly. The units of the parameters must be compatible; since the number of calculation steps is
relatively small1, it is generally possible to do without normalizing them but rather to work with SI units
directly.

t
w_rad w_rad
v v w_GT w_VM
0
dw_rad dw_rad
dw_GT dw_VM V_VM V_VM l/100km
dv dv V
T_rad T_rad 0
x_tot

vehicle tank
T_GT T_GT
i i
IC-engine
gear-box

x_tot

cycle

Figure 1.3.1 The .mdl file of a classical IC engine drive in the QSS-TB form

First a drive cycle has to be chosen (EU cycle and FTP are typical candidates; however, any cycles designed by
users may of course be used as well). Within the function block "vehicle" the torque at the wheel (i.e.
resistances plus acceleration) is calculated. While this torque is determined on the basis of the gear selected, in
the case of automatic transmissions it may also be determined online by a control system. The transmission
converts it to a demanded net engine torque. From the total torque, which consists of net torque plus
acceleration torque, the IC engine then "produces" an amount of fuel consumption. Within the block called "fuel
tank" those consumption data are summarized and converted to a consumption figure in liters per 100 km.

The detailed explanation of the various blocks in Fig. 1.3.1 will be given in Chapter 2.

1
This is no longer the case if the program contains a large number of implicit equations.

Page 6
The .m file pertaining to the example given above reads as follows:

h = 1; % step size
load T_z; % load time value of EU cycle
load V_z; % speed
load G_z; % number of gears
nnn=max(size(V_z)); % number of samples taken
D_z=[V_z(2:nnn)V_z(1:nnn1);0]/h; % calculate acceleration
t_sim = (nnn1)*h; % duration of simulation
% gearbox
i_1 = 15.1740;
i_2 = 8.3380;
i_3 = 5.3780;
i_4 = 3.9370;
i_5 = 2.7480;
I_z = 0*ones(size(G_z)); % assign number of gears selected
for i=1:nnn;
if G_z(i)==0; I_z(i)=0;
elseif G_z(i)==1; I_z(i)=i_1;
elseif G_z(i)==2; I_z(i)=i_2;
elseif G_z(i)==3; I_z(i)=i_3;
elseif G_z(i)==4; I_z(i)=i_4;
elseif G_z(i)==5; I_z(i)=i_5;
end;
end;
P_GT0 = 300; % gearbox efficiency
e_GT = 0.98; % gearbox efficiency
w_rad_min = 1.00; % minimum rotational speed of the wheel
% Parameter fuel
H_u = 43.5e6; % fuel heating value
rho_B = 0.75; % fuel density
k_ks = 1.15; % additional consumption at cold start
% Parameter vehicle
r_rad = 0.25; % wheel diameter
m_f = 750.0; % vehicle weight
mu = 0.008; % rolling resistance coefficient
g = 9.81; % gravitation constant
rho = 1.18; % density of air
cw = 0.22222; % drag coefficient
A_f = 1.8; % front area
% Parameter ICE
V_h = 0.708e3; % basic engine size
theta_VM = 0.05; % inertia ICE
T_VM_SchaB = 5; % fuel cutoff − torque
V_VM_SchaB = 0; % consumption in fuel cutoff
w_VM_idle = 105.0; % idle rotational speed
V_VM_idle = 2.6e3*h/H_u; % consumption at idle speed
load w_VM_row % speed range [rad/s]
load p_me_col % mean effective pressure range
load V_VM_map; % consumption map
T_VM_col = p_me_col'*V_h/(4*pi); % torque in Nm
load p_me_max % maximum mean effective pressure range
load w_VM_max % pertinent rotational speeds
w_VM_upper = max(w_VM_max); % maximum rotational speed
T_max_VM = p_me_max'*V_h/(4*pi); % maximum torque [Nm]

The exact significance of each parameter is discussed in more detail in Chapter 2. Notice, however, what a
significant number of parameters must be known even for this relatively simple example.

Page 7
Figs. 1.3.2 through 1.3.4 below show a few typical results of these calculations. It may not be immediately
apparent just how easily so called "what-if" questions for parameter variations can be answered (e.g., concerning
sensitivities). Even questions regarding structural variations (e.g., standard shift vs. CVT) can be investigated
with just slight changes within the .mdl file.

1.4

1.2

Verbrauch VM in g/s
0.8

0.6

0.4

0.2

0
0 200 400 600 800 1000 1200 1400
Zeit t s

Fig. 1.3.2 Fuel consumption of the IC engine [g/s]

10

7
Verbrauch in l/100km

0
0 200 400 600 800 1000 1200
Zeit t s

Fig. 1.3.3 Fuel consumption [liters per 100 km]

0.9
Wirkungsgrad Getriebe in Antriebsphasen

0.8

0.7

0.6

0.5

0.4

0.3
600 700 800 900 1000 1100 1200
Zeit t s

Fig. 1.3.4 Efficiency of the drivetrain during the last city and extra-urban portions

Page 8
2. Elements

2.1 The Cycles


A comparison of the fuel consumption data of various drive systems only makes sense if those data are acquired
during a normalized test drive, a so-called test cycle. Typically, Europeans use the EU cycle, whereas the U.S.
use the FTP cycle. It is generally known that these cycles tend to be on the "soft" side, i.e., the data for
acceleration and top speeds frequently are exceeded in daily driving. The use of proprietary test cycles may thus
make more sense.

A cycle is defined by at least two vectors:

1. a time vector (in which the time spans usually are equal), and

2. a vehicle speed vector v f ( k ⋅ h) .

The acceleration is calculated from the vehicle speed on the basis of the following equation:

v f ( k ⋅ h + h) − v f ( k ⋅ h)
a f ( k ⋅ h) = , k = 1, … kmax − 1, a f ( kmax ) = 0,
h (2.1.1)

The acceleration here is treated "predictively" whereas it may also be treated "retrospectively," as follows:

v f ( k ⋅ h) − v f ( k ⋅ h − h)
a˜ f (1) = 0, a˜ f ( k ⋅ h) = , k = 2, … kmax
h (2.1.2)

which leads to less realistic values.

In the EU cycle, the gear shift points are provided by law for manual shift gear-boxes, while the FTP cycle does
not have fixed gear shift points. This amounts to a total of three vectors which in the QSS-TB must be defined
in three .mat files, e.g.,

1. T_Z.mat = time vector2

2. V_Z.mat = speed vector

3. G_ Z.mat = gear vector.

If the cycle data provided with the QSS-TB are used, the command "load" loads them into the workspace,
whereby the names selected for the vectors must be entered in the block cycle / cycle data in the .mdl
file. Note: all vectors must be so-called "tall" vectors, i.e., TZ , VZ , GZ ∈ℜ k max ( kmax representing the number of
necessary support points of the cycle).

2
This text uses explicit names for the parameters, if at all possible those used in the .m file of Sec. 1.2 above. Ob-
viously, these names may be chosen at will or redefined, as long as they are used consistently. The only exception is
the step size h which may not be changed.

Page 9
speed
1
v

acceleration
[T_z,V_z,D_z,I_z] Demux 2
dv
cycle

gear-ratio
3
i

step size 1
4
z
h x_tot
total distance

Fig. 2.1.1 Schematic representation of the block "cycle" with given gear values

Analogously, the definition of proper cycles would require the definition of two or three vectors of equal length.
The gear values would not need to be predefined. A CVT may be represented by taking a conventional trans-
mission (cf. Sec. 2.4 below) whose gear ratio is given by a control unit (Sec. 2.10 below). In that case,
however, the block cycle /cycle data must be adjusted accordingly.

Page 10
2.2 Vehicles and ancillary devices
The total running resistance may be divided in four groups:

• Aerodynamic losses

• Rolling resistance losses

• Vehicle acceleration resistance losses

• External resistance losses such as those arising from climbing.

In the QSS-TB, the block "vehicle" shows the first three of these effects."

speed
(rad/s)

1 1/r_rad 1
v w_rad

1/r_rad 2
dw_rad

acceleration
(rad/s^2)
v F_w

resistances
r_rad 3
T_rad

2 d_v F_t torque


dv (Nm)
inertia

Fig. 2.2.1 Block "vehicle" − first level

The vehicle inertia reflects the mass of the vehicle (without wheels) plus the wheel inertia data, as follows:

m f + 4 ⋅ Θ rad / rrad
2
(2.2.1)

The remaining parameters of the standard model are shown in Fig. 2.2.2, whereby all of them must be defined
and listed within the .m file.

m_f*g*mu+0.5*rho*cw*A_f*u^2

resistances
1 1
v F_w
0

1 m_f*u/h 1
d_v F_t
inertia

Fig. 2.2.2 Internal structure of the standard total vehicle resistance

Notice that any additional inertia, such as engine, flywheel, etc., have not be included in this block. They will
be represented in their own respective blocks later on.

Page 11
It is easy to include nonlinear effects (e.g., the speed dependent cw ). Any model desired may be used by editing
of the function blocks, such as vehicle/vehicle resistance, or by adding one's own function blocks.
The only condition is that they must be compatible with the given I/O structure.

Any losses due to cold starts or ancillary devices are best considered via global factors. The losses due to cold
starts are typically accounted for by multiplying the total fuel used by a factor of 1.15:

kks = 1.15 (2.2.2)

Page 12
2.3 Internal combustion engines
In the sense of this toolbox an internal combustion engine essentially produces a fuel consumption from a torque
and a rotational speed demand (cf. program map block "ICE"). The engine torque consists of the net torque plus
the engine acceleration torque, whereby a few special engine operating cases must be accounted for:

• idle

• fuel cutoff

• overload and overspeed.

These special cases are described below. Fig. 2.3.1 shows an overview of the QSS-TB model of the IC engine.

ICE map
1
w_GT

w_VM_idle

w_VM w_VM
Detect overspeed not idle
and over torque
T_VM T_VM

detect idle

V_VM_idle
2 theta_VM idle consumption
total toruqe
dw_GT
total consumption
ICE acceleration
1
V_VM
T_VM_SchaB

3
decel cut-off
T_GT V_VM_SchaB

Fig. 2.3.1 Top view of the model "IC engine"

Accounting for engine inertia

The engine inertia is accounted for by adding an auxiliary torque that is proportional to the engine inertia and
the engine acceleration (Fig. 2.3.1, lower left-hand corner). Certain delay situations, i.e. "flywheel effects", may
even lead to negative torques.

Fuel cutoff

As soon as the total load falls below a certain limit (parameter T_VM_SchaB in the .m file), the fuel consump-
tion no longer is determined by the engine map, but rather by a fixed parameter (V_VM_SchaB), which usually
is zero. This so-called engine cutoff function is standard in modern fuel injection systems.

Page 13
Overload and overspeed detection

Obviously, there are limits to the torque/rotational speed pairs the engine can deliver. The block shown in Fig.
2.3.1, which is shown in detail in Fig. 2.3.2, considers these two limiting conditions. As long as the values for
rotational speed and torque remain below their maximum values (torque depending on rotational speed), a posi-
tive differential value is passed on to the blocks termed "Sat". They are defined such that only negative values
may pass, while positive values are limited to zero. As soon as the limits are exceeded, i.e., the output values
of the "Sat" blocks are nonzero, the "Stop" blocks stop the simulation.

1 w_VM_upper

STOP
1
w_VM
0

OR 1
1
1 not idle
w_VM
Max_T STOP
2
T_VM 2
0
T_VM

Fig. 2.3.2 Left: Idle detection; right: overload and overspeed detection

Consumption at idle

Idle speed is detected as soon as the demanded rotational speed of the engine falls below the limit w_VM_idle
and simultaneously the demanded torque value drops below the limit T_VM_idle (typically zero, cf. Fig.
2.3.2, left). In this case, the fuel consumption value is set to V_VM_idle kg/s.

Fig. 2.3.1 shows that the overrun fuel cutoff is given a higher priority, which means that as soon as the torque
value at idle speed falls below the fuel cutoff limit, the fuel cutoff is activated.

Consumption maps

For the reasons addressed in depth in the lecture "Vehicle Propulsion Systems", the QSS-TB uses two-
dimensional fuel-consumption maps:

V = f (ω VM , TVM ), kg/s (2.3.1)

The block "ICE map" needs three parameters:

• a vector 1 x n, termed "w_VM_row" containing the rotational speed support points 3

• a vector m x 1, termed "T_VM_col" containing the torque support points

• a map n x m termed "V_VM_map" representing the fuel use data (in kg/s) of the combination of
torque and rotational speed under consideration.

3
These values do not have to be equidistant, but they must increase strictly monotonously.

Page 14
The data structure of the fuel consumption map is shown in Table 2.3.1. Due to the fact that in the two-dimen-
sional map block Simulink demands independent variables to be strictly monotonously increasing vectors, this
table must be read from top left to bottom right.

Table 2.3.1 Design of the fuel consumption map of the IC engine, V(ω,T) [kg/s]

VVM ( ω min , T min ) …… VVM ( ω min , T max )


…… ……
…… ……
…… ……
VVM ( ω max , T min ) …… VVM ( ω max , T max )

Page 15
2.4 Gear system
The transmission of mechanical work between different levels of torque or rotational speed, respectively, is
possible due to the following three building blocks:

• translations (i.e., fixed relationships between torque levels or rotational speed levels)

• standard transmissions (i.e., a finite number of relationships between torque levels or rotational speed
levels)

• CVT (i.e., continuously variable relationships between torque or rotational speed levels, respectively).

Standard transmissions and CVTs can be controlled either by the drive cycle block, i.e. the gear ratios are
defined a priori or by an online controller.

As shown in Fig. 2.4.1 for the simplest case, the kinematic relationships are assumed to be ideal, i.e., there are
no inertia effects of backlashes:

1
w_rad 1
w_Ueb

2
dw_rad 2
dw_Ueb

w_rad

3 T_rad T_Ueb 3
T_rad T_Ueb

Ueb Ueb

losses

Fig. 2.4.1 Top level of the block "translations", showing kinematic relationships on t op, and
torque at the bottom

In all three types of gearbox systems, all losses are described by an affine relationship:

Paus = e ⋅ Pein − P0 (2.4.1)

where Paus and Pein represent the power leaving and entering the system, respectively. Since it is possible that
the flow is reversed (e.g., between the two phases "drive" and "fuel cutoff"), equation 2.4.1 has to be interpreted
case by case. Fig. 2.4.2 shows the solution presented by the QSS-TB for the simplest case.

Equation 2.4.1 is solved within the third level; once with the driving element being the torque on the engine
side (i.e., force flowing from the engine to the wheel), and once with the driving element being the torque on the
side of the wheel. The relationships resulting therefrom are shown in Fig. 2.4.3, whereby it is to be noted that
in the case of the power direction wheel-to-engine, the idle speed losses P̃0 are negative, i.e., the relationship
P̃0 = − P0 holds. ( P0 represents the idle speed loss in the "normal" case of the power flowing in the engine-to-
wheel direction.)

Page 16
1 w_rad
w_rad
T_rad T_Ueb+
Ueb
power flow
engine -> wheel

2 1
T_rad T_Ueb

w_rad

T_rad T_Ueb-
3 Ueb
Ueb
power flow
wheel -> engine

Fig. 2.4.2 Differentiation according to flow direction in the block "losses"

The rotation speed of the wheel is first compared to a minimum speed (cf. switch block in Fig. 2.4.3). If the
result lies below that minimum, it is assumed that there is no power to be transmitted (i.e., clutch open).

1 1
w_rad w_rad
inf inf

P_GT0 P_GT0 1/e_GT

2
T_rad 1 2
T_rad 1
T_Ueb+
T_Ueb-
3 1/e_GT
3 e_GT
Ueb
Ueb

Fig. 2.4.3 Torque calculation in the engine, a) representing the flow engine -to-wheel,
b) representing the flow wheel-to-engine

The physics of CVTs in the "forward" formulation is somewhat more compli cated. In a QSS formulation, how-
ever, the structure shown in Fig. 2.4.4 arises. This rather surprisingly straightforward model structure is a con-
sequence of the QSS approach.

The online control of CVTs demands that it be "predictive". One of the ways to achieve this is to transmit the
desired speed generated by the block "cycle" directly to the control unit, but to delay its transmission to the
block "vehicle" by a step. (This means that the unit delay blocks in Simulink are set to a sample time equal to
the step size h.) This would be easy to implement in practice, i.e., with a drive-by-wire engine, the step size
(being the artificial delay) would be on the order of one tenth of a second.

Page 17
1
w_rad 1
w_CVT

5
dj_CVT
2
2 dw_CVT
dw_rad
4
j_CVT

w_rad
T_rad
3 T_rad T_CVT 3
T_CVT
j_CVT

losses

Fig. 2.4.4 Top level CVT -block, the remaining blocks being identical to those of Figs. 2.3.2/3

Comments:

So far, the parameters of the gearbox efficienciese and P0 have been modeled as being invariable, in particular, as
being independent of the gear ratio. However, it would be quite simple to extend the system to consider such
variations as well.

The gear systems discussed thus far have all been mechanical. The QSS-TB has not been including any hydro-
dynamic torque converter, as they are not candidates for use with highly economic drive systems. However, it
would be easy enough to develop the respective models.

Page 18
2.5 Electric motors and generators
The models for electric motors are similar to those of IC engines, i.e., their inputs consist of the demanded
torque values at the rotational speed being considered. The output, however, is the required electric power. In
modeling electric motors, the approach is simpler for the rotational speed really can be zero.

In addition, just about every electric motor can be used in either two or four quadrants, as long as a suitable
power amplifier is available. Here, the power amplifier is not modeled since its losses are included in the overall
motor losses. As does the IC engine, an electric motor obviously does require is a maximum torque switch as
well as a maximum rotational speed switch, leading to the top level of the model as shown in Fig. 2.5.1:

speed EM
1

w_EM

torque EM

map EM
2 theta_EM
dw_EM total power

1
omega P_EM
3
T_GT T
detect overspeed
and overtorque

Fig. 2.5.1 QSS-TB model of an electric motor in 2quadrant operation

The characteristics of electric motors may be entered in the model directly since they do not contain any sin gu-
larities. The electric power required within the first quadrant (ω EM > 0 and T EM > 0 ) can thus be expressed as
follows:
1
PEl, EM = ω EM ⋅ TEM ⋅
η EM (ω EM , TEM ) (2.5.1)

or, in the second quadrant 4 (wEM > 0 and T EM < 0),

PEl, EM = ω EM ⋅ TEM ⋅ η EM (ω EM , TEM ) (2.5.2)

respectively.

4
Since driving in reverse is meaningless for the calculation of average fuel consumption, the third and fourth
quadrants are not considered here.

Page 19
To avoid having to keep distinguishing between these two cases, equations 2.5.1 and 2.5.2 can be combined
into a single efficiency map as shown in Fig. 2.5.2, with Eq. 2.5.2 being used for both quadrants.

T EM Nm
60
1.4

40 1.3
1.2
1.15
20

0
100 200 300 400 500

-20
0.83
0.87
ω EM rad / s
0.77
-40

0.71
-60

Fig. 2.5.2 Efficiency map of QSS-TB electric motor in 2quadrant mode

The design and data structure of this program map is identical to the one in IC engines, even though physically
they have different meanings, i.e., the block "map EM" in Fig. 2.5.1 contains

• a 1 x n vector "w_EM_row" containing the support points of the rotational speed of the electric
motor

• a m x 1 vector "T_EM_col" containing the support points of the motor torque

• an efficiency map n x m "KF_EM" representing the efficiencies of the relative combination of


torque and rotational speed being considered.

An electric generator is described simply by the lower half of the second quadrant of the motor map shown in
Fig. 2.5.2. With one exception, the remain der is unchanged. The exception is that since electric generators can
be used only within the context of serial hybrid structure, i.e., in connection with a prime mover (e.g., IC
engine, gas turbine, etc.), the sole function of the generator is to generate electric power from mechanical energy.
Thus the inertia of the generator can always be included in the prime mover elements and therefore the block
"electric generator" does not require an acceleration input of its own.

Electric motors are scaled using a "mean effective pressure" formulation similar to the one common for IC en-
gines or by simply scaling the support vectors and assuming the motor efficiencies to remain unaffected by that
operation.

Page 20
2.6 Batteries
The models of batteries are designed in accordance with the approach introduced in the lecture "Vehicle Propul-
sion Systems", i.e., the electric power "P_BT" flowing into the battery (positive when loading, negative during
discharge) represents the input, while the actual battery charge "Q_BT" represents the output. Fig. 2.6.1 shows
the top level of the battery model. Beyond the battery model proper (gray shading), this block calculates the
amount of electric power (in kWh per 100 km) drawn up to a certain instance ("Q_BT_IC" representing the
initial charge of the battery).

Q_BT_IC
U_BT_0/3.6e1
1
z
h
battery charge
1
Q_BT 2
V_EM
Q_BT U_BT

1 P_BT I_BT 2
P_BT x_tot
battery voltage

Fig. 2.6.1 Top level of the battery model, calculation of p ower drawn in kWh / 100 km

The basic idea behind the battery model is to integrate the power (in accordance with the QSS approach) after
calculating it from the known power and actual voltage of the battery, in order to then be able to calculate the ac-
tual battery charge therefrom. The voltage depends on the battery charge, which is easy to determine, and from
the current charging or discharging the battery which − unfortunately − is not yet known. This second depen-
dency thus leads to an implicit equ ation for the battery power. Although the solver in Simulink frequently is
able to solve such equations, it is advantageous to first obtain a closed-form solution to this implicit loop. This
is the case especially whenever the battery is being utilized in an infeasible operating mode. These derivations
are shown below.

First, the modes "charge," "discharge," and "neutral" must be distinguished. Whereas the parameters usually
vary in the first two modes, in "neutral" the terminals just show the idle voltage of the battery. As shown in
Fig. 2.6.2, it is mandatory to keep close tabs on the battery since neither extremely high char ging nor dischar-
ging loads are permissible (details are shown below). The block " BT control" is designed to assume this
supervising function.

Page 21
Q_BT

enable charge
U_BT
P_BT e_E

I_BT

1 Q_BT detect
Q_BT overlaod
U_BT_L
P_BT

charge
enable discharge

2 P_BT e_E
P_BT [U_BT_0]
1
Q_BT U_BT
IC
U_BT_E
P_BT

discharge

enable idle

P_BT e_Z

Q_BT U_BT_E
2
idle
I_BT

Fig. 2.6.2 Distinction among the cases "charge," "discharge," and " idle"

The equations for the mode "charge" are the following:

Q0 - Q( k ⋅ h)
Charge-rate: q( k ⋅ h ) = , Q( k ⋅ h) = Q(0) + ∑ i( k ⋅ h) ⋅ h (2.6.1)
Q0 k

( Q0 is the nominal capacity, Q(0) the charge at t = 0 )

i( k ⋅ h ) Q0
C-rate: c( k ⋅ h ) = , i0 = (2.6.2)
i0 1 h
( i0 fully charges an empty battery in one hour )

They allow the use of the typical approach (affine in the charge ratio) to calculate the battery load:

u BL ( k ⋅ h) = u1L (c( k ⋅ h)) ⋅ q( k ⋅ h) + u0 L (c( k ⋅ h)) (2.6.3)

whereby the two weights u1L and u0L depend on the C-rate as well:

u1L (c( k ⋅ h)) = c L 4 ⋅ c( k ⋅ h) + c L 3 , u0 L (c( k ⋅ h)) = c L 2 ⋅ c( k ⋅ h) + c L1 . (2.6.4)

The equations for the mode "discharge" are similar, except for the parameters in eq. (2.6.4) where obviously the
C rate is negative:

u1 (c( k ⋅ h)) = cE 4 ⋅ c( k ⋅ h) + cE 3 , u0 (c( k ⋅ h)) = cE 2 ⋅ c( k ⋅ h) + cE1 . (2.6.5)

The eight coefficients in eqs. (2.6.4) and (2.6.5) may not be chosen entirely freely. For continuity reasons, they
must fulfill the following conditions:

Page 22
cE1 = c L1 , cE 3 = c L3 . (2.6.6)

Based upon the power (eq. (2.6.3)) and the voltage (eq. (2.6.4)) of the battery, the value of the current flow in or
out of the battery, respectively, can be eliminated, which permits the presentation of the voltage as a function of
power only. For the charging mode the following relation is obtained:

1 
u BE ( k ⋅ h) = ⋅ c E 3 ⋅ q ( k ⋅ h ) + c E1 +
2 
(cE 3 ⋅ q(k ⋅ h) + cE1 )2 + 4 ⋅ (cE 4 ⋅ q(k ⋅ h) + cE 2 ) ⋅ PBL (k ⋅ h) / i0  (2.6.7)

The ambiguity in the solution of the quadratic equation obtained can be resolved using physical arguments. The
solution for the discharging mode is obtained following the same approach. These two equations are then incor-
porated in the programs of the blocks "charge" and "discharge," respectively.

The maximum storage capacity of a battery sets physical limitations to the amount of positive power (in the
"charge" case) that may enter the battery. For reasons of simplicity, it is assumed that a constant maximum
current cannot be exceeded, or else the simulation is terminated.

In the opposite case ("discharge"), the amount of current a battery can deliver is limited by the internal resistance
that is always present. As stated above, the power delivered by a battery is given by

PBE ( k ⋅ h) = u BE ( k ⋅ h) ⋅ i( k ⋅ h) . (2.6.8)

Rewriting eqs. (2.6.3) and (2.6.4), we obtain

i( k ⋅ h )
u BE ( k ⋅ h) = (cE 4 ⋅ q( k ⋅ h) + cE 2 ) ⋅ + (cE 3 ⋅ q( k ⋅ h) + cE1 ) = REi ( k ⋅ h) ⋅ i( k ⋅ h) + uEi ( k ⋅ h) (2.6.9)
i0

which permits an interpretation that includes both internal resistance and internal voltage. (Obviously, both
values depend on the charge or discharge status of the battery, respectively.) The battery power thus can be
determined as follows:
u (k ⋅ h) − uEi (k ⋅ h)
PBE (k ⋅ h) = u BE (k ⋅ h) ⋅ BE . (2.6.10)
REi (k ⋅ h)

Deriving eq. (2.6.10) from the voltage uBE, we state that the maximum of the amount of discharge power (i.e.,
the minimum level of PBE) is delivered at a terminal voltage that is one-half the amount of the internal voltage:

2
1 1 uEi
u*BE = ⋅ uEi ⇒ *
PBE =− ⋅ . (2.6.11)
2 4 REi

Therefore, it is clear that the battery is never able to deliver more than P*BE. The model verifies this basic limi-
tation by terminating the simulation as soon as the value of P*BE is reached.

The last point to be addressed is the question of the efficiency of a battery. It is not an obvious quantity, espe-
cially it may be defined locally or ãgloballyÒ (over an entire cycle, i.e., the total power drawn from the battery
during a test drive divided by the energy required to recharge it). In the local approach, it is assumed that within
one time step h the battery is charged by a constant current, only to be discharged in the next step by the same
current:

u BE ⋅ ( − I E ) ⋅ h u BE u1E ⋅ q + u0 E ( − cE 4 ⋅ c + cE 3 ) ⋅ q + ( − cE 2 ⋅ c + cE1 )
η BT = = = = . (2.6.12)
u BL ⋅ I L ⋅ h u BL u1L ⋅ q + u0 L (cL 4 ⋅ c + cL3 ) ⋅ q + (cL2 ⋅ c + cL1 )

Page 23
The local efficiency thus is a function of the current charging or discharging the battery, respectively, and of the
actual battery charge level ηBT(c, q). The example depicted in Fig. 2.6.3 shows such an efficiency map for a
good battery and how strongly the efficiency depends on the C rate (or internal resistance) rather than on the
weak relationship to the charge level.

c − 0.65

1.4 0.70

0.75
1
0.80

0.85
0.6
0.90

0.2 0.95

0.1 0.3 0.5 0.7 0.9


q −

Fig. 2.6.3 Local efficiency map of a battery; charge level 10% − 90%; C rate 0 − 200%

Comments:

The model described above is valid only for the normal operating range of the battery, i.e. between approxima-
tely 10% and 90% of its nominal capacity. Outside of this range, rather strong nonlinear effects may be ob-
served. However, it is a well-known fact that batteries should not be operated in those outside ranges due to
serious effects on its longevity, efficiency, etc.

During the vehicle acceleration phase, batteries are subject to rather brief, but high peaks of energy demands
which either overload them or are the reason for a vehicle being equipped with unnecessarily large batteries.
This situation may be avoided by the installation of so-called super capacitors, which are capacitors with very
large capacity (cf. Sec. 2.10 below).

The electronic power system controls the amounts of the current running between the battery and other electrical
components as well as among those components themselves. The details of these losses are not being
considered or modeled separately; rather they can be ascribed to the losses of the motors or generators.

Page 24
2.7 Fuel Cells
A fuel cell consists of a complex group of systems, as schematically shown in Fig. 2.7.1. They all must be
powered dynamically which means that the drive system must be able to frequently switch from idle to the
equivalent of a wide open throttle and back in order to keep up with the constantly changing states of operation.
The dynamics and the duration depend on the size of the fuel cell, the drive cycle, and the configuration of the
drive system.

pump

hydrogen
tank heat
exchanger

EM
fuel-cell stack

compressor

EM T
"turbine"

water trap
air

Fig. 2.7.1 Configuration of a fuel cell drive system

The energy conversion in a fuel cell depends on its electrodes being supplied with hydrogen and air or oxygen.
The supply of the former is ensured if hydrogen is furnished from a tank within the vehicle as the fuel cell
simply "draws" the amount it requires. The supply with air is more complicated. Under dynamic conditions the
amount and pressure of the air depends on the load at the fuel cell. Depending upon response times, air mass
flows, and charge-air pressures, the compressor may require an amount of electric power that severely affects the
total efficiency of the drive system.

Modeling of a fuel cell

Just as in a battery, the voltage in a fuel cells decreases under load conditions. The maximum power usually is
reached at around 0.5 to 0.6 V single cell voltage. The voltage drop is a function of the current and the internal
resistance of the cell (on either side of the electric motor), of the kinetics of the electrode (primarily on the oxy-
gen side), of limitations present in the gas supply, and of the water discharge on the oxygen side of the fuel cell.
A voltage level that is practically utilizable is reached by stacking fuel cells in a serial configuration. Such a fuel
cell stack, however, must take into account the temperature and humidity control of the reaction gases and it
must enable the controlled transport of the heat, water, and electrical energy thus generated (cf. Fig. 2.7.2).

H2 H2 H2 H2 H2 H2
Luft Luft Luft Luft Luft Luft

H O H2 O H2 O H O H 2O H2 O
2 2
N2 N2 N2 N N2 N2
2

Fig. 2.7.2 Diagram of a fuel cell stack

Page 25
Flow diagram and model

Fig. 2.7.3 shows the simplified diagram of an ideal fuel cell. The voltage drop in the cell is represented by a
resistor:
Ifc

V0 = Rfc
Vfc

Fig. 2.7.3 Simplified electric model of a fuel cell

Since the resistance Rfc is a function of the area Ffc of the exchange membrane described above, the current is
usually normalized to Ffc , i.e.:
I fc
i fc = (2.7.1)
F fc

yielding, in a first approximation, the following voltage for the fuel cell:

V fc = V 0 − R fc ⋅ F fc ⋅ i fc = V 0 − R̃ fc ⋅ i fc (2.7.2)

With reference to Fig. 2.7.5 below, the variable V0 represents the voltage at which the ideal characteristic inter-
sects the abscissa at ifc = 0, rather than the theoretical voltage with the fuel cell. (For a detailed explanation,
please refer to the lecture "Vehicle Propulsion Systems.") The resistance Rfc [Ω ⋅ m 2] is constant for any one fuel
cell type and thus no longer a function of the surface area of the cell membrane.

As described above, a so-called stack (cf. Fig. 2.7.4) is obtained when a number of fuel cells are serially linked.
The stack voltage is
V fc,stack = N ⋅ V fc (2.7.3)

If several stacks are joined in parallel, the model described above would still be valid. However, the increase of
the fuel cell area would lead to an increase in current.

= = .... =

Rfc, stack V0 Rfc V0 Rfc V0 Rfc Vfc, stack


V0, stack = Vfc, stack

Fig. 2.7.4 Simplified diagram of a fuel cell stack

The model of a fuel cell stack in the QSS-TB, as usual, assumes that a power amplifier adjusts the voltage level
automatically. The current level Ifc within the fuel cell can thus be represented by the following equation:

Pex − Pvc
I fc = , (2.7.4)
V fc

where the variable Pex represents the current demanded and Pvc the amount of the losses within the internal con-
denser. However, since the voltage in the denominator of (2.7.4) is a function of the fuel cell current (see eq.
(2.7.2)), eq. (2.7.4) results in an implicit equation.

Page 26
For the approach shown in eq. (2.7.2), this loop may be resolved. However, since at small current densities
especially, the relationship Vfc(ifc) is extremely nonlinear and significantly deviates from those results, the QSS-
TB model does not attempt to resolve it. Instead, an additional delay is introduced (cf. Fig. 2.7.6) which breaks
that implicit loop.

A fuel cell produces significant amounts of heat as well:

(
Ploss = V th − V fc ⋅ N ⋅ I fc ) (2.7.5)

which must be dealt with by providing for an appropriate coolant system.

Vfc Volt
Vth 1.0

V0 ∆ifc ~
Rfc ∆ifc

0.3

1000 6000 ifc A/m 2


i fc, max

Fig. 2.7.5 Voltage characteristics of a fuel cell

A number of parameter values typically seen in such a fuel cell model are shown in Table 2.7.1. Figure 2.7.7
finally shows the model for the intake air compressor.

1/Vth

reversible cell voltage

limits P_loss
fuel cell Vth
Heat losses
N
i_fc

1
P_in
1 V_fc,stack
1/F_fc N
I_fc i_fc V_fc z
P_fc_idle
[A/m^2] fuel cell Unit Delay
model

1
P_fc

P_EM_C P_fc
E-Motor is disengaged, as soon as required power
is <= P_fc_idle (->idle speed energy consumption)
Compressor with E-motor

Fig. 2.7.6 QSS-TB model of a fuel cell

massflow air
1
1 1/eta_EM_C delta_h_C l_v M_air 100/21 1/2 1/H_o_m 1
z
P_EM_C P_fc

Fig. 2.7.7 Model of the compressor

Page 27
Table 2.7.1 Typical fuel-cell parameter

% Fuel-cell data
V0 = 0.82; % [V] Linear approximation idle voltage
Vth = 1.2; % [V] Theoretical fuel cell voltage
R_fc = 0.24/4000; % [Ohm*m^2] Slope 0.24V/(400mA/cm^2)
F_fc = 1*190.0e4; % [m^2] Size of fuel cell
xfc1=[800:200:7000];
xfc=[0 200 400 600 xfc1];
yfc=[1 .84 .8 .78 V0R_fc*xfc1]; % Cell characteristics
N = 880; % Number of fuel cells per stack
P_fc_idle = 2000; % [W] Idle power
l_v = 1.5; % Air to fuel ratio
% Turbocharger data
pi_C=1.3; % Compression ratio
T1=293;
eta_C=.7; % Compressor efficiency
kappaL=1.4;
RL=287;
cpL=kappaL/(kappaL1)*RL;
delta_h_C=cpL*T1/eta_C*(pi_C^((kappaL1)/kappaL)1); % Compression enthalpy
eta_EM_C=.7; % efficiency of Emotor
% for Compressor
% Hydrogen tank
rho_H2 = 0.089; % [kg/m^3]
H_o = 142.9e6; % [J/kg]
H_o_m = 285.9e6; % [J/kmol]
M_air = 29.0; % [kg/kmol] Mole mass of air

Page 28
2.8 Supercapacitors
Supercapacitors can store energy in electrostatic fields and are able to attain very high power densities (realisti-
cally around 1 kW per kg). Although their energy densities are moderate (i.e., 2−5 Wh/kg), their high power
density still makes them ideally suited to function as electrical "peak shavers." If they are used together with
batteries, they can thus contribute to a lower battery weight and an efficient use of energy.

The simplified model used in the QSS-TB is shown in Fig. 2.8.1. The electrical power output, as demanded
by a controller is converted using the voltage U, resulting in a corresponding current flow ISC.

ISC
PSC LE RSC

U USC CSC

Fig. 2.8.1 Schematic flow diagram of the model of the "supercap" (LE = power amplifier)

The charge QSC stored within the "supercap" is related to the inner voltage USC as follows:

1
U SC = ⋅ QSC
CSC (2.8.1)

According to KirchhoffÕs rule the value PSC is obtained as follows:

 1 
P =  RSC ⋅ ISC + ⋅ QSC  ⋅ ISC (2.8.2)
 CSC 

The power output is prescribed by the controller, while the charge QSC is defined by the memory of the "super-
cap" (the charge being a state variable). The only remaining unknown is the current flow, which is calculated as
follows:

 2 
−QSC  QSC 
Q̇SC = ISC = 
 CSC
±   + 4 ⋅ P ⋅ RSC  (2 ⋅ RSC ) (2.8.3)
 CSC  
 

whereby physical arguments preclude the negative sign before a square root.

Fig. 2.8.2 shows how this relationship is presented in the QSS-TB. The block "checklimits" tests whether the
"supercap" is being used within its permitted operating range, i.e., analogously to batteries, the amount of
power drawn from a "supercap" cannot exceed the amount lost due to internal resistance. Details are shown in
Fig. 2.8.3 below.

Page 29
1
P_SC Mux (-u[2]/C_SC+sqrt(u[2]^2/C_SC^2+4*R_SC*u[1]))/(2*R_SC)

I_SC
Q_SC 1
z
charge
Q_SC
1/C_SC 1
U_SC
P_SC
check limits

Fig. 2.8.2 Top level of the hierarchy within the "supercap" model of the QSS-TB

1 1/C_SC
Q_SC
STOP
U_SC_max

2
u

STOP
2 4*C_SC^2*R_SC
P_SC

STOP
P_SC_max

Fig. 2.8.3 Block ãCheck LimitsÒ

Page 30
2.9 Control systems
Control systems in the QSS-TB can be simple or quite complex. One example of the former is a system for
which it is assumed that the demanded engine load is always present (cf. Sec. 1.3 above), whereas the control
system of the series hybrid system described in Sec. 3.1 below is an example of a more complex system. The
purpose of control systems in general is to process system data, external inputs (e.g. during simulations), and
cycle data (i.e., control instructions set a priori), generating input data for the various system modules (see Fig.
2.9.1) such as engine speed, acceleration, or torque.

other modules

system data .
ω, ω, Τ
module 1
control
(can have .
exogenous data internal states) ω, ω, Τ
module n

Fig. 2.9.1 Diagram of a basic control system

A control system in which input changes immediately affect the output (i.e., no storage device in-between) fre-
quently contains implicit loops. Generally, the built-in Simulink solver is able to deal with those. However,
whenever possible, it is preferable to try to avoid such loops.

Another reason why control systems sometimes are provided with a "memory" is the presence of state automata,
or when the control system must be enabled to act preemptively. For instance, external data of a drive cycle
must be detected and processed before it influences the vehicle.

With reference to Sec. 2.4 above, Fig. 2.9.2 shows an example of a control system for a CVT. The output data
from a block "cycle" are provided to the "real" vehicle with a delay of one step size while they simultaneously
are being processed within the control system without any delay whatsoever. The vehicle model contained in
the control system computes the required drive power for any point in time. The controllers determines the rota-
tional speed at which that power is best generated by the engine, taking into account such goals as minimum
consumption, running sm oothness, as well as gear ratio limitations of the CVT.

A real CVT control system could look similar. The controller inputs would include such data as rota tional
speeds of the wheels and the engine, and the driverÕs torque demand as expressed by the gas pedal position. The
output would include the change in gear ratio, whereas the gear ratio itself would be its integral value.

1
1 delay input in order to
z pre-compute optimal control inputs
v_delay
delay v

1
2
z
dv_delay
delay dv

j_CVT
eps
1
3
1 v w_rad z
j_CVT
v delay j

dj_CVT
dv w_opt
2 T_rad
dv
produce necessary
power on fuel optimal points
vehicle model 1/h 4
dj_CVT

Fig. 2.9.2 Control system of a CVT with delays, vehicle model, and CVT gear ratio optimization

Page 31
The engine map for the EU cycle shown in Fig. 2.9.3 takes the vehicle example from Sec. 1.3, but includes a
CVT and the control system from Fig. 2.9.2. It shows two different cases: One is a CVT with a realistic gear
ratio band of 1:5 (with the characteristic data encircled), whereas the other is a CVT with an unrealistic ratio of
1:7.5 (data marked with "+" signs). The gray curve designates the operating points the control system con-
siders to be optimum (cf. block "wopt" in Fig. 2.9.2 above).

The deviations of the operating points calculated from those on the optimum curve are explained as follows:

• The bandwidth is limited, which means that the optimum is not attainable for all points in the cycle. (The
"+" case shows that these deviations do not occur when the spread is sufficiently large.)

• Losses within the CVT must be compensated by additional engine power.

• The calculation of the actual load included the vehicle, but none of the inertia within the powertrain or
engine for which the additional accelerating power is required to overcome it.

pme
bar 10
0.30

0.25
20 kW

4 10 kW
0.20

3 kW
cm
0
4 8 12 16 m/s
Fig. 2.9.3 Program map of a CVT drive system; CVT gear ratios o = 1:5, + = 1:7.5

The fuel consumption data for the EU cycle for the case of the gear ratio bandwidth 1:7.5 are about 8% lower
than those measured at the 1:5 bandwidth, which is a noticeable improvement.

Page 32
3 Applications

3.1 Example "Series Hybrid Vehicle"


This example is based only on those elements that are included in the QSS-TB. Our goal is to design a series
hybrid vehicle that runs the internal combustion engine only at its good operating states. In particular, partload
losses are to be avoided5. As the vehicle is able to produce its own electricity (via its so-called "range extender"
group), the battery capacity can be designed much smaller than it would have to be in a purely electric vehicle,
which of course results in a lower battery weight.

The top level of the model is shown in Fig. 3.1.1, where the elements introduced above are evident in the arran-
gement suitable for the type of vehicle to be designed. The linkages of the electrical components are especially
noteworthy as the sum of the three electric power systems (i.e., starter motor, generator, and battery) must al-
ways amount to zero. The power system which takes care of the necessary adjustments of the voltage level and
of the control of the power flow is assumed to be ideal and is thus neglected here.

w_rad w_rad w_Ueb w_EM


v v
dw_rad dw_rad dw_Ueb dw_EM P_EM
dv dv
T_rad T_rad T_Ueb T_GT

x_tot vehicle gear-box vehicle-EM electric motor P_BT Q_BT

cycle w_GG w_EG w_EG x_tot V_EM

P_EG battery kWh/100km


T_GG T_EG T_EG

gear-box ICE-EG electric generator t


control
fuel tank
w_GG w_GG

Q_BT dw_GG dw_GG V_VM V_VM

T_GG T_GG V
IC-E l /100 km
x_tot

Fig. 3.1.1 Top level of the QSS-TB model series hybrid vehicle

The various elements of this model are scaled-down versions of the basic elements. The following points are
worth mentioning, while the program details are shown in the .m file of this example (cf. Table 3.1.1 below):

• The "range extender" block is designed for a minimum of 20 kW, which allows the vehicle to reach a
(theoretical) top speed of approximately 140 km/h.

• The internal combustion engine is assumed to be one-half the size of the basic engine introduced in the
QSS-TB (i.e. two cylinders of approximately 180 cc each). Its fuel consumption program map therefore is
scaled down accordingly (i.e., one-half the consumption at each point of the program map pme / cm ).

• The electric generator is assumed to be twice the size of the one provided with the QSS-TB. Its efficiency is
assumed to remain the same.

• The electric motor is scaled up by a factor of 3.5 (in both quadrants), which yields a maximum torque level
of 250 Nm and a maximum power output of approximately 37 kW. The efficiency levels remain the same as
those of the basic motor.

5
With a suitable design, it is possible for series hybrid vehicles to have extremely low pollution emissions; e.g.
the California EZEV limits.

Page 33
• The electric motor is coupled to the wheel at a fixed gear ratio. The gear ratio of 3.5 selected allows a top
speed of around 150 km/h. Due to its large maximum torque at small rotating speeds, at low speeds (up to
around 60 km/h) the vehicle has quite good acceleration reserves.

• The batteries can deliver approximately 9 kWh and are charged to about 40% capacity at the start. If smaller
batteries were to be installed, which would be possible considering the requirements of the EU cycle, the
6
result would be unacceptably high voltages during the acceleration phases at the end of the cycle.
• If we assume an energy density of 70 Wh/kg, which is a good value nowadays, a battery of around 130 kg
would be required. Adding the electric power system, the two electric motors, etc. would add 200 kg net
weight (i.e., additional weight minus the weight savings due to a smaller IC engine and drivetrain).

• The controller is rather straightforward: The main goal is to run the vehicle in such a way that at the end of
a EU cycle the battery shows the same charge level as it did at the beginning (the so-called "autarky" or self-
sufficiency level). The charge period is designed to be during the high-load phase near the end of the EU
cycle.

• The actual battery charge level serves as input to the controller which detects any drop below a certain level.
Whenever the controller is activated, it first increases the idle speed of the IC engine to the maximum charg-
ing level and then gradually adds the electric generator torque. The deactivation occurs equally gently.

Some of the results of the calculations described above are depicted in Figs. 3.1.2 through 3.1.6. As mentioned
earlier, the electric motor shows rather significant torque reserves, particularly at low rotating speeds (see Fig.
3.1.2). However, the top speed cannot be raised much beyond the top of the one shown for the EU cycle. These
characteristics of the vehicle can be improved by changes in the transmission ratio or, much simpler, by using a
two-gear gearbox system.

200 1.4
1.3
1.2
1.15
100
torque in Nm

-100
0.85
0.8
-200
0.7

0 100 200 300 400 500 600


speed in rad/s
Fig. 3.1.2 Operating points of the electric engine in the EU cycle

6
Of course, those voltages could be attenuated by electrical "peak shavers" such as the "supercaps" described
earlier.

Page 34
Table 3.1.1 The .m file of the hybrid vehicle used here as an example

% parameters of the simulation


h = 1; % step size
load T_z;
load V_z;
nnn=max(size(V_z));
D_z=[V_z(2:nnn)V_z(1:nnn1);0]/h;
t_sim = (nnn1)*h;
% fuel parameters
H_u = 43.5e6; % fuel heating value
rho_B = 0.75; % fuel density
% vehicle parameters
r_rad = 0.25; % wheel diameter
m_f = 750+200; % lightweight vehicle + batteries + electric motor/generator
mu = 0.008; % rolling resistance coefficient
g = 9.81; % gravitation constant
rho = 1.18; % air density
cw = 0.222; % drag coefficient
A_f = 2.0; % front area
% Gearbox (vehicle)
P_GT0_EM = 300; % idling losses
e_GT_EM = 0.98; % net gearbox efficiency
w_rad_min = 1.0; % minimum wheel speed beyond which losses are generated
Ueb_EM = 3.5; % gear ratio wheel to electric motor
% Fgearbox range extender
P_GT0_EG = 200; % idling losses
e_GT_EG = 0.98; % net gearbox efficiency
w_VM_min = 1.0; % minimum wheel speed beyond which losses are generated
Ueb_GG = 0.75; % gear ratio of electric generator to IC engine
% parameters of the electric motor
theta_EM = 0.1; % inertia of the electric motor
load KF_EM % load efficiency map
load w_EM_row % load rotating speed range
load T_EM_col % load torque range
load T_EM_max % load maximum torque value
load w_EM_max % support points for maximum torque
w_EM_upper = max(w_EM_max); % maximum rotating speed of the electric motor
scale_EM = 3.5; % torque at 3.5 x basic value
T_EM_col = scale_EM*T_EM_col; % scale electric motor
T_EM_max = scale_EM*T_EM_max; % scale maximum torque
% parameters of the electric generator
load KF_EG % same for the electric motor
load w_EG_row
load T_EG_col
load T_EG_max
load w_EG_max
w_EG_upper = max(w_EG_max);
scale_EG = 2.0;
T_EG_col = scale_EG*T_EG_col;
T_EG_max = scale_EG*T_EG_max;
% parameters ICE
V_h = (0.708e3)/2; % engine size, onehalf of basic engine
theta_VM = 0.05; % motor inertia remains the same (for comfort reasons)
T_VM_SchaB = 0; % torque at fuel cutoff
V_VM_SchaB = 0; % fuel consumption at fuel cutoff
w_VM_idle = 0; % idle speed
V_VM_idle = 0; % fuel consumption at idle
T_VM_idle = 0; % Le torque at idle
load w_VM_row % speed range
load p_me_col % p_me range
load V_VM_map; % load efficiency map IC engine
V_VM_map = V_VM_map*V_h/0.708e3; % scale map
T_VM_col = p_me_col'*V_h/(4*pi); % torque [Nm]
load p_me_max % maximum mean effective pressure range
load w_VM_max % load pertinent rotating speed values
w_VM_upper = max(w_VM_max); % maximum rotating speed
T_VM_max = p_me_max'*V_h/(4*pi); % maximum torque
% parameters of the rangeextender group
theta_GG = 0.1; % inertia of the entire rangeextender group
% battery parameters
Q_BT_IC = 1e5; % initial charge
I_0 = 70; % scale batteries 1.5 x basic size
Q_BT_0 = I_0*3600; % battery discharge current − 1 h
c_BT_EL1 = 115; % battery parameters
c_BT_EL2 = 11.75; % note that c_BT_EL1 must be equal to c_BT_L1
c_BT_EL3 = 15; % and c_BT_EL3 must be equal to c_BT_L3!
c_BT_EL4 = 4.06;
c_BT_L1 = c_BT_EL1;
c_BT_L2 = 18.75;
c_BT_L3 = c_BT_EL3;
c_BT_L4 = 0.00;
U_BT_0 = (c_BT_EL1+c_BT_EL3+c_BT_L1+c_BT_L3)/2; % average voltage level of battery
I_BT_max = 4*I_0; % maximum charge current
% controller
Q_BT_min = 0.9*Q_BT_IC; % response threshold
length_c = 200; % # of steps for charging period
t_c = 0:h:length_c*h; % duration of charging period
w_GG_c = [0,[0:96:480],480*ones(1,length_c13),[480:96:0],0]; % speed profile
nnn = max(size(t_c)); % size of control vectors
dw_GG_c = [0,w_GG_c(2:nnn)w_GG_c(1:nnn1)]/h; % acceleration
scale_T_EG = 25; % maximum torque
% torque profile
T_EG_c = [0*ones(1,4),[0:scale_T_EG/10:scale_T_EG],scale_T_EG*ones(1,length_c29)];
T_EG_c = [T_EG_c,[scale_T_EG:scale_T_EG/10:0],0*ones(1,4)];
cc_done = nnn1;

Page 35
The battery variables during the EU cycle are shown in Fig. 3.1.3 a)−d) below. Since the latter part of the EU
cycle is very demanding, Fig. 3.1.3.b) clearly shows the drop in battery voltage.

Batterieladegrad Batteriespannung in V
0.4 180

0.39 160

0.38 140

0.37 120

0.36 100

0.35 80
0 500 1000 1500 0 500 1000 1500
Zeit in s Zeit in s

Batteriestrom in A Batterieleistung in kW
300 30

200 20

100 10

0 0

-100 -10

-200 -20
0 500 1000 1500 0 500 1000 1500
Zeit in s Zeit in s

Fig. 3.1.3 (a − d) battery a) charge ratio (), b) voltage (V), c) current (A) and d) power (kW)

Fig. 3.1.4 shows the operating points of the generator from its start at idle (i.e., without torque or current
output) and then charged. The operating points are all found to be near its peak efficiency of at least 85%.

140

0.7
120

100 0.75

80 0.8
torque in Nm

0.83

60
0.85

40

20

0 100 200 300 400 500 600


speed in rad/s

Fig. 3.1.4 Operating points of the generator

Page 36
The efficiency of an IC engine during the charging phase is shown as well. During acceleration, it runs up only
its inertia and that of the electric generator, but even those few peaks are within an acceptable efficiency level of
about 20%.

0.33
0.32

25 0.3

0.275
20

15
torque in Nm

0.2
10

5
0.1

0
100 200 300 400 500 600 700 800
speed in rad/s

Fig. 3.1.5 Operating points of the internal combustion engine

A comparison between Figs. 3.1.4 and 3.1.5 clearly shows the torque reserves of the generator as opposed to a
nearly maximum torque of the IC engine when both are run at the maximum output of slightly over 20 kW at
the rotating speed selected. If a higher output level of the range extender group was desired, a different transmis-
sion ratio would have to be used which in turn would not be tolerable for the chosen batteries. In real situations
demanding higher outputs flowing from the generator to the electric motor, such as in climbing for extended
times, either a gearbox would have to be included in the "range extender group", or the output of the IC engine
would have to be throttled.

Fig. 3.1.6 shows the fact that the battery's operating points almost always are very good, i.e. at a level of appro-
ximately 90%. (The white dot indicates the temporal mean value) Only at very large load levels, which of
course affect the total efficiency, the battery shows worse results.

1.8
0.65
1.6

1.4 0.70

1.2
0.75
discharge ratio c

1
0.80
0.8

0.85
0.6

0.90
0.4

0.95
0.2

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

normed battery charge q

Fig. 3.1.6 Operating points of the battery

Page 37
3.2 Adding new elements
New elements can be added easily if a few points are considered along the way. Using its inputs any new ele-
ment must recalculate its outputs once every cycle. As Simulink does not show the sequence in which it recal-
culates the various blocks, it is important to ensure that these blocks do not contain any implicit conditions
whenever these outputs are recalculated.

If any "dynamic" elements are to be considered, such as those necessary for integrators, they should be included
in time-discrete "delay" blocks only. Within those blocks, their step size must be set to h , and they may not
termed differently.

Implicit functions are allowed, but they usually cause noticeably longer computation times. Besides, the Simu-
link solver may have trouble solving implicit equations due to the fact that they can represent discontinuities
within the model equations. It is thus preferable to solve any implicit equations prior to adding those elements.
If that cannot be done, the inclusion of a "delay" block may break up the implicit loop (cf. the description of the
battery model in Sec. 2.6 above).

Besides the fact that the general rules for Simulink programming and generally good programming techniques
should be followed, there is nothing new required for the addition of new elements.

3.3 Embedding of QSS-TB programs in Matlab


One of the main strength of the QSS-TB is the ease with which all of the models developed can be included in
other Matlab programs, thus allowing to take advantage of the full range of functions that the multitude of Mat-
lab toolboxes offers. One example of such an inclusion in the Optimization Toolbox as shown below.

The "sim" instruction is the key to the inclusion of any QSS-TB program. The model to be simulated may be
called up simply with the instruction:

>> sim('model_name');

where the single quote signs around the name of the model from the QSS-TB to be simulated are a Matlab rule.
Simulink then refers to the model parameters defined within the Matlab workspace and to the initial conditions
and the simulation parameters (e.g., accuracy demanded, time to end, etc.) defined within the QSS-TB model to
run the computation of the model. A number of control parameters as well as the desired output may be changed
at the time the model is called up since the instruction "sim" is a "regular" Simulink instruction. The instruc-
tions "help sim" and "help simset" provide further details.

If the transmission of the results from Simulink to Matlab does not run smoothly, this may be due to the dis-
tinctions Matlab makes among the areas where its various variables are saved. There are two ways to avoid this
problem: Either the "sim" instruction is written to include specific instructions for the output, or so-called "glo-
bal" variables are introduced with the instruction "global".

Calling up the QSS-TB is comparable to calling up any other Matlab function, except of course that the CPU
time of an entire cycle simulation is longer than that of a simple function. In any case, the full range of possibi-
lities Matlab offers in signal processing, the visualization of data, etc. can be used with this toolbox.

Page 38
3.4 Example "Optimal transmission design"
The following optimization problem is to serve as an example for the embedding of a QSS program in a Matlab
routine:

How should a standard (manual) transmission be designed for optimum fuel consumption in the EU cycle?

Given that the vehicle under consideration must be able to drive the EU cycle, we want to find the gear ratios
that lead to the lowest fuel consumption possible under the conditions defined by the EU legislation (the EU
cycle prescribes which gear is to be engaged for all times in the cycle). Obviously, a more useful problem would
consider as additional parameters the time instances for the gear changes, etc., but it would also be too complex
for this brief example.

For this example, the vehicle, the engine, and all the other elements except for the gearbox system are those
considered in Sec. 1.3 above and in the lecture "Vehicle Engine Systems". Table 3.4.1 shows the initial and the
optimized gear ratios that resulted from these calculations.

Table 3.4.1 Gear ratios − original and optimized values

i1 = 15.1740 i2 = 8.3380 i3 = 5.3780

i4 = 3.9370 i5 = 2.7480

i1 = 13.2870 i2 = 6.2787 i3 = 2.8482

i4 = 2.5179 i5 = 3.2810

The resulting fuel savings are approximately 0.25 liters/100 km which, based on the initial consumption values
of 3.25 l/100 km, indicate an improvement of slightly over 8%. As expected, the concomitant changes in torque
and rotating speed are shown in Fig. 3.4.1, i.e. torque increases, while speed decreases somewhat. A vehicle
with these values would not likely to be acceptable in its driveability since it would have a relatively weak acce-
leration performance.

0.33 0.33
50 0.32 40 kW 50 0.32 40 kW

0.3 0.3
40 40
engine torque in Nm

engine torque in Nm

0.275 0.275

30 20 kW 30 20 kW

20 0.2 20 0.2

10 kW 10 kW
6 kW 6 kW
10 0.1 10
3 kW 3 kW

0 0
100 200 300 400 500 600 700 800 100 200 300 400 500 600 700 800
engine speed in rad/s engine speed in rad/s

Fig. 3.4.1 Distribution of the operating points compared − a) original powertrain system
b) optimized version

Page 39
The primary purpose of this optimization is to include the Simulink model, i.e., the QSS-TB based thereon
which is used to compute the fuel consumption, as a subroutine in an existing optimization routine to compute
its optimization criterion.

This is a fully numerical optimization, which means that the gradients of the optimization criterion are not avai-
lable in a closed form. Instead, the optimization algorithm itself must numerically approximate the gradients of
the optimization criterion. For this example, the routine "fmins" from the Optimization toolbox is used.
Table 3.4.2 shows a relevant excerpt from its User's Guide.

Table 3.4.2 Excerpt from the help text concerning the optimization routine used
FMINS Minimize function of several variables.
X = FMINS('F',X0) attempts to return a vector X which is a local
minimizer of F(x) near the starting vector X0. 'F' is a string
containing the name of the objective function to be minimized.
F(x) should be a scalar valued function of a vector variable.

X = FMINS('F',X0,OPTIONS) uses a vector of control parameters.


OPTIONS(2) is the termination tolerance for x; the default is
1.e4. OPTIONS(3) is the termination tolerance for F(x); the
default is 1.e4.

FMINS uses a NelderMead type simplex search method.

To call 'fmins' thus needs two things:

• the name of the .m file containing the computation of the optimization criterion,
e.g., 'optigear'

• an estimate of the optimum gear ratios, termed 'i_guess', for instance.,

with, for instance,

'i_guess = [i_1; i_2; i_3; i_4; i_5;]',

and

'i_opt = fmins('optigear',i_guess)'.

Table 3.4.3 shows the computation of the optimization criterion within 'optigear'.

The routine 'optigear' receives the actual value for the gear ratio in the vector'gear_ratio'.

Any additional parameters that are subject to being treated or changed must be predefined as 'global' (a
procedure copied from the "common" structure of the FORTRAN programming language).

Page 40
The computation itself, i.e., the quasi-static simulation of the vehicle model, is started by the instruction 'sim'.
In the simplest case in which all starting conditions, end time, etc. are given within the QSS program, 'sim'
only requires the name of the Simulink file to be run.

The output of the subroutine 'optigear' represents the total fuel consumption of the cycle. In case the cycle
is not computed all the way through, i.e., the actual end time of the simulation is less than the end time 't_sim'
given, the computation yields a high consumption value by design to ensure that the constraints are duly consi-
dered. However, this is possible only if the Simulink program proper also contains the mechanisms necessary to
recognize overload and overspeed situations and to react with a simulation abort, if necessary. The QSS-TB
elements of course do fulfill these conditions.

Table 3.4.3 Computation of the optimization criterion for the numerical optimization

function V_res=OptiGear(gear_ratio);

% transfer parameters
global G_z I_z t t_sim V

% select gear
nnn=max(size(G_z));
for i=1:nnn;
if G_z(i)==0;
I_z(i)=0;
elseif G_z(i)==1;
I_z(i)=gear_ratio(1);
elseif G_z(i)==2;
I_z(i)=gear_ratio(2);
elseif G_z(i)==3;
I_z(i)=gear_ratio(3);
elseif G_z(i)==4;
I_z(i)=gear_ratio(4);
elseif G_z(i)==5;
I_z(i)=gear_ratio(5);
end;
end;

% compute EU cycle and generate consumption dat


sim('smileqss');
V_res=V(max(size(t)))

% check if cycle was completed, else select high value


if max(size(t)) < t_sim
V_res=4.0
end;

Page 41
The various gear ratios computed during the course of the optimization routine are shown in Fig. 3.4.2. The
optimization process reaches a static state after approximately 200 iterations; the concomitant fuel consumption
value of around 2.97 l/100 km should be near a local minimum as well.

One of the most interesting results of this simulation is that for the EU cycle a powertrain system requires no
more than three gears. The third, fourth, and fifth gears are so close together that their combination into a single
one does not significantly increase the consumption value. Contrary to what might be expected, if the value for
third gear is used for the fourth and fifth gears as well, the resulting consumption value for the whole cycle is
even slightly smaller than the result obtained from the optimization algorithm (i.e., 2.94 vs. 2.97 l/100 km).

Veränderungen der Übersetzungen während der Optimierung


25

20

15
Übersetzungen

1. Gang

10

2. Gang

5
3. Gang 5. Gang

4. Gang

0
0 50 100 150 200 250 300
Iterationsschritt

Fig. 3.4.2 The various gear ratios computed during the course of the optimization routine

Page 42

You might also like