Challenge

Project 2

Description:
As discussed in Lecture 11, Project 2 deals with the development of a forward energy-based fuel consumption model of a P1 hybrid vehicle. This model is based on the conventional vehicle model from Project 1.

The main goal of this project is to understand the functionality of a P1 hybrid and be able to model it.

Honda Insight motor and battery are considered for this project. Data is taken from ADVISOR data base developed by NREL, USA. Data provided in the project files.

“Project2_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.

Task:

The task of this project is to quantify the improvement in fuel economy numbers for the hybrid vehicle (kmpl), compared to the conventional vehicle, on the urban cycle (UDDS) and highway cycle (HWFET). Also, to analyze and understand the vehicle operating points in terms of engine and motor speed, torque, transmission speeds, pedal positions, gear, distance traveled, battery voltage, current, SoC etc.

To do that, the following steps need to be followed:

1) Load the Project2 folder as the Current Folder in Matlab.
2) Run the “Project2_InitFile.m” Matlab script.
3) Copy the Conventional vehicle Simulink model created for Project 1 in this folder. Figure 1: P1 Hybrid ArchitectureHybrid Drives Development
4) Modify this model into a hybrid vehicle model. The lecture presentations can be used as reference. Battery and Supervisory controller models developed in the assignments can be reused.
5) Add additional ‘To Workspace’ blocks for transferring the desired Simulink vehicle data into the Matlab workspace.
6) Simulate the hybrid model on the desired drive cycles.
7) Write a project report that contains the following:
a. Tabulate the fuel economy numbers (kmpl) for UDDS and HWFET cycle. Compare these numbers with the baseline numbers for conventional vehicle model from Project 1.
b. Plot the time trace for engine, transmission input, transmission output and wheel speed on one plot.
c. Plot engine torque, engine power, fuel rate and fuel consumption using subplots.
d. Plot accelerator and brake pedal, gear command, vehicle desired and actual speed, vehicle distance using subplots.
e. Plot the engine operating points on the engine fuel map.
f. Plot motor speed, torque, motor input power using subplots.
g. Plot pack voltage, current and SoC using subplots.
h. Plot the motor operating points on the motor input power map, with the motor max motoring and generating torque curves.
i. Write down appropriate brief comments on each of these plots, describing the vehicle behavior throughout the drive cycle.
j. Generate the plots for both drive cycles

UDDS Cycle:

The EPA Urban Dynamometer Driving Schedule (UDDS) is commonly called the "LA4" or "the city test" and represents city driving conditions. It is used for light duty vehicle testing. The UN/ECE Regulation 53 refers to the EPA UDDS as the "Test Equivalent to the Type 1 Test (verifying emissions after a cold start)."

HWFET Cycle:

The Highway Fuel Economy Driving Schedule (HWFET) represents highway driving conditions under 60 mph.

Vehicle Model

Initialization/Pre-Processing

  • A MATLAB script has been created to load all the variables needed to run and post-process the Simulink model. Drive cycle selection is also done from here. Before running the Simulink vehicle model, the script is initialised at MATLAB to load all the variables in the workspace.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Skill-Lync -> Hybrid Drives Development
% Project 1 - Conventional Vehicle Model
% By - Aksharat Jain 

% 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
load Vehicle_Data/EM_Honda_Insight_10kW
load Vehicle_Data/ESS_NiMH6


ESS_init_soc = 0.8;
ESS_SOC_max = 0.9;
ESS_SOC_min = 0.6;


%% 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 Drive Cycle can be selected from this MATLAB Script, By changing the variable Drive_Cycle_Select to,
1 UDDS
2 HWFET
3 FTP
4 US06
5 NEDC
6 WLTP
  • Here, we have selected the value of Drive_Cycle_Select = 1 (i.e for UDDS Cycle).
  • Here, we have selected the value of Drive_Cycle_Select = 2 (i.e for HWFET Cycle).

Model:

P-1 Hybrid Vehicle

Controller Block

Powertrain Block

Processing File

  • A MATLAB script is created to analyse data and to generate plots. Here we rename the variables loaded from the model, do some basic post-process calculations and generate results and plots.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Skill-Lync -> Hybrid Drives Development
% Project 1 - Conventional Vehicle Model
% By - Aksharat Jain

% 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_rate = out.Eng_Fuel_Rate; % 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]
WheelSpd = out.WheelSpd*30/pi;    % Wheel speed [rpm]
EM_Speed = out.EM_Spd*18/5;        % Electric Motor Speed
EM_Power = out.ElecPwr;            % Electric Motor Power
EM_Torque = out.EM_Trq;           % Electric Motor Torque
Term_Volt = out.Term_Volt;        % Terminal Voltage of battery
SOC = out.SOC;                    % State Of Charge
Pack_Current = out.Pack_Current;   % Pack current of battery

%% 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 fuel economy numbers (Fuel Consumption vs Fuel Rate)
figure(1)
hold on
grid on
plot(Time,Eng_Fuel_Consump,'linewidth',2); % Engin Fuel Consumption
plot(Time,Eng_Fuel_rate,'linewidth',2,'Color','#D95319'); % Engine Fuel Rate
xlabel('Fuel Consumption');
ylabel('Fuel Rate');
xlim([0, Time(end)]);
legend('Fuel Consumption','Fuel Rate');

%% Plotting vehicle characteristics time trace for engine, transmission input, transmission output and wheel speed in one plot
figure(2)
hold on 
grid on
plot (Time,Eng_Spd,'linewidth',2,'Color', '#0072BD');         % Engine Speed 
plot (Time,Trans_In_Spd,'linewidth',2,'Color', '#D95319');    % Transmission Input Speed
plot (Time,Trans_Out_Spd,'linewidth',2, 'Color', '#EDB120');   % Transmission Output Speed
plot (Time,WheelSpd,'linewidth',2,'Color','#7E2F8E');         % Wheel Speed
xlabel ('Time (s)');
ylabel('Speed (rpm)')
xlim([0, Time(end)]);
legend('Engine Speed','Transmission Input','Transmission Output','Wheel Speed');

%% Plot engine torque, engine power, fuel rate and fuel consumption using subplots
% Engine Torque
figure (3)
subplot (2,2,1)
hold on
grid on
plot (Time,Eng_Trq,'linewidth',2,'Color','#4DBEEE');     % Engine Torque
xlabel ('Time (s)');
ylabel ('Torque (Nm)');
legend ('Torque');
% Engine Power
subplot (2,2,2)
hold on
grid on
plot (Time,Eng_Pwr,'linewidth',2,'Color','#4DBEEE');     % Engine Power
xlabel ('Time (s)');
ylabel ('Power (kW)');
legend ('Power');
% Engine Fuel Rate
subplot (2,2,3)
hold on
grid on
plot (Time,Eng_Fuel_rate,'linewidth',2,'Color','#4DBEEE');   % Engine Fuel Rate
xlabel ('Time (s)');
ylabel ('Fuel Rate (%)');
legend ('Fuel Rate');
% Engine Fuel Consumption
subplot (2,2,4)
hold on
grid on
plot (Time,Eng_Fuel_Consump,'linewidth',2,'Color','#4DBEEE');         % Engine Torque
xlabel ('Time (s)');
ylabel ('Fuel Consumption (kmpl)');
legend ('Fuel Consumption');

%% Plot accelerator and brake pedal, gear command, vehicle desired and actual speed, vehicle distance using subplots.
% Accelerator and brake pedal
figure (4)
subplot(3,2,1)
hold on
grid on
plot(Time, Acc_Pdl, 'linewidth', 2,'Color', '#0072BD');    % Accelerator pedal
plot(Time, Brk_Pdl, 'linewidth', 2,'Color', '#EDB120');    % Brake Pedal
ylabel('Pedal (%)')
xlim([0, Time(end)]);
legend('Accel','Brake');
% Gear Command
subplot(3,2,2)
hold on
grid on
plot(Time, Gear_Cmd, 'linewidth', 2,'Color','r');   % Gear Command
xlim([0, Time(end)]);
xlabel('Time (s)');
ylabel('Gear');
legend('Gear Command');
% Vehicle Speed
subplot(3,2,3)
hold on
grid on
plot(Time, Veh_Spd, 'linewidth', 2,'Color','black');   % Vehicle Speed
xlim([0, Time(end)]);
xlabel('Time (s)');
ylabel('Actual Speed (kmph)');
legend('Vehicle Speed');
% Vehicle Distance
subplot(3,2,4)
hold on
grid on
plot(Time, Veh_Dist, 'linewidth', 2,'Color','g');  % Vehicle Distance
xlim([0, Time(end)]);
xlabel('Time (s)');
ylabel('Distance (km)');
legend('Distance');

%% Plotting Drive Cycle
figure(5)
hold on
grid on
plot(cyc_time, cyc_vel, 'linewidth', 1, 'Color', 'black');
xlabel('Time (s)')
ylabel('Velocity (Mph)')
title('Drive Cycle')

%% 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)]);

%% Plotting motor speed, torque, motor input power using subplots
figure(7)
% Electric Motor Power
subplot(3,1,1)
plot(Time,EM_Power,'linewidth',1,'color','black')    % Electric Motor Power
xlim([0, Time(end)]);
xlabel('Time [s]')
ylabel('Power [W]')
legend('Electric Motor Power')
grid on
% Electric Motor Torque
subplot(3,1,2)
plot(Time,EM_Torque,'linewidth',1,'color','blue')    % Electric Motor Torque
xlim([0, Time(end)]);
xlabel('Time [s]')
ylabel(' Torque [Nm]')
legend('Electric Motor Torque')
grid on
% Electric Motor Speed
subplot(3,1,3)
plot(Time,EM_Speed,'linewidth',1,'color','red')      % Electric Motor Speed
xlim([0, Time(end)]);
xlabel('Time [s]')
ylabel('Speed [Rpm]')
legend('Electric Motor Speed')
grid on

%% Plotting pack voltage, current and SoC using subplots
figure(8)
% Pack Current
subplot(3,1,1)
plot(Time,Pack_Current,'linewidth',1,'color','black')    % Pack Current
xlim([0, Time(end)]);
xlabel('Time [s]')
ylabel('Current [I]')
legend('Pack Current')
grid on
% State of Charge (SOC)
subplot(3,1,2)
plot(Time,SOC,'linewidth',1,'color','blue')              % State of Charge (SOC)
xlim([0, Time(end)]);
xlabel('Time [s]')
ylabel('Charging [%]')
legend('SOC')
grid on
% Terminal Voltage
subplot(3,1,3)
plot(Time,Term_Volt,'linewidth',1,'color','red')         % Terminal Voltage
xlim([0, Time(end)]);
xlabel('Time [s]')
ylabel('Voltage [V]')
legend('Terminal Voltage')
grid on


%% Plotting motor operating points on the motor input power map, with the motor max motoring and generating torque curves
figure('Name','Motor Operating Points');
hold on
grid on
title('Motor Operating Points','fontsize',12);
p1=plot(EM_map_spd*30/pi,EM_max_trq,'linewidth',2,'color','r');
p2=line([EM_map_spd(end)*30/pi EM_map_spd(end)*30/pi],[0 EM_max_trq(end)]);
set(p2,'linewidth',1,'linestyle','--','color','k');
p3=line([EM_map_spd(1)*30/pi EM_map_spd(1)*30/pi],[0 EM_max_trq(1)]);
set(p3,'linewidth',1,'linestyle','--','color','k');
[c,h] = contour(EM_map_spd'*30/pi,EM_map_trq,EM_inpwr_map');
clabel(c,h);
xlabel('Motor Speed [rpm]');
ylabel('Motor Torque [Nm]');
title('Motor Input Power Map [W]');
p4 = plot(EM_Speed,EM_Torque,'.','color','k');
legend([p1 p4],{'Max Curve','Operating Points'});
axis([EM_map_spd(1)*30/pi EM_map_spd(end)*30/pi 0 EM_map_trq(end)]);

a. Fuel economy numbers (kmpl)

UDDS drive cycle for conventional vehicle:

Fuel Economy = 13.6312 Kmpl

UDDS drive cycle for hybrid vehicle:

Fuel Economy = 15.4399 Kmpl

HWFET drive cycle for conventional vehicle:

Fuel Economy = 16.3072 Kmpl

HWFET drive cycle for hybrid vehicle:

Fuel Economy = 17.2535 Kmpl

As we see the fuel economy numbers for hybrid vehicle are bit higher when compared to conventional vehicle because of implementing the electric motor as it is P1 hybrid it may not have much variation in the fuel economy but as we implement other architechture it will increase by huge amount.

b. Plot the time trace for engine, transmission input, transmission output and wheel speed on one plot.

UDDS drive cycle:

HWFET drive cycle:

  • We can see that the UDDS fluctuations on the graph are greater than the HWFET cycle fluctuations.
  • When compared to HWFET, UDDS has more braking because of the traffic peak.

c. Plot engine torque, engine power, fuel rate and fuel consumption using subplots.

UDDS drive cycle:

HWFET drive cycle:

  • The vehicle used more electricity during the UDDS drive cycle because it had to make more stops and starts in urban areas than it did during the HWFET cycle.
  • Because the vehicle needs more torque when starting from a standstill to overcome static friction, the engine is higher in the UDDS drive cycle than the HWFET drive cycle.
  • Compared to the UDDS drive cycle, the HWFET drive cycle has a higher fuel rate since it will be moving continuously and require more fuel.
  • Because the UDDS cycle involves numerous starts and stops while the engine is in the idle state, the HWFET has a high fuel efficiency.

d. Plot accelerator and brake pedal, gear command, vehicle desired and actual speed, vehicle distance using subplots.

UDDS drive cycle:

HWFET drive cycle:

  • Because of the frequent starts and pauses, the accelerator and brake pedals in UDDS have more variations. Yet, because there won't be any frequent stops, the brake pedal fluctuations in HWFET are almost close to the zero line.
  • The UDDS cycle mostly uses the first and second gears; the third and fourth gears are rarely used because the cycle cannot reach high speeds in that traffic.
  • The vehicle primarily operates in third and fourth gears throughout the HWFET cycle because it will be travelling quickly.

e. Plot the engine operating points on the engine fuel map.

UDDS drive cycle:

HWFET drive cycle:

  • On the fuel map, the engine operating point is shown, and it is below the maximum torque curve.

f. Plot motor speed, torque, motor input power using subplots.

UDDS drive cycle:

HWFET drive cycle:

  • As the objective of the motor in the P1 hybrid is the starting of crank rotation, the variations will be greater in the UDDS cycle when compared to the HWFET cycle because UDDS has more starts and stops as a result of traffic.
  • Both cycles would have higher fluctuations if the motor's goal were to provide traction.
  • We can see that the motor power and torque in the HWFET start out very high and quickly drop to nearly nothing, but in the UDDS, there are constant variations because of the system's regular braking.

g. Plot pack voltage, current and SoC using subplots.

UDDS drive cycle:

HWFET drive cycle:

  • Due to the repeated starts and stops throughout the drive and the battery's need to supply energy each time the vehicle is started from the idle position, the pack voltage and current will fluctuate more in UDDS than in a HWFET cycle.
  • SOC declined with time in the UDDS cycle but increased over time in the HWFET cycle.
  • It happens because in UDDS we have frequent starts and stops and the battery has to supply the energy every time when the car is starting from the idle position, which causes the SOC to decrease, whereas in HWFET cycle the vehicle will be moving continuously without braking frequently and the alternator is used to transfer some engine power to the battery through motor, which causes the SOC to increase in the HWFET cycle.

h. Plot the motor operating points on the motor input power map, with the motor max motoring and generating torque curves

UDDS drive cycle:

HWFET drive cycle:

  • Due to the battery pack's lower capacity and resulting early exhaustion, the Electric Motor operating points for both cycles are almost identical.

Conclusion:

  • We can see that in UDDS, braking and shifting gears causes a loss in engine efficiency and fuel consumption in conventional vehicle so the forward energy-based fuel consumption model of a P1 hybrid vehicle has been modelled.
  • Thus, using MATLAB and Simulink, the forward energy-based fuel consumption model of a hybrid car has been successfully simulated.
  • In UDDS than in HWFET, there is a higher rate of fuel consumption of a conventional vehicle. But while in hybrid car it significantly has reduced at some areas of the cycle and we get a better fuel efficiency in both the cycles.
  • In HWEFT, greater distance is covered than in UDDS in conventional vehicle as well as hybrid vehicle.
  • On the basis of engine speed, torque, transmission speed, pedal locations, gear, and distance travelled, analyses and understandings of vehicle operating points were carried out.
  • The necessary graphs were successfully plotted using post-process computations.
  • Vehicle fuel efficiency values (kmpl) for the given P1 hybrid vehicle using city cycle (UDDS) and highway cycle (HWFET) have been calculated successfully and compared it along with the conventional vehicle for better understanding and improvement in fuel efficiency numbers.
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.