Challenge

Development of a forward energy-based fuel consumption model of a conventional vehicle.

AIM:-

development of a forward energy-based fuel consumption model of a conventional vehicle.

OBJECTIVE:-

compute the fuel economy numbers for the given vehicle (kmpl) on the urban cycle (UDDS) and highway cycle (HWFET). Also, to analyze and understand the vehicle operating points in terms of engine speed, torque, transmission speeds, pedal positions, gear, distance traveled.

THEORY :-

Forward model :

  • forward models are a dynamic simulation
  • dynamic models are used for detailed simulations
  • force / torque / power is the input and vehicle state variables velocity and acceleration are outputs
  • models and simulation are more realistic due to physical casuality , hence appropriate for control development .
  • there is a feedback loop to meet the desired vehicle state
  • slower simulation due to the dynamics
  • approach mainly used to simulate a vehicle on a driving cycle to analyze the dynamic behavior of the system . help significantly in control development .

PRE - PROCESSING :-

“Project1_InitFile.m” is a Matlab script used to load all the variables required for running the Simulink model and for post processing. The drive cycle selection is also done here. Before running the Simulink vehicle model, run this initialization script.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Skill-Lync -> Hybrid Drives Development
% Project 1 - Conventional Vehicle Model
% By - Ullekh Gambhira 

% Description:

%% Initialization File
% Initialization file for loading the variables for the Conventional vehicle simulation model

%% Vehicle Parameters
M = 1500;       % Vehicle weight [kg]
Cr = 0.015;     % Rolling resistance coefficient
Rw = 0.35;      % Rolling radius [m]
Cd = 0.33;      % Drag coefficient
Af = 2;         % Frontal area [m2]
rhoa = 1.225;   % Air density [kg/m3]
Vwind = 0;      % Wind velocity [kmph]
g = 9.81;       % Gravitational acceleration [m/s2]
theta = 0;      % Slope [deg]
myu_road_tire = 1; % Coefficient of friction between tire - road interface

%% Powertrain Parameters 
FDR = 3.73;                         % Final Drive Ratio / Diff Ratio
DiffEff = 0.99;                     % Differential efficiency (assumed independent of operating conditions)

NumGear = 4;                        % Number of gears in transmission
TransGear = [1:NumGear];            % Transmission Gears
TransRatio = [3.06, 1.62, 1, 0.7];  % Corresponding Transmission ratios
TransEff = 0.90;                    % Transmission efficiency (assumed independent of operating conditions)

TC_SR = [0, .5, .6, .7, .8, .87, .92, .94, .96, .97, 1];   % Torque Converter Speed Ratio (Matlab default) -> TurbSpd/PumpSpd  
TC_TR = [2.232, 1.5462, 1.4058, 1.2746, 1.1528, 1.0732, 1.0192, 1, 1, 1, 1];   % Torque Converter Torque Ratio (Matlab default) -> TurbTrq/PumpTrq
TC_Cf = 1e-4 * [.72558, .66322, .63463, .59042, .51331, .4144, .29287, .22444, .12186, .04386, 0]; % Torque Converter Capacity Factor (Matlab default) -> PumpTrq/PumpSpd^2 [Nm/rpm^2]

load Vehicle_Data/Engine_data_1_9L_Saturn_95kW
load Vehicle_Data/Trans_Shift_map

%% Driver Parameters
Kp = 10;                    % P gain for driver PI model
Ki = 1;                     % I gain for driver PI model
Drive_Cycle_Select = 1;     % Drive cycle selection

% Drive cycle values in m/s

if Drive_Cycle_Select == 1
    load DriveCycles/UDDS;
    
elseif Drive_Cycle_Select == 2
    load DriveCycles/HWFET;
    
elseif Drive_Cycle_Select == 3
    load DriveCycles/FTP;
    
elseif Drive_Cycle_Select == 4
    load DriveCycles/US06;
    
elseif Drive_Cycle_Select == 5
    load DriveCycles/NEDC;
    
elseif Drive_Cycle_Select == 6
    load DriveCycles/WLTP;
 
end

time_end = cyc_time(end);
vel_end = cyc_vel(end);

SIMULINK MODELLING :-

The Simulink model for the convection model is created using 3 main subsystem blocks for the driver model, control model and powertrain block. The actual vehicle speed is given as feedback to the driver block, and the driver block gives the controller block the required acceleration and brake output, while the controller block provides control signals to the Powertrain model.

1. Driver block :

  • Driver model takes vehicle speed as input and generates required acceleration pedal and brake pedal output . A PI controller is used in this model , which is used to control the error between drive cycle and velocity .

2. Controller block :

the controller block consist of 3 subsystem blocks . they are engine control unit block , transmission control unit block and brake control unit block . the output from engine control unit , transmission control unit and brake control unit is fed into ' bus creater' block .

2.1 Engine control unit :

idle speed controller :

  • required engine torque is the output of engine control unit . we compare vehicle speed in the lookup table to get maximum and minimum torque curve . the difference of max and min torque is multiplied with throttle idle to get finally required engine torque .
  • idle speed converter gives throttle idle as output .

2.2 Transmission control unit block :

The transmission control block controls the gear shifting using the study flow Variable chart.

  • The Gear shifting is Controlled according to the vehicle speed and throttle input. The gear command is passed to the Transmission block to select the desired gear ratio.

2.3 Brake control unit :

  • Brake Control unit gives required brake torque as output according to the brake pedal input and passes the brake torque in to the wheel block in the transmission model

3 . Powertrain model

A powertrain is an assembly of every component that thrusts your car into motion. It includes engine, transmission, differential , wheels and vehicle dynamics

3.1 Engine subsystem :

  • Based on engine speed by using two 1D lookup tables we find engine torque .and passed it to transmission block .
  • The 2D lookup table is used to calculate the fuel flow rate based on engine speed and engine torque.
  • The fuel flow rate is then integrated to find the fuel consumption.
  • Estimated fuel flow rate, fuel consumption, engine torque and engine speed are passed to the MATLAB workspace using the to[1]workspace block.

3.2 Transmission subsystem :

Torque converter :

  • We first convert engine torque into transmission input torque with torque converter block .
  • Product of Transmission input torque , gear ratio and transmission efficiency gives us transmission output torque
  • Product of transmission output speed and gear ratio gives transmission input speed .
  • Lookup table compares gear input to give gear ratio
  • Transmission is automatic for this model

3.3 Differential subsystem :

  • Transmission output torque is multiplied by differential ratio and differential efficiency to get axle torque .
  • Axle torque is given as input to wheel subsystem

3.4 wheel subsystem :

  • Difference of axle torque and brake torque is divided by rolling radius to get tractive force .
  • Tractive force is given as input to vehicle dynamics subsystem
  • Velocity is divided with rolling radius to get wheel speed

3.5 Vehicle dynamics :

  • Sum of rolling resistance force , aerodynamic force and grade force gives road load .
  • Difference of tractive force and road load is divided by mass to get acceleration
  • Acceleration is integrated to get velocity . then velocity is integrated to get distance covered by vehicle .
  • Acceleration , velocity and distance covered are stored in workspace .

SIMULATION RESULTS

1 UDDS drive cycle

1.1 Drive cycle and actual velocity:

1.2 Gear command , engine and brake torque required :

1.3 Engine fuel consumption and engine fuel rate:

1.4 Engine torque :

1.5 Gear ratio , transmission output and input speed :

1.6 Rolling resistance , grade and aerodynamic force :

1.7 Road load , acceleration and tractive force :

2 HWFET drive cycle

2.1 Drive cycle and actual velocity:

2.2 Gear command , engine and brake torque required :

2.3 Engine fuel consumption and engine fuel rate :

2.4 Engine torque:

2.5 Gear ratio , transmission output and input speed :

2.6 Rolling resistance , grade and aerodynamic force :

2.7 Road load , acceleration and tractive force :

POST PROCESSING

“Project1_ProcessingFile.m” is the Matlab script used to analyze this data and to generate plots. This script needs to be executed after the Simulink model data has been loaded into the workspace. Here we rename the variables loaded from the model (if desired), do some basic post-process calculations and generate results and plots

%% Post-Processing File
% File for post-processing the Conventional vehicle simulation model data

%% Renaming variables
Time = out.tout;
Acc_Pdl = out.Acc_Pdl; % Accelerator pedal [%]
Brk_Pdl = out.Brk_Pdl; % Brake pedal [%]
Gear_Cmd = out.Gear_Cmd; % Transmission gear
Trans_In_Spd = out.Trans_In_Spd*30/pi; % Transmission input speed [rpm]
Trans_Out_Spd = out.Trans_Out_Spd*30/pi;% Transmission output speed [rpm]
Eng_Trq = out.Eng_Trq; % Engine brake torque [Nm]
Eng_Spd = out.Eng_Spd*30/pi; % Engine speed [rpm]
Eng_Fuel_rate = out.Eng_Fuel_Rate1; % Engine Fuel Rate [gkW]
Eng_Fuel_Consump = out.Eng_Fuel_Consumption; % Engine fuel consumption [g]
Veh_Dist = out.Veh_Dist/1000; % Distance traveled by vehicle [km]
Veh_Spd = out.Veh_Spd*18/5; % Vehicle speed [kmph]
Whl_Spd = out.wheel_spd*30/pi; % Wheel speed [rpm]


%% Data Analysis
Eng_Pwr = Eng_Spd*pi/30.*Eng_Trq/1000; % Engine brake power [kW]
rho_petrol = 0.7197; % Density of petrol [kg/L]
kmpl = Veh_Dist(end)/(Eng_Fuel_Consump(end)/1000/rho_petrol); % Fuel economy [kmpl] 

%% Plotting vehicle characteristics time trace
%% Plotting transmission input, transmission output and wheel speed
figure(1)
hold on
plot(Time, Trans_In_Spd, 'linewidth', 1, 'Color', 'black');
plot(Time, Trans_Out_Spd, 'linewidth', 1, 'Color', 'red');
plot(Time, Whl_Spd, 'linewidth', 1, 'Color', 'blue');
xlabel('Time [s]')
ylabel('Speed [rpm]')
legend('Transmission Input','Transmission Output','Wheel Speed');

%% Plotting engine torque, engine power, fuel rate and fuel consumption
figure(2)

subplot(4,1,1)
plot(Time, Eng_Trq,'linewidth',1);
ylabel('Torque [Nm]')
title('Time vs Torque')

subplot(4,1,2)
plot(Time, Eng_Pwr,'linewidth',1);
ylabel('Power [KW]')
title('Time vs Power')

subplot(4,1,3)
plot(Time, Eng_Fuel_rate,'linewidth',1);
ylabel('Engine Fuel rate');
title('Time vs engine fuel rate')

subplot(4,1,4)
plot(Time, Eng_Fuel_Consump,'linewidth',1);
xlabel('Time [s]');
title('Time vs engine fuel consumption')
ylabel('Fuel Consumption [g]');

%% Plotting accelerator and brake pedal , gear command , speed, vehicle distance
figure(3)

subplot(4,1,1)
hold on
plot(Time, Acc_Pdl,'linewidth',1);
plot(Time, Brk_Pdl,'linewidth',1);
ylabel('Pedal [%]')
legend('Accel','Brake');
title('Time vs acceleration & brake pedal')

subplot(4,1,2)
plot(Time, Gear_Cmd,'linewidth',1);
ylabel('Gear');
title('Time vs gear command')

subplot(4,1,3)
plot(Time, Veh_Spd,'linewidth',1);
ylabel('Speed [Kmph]')
title('Time vs vehicle speed')

subplot(4,1,4)
plot(Time, Veh_Dist,'linewidth',1);
xlabel('Time [s]');
ylabel('Distance [Km]');
title('Time vs vehicle distance')

%% Plotting engine operating points on engine fuel map
figure('Name','Engine Operating Points');
hold on
grid on
title('Engine Operating Points','fontsize',12);
p1=plot(Eng_map_spd*30/pi,Eng_max_trq,'linewidth',2,'color','r');
p2=line([Eng_map_spd(end)*30/pi Eng_map_spd(end)*30/pi],[0 Eng_max_trq(end)]);
set(p2,'linewidth',1,'linestyle','--','color','k');
p3=line([Eng_map_spd(1)*30/pi Eng_map_spd(1)*30/pi],[0 Eng_max_trq(1)]);
set(p3,'linewidth',1,'linestyle','--','color','k');
[c,h] = contour(Eng_map_spd'*30/pi,Eng_map_trq,Eng_fuel_map');
clabel(c,h);
xlabel('Engine Speed [rpm]');
ylabel('Engine Torque [Nm]');
title('Engine Fuel Consumption Map [g/s]');
legend([p1 p3],{'Max Curve','Operating Points'});
axis([Eng_map_spd(1)*30/pi Eng_map_spd(end)*30/pi 0 Eng_map_trq(end)]);

%% results
fprintf('Fuel Economy = %2.2f',kmpl);

RESULTS

Fuel economy :

UDDS

HWFET

The time trace for engine, transmission input, transmission output and wheel speed :

UDDS

HWFET

Engine torque, engine power, fuel rate and fuel consumption:

UDDS

HWFET

Accelerator and brake pedal, gear command, vehicle speed, vehicle distance:

UDDS

HWFET

The engine operating points on the engine fuel map:

UDDS

HWFET

  • The UDDS cycle Fuel Economy is much lower than the HWFET cycle drive because highway drive require more power and torque.
  • HWFET drive cycle have high torque and power requirement as compared to UDDS cycle as a result more fuel consumption .
  • There is frequent using of acceleration and brake pedal in UDDS drive cycle . also frequent gear shifts in UDDS cycle . but drive in HWFET cycle is much smoother and no frequent use of brake pedal and gear shifting .
  • The engine operating points are plotted on the fuel map and the operating point is under the maximum torque curve.

CONCLUSION :-

We have successfully simulated forward model for conventional vehicle and the results are satisfactory .

REFERENCE :-

Wikipedia

google

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.