Challenge

Project 1

PROJECT - 1

DEVELOPMENT OF A FORWARD ENERGY BASED FUEL CONSUMPTION MODEL OF A CONVENTIONAL VEHICLE

Objective:

  • The task of this project is to 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, etc.
  • Build simulink models for engine and vehicle dynamics
  • Tabulate the fuel economy numbers (kmpl) for UDDS and HWFET cycle. This forms the baseline numbers for comparing with the future hybrid version.
  • Plot the time trace for engine, transmission input, transmission output and wheel speed on one plot.
  • Plot engine torque, engine power, fuel rate and fuel consumption using subplots.
  • Plot accelerator and brake pedal, gear command, vehicle desired and actual speed, vehicle distance using subplots.
  • Plot the engine operating points on the engine fuel map.
  • Write down appropriate brief comments on each of these plots, describing the vehicle behavior throughout the drive cycle.
  • Generate the plots for both drive cycles.

FORWARD MODEL FOR A CONVENTIONAL VEHICLE

Forward models:

  • Forward models are a dynamic simulation, dynamic models are used for detailed simulations.
  • Force/torque/power is the input and the vehicle state variables velocity and acceleration are outputs.
  • Models and simulation are more realistic due to physical causality, 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 behaviour of the system, helps significantly in control development.

Forward model used in Project:

In this project, a typical midsize car with a 1.9L 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.

Matlab Initialization:

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

Matlab 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 Model:

“Project1_VehicleModel.slx” is the Simulink model of the vehicle. 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. 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. These 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.

After running this Simulink model, data from the model will be loaded in the Matlab workspace.

Simulink model:

The model consist of 3 systems driver model,controller model and power train model which are important of forward model,input is the velocity speed of vehicle calculated in the power train block.

Driver Model:

Driver model consist of drive cycle 2d lookup table which have the selected drive cycle values and this model uses the PI controller that generates accelerator and brake pedal outputs to match the desired and actual vehicle speeds.

Scope of UDDS drive cycle model:

Scope of HWFET drive cycle model:

Controller Model:

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. These inputs are fed to the ‘Powertrain’ block which represents the drivetrain of the vehicle.

1) Engine control unit

This block consist of 2 1-d lookup tables onw with eng max torque and eng map speed and other with eng ct torque and eng map speed which is subtracted and the output is multiplied with idle throttle speed to get the required engine torque,Idle speed controller subsystem consist of PI controller which gives the output of idle throttle speed.

2) Transmission control unit

This input is vehicle speed to this stateflow and output is the gear command,the stateflow control block have the shift logic conditions which changes the gears according to the required vehicle speeds and throttle commands with respect to time.

3) Brake control unit

This block gives the brake torque by computing the brake torque formula

myu_road_tire*M*g*Rw

Engine torque requirement,gear command,brake torque are the three important control signals which is the input to the power train block.

Power Train Block:

‘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.

Engine Model:

In this Engine model we used map based model to find out the engine fuel consumption and engine fuel rate,engine speed and saturated torque from the map model is taken to the 2d lookup table which then saturated and integrated to get the engine fuel consumption and engine fuel rate.

Transmission model:

Engine torque and gear command is input to the transmission block which is computed to get the desired transmission output toque as output,Torque converter subsystem consist of engine dynamics block,pump and turbine,in which the pump torque and turbine torque,k factor is used to find out the desired transmission input torque.

Transmission input torque and transmission gear ratio is multiplied to get the transmission efficiency after that positive torque and negative torque values are separated using switch block to get the transmission output torque.

Differential model:

In this model,transmission output torque is taken as input and fed to the differential,differential efficiency which gives the positive and negative torque from where we get the axle torque.

Wheel Model:

In this model axle torque from differential and brake torque from brake control unit which is subtracted and multiplied with wheel rolling radius and velocity to get the tractive force to drive the wheels and rolling radius and velocity gives the wheel speed.to workspace block is used get the wheel speed to workspace for post processing.

Vehicle Dynamics Model:

Vehicle dynamics block simply compute the vehicle dynamic equations to get the desired vehicle velocity,vehicle speed and vehicle distance.

Road load formulas computed are given below

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.

MATLAB SCRIPT FOR POST PROCESSING:

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

%% 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
figure(1)
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,Trans_In_Spd, 'linewidth', 1, 'Color', 'black');
plot(Time, Trans_Out_Spd, 'linewidth', 1, 'Color', 'red');
plot( Wheel_speed,'linewidth', 1, 'Color', 'green');
ylabel('Speed [rpm]')
xlim([0, Time(end)]);
ylim([0, 6000]);
legend('Trans Input','Trans Output');

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');

%% plotting engine torque, engine power, fuel rate and fuel consumption using subplots
figure(2)
subplot(4,1,1)
hold on
grid on
plot(Eng_Trq,'linewidth',1,'color','r');
xlim([0, Time(end)]);
xlabel('Time [s]');
ylabel('Engine Torque');

subplot(4,1,2)
hold on
grid on
plot(Eng_Pwr,'linewidth',1,'color','b');
xlim([0, Time(end)]);
xlabel('Time [s]');
ylabel('Engine Power');

subplot(4,1,3)
hold on
grid on
plot(Eng_Fuel_Consump,'linewidth',1,'color','g');
xlim([0, Time(end)]);
xlabel('Time [s]');
ylabel('Engine Fuel consumption');

subplot(4,1,4)
hold on
grid on
plot(Eng_Fuel_rate,'linewidth',1,'color','m');
xlim([0, Time(end)]);
xlabel('Time [s]');
ylabel('Engine Fuel rate');

%% Plot accelerator and brake pedal, gear command, vehicle desired and actual speed,
%% vehicle distance using subplots.
figure(3)
subplot(3,1,1)
hold on
grid on
plot(Veh_Spd,'linewidth',1,'color','green');
xlim([0, Time(end)]);
xlabel('Time [s]');
ylabel('Vehicle Actual Speed');

subplot(3,1,2)
hold on
grid on
plot(cyc_vel,'linewidth',1,'color','green');
xlim([0, Time(end)]);
xlabel('Time [s]');
ylabel('Vehicle Desired Speed');

subplot(3,1,3)
hold on
grid on
plot(Veh_Dist,'linewidth',1,'color','green');
xlim([0, Time(end)]);
xlabel('Time [s]');
ylabel('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','b');
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','b');
[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','b');
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)]);






PLOTS OF RESULTS:

Plots of engine torque, engine power, fuel rate and fuel consumption using subplots for both UDDS and HWFET drive cycle:

1)UDDS CYCLE

In udds cycle the engine fuel consumption increasing with increase in time,engine fuel rate is also drasticly changes throughtout the cycle.

2)HWFET CYCLE

In HWFET highway cycle we able to see the constant fuel rate at some points and engine torque and power more than the udds drive cycle.

Plots of time trace for engine, transmission input, transmission output and wheel speed on one plot and accelerator,brake pedal and gear command using subplots.

1)UDDS CYCLE

In udds cycle we able see that the gear changes are more than hwfet cycle,and brake pedal is more frequently applied equal to the acceleration pedal.

2)HWFET CYCLE

In HWFET cycle brake pedal is rarely applied and gear command changes is less compared to udds cycle,Transmission output speed is more.

Plots of vehicle desired and actual speed and vehicle distance using subplots.

1)UDDS CYCLE:

2)HWFET CYCLE

In both cycle the vehicle desired and actual speed is very much similar this is because of the simulink and matlab computation results.

Plots of engine operating points on the engine fuel map.

1)UDDS CYCLE

2)HWFET CYCLE

Engine operating points are higher in UDDS cycle when compared to HWFET cycle.

CONCLUSION:

The forward energy based fuel consumption model is developed using the matlab script and simulink model,Using the given matlab initialization script,post processing script and simulink vehicle model the forward model is created.

The Engine model and vehicle dynamic model in power train block is recreated and necessary changes are done in post processing script like getting the simulink processed values to the workspace using the to workspace block and using the command out. in matlab script to get the desired values for plotting the results.

  • fuel economy numbers (kmpl) for UDDS and HWFET cycle are tabulated.
  • time trace for engine, transmission input, transmission output and wheel speed on one plot are plotted.
  • engine torque, engine power, fuel rate and fuel consumption are plotted using subplots.
  • accelerator and brake pedal, gear command, vehicle desired and actual speed, vehicle distance are plotted using the subplots.
  • engine operating points on the engine fuel map are also plotted for both the UDDS and HWFET cycles.

The conventional vehicle behaviour is studied for both UDDS and HWFET drive cycles.

Thank You

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.