Challenge

Project 1

Aim:

To get familiar with the modeling process, writing scripts in Matlab, modeling in Simulink, analyzing data and generating plots for development of a forward energy-based fuel consumption model of a conventional vehicle.

Objective:

  • To evaluate fuel economy numbers (kmpl) for UDDS and HWFET cycle.
  • plot 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.

Introduction:

Urban Dynamometer Driving Schedule (UDDS):

  • UDDS stands for Urban Dynamometer Driving Schedule and refers to a United states environmental protection agency mandated dynamometer test on fuel economy that represents city driving conditions which is used for light duty vehicle testing.
  • It is also known as U.S. FTP-72 (Federal Test Procedure) cycle, LA-4 cycle, in Sweden as A10 or CVS (Constant Volume Sampler) cycle and in Australia as the ADR 27 (Australian Design Rules) cycle.
  • Though it was originally created as a reference point for fossil fueled vehicles, it is also used to give estimates on how many miles an electric vehicle will travel on a single charge.

Highway Fuel Economy Driving Schedule (HWEFT):

  • The "highway" program or Highway Fuel Economy Driving Schedule (HWFET) is defined in 40 CFR 600.I.
  • The procedure is updated by adding the "hot start" cycle that repeats the "cold start" cycle of the beginning of the UDDS cycle. The average speed is thus different but the maximum speed remains the same as in the UDDS. The weighting factors are 0.43 for the cold start and transient phases together and 0.57 for the hot start phase.
  • It uses a warmed-up engine and makes no stops, averaging 48 mph (77 km/h) with a top speed of 60 mph (97 km/h) over a 10-mile (16 km) distance.

Procedure:

  • From the given file, download the attachement and change the folder to current folder in matlab.
  • Then run the "Project1_InitFile.m” matlab script and enter the correct inout to select the drive cycle.
  • Open simulink and “NProject1_VehicleModel.slx” and add the necessary blocks for engine, vehicle dynamics with to workspace block, scope block.

Engine block:

Vehicle dynamics block:

  • Open and modify the “Project1_ProcessingFile.m” as for entered plots and workspace blocks.
  • Run the program in following sequence "Project1_InitFile.m”, “NProject1_VehicleModel.slx” and “Project1_ProcessingFile.m”.
  • Verify the genearted output plots.

Program:

Project1_InitFile.m

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 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 = 2;     % Drive cycle selection

% Drive cycle values in m/s

if Drive_Cycle_Select == 1
    load DriveCycles/UDDS;
    fprintf('UDDS Drive Cycle \n')
    
elseif Drive_Cycle_Select == 2
    load DriveCycles/HWFET;
    fprintf('HWFET Drive Cycle \n')
    
elseif Drive_Cycle_Select == 3
    load DriveCycles/FTP;
    fprintf('FTP Drive Cycle \n')
    
elseif Drive_Cycle_Select == 4
    load DriveCycles/US06;
    fprintf('US06 Drive Cycle \n')
    
elseif Drive_Cycle_Select == 5
    load DriveCycles/NEDC;
    fprintf('NEDC Drive Cycle \n')
    
elseif Drive_Cycle_Select == 6
    load DriveCycles/WLTP;
    fprintf('WLTP Drive Cycle \n')
 
end

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

NProject1_VehicleModel.slx

https://drive.google.com/file/d/10mYzY01jtP6gkbi4b84ywVVHAbD1CDZe/view?usp=sharing

Project1_ProcessingFile.m

%% 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]
Act_Spd=out.Act_Spd;          % Actual speed in [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
figure(1)
subplot(5,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('Acceleration','Brake');
subplot(5,1,2)
hold on
grid on
plot(Time, Trans_In_Spd, 'linewidth', 1, 'Color', 'black');
plot(Time, Trans_Out_Spd, 'linewidth', 1, 'Color', 'red');
ylabel('Speed [rpm]')
xlim([0, Time(end)]);
ylim([0, 6000]);
legend('Trans Input','Trans Output');
subplot(5,1,3)
hold on
grid on
plot(Time, Gear_Cmd, 'linewidth', 1, 'Color', 'black');
xlim([0, Time(end)]);
xlabel('Time [s]');
ylabel('Gear');
subplot(5,1,4)
hold on
grid on
plot(Time, Act_Spd, 'linewidth', 1, 'Color', 'black');
plot(Time, Veh_Spd, 'linewidth', 1, 'Color', 'red');
xlim([0, Time(end)]);
xlabel('Time [s]');
ylabel('Speed [kmph]');
legend('Actual Speed','Vehicle Speed');
subplot(5,1,5)
hold on
grid on
plot(Time,Veh_Dist, 'linewidth', 1, 'Color', 'black');
xlim([0, Time(end)]);
xlabel('Time [s]');
ylabel('Distance [km]');

%% Plotting engine operating points on engine fuel map
figure(2);
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*30/pi,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)]);

%Display calculated fuel economy of vehicle
fprintf('\nFuel economy [km/L] : %f kmpl',kmpl);

Plots:

Characteristics of Urban Dynamometer Driving Schedule (UDDS):

  • UDDS cycle has desired velocity in uneven manner and the change in controls, outputs differ varyingly.
  • Accelerator and brake Pedal percentage with respect to time trace is plotted below in subplot 1. Accelerator pedal is non-linear increasing at some points and also the brake pedal is applied at uneven points but the percentage of pedals be similar after a point which is not so high as the pedal percentage appears linear in map.
  • The transmission input and output speed is flat in graph but trans-input speed is greater than trans-ouput speed due to engine operating speed as referred in subplot 2. From this we can see that there requires a clutch to engage, disengage the tranmission for that speed. The time trace to attain that speed in both input and output is high.
  • Gear command is linear as referred in subplot 3.
  • Comparing the desired velocity of the UDDS cycle over actual vehicle velocity in subplot 4, it has huge difference as the curve for desired velocity is varying at different speeds. The actual velocity of vehicle is smoothly increasing and decreasing which is not evident as desired velocity.
  • Referring to subplot 5, the distance travelled by any vehicle always increases linearly in even manner.

Engine fuel efficiency map:

  • Engine fuel efficiency map is genearted using engine speed in rpm and engine torque in Nm.
  • The comtours function is used to create the engine fuel consumption in g/s.
  • The map also has maximum torque curve and engine operating points in it.
  • The speed of the vehicle ranges from 500 rpm to 6000 rpm.
  • The torque generated is ranges from 0 Nm to 170 Nm(approx.)
  • The maximum torque curve generates at a speed of 500 rpm and 110 Nm. As well as terminates at speed of 6000 rpm and 150 Nm.
  • The maximum torque generated at 165.4 Nm.
  • Engine fuel consumption ranges from 1 to 8 g/s. At high speed and high torque, the fuel consumption is also high as 8 g/s.
  • Engine operating condition starts at high speed and zero torque. If we look closely the engine operating condition goes beyond its speed range and the graph line reverses. Engine operating condition is non-linear upto a point, torque increases non-linearly and decreases after the speed range.

Fuel economy:

From the workspace, we can see the fuel economy of vehicle for UDDS cyce is 16.768787 kmpl and it is less compared to HWEFT cycle.

Highway Fuel Economy Driving Schedule (HWEFT):

  • HWEFT cycle has desired velocity in even manner and the change in controls, outputs differs in increasing.
  • Accelerator and brake Pedal percentage with respect to time trace is plotted below in subplot 1. Accelerator pedal is increasing linearly at less time and also the brake pedal is applied at some point only not at high percentage. But the pedal percentage is not so varying at highway and thus the graph appears as flat line.
  • The transmission input and output speed is flat in graph and appears similar with respect to time trace as referred in subplot 2. The time trace to attain that speed in both input and output is low.
  • Gear command is linear as referred in subplot 3.
  • Comparing the desired velocity of the UDDS cycle over actual vehicle velocity in subplot 4, it has huge difference as the curve for desired velocity is varying at different speeds. The actual velocity of vehicle is smoothly increasing and decreasing which is not evident as desired velocity.
  • Referring to subplot 5, the distance travelled by any vehicle always increases linearly in even manner.

Engine fuel efiiciency map:

  • Engine fuel efficiency map is genearted using engine speed in rpm and engine torque in Nm.
  • The comtours function is used to create the engine fuel consumption in g/s.
  • The map also has maximum torque curve and engine operating points in it.
  • The speed of the vehicle ranges from 500 rpm to 6000 rpm.
  • The torque generated is ranges from 0 Nm to 170 Nm(approx.)
  • The maximum torque curve generates at a speed of 500 rpm and 110 Nm. As well as terminates at speed of 6000 rpm and 150 Nm.
  • The maximum torque generated at 165.4 Nm.
  • Engine fuel consumption ranges from 1 to 8 g/s. At high speed and high torque, the fuel consumption is also high as 8 g/s.
  • Engine operating condition starts at high speed and zero torque. If we look closely the engine operating condition goes beyond its speed range and the graph line reverses. Engine operating condition is linear upto a point, torque increases linearly and decreases before the speed range.

Fuel economy:

From the workspace, we can see the fuel economy of vehicle for UDDS cyce is 16.772867 kmpl and it is high compared to UDDS cycle.

Conclusion:

  • From the above plots, We can see that UDDS drive cycle is non-linear and the engine operating condition is also non-linear with low fuel economy.
  • Although the HWEFT drive cycle is not so linear but has a increasing way of graphical line and so the engine operating condition is also linear after a point with high fuel economy.
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.