Challenge

Project 1

AIM:-

The aim of the project is to complete the simulink model of a conventional vehicle and then to simulate the model along with the matlab code to plot the graph as follows for UDDS cycle & HWFET cycle,

1. Fuel economy numbers (kmpl)

2. engine, transmission input, transmission output and wheel speed,

3. engine torque, engine power, fuel rate and fuel consumption

4. accelerator and brake pedal, gear command, vehicle desired and actual speed, vehicle distance

5. the engine operating points

THEORY:-

A conventional vehicle is a vehicle that uses Petrol or Diesal as a fuel in the engine to provide the energy. A conventional vehicle consist of a driver, controller, & powertrain. The driver gives the input in the form of accelaretor and the brake. The command from the driver is received in the controller which further directs the power train to work accordingly i.e. to generate the power in the engine and according to the requirement trasmites the energy to the wheels through transmission and differentials and the energy recieved is then used to move vehicle according to the vehicle dynamics.

PROCEDURE:-

As we require to plot the various plots for the UDDS cycle and the HWFET cycle we need to first complete the simulink model (engine block & vehicle dynamics block), and then we provide the input through the matlab code and then run the simulation and to display the resutls in the workspace we need to run another Matlab code that processes the output given by the simulation and gives the desired plots.

Matlab code for input for Simulink Model:-

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

Matlab Code for processing results

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 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.EngTrq;          % Engine brake torque [Nm]
Eng_Spd = out.EngSpd*30/pi;    % Engine speed [rpm]
Eng_Fuel_Consump = out.Eng_Fuel_Consumption;    % Engine fuel consumption [g]
Eng_Fuel_Rate = out.Eng_Fuel_Rate; %Engine fuel rate
Veh_Dist = out.Veh_Dist/1000;   % Distance traveled by vehicle [km]
Veh_Spd = out.Veh_Spd*18/5;     % Vehicle speed [kmph]
Wheel_spd = out.Wheelspd*30/pi; % Wheel Speed[rpm]

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


%% Fuel Economy 
figure(1)
plot(kmpl);
xlabel('time')
ylabel('speed')

%% Plotting vehicle characteristics time trace
figure(2)

hold on
grid on
plot(Time, Trans_In_Spd, 'linewidth', 1, 'Color', 'black');
plot(Time, Trans_Out_Spd, 'linewidth', 1, 'Color', 'red');
plot(Eng_Spd,'linewidth', 1, 'Color', 'magenta');
plot(Wheel_spd,'linewidth', 1, 'Color', 'green');
ylabel('Speed [rpm]')
xlim([0, Time(end)]);
ylim([0, 6000]);
legend('Trans Input','Trans Output','Engine Speed','Wheel Speed');


figure(3)

subplot(4,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(4,1,2)
hold on
grid on
plot(Time, Gear_Cmd, 'linewidth', 1, 'Color', 'black');
xlim([0, Time(end)]);
xlabel('Time [s]');
ylabel('Gear');

subplot(4,1,3)
plot(Veh_Dist, 'linewidth', 1, 'color','red');
xlabel('Time [s]');
ylabel('Vehicle Distance');

subplot(4,1,4)
plot(Veh_Spd,'linewidth', 1, 'color','b');
xlabel('Time [s]');
ylabel('Vehicle Speed');


%% Plot Engine Torque, Engine Power, Fuel Rate & Fuel Consumption
figure(4)
subplot(4,1,1)
hold on
grid on
plot(Eng_Pwr, 'linewidth', 1, 'Color', 'red');
xlabel('Time [s]');
ylabel('Eng_Pwr');

subplot(4,1,2)
hold on
grid on
plot(Eng_Trq, 'linewidth', 1, 'Color', 'black');
xlabel('Time [s]');
ylabel('Eng_Trq');

subplot(4,1,3)
hold on
grid on
plot(Eng_Fuel_Rate, 'linewidth', 1, 'Color', 'm');
xlabel('Time [s]');
ylabel('Eng_Fuel_Rate');

subplot(4,1,4)
plot(Eng_Fuel_Consump, 'linewidth', 1, 'color','g');
xlabel('Time [s]');
ylabel('Eng_Fuel_Consump');

%% 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_Trq,'.','color','k');
p5 = plot(Eng_Spd,'.','color','m');
legend([p1 p4 p5],{'Max Curve','Operating Points','Operating Points'});
axis([Eng_map_spd(1)*30/pi Eng_map_spd(end)*30/pi 0 Eng_map_trq(end)]);

SIMULINK MODEL

Over all model

Driver Model

Controller Model

Engine Control Unit

Transmission Control Unit

Brake Control Unit

Power Train Model

Engine Model

Transmission Model

Differential Model

Wheels Model

Vehicle Dynamics Model

CASE 1 UDDS CYCLE

a) Plot for Fuel Economy Number

b) Time trace for engine, transmission input, transmission output and wheel speed

c) Plot for engine torque, engine power, fuel rate and fuel consumption

d) Plot for accelerator and brake pedal, gear command, vehicle desired and actual speed, vehicle distance

e) Plot for the engine operating points on the engine fuel map

CASE 2 HWFET CYCLE

a) Plot for Fuel Economy Number

b) Time trace for engine, transmission input, transmission output and wheel speed

c) Plot for engine torque, engine power, fuel rate and fuel consumption

d) Plot for accelerator and brake pedal, gear command, vehicle desired and actual speed, vehicle distance

e) Plot for the engine operating points on the engine fuel map

CONCLUSION:-

As we can see that the fuel ecomony rate is higher in the HWFET CYCLE as compare to the UDDS CYCLE as the frequency of brake is more in the UDDS cycle than HWFET cycle so the Gear Change is also frequently in the UDDS cycle, also due to frequent accelaretion and braking the engine power & the torque required in the UDDS cycle is also more as compare to the HWFET cycle

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.