Challenge

Project 1

In traditional cars, the wheels are propelled by an internal combustion engine that is either powered by gasoline or diesel. The heat engine in question works on the premise of heat release through combustion of a fuel with an oxidizer in a combustion chamber to create expanding gases that push against a piston to produce force and torque.

The 4 stroke reciprocating engine is the most common type of engine utilized in this system. Otto and Diesel cycles are two examples of ideal thermodynamic cycles that can be used to simulate an engine in a cycler. A spark initiated SI engine's cycle mechanism is described by the Otto cycle, an ideal cycle. And the Diesel cycle is the best cycle for describing the operation of a CI engine with compression ignition.

Engine power and other parameters:

Powertrain must immediately meet the wheel's desired power demand. In other words, the power from the powertrain determines the power needed at the wheels for performance factors like acceleration, speed, etc.
The power comes from the engine through the gearbox because this vehicle's powertrain comprises of an engine that is connected to the wheels through a transmission.

The engine produces power by transforming chemical energy stored into mechanical energy through the combustion process. The energy input for this energy conversion process comes from the consumption of fuel, and it is also efficient.

Each systems has are two generalised variables-

1] Efforts:- It is generalised force variable. ex- torque, force, voltage, heating value.

2] Flow:- It is the generalised flow/velocity variable. ex:- velocity, current, mass flow rate.

3] Power:- It is the product of the effort and flow variable. It is interchangeable between energy domains.

- Instantaneous fuel consumption is given as 

 <!--[endif]-->

Where,

mf = mass flow rate in [kg]

pe = Power of engine

pt = power of transmission

nt = efficiency of transmission

ne = efficiency of engine

QLHV = it is the calorific value/ lower heating value of fuel.

Model & Types

There are essentially two different methods for modeling an element's internal physical properties and losses.

1] Map-based models: Maps that depict the relationship between input and output, output and losses, etc. are used to simulate various elements.

2] Analytical models: The internal dynamics of elements are represented using physical equations. These are the two extremes, and the majority of models combine the two, with some dynamics models being analytical and others being based on maps.

Here forward model is used to build the simulink model.

Forward model:


<!--[endif]-->

MATLAB scripts to load the parameters as per given file

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Skill-Lync -> Hybrid Drives Development
% Project 1 - Conventional Vehicle Model
% By - Ullekh Gambhira
<!-- [if mso]>
<![endif]-->
�scription:
<!-- [if mso]>
<![endif]-->
%% Initialization File
% Initialization file for loading the variables for the Conventional vehicle simulation model
<!-- [if mso]>
<![endif]-->
%% 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
<!-- [if mso]>
<![endif]-->
 
%% Powertrain Parameters
FDR = 3.73; % Final Drive Ratio / Diff Ratio
DiffEff = 0.99; % Differential efficiency (assumed independent of operating conditions)
<!-- [if mso]>
<![endif]-->
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)
<!-- [if mso]>
<![endif]-->
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]
<!-- [if mso]>
<![endif]-->
load Vehicle_Data/Engine_data_1_9L_Saturn_95kW
load Vehicle_Data/Trans_Shift_map
<!-- [if mso]>
<![endif]-->
 
%% 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
<!-- [if mso]>
<![endif]-->
 
% Drive cycle values in m/s
<!-- [if mso]>
<![endif]-->
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
<!-- [if mso]>
<![endif]-->
time_end = cyc_time(end);
vel_end = cyc_vel(end);
 
SIMULINK MODEL
 
lets briefly look into each block and explore
 
Driver block
A 'Driver' block, a fundamental PI controller, is used to model it. It creates outputs for the accelerator and brake pedals that correspond to the desired and actual vehicle speeds. We use drive cycles for this since they serve as a basis for uniform assessment and the outcomes of fuel consumption and emissions certification for the vehicle. It is based on time and velocity, after which everything is integrated to produce the accelerator and brake pedals.
Scope:
 
Control block
The 'Controller' block, which stands in for the electronic control systems, is the brain of the car. It produces the required engine torque, desired gearbox gear, and desired brake torque dependent on the driver's inputs. The 'Powertrain' block, which symbolizes the vehicle's drivetrain, receives these inputs.
ECU block:
TCU block:
BCU block:
Scope:
POWERTRAIN Block:
Every part that transforms the engine's power into movement is included in the powertrain. This covers everything from the engine to the rotating wheels, which includes the driveshaft, differentials, and axles.
Engine Block:
To model the engine's fuel consumption in this model, we employed a map-based model. It is based on the controller's maximum torque and minimum torque. and then it takes the speed and torque, goes into saturated output, and then gives the output before saturated torque and speed map produce fuel consumption.
Scope:
Transmission Block:
In these models, we use the gear selector from the controllerb for transmission of the gear ratio and the engine torque. The gearbox input speed is determined by multiplying the ratio by the transmission input torque, positive torque, and negative torque, respectively. In this instance, the torque converter is a transmission component that connects the engine to the transmission. It essentially has decoupled engine dynamics.
Scope:
DIFFERENTIAL Block
Axle torque is then met after the transmission's output has been multiplied by the input and output torques and passed through the differential ratio. The differential ratio and transmission torque are greater than the axle torque.
WHEELS Block
VEHICLE DYNAMICS Block

In this takes tractive force and road load. It is dictates vehicle speed based on tractive force and road load. 

the dynamic equation for calculating road load is 

MeqdVvehdt=ηtλtotRwTm-(12p⋅A⋅Cd⋅(Vveh+Vw∈d)2+Cr⋅M⋅g⋅cos(θ)+M⋅g⋅sin(θ))</math>">Meq.dVveh/dt=(η.t.λtot/Rw)Tm−(12p⋅A⋅Cd⋅(Vveh+Vw∈d)2+Cr⋅M⋅g⋅cos(θ)+M⋅g⋅sin(θ))

where,

p = air density [kg/m^3]

A = Frontal area [m^2]

Cd = drag Coefficiend

Vveh = velocity of vehicle [m/s^2]

Vwind = velocity of wind [m/s^2]

Cr =  rolling resistance coefficient

M = mass in [Kg]

g = gravity.

Then we calculate and integrate then we meet acceleration of vehicle and velocity of vehicle it mean vehicle distance and vehicle speed.

Scope:

Road load scope:

MATLAB codes for plots

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Skill-Lync -> Hybrid Drives Development
% Project 1 - Conventional Vehicle Model
% By - Ullekh Gambhira
<!-- [if mso]>
<![endif]-->
�scription:
% 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.
�sed on the project task, use commands in a similar format as given
�low, to analyse the data and generate required plots.
% You can change variable names if desired
<!-- [if mso]>
<![endif]-->
%% Post-Processing File
% File for post-processing the Conventional vehicle simulation model data
<!-- [if mso]>
<![endif]-->
clc;
close all;
<!-- [if mso]>
<![endif]-->
%% Renaming variables
Time = out.tout;
Acc_Pdl = out.Acc_Pdl; �celerator 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]
<!-- [if mso]>
<![endif]-->
<!-- [if mso]>
<![endif]-->
 
%�ta Analysis
Eng_Pwr = (out.Eng_Spd*pi/30 .* out.Eng_Trq)/1000; % Engine brake power [kW]
rho_petrol = 0.7197; �nsity of petrol [kg/L]
kmpl = Veh_Dist(end)/(Eng_Fuel_Consump(end)/1000/rho_petrol); % Fuel economy [kmpl]
<!-- [if mso]>
<![endif]-->
<!-- [if mso]>
<![endif]-->
 
%% Plotting vehicle characteristics time trace transmission IN/OUT and Wheel Speed
figure(1)
hold on
grid on
plot(Time, Trans_In_Spd, 'linewidth', 1, 'Color', 'black');
plot(Time, Trans_Out_Spd, 'linewidth', 1, 'Color', 'red');
plot(Time, out.Wheel_Speed, 'linewidth',1, 'color', 'blue')
ylabel('Speed [rpm]')
xlabel('Time [s]')
xlim([0, Time(end)]);
ylim([0, 6000]);
legend('Trans Input','Trans Output','Wheel Speed');
<!-- [if mso]>
<![endif]-->
%% Plotting vehicle characteristics time trace to Engine speed, Engine Torque, Engine Power,
% And Engine fuel rate, Engine fuel consumption
�ta conversion from Double Timeseries
<!-- [if mso]>
<![endif]-->
%Eng_spd = Eng_Spd.Data(:,1); % engine speed
%Eng_trq = Eng_Trq.Data(:,1); % engine torque
%Eng_pwr = Eng_Pwr.Data(:,1); % engine power
%Eng_fuel_rate = Eng_Fuel_Rate.Data(:,1); % engine fuel rate
%Eng_fuel_consumption = Eng_Fuel_Consump.Data(:,1); % engine fuel consumption
%Veh_dist = Veh_Dist.Data(:,1); % vehicle distance
%Veh_spd = Veh_Spd.Data(:,1); % vehicle speed
<!-- [if mso]>
<![endif]-->
 
% Plotting Engine speed, Engine Torque, Engine Power,Engine fuel rate,Engine fuel consumption wrt Time
figure(2)
subplot(2,2,1)
plot(Time,Eng_Trq,'linewidth',1,'color','black')
xlabel('Time [s]')
ylabel('Torque [Nm]')
legend('Engine Torque')
grid on
subplot(2,2,2)
plot(Time,Eng_Pwr,'linewidth',1,'color','blue')
xlabel('Time [s]')
ylabel('Power [KW]')
legend('Engine Power')
grid on
subplot(2,2,3)
plot(Time,out.Eng_Fuel_Rate,'linewidth',1,'color','red')
xlabel('Time [s]')
ylabel('Fuel Rate [%]')
legend('Engine Fuel Rate')
grid on
subplot(2,2,4)
plot(Time,Eng_Fuel_Consump,'linewidth',1,'color','green')
xlabel('Time [s]')
ylabel('Fuel Consumption')
legend('Engine Fuel Consumption')
grid on
<!-- [if mso]>
<![endif]-->
 
% Plotting fuel economy Vs Engine Fuel consumption
figure(3)
plot(Eng_Fuel_Consump,out.Eng_Fuel_Rate,'color','r')
xlabel('Fuel consumption')
ylabel('Fuel Rate [%]')
title('Fuel economy Vs Fuel Consumption')
grid on
<!-- [if mso]>
<![endif]-->
 
%% Potting Accelerator pedal, Brake pedal and gear command with respect to time
figure(4)
subplot(2,1,1)
hold on
plot(Time, Acc_Pdl, 'linewidth', 1, 'Color', 'black');
plot(Time, Brk_Pdl, 'linewidth', 1, 'Color', 'red');
ylabel('Pedal [%]')
xlabel('Time [s]');
xlim([0, Time(end)]);
grid on
legend('Accel','Brake');
title('Acceleration & Brake Pedal wrt Time')
<!-- [if mso]>
<![endif]-->
subplot(2,1,2)
plot(Time, Gear_Cmd, 'linewidth', 1, 'Color', 'black');
xlim([0, Time(end)]);
xlabel('Time [s]');
ylabel('Gear');
grid on
title('Gear command wrt Time')
<!-- [if mso]>
<![endif]-->
 
% Plotting gear command vehicle desired with actual speed
figure(5)
subplot(2,1,1)
plot(Veh_Spd, Gear_Cmd, 'linewidth', 1, 'Color', 'black');
xlabel('Speed [rpm]');
ylabel('Gear');
grid on
title('Gear command wrt vehicle speed')
<!-- [if mso]>
<![endif]-->
subplot(2,1,2)
plot(Veh_Dist, Gear_Cmd, 'linewidth', 1, 'Color', 'red');
xlabel('Distance [kmpl]');
ylabel('Gear');
grid on
title('Gear command wrt Distance')
<!-- [if mso]>
<![endif]-->
 
%% 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]');
legend([p1 p3],{'Max Curve','Operating Points'});
axis([Eng_map_spd(1)*30/pi Eng_map_spd(end)*30/pi 0 Eng_map_trq(end)]);
 
PLOTS
 

1] Plotting vehicle characteristics time trace transmission IN/OUT and Wheel Speed:-

For UDDS,

For HWFET,

In this graph we see the transmission input and transmission out fluctuates up and down as increasing speed and time.

2] Plotting vehicle characteristics time trace to Engine speed, Engine Torque, Engine Power, And Engine fuel rate, Engine fuel consumption

For UDDS,

For HWFET,

Engine torque, Engine power, engine fuel rate and engine fuel consumption is increase increasing wrt time.

3] Plotting fuel economy Vs Engine Fuel consumption:-

For UDDS,

For HWFET,

Engine fuel consumption is suddenly increase as increasing fuel economy but if fuel economy is constant then the fuel consumption is also constant.

4] Potting Accelerator pedal, Brake pedal and gear command with respect to time:-

For UDDS,

For HWFET,

As comparing brake of vehicle the accelaration of vehicle is more so the brake torque is min required. and the gear shifting is also required wrt time.

5] Plotting gear command vehicle desired with actual speed:-

For UDDS,

For HWFET,

Gear shifting is required as increase vehicle speed. as shifting order is gear1, then gear2, then gear3, and then gear4.

6] Plotting engine operating points on engine fuel map:-

For UDDS,

For HWFET,

In this as torque decrease, speed increase.

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.