Project 1
PROJECT ON FORWARD ENERGY BASED FUEL CONSUMPTION OF A CONVENTIONAL VEHICLE
OBJECTIVE :
To develop a forward energy based fuel consumption model of a conventional vehicle using MATLAB and SIMULINK to analyze data and generate plots on different drive cycle like UDDS and HWFET.
THEORY :
- In a conventional vehicle the power is generated by an IC engine that convert chemical energy stored in the liquid fuel into a mechanical energy by the process of combustion.
- This mechanical energy reach the wheels through a drive train which contains the transmission, differential components.
- The process of energy conversion has an efficiency of an IC engine. This is defined as the ratio of workdone to the energy supplied to an engine .
- There are a multiple different types of efficiencies like :
- Mechanical efficiency : It is the ratio of the brake power(B.P) to the indicated power(I.P).
- Overall efficiency : It is the ratioo of the work obtained at the crankshaft in a given time to the energy supplied by the fuel during the same time.
- Indicated thermal efficiency : It is the ratio of heat equivalent to one kW hour to the heat in the fuel per indicated power (I.P) hour.
- Brake thermal efficiency : It is the ratio of heat equivalent to one kW hour to the heat in the fuel per Braking power(B.P) hour.
- Volumetric efficiency : It is the ratio of actual volume of the charge admitted during the suction stroke at N.T.P to the swept volume of the piston.
MODELING AND SCRIPTING CODE :
- A MATLAB code "Project1_InitFile.m" is created to load the variables to the workspace.
- In this project, a typical midsize car with a 1.9 L engine and a 4-speed automatic transmission is considered.Data is taken from ADVISOR data base developed by NREL, USA.
- Transmission shift map and controller is taken from Matlab/Simulink example database.
- The model developed has the capability to simulate the vehicle on different drive cycles like UDDS, HWFET, FTP, NEDC, etc.
- We have to write the code on two drive cycle like UDDS (Urban Cycle) and HWFET (Highway Cycle).
- First one for UDDS.
SCRIPT/CODE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Skill-Lync -> Hybrid Drives Development
% Project 1 - Conventional Vehicle Model
% Description:
%% Initialization File
% Initialization file for loading the variables for the Conventional vehicle simulation model
clear all
close all
clc
%% 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);
THE SIMULINK MODEL:
- It is modeled using a ‘Driver’ block, which is a basic PI controller that generates accelerator and brake pedal outputs to match the desired and actual vehicle speeds.
- This accelerator and brake pedaldata is generated using the drive cycle data in which is fed through look up table.
DRIVER BLOCK:

CONTROLLER BLOCK :
- The ‘Controller’ block is the brains of the vehicle, representing the electronic controls units. Based on the driver inputs, it generates desired engine torque, desired transmission gear and desired brake torque.
- The data inputs are fed to the ‘Powertrain’ block which represents the drivetrain of the vehicle. It consists of an ‘Engine’ connected to the ‘Automatic Transmission’ through a ‘Torque Converter’. The output of the transmission is connected to the ’Differential’, which powers the ‘Wheels’, that provides the tractive force for vehicle acceleration. The longitudinal dynamics of the vehicle along with the road load is represented in the ‘Vehicle Dynamics’ block. The solver selected is ode3 with a fixed step size of 0.01 sec.
POWERTRAIN :

ENGINE BLOCK :

TRANSMISSION BLOCK :

DIFFERENTIAL BLOCK :

WHEEL BLOCK :

VEHICLE DYNAMICS :

- The equation used for vehicle dynamics is:

POST PROCESSING:
- The Data from the SIMULINK model was transferred to matlab workspace using 'To Workspace' block
- A post processing MATLAB code was used to gererate the necessary plots.
THE SCRIPT
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Skill-Lync -> Hybrid Drives Development
% Project 1 - Conventional Vehicle Model
% By - Vikash Kumar
% Description:
% The following file is to used with the Initialization file and Simulink
% results for post-processing of the data.
% The file is incomplete, has some examples of how the data is imported
% into a readable format, data analysis and plotting examples.
% Based on the project task, use commands in a similar format as given
% below, to analyse the data and generate required plots.
% You can change variable names if desired
%% 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_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]
Wheel_Spd = out.Wheel_Spd; % wheel speed [kmph]
Eng_Fuel_Rate = out.Eng_Fuel_Rate; % Engine fuel flow rate [%]
Veh_Desired_Spd = out.Veh_Desired_Spd; % vehicle desired speed [kmph]
%% 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 Engine speed,Transmission I/P spd, Transmission O/P Spd and Wheel Speed
figure(1)
hold on
grid on
plot(Time,Eng_Spd,'LineWidth',1,'Color','g');
plot(Time,Trans_In_Spd,'LineWidth',1,'Color','black');
plot(Time,Trans_Out_Spd,'LineWidth',1,'Color','red');
plot(Time,Wheel_Spd,'LineWidth',1,'Color','blue');
xlabel('Time [s]')
ylabel('Speed [rpm]')
xlim([0, Time(end)]);
ylim([0, 6000]);
legend('Engine Speed','Transmission I/P Spd','Transmission O/P Spd','Wheel Speed');
%% Plotting Fuel Consumption vs Fuel Rate
figure(2)
hold on
grid on
plot(Time, Eng_Fuel_Consump, 'linewidth', 1, 'Color', 'black');
plot(Time, Eng_Fuel_Rate, 'linewidth', 1, 'Color', 'red');
xlabel('Fuel Consumption ')
ylabel('Fuel Flow Rate ')
xlim([0, Time(end)]);
legend('Fuel Consumption','Fuel Flow Rate');
%% Plotting vehicle characteristics time trace engine torque, engine power, fuel rate and fuel consumption
figure(3)
subplot(2,2,1)
plot(Time,Eng_Trq,'LineWidth',1,'Color','g')
xlabel('Time [s]')
ylabel('Torque [Nm]')
legend('Torque')
subplot(2,2,2)
plot(Time,Eng_Pwr,'LineWidth',1,'Color','black')
xlabel('Time [s]')
ylabel('Power [kW]')
legend('Engine Power')
subplot(2,2,3)
plot(Time,Eng_Fuel_Rate,'LineWidth',1,'Color','red')
xlabel('Time [s]')
ylabel('Fuel Rate [%]')
legend('Fuel Flow Rate')
subplot(2,2,4)
plot(Time,Eng_Fuel_Consump,'LineWidth',1,'Color','blue')
xlabel('Time [s]')
ylabel('Fuel Consumption [kmpl]')
legend('Fuel Consumption')
%% Plotting vehicle characteristics time trace accelerator and brake pedal, gear command, vehicle desired and actual speed.
figure(4)
subplot(3,1,1)
hold on
grid on
plot(Time, Acc_Pdl, 'linewidth', 1, 'Color', 'black');
plot(Time, Brk_Pdl, 'linewidth', 1, 'Color', 'red');
ylabel('Pedal [%]')
xlim([0, Time(end)]);
legend('Accel','Brake');
subplot(3,1,2)
hold on
grid on
plot(Time,Veh_Spd, 'linewidth', 1, 'Color', 'black');
plot(Time,Veh_Desired_Spd, 'linewidth', 1, 'Color', 'red');
ylabel('Speed [rpm]')
xlim([0, Time(end)]);
legend('Vehicle Actual Speed','Vehicle Desired Speed');
subplot(3,1,3)
hold on
grid on
plot(Time, Gear_Cmd, 'linewidth', 1, 'Color', 'black');
xlim([0, Time(end)]);
xlabel('Time [s]');
ylabel('Gear');
title('Gear command')
%% Plotting vehicle characteristics time trace with Distance travelled
figure(5)
hold on
grid on
plot(Time, Veh_Dist, 'linewidth', 1, 'Color', 'black');
xlim([0, Time(end)]);
xlabel('Time [s]');
ylabel('Distance [km]');
title('Distance Travelled')
%% 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]');
p4 = plot(Eng_Spd,Eng_Trq,'.','color','k');
legend([p1 p4],{'Max Curve','Operating Points'});
axis([Eng_map_spd(1)*30/pi Eng_map_spd(end)*30/pi 0 Eng_map_trq(end)]);
%%% SCRIPT END
THE PLOTS:
UDDS CYCLE:
(a). Vehicle characteristics time trace Engine speed,Transmission I/P Spd, Transmission O/P Spd and Wheel Speed :

For UDDS (urban dynamometer driving schedule), This drive cycle represent the city driving condition. There are stop and Go condition occurs. Here above showing the graph of Engine speed , which is rotating machine and the speed is measured in revolution per minute. When engine runs faster, the more completed rotation it does per minute and the power it produce. Transmission input speed, it takes the power from the engine and transmite this power to the tranmission output. Transmission output speed, it takes the power from the gear box which comes from transmission input speed and transmite that speed to the differential. Differential, A differential is a gear train with three drive shaft that has the property that rotational speed of the shaft change into axle shaft to the wheel. Wheel speed, Basically it is showing the revolution of the wheel per minute.
(b) Fuel Consumption vs Fuel Flow Rate:
Fuel Consumption represent the how much fuel flow through in a time and that fuel flow in time which means fuel consumption and Fuel Flow Rate represents the how much fuel flow in a time in percentage.

(c) Vehicle characteristics time trace engine torque, engine power, fuel flow rate and fuel consumption:
Engine power, it is a power that an engine can put out. Engine Torque, it indicates the traction in an engine design,like in a car the aim is to achieve a high torque as early as possible at low engine speeds.

(d) Vehicle characteristics time trace accelerator and brake pedal, gear command, vehicle desired and actual speed :
Accelerator and Brake pedal, this is an accelerator used to make vehivle go faster and Brake pedal used for stoping the vehicle, in a city drive there are lot of stop and go situation occurs so use of brake and accelertor pedal becomes more. Gear command, gear command give the control over vehicle in urban drive. Vehicle desired and actual speed, actual spd which means there are no friction, no wind , no traction and desired vehicle speed means we need a efficient speed to to faster work.
(e). Vehicle characteristics time trace and their Distnace travel
Distance travel, it means how much vehicle travel distance in given hours.

(f) Engine operating points on engine fuel map:
A fuel map is the combination of everything an ECU knows about engine running conditions. The main goal of a fuel map is to provide the right amount of fuel.it does ths by controlling fuel injector pulse width. In UDDS cycle, fuel consumption is not more efficient than other drive like HWFET becouse of stop and go condition.

HWFET( HIGHWAY FUEL ECONOMY DRIVING SCHEDULE) CYCLE :
In Highway Driving Schedule (HWFET) represents highway driving conditions under 60 mph. In HWFET cycle, there are less energy required as compare to others like less engine loss, less parasitic loss, less power of the wheel , less powertrain loss also less idle loss in term od city driving. Once the vehicle is start, there are no stop and go condition occur.
(a). Vehicle characteristics time trace Engine speed,Transmission I/P Spd, Transmission O/P Spd and Wheel Speed :
Speed of the Engine in rpm is almost 1500 to 3500, this means there are no stoppage.When revolution more, more power required. Tansmission I/P,O/P also has same rotation But the wheel speed are practically required which maintain 60 mph always.

(b) Fuel Consumption vs Fuel Flow Rate:

(c) Vehicle characteristics time trace engine torque, engine power, fuel flow rate and fuel consumption :

(d) Vehicle characteristics time trace accelerator and brake pedal, gear command, vehicle desired and actual speed :
Here in HWFET, there are less use of Brake padel required but the accelerator padel more to accelerate all the time , speed also increases once the vehicle start, speed do not come at close to zero it happens only in final condition like stop situation.

(e). Vehicle characteristics time trace and their Distnace travel.

(f) Engine operating points on engine fuel map:
In HWFET cycle, Due to less energy required for highway driving it becomes more efficient.
CONCLUSION:
The Forward energy-based fuel consumption model of a conventional vehicle was developed using MATLAB and SIMULINK and the plots were obtained for UDDS and HWFET cycle.