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.

SOLUTION:-

OBJECTIVE:- Modeling of development of a forward energy-based fuel consumption model for P1 hybrid vehicle. 

          A hybrid electric vehicle is a type of hybrid vehicle that combines a conventional internal combustion engine system with an electric propulsion system. The presence of the electric powertrain is intended to achieve either better fuel economy than a conventional vehicle or better performance.

Initial MATLAB code:-

Matlab code file was given called “Project2_InitFile.m” was load the variables in the workspace. In this, the motor and battery of the Honda Insight vehicle are considered for integrating with a midsize car 1.9L engine and 4-speed auto transmission for hybridization. Data is taken from the ADVISOR database developed by NREL, USA. The model developed has the capability to simulate the vehicle on different drive cycles like UDDS, HWFET, FTP, NEDC, etc.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 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
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 = 2;     % 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);

After running this code in MATLAB, open the Simulink model.

VEHICLE MODEL:-

1] LAYOUT:-

2]DRIVER:-

This block is basic PI controller which generates brake pedals and acceleration outputs to match desired and actual speed of vehicle.

3]CONTROLLER

It is the brain of the system and represents the electronic control unit. These inputs are fed to the Powertrain block which represents the drivetrain of the vehicle.

4]STATEFLOW CONTROLLER

We have created four conditions start, stop, drive and Regen braking. 

The inputs are given to chart is Acceleration, barke, engine speed, vehicle speed, SOC, and clutch lockup.

We get output from the chart is the mode, engine condition, engine throttle condition, and electric motor throttle condition.

5]ENGINE CONTROL UNIT

Here Engine speed is given as a input signal through an look up table.In lookup table we give input maximum torque and map speed.

5]TRANSMISSION CONTROL UNIT

For controlling gears we have created a steady flow variable state in ascending and descending order with respect to time, speed and distance.

6]ELECTRIC MOTOR CONTROL UNIT

7]BRAKE CONTROL UNIT

8]ENGINE

We used map based model to calculate fuel consumption of model which is based on max and min torque of controller and then it saturated torque and give output then saturated torque and speed map give fuel consumption takes the speed and torque then the output goes into saturated then its integrated.

9]ELECTRIC MOTOR

10]CRANKHUB

11]TRANSMISSION

In this subsystem, we take engine torque, gear selector for transmission of gear ratio from controller. Torque converter is used to connect engine to transmission.

12]BATTERY MODEL

Here input as power then after multiplication it gives to pack current also from soc estimation, output soc gives to terminal voltage as input and finally meet terminal voltage as output.

13]TERMINAL VOLTAGE

14]PACK CURRENT

POST PROCESSING MATLAB SCRIPT

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


% 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.Vehicle_Distance/1000;   % Distance traveled by vehicle [km]
Veh_Spd = out.Vehicle_Velocity*18/5;     % Vehicle speed [kmph]
Eng_Fuel_Rate = out.Eng_Fuel_Rate;

EM_Speed = out.EMSpd*18/5;
EM_Power = out.EMPwr;
EM_Trq = out.EMTrq;
Term_Volt = out.term_volt;
SOC = out.SOC;
Pack_Current = out.Pack_current;


%% 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 consumption vs Fuel Rate
figure(1)
hold on
grid on
plot(Time,Eng_Fuel_Consump,'LineWidth',1,'Color','black');
plot(Time,Eng_Fuel_Rate,'LineWidth',1,'Color','blue');
xlabel('Fuel Consumption');
ylabel('Fuel Rate');
xlim([0,Time(end)]);
legend('Fuel Consumption','Fuel rate');

%Plotting vehicle characteristics time trace engine,Transmission
%input,Transmisson output 
figure(2)
hold on
grid on
plot(Time,Eng_Spd,'LineWidth',1,'Color','g');
plot(Time,Trans_In_Spd,'LineWidth',1,'Color','red');
plot(Time,Trans_Out_Spd,'LineWidth',1,'Color','black');
xlabel('Time[s]');
ylabel('Speed[rpm]');
xlim([0,Time(end)]);
ylim([0,6000]);
legend('Engine speed','Transmission input','Transmission output');

%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 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 & brake pedal,
%vehicle desired and actual speed
figure(4)
subplot(3,1,1)
hold on 
grid on
plot(Time,Acc_Pdl,'LineWidth',1,'Color','green');
plot(Time,Brk_Pdl,'LineWidth',1,'Color','black');
xlabel('Pedal[%]');
ylim([0,Time(end)]);
legend('Torque','Brake');

subplot(3,1,2)
hold on 
grid on
plot(Time,Veh_Spd,'LineWidth',1,'Color','green');
xlabel('Speed[rpm]');

subplot(3,1,3)
hold on 
grid on
plot(Time,Gear_Cmd,'LineWidth',1,'Color','black');
xlabel('Time[S]');
ylabel('Gear');

PLOTS FOR UDDS:-

VEHICLE DYNAMICS:-

PLOTS FOR HWFET:-

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.