Skip to content

Population analysis

The Population Analysis computes the energy for a given population of vehicle parameters values and for a given list of GPS tracks. This analysis is useful to explore design parameters and their impacts on the overall energy consumption of the vehicle.

For each parameter listed in the Section 4, variable (see file below), the software will assign a value within the boundaries given by the key words lower bound and upper bound, and according to a given probability law. The algorithm uses numpy.random function. Three probability laws are available:

  • uniform: assigns a random value within user-defined lower and upper bounds. It corresponds to numpy.random.uniform
  • normal: assigns a value following the normal law where 99% of the values are within user defined lower and upper bounds. It corresponds to numpy.random.normal
  • regular: assigns evenly spaced values within user-defined lower and upper bounds. It corresponds to numpy.linspace

The number of values within the given interval is controlled with the keyword sample size

If a list of tracks is given in the input file section, the population of vehicle parameters is repeated for each track.

The Population Analysis input file must have the following format.

You can download the template file and save it to your workspace. The content of this file is shown hereafter.

##########################
# SECTION 1: Analysis Type
analysis_type : Population Analysis

sub analysis type: GPS Replay

################################
# SECTION 2: Analysis Parameters
# Finite difference order
# 1 = linear (default)
# 2 = quadratic
precision order: 1
# Calculation method
# Vector = all forces are calculated in the world CS and are vectors
method: Vector
# Include rotation inertia terms in the energy calculation
# True: rotational inertia terms are take into account
# False: rotational inertia terms are neglected (default)
# The inertia terms are generally small and can be nelected in most cases
Rotation inertia: False

###########################
# SECTION 3: Output Request
# Select output units. Available choices are:
# Energy: J = Joule, kWh = kilo Watt hour
# Power: W = Watt, kW = kilo Watt, HP = Horsepower
# Distance: m = meter, km = kilometer, mile = mile
units :
  Energy: kWh
  Power: kW
  Distance: km
# Would like to save results in a output file? If yes: save:true, If not: save:False
save: True
# Input the output folder where to save the result files
savedire: results_population
# Input the first part of the output file name. 
# The result file name will have following name: "file name"_"trajet"_"GPS track name".yaml
# savename: GPS_Replay_new
# Output details:
# 1 = normal (default)
# 2 = debug
out_level: 1

############################
# SECTION 4: Analysis inputs
# Directory where the GPS files are located
directory: Tracks

# list of GPX input
# You can also in the keyword "all" to take all GPX files found in the "directory" specified above.
gps_files :
  - trackExample.gpx
# Choose variable to modify 
# Choose probability law : uniform, normal and regular (regular is for constant interval)
variable:
  mass:
    lower bound: 400.0
    upper bound: 420.0
    probability law: regular

  transmission_ratio:
    lower bound: 5.0
    upper bound: 15.0
    probability law: regular

# Number of differente vehicle to generate
sample size: 3

# Input the vehicle characteristics
vehicle:
  mass: 405         # Total mass of the vehicle + driver + luggage in [kg]
  radius: 0.25        # Wheel radius in [m]
  Cx: 0.325            # Total vehicle Drag coefficient [dimensionless]
  Crr: 0.01          # Totale vehicule rolling resistance coefficient [dimensionless]
  S: 1.5               # vehicle aerodynamic cross section perpendicular to vehicle velocity in [m^2]
  nbr: 1             # Number of driving wheel
  V_int: 4      # Total interior volume of the vehicle [m^3]
  S_tot: 5           # Total exterior surface [m^2]

  P_headlight: 80    # Headlight power [W]
  dmdt: 0.05         # Flow rate of air through vents in [kg/s]
  ktherm: 10         # thermal conductivity coefficient in [W/m^2/K]
  T_int: 300         # intern temperature [K]
  T_ext: 280         # external temperature [K]

  I_sun: 1000     # Solar heat flux [W/m^2]
  S_windows: 2         # Glass total surface [m^2]
  A_windows: 0.6       # Glass absorption coefficient [dimensionless]

  n_motor: 1        # number of motors [dimensionless]
  efficiency_map: Valeo 415001  # file path to the motor efficiency map. The map is a torque - rotation velocity - efficiency map.

  transmission_ratio: 12         # Total transmission ratio between motor pulley and motorised wheel gear [dimensionless]
  eta_battery: 0.95 # Batterie efficiency [dimensionless]
  eta_transmission: 0.96 # transmission axe efficiency [dimensionless]
  eta_motordrive: 0.96 # onduleur efficiency [dimensionless]
  R_int: 0.08       # internal batterie resistance in [ohm]

  Inertia_Mat: # Inertia matrix of the sprung mass, in the vehicle coordinate system [kg.m^2]
  - [44, 2, 2]
  - [2, 72, 2]
  - [2, 2, 80]
  Wheel_Base: 1.60 # Wheelbase = distance between front and rear axle [m]

  Track: 1.10  # Track = distance between the contact points of the 2 front wheels [m]

  Height: 1.70  # Height of the vehicle [m]

  X_Cog: 1.10  # X coordinate of the vehicle center of gravity, in the vehicle coordinate system [m]

  Y_Cog: -0.05  # Y coordinate of the vehicle center of gravity, in the vehicle coordinate system [m]

  Z_Cog: 0.40  # Z coordinate of the vehicle center of gravity, in the vehicle coordinate system [m]

  Stiff_Front: 100000  # Front suspensions stiffness [N/m]

  Stiff_Rear: 100000 # Rear suspension stiffness [N/m]

  Damp_Front: 1000  # Front suspensions damping coefficient [N.s/m]

  Damp_Rear: 1000  # Rear suspension damping coefficient [N.s/m]