Challenge

Conventional vehicle Development

UDDS data-

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

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

Simulink model-

There are three subsystems In this model. First one is driver subsystem, Second one is controller subsystems and last one is powertrain subsystems.

Driver subsystem-

Output-

Controller subsystem-

Plot-

Powertrain subsystem-

There are five subsystems in this powertrain subsystem. First one is Engine subsystem, second one is Transmission subsystem, Third one is Differential subsystem, Fourth one is Wheel subsystem and the last one is vehicle dynamics subsystems.

Engine subsystem-

Plot-

Transmission subsystem-

Plot-

Differential subsystem-

Wheel subsystem-

Vehicle Dynamics subsystem-

Plot-

After the simulation we have some output data in matlab workspace.

Then after we will plot the data through the given processing file code.

Matlab code-

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% 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.FuelConsumption; % Engine fuel consumption [g]

Veh_Dist = out.Vech_Dist/1000; % Distance traveled by vehicle [km]

Veh_Spd = out.Vech_Spd*18/5; % Vehicle speed [kmph]

wheel_speed=out.wheel_speed;

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

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 operating points on engine fuel map

figure('Name','Engine Operating Points');

hold 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 Fuel Consumption vs Fuel Rate

figure(3)

hold on

grid on

plot(Time,out.FuelConsumption, 'linewidth', 1, 'Color', 'black');

plot(Time,out.Eng_Fuel_Rate, 'linewidth', 1, 'Color', 'red');

xlabel('Fuel Consumption')

ylabel('Fuel Rate')

xlim([0, Time(end)]);

legend('Fuel Consumption', 'Fuel Rate');

%% Plotting vehicle characteristics time trace engine torque, engine power, fuel rate and fuel consumption

figure(4)

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, out.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 Engine, Transmission Input, Transmission Output and Wheel

figure(5)

subplot(2,2,1)

plot(Time, Eng_Spd, 'LineWidth',1, 'Color','g');

xlabel('Time')

ylabel('Engine speed')

grid on

legend('Engine speed')

subplot(2,2,2)

plot(Time, Trans_In_Spd, 'LineWidth',1,'Color','black');

xlabel('Time')

ylabel('Trans in speed')

grid on

legend('Trans in speed')

subplot(2,2,3)

plot (Time, Trans_Out_Spd, 'LineWidth', 1, 'Color', 'red');

xlabel('Time')

ylabel('Trans out speed')

grid on

legend('Trans out speed')

subplot(2,2,4)

plot(Time, wheel_speed, 'LineWidth',1,'Color','blue');

xlabel('Time [s]')

ylabel(' Wheel Speed [rpm]')

grid on

legend('Wheel speed')

%% plotting for drive cycle

figure(6)

plot(cyc_time, cyc_vel*(18/5), 'linewidth', 1, 'Color', 'green')

hold on

plot(Veh_Spd, 'linewidth', 1, 'Color', 'red')

xlabel('Time [s]')

ylabel('Vehicle Velocity (Km/h)')

legend('Vehicle Desired Velocity', 'Vehicle Actual Speed')

Plots-

HWFET Data-

Matlab code-

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

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

Simulink plot scope of HWFET data-

Driver subsystem plot-

Controller subsystem plot-

Powertrain subsystem- In this powertrain subsystem there are five subsystems which is given below and also their plot.

Engine subsystem scope-

Transmission subsystem scope-

Vehicle dynamics subsystem scope-

Output data from simulation in matlab workspace.

Now plotting the data after getting output data from simulation.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% 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.FuelConsumption; % Engine fuel consumption [g]

Veh_Dist = out.Vech_Dist/1000; % Distance traveled by vehicle [km]

Veh_Spd = out.Vech_Spd*18/5; % Vehicle speed [kmph]

wheel_speed=out.wheel_speed;

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

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 operating points on engine fuel map

figure('Name','Engine Operating Points');

hold 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 Fuel Consumption vs Fuel Rate

figure(3)

hold on

grid on

plot(Time,out.FuelConsumption, 'linewidth', 1, 'Color', 'black');

plot(Time,out.Eng_Fuel_Rate, 'linewidth', 1, 'Color', 'red');

xlabel('Fuel Consumption')

ylabel('Fuel Rate')

xlim([0, Time(end)]);

legend('Fuel Consumption', 'Fuel Rate');

%% Plotting vehicle characteristics time trace engine torque, engine power, fuel rate and fuel consumption

figure(4)

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, out.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 Engine, Transmission Input, Transmission Output and Wheel

figure(5)

subplot(2,2,1)

plot(Time, Eng_Spd, 'LineWidth',1, 'Color','g')

xlabel('Time')

ylabel('Engine speed')

grid on

legend('Engine speed')

subplot(2,2,2)

plot(Time, Trans_In_Spd, 'LineWidth',1,'Color','black')

xlabel('Time')

Plots-

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.