Project 1
Development of a forward energy-based fuel consumption model of a conventional vehicle
Aim:-
1] Build Simulink model using blocks and complete the vehicle model.
2] Writting scripts in MATLAB to load all the variables required for running the Simulink model.
3] Tabulate the fuel economy numbers (kmpl) for UDDS and HWFET cycle.
4] Plot the time trace for engine, transmission input, transmission output and wheel speed on one plot.
5] Plot engine torque, engine power, fuel rate and fuel consumption using subplots.
6] Plot accelerator and brake pedal, gear command, vehicle desired and actual speed, vehicle distance using subplots.
7] Plot the engine operating points on the engine fuel map.
8] Generate the plots for both drive cycles.
9] Study of Conventional vehicle simulink model and creates graphs.
Conventional Vehicle:-
The wheels of conventional vehicles are propelled by an internal combustion engine that is fuelled by either petrol or diesel. A fuel and an oxidizer are burned in a combustion chamber to produce expanding gases that press against a piston to produce force and torque. This is how a heat engine works.The fuel's chemical energy is converted into heat in this vehicle's engine and used to create productive work. Use fossil fuels like petroleum (petrol and diesel) as often as possible.The 4 stroke reciprocating engine is the most common type of engine utilised in this system. An ideal thermodynamic cycle, such as the Otto cycle or the Diesel cycle, can describe the engine in cylinder operation.The Otto cycle is a good cycle. That outlines the cycle process for a SI engine with spark ignition. It makes the Diesel cycle the perfect cycle. That details the cycle method for a CI engine with compression ignition.
Vehicle energy and performance:
In this design, the powertrain must immediately provide the wheel's 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 gearbox.
Types of Energy based model-
There are essentially two different methods for modelling an element's underlying physical properties and losses.
- MAP BASED MODEL-Maps that depict the link between input and output, output and losses, etc. are used to simulate many elements.
- ANALYTICAL MODEL- Physical equations that capture the internal dynamics are used to model elements. 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.
In this mdoel we are using a forward model, which is also known as dynamic simulation.In-depth simulations are performed using dynamic models. This model uses force, torque, and power as inputs and vehicle status variables, such as acceleration and velocity, as outputs. Due to physical casualty, models and simulations are more realistic and suitable for control development. To achieve the desired vehicle state, there is a feedback loop. It is primarily used to replicate a vehicle while it is being driven in order to examine the dynamic behaviour of the system, which greatly aids in the creation of controls.

MATLAB scripts:-
utilised to load every variable necessary for both executing the Simulink model and post-processing. This is also where you choose the drive cycle. This initialization script should be executed before to starting the Simulink car model.
%% Skill-Lync -> Hybrid Drives Development
% Project 1 - Conventional Vehicle Model
% By - pranay padamwar
% 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 Engine_data_1_9L_Saturn_95kW
load 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 UDDS;
elseif Drive_Cycle_Select == 2
load HWFET;
elseif Drive_Cycle_Select == 3
load FTP;
elseif Drive_Cycle_Select == 4
load US06;
elseif Drive_Cycle_Select == 5
load NEDC;
elseif Drive_Cycle_Select == 6
load WLTP;
end
time_end = cyc_time(end);
vel_end = cyc_vel(end);
AFTER THIS ,
We can move to the simulink file.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`
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.
PROJECT1_VEHICLE MODEL:

Here we can see that a simulink model is created of a conventional vehicle, which consists of Driver , Controller & powertrain.
1] DRIVER MODEL:

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.
It's result graph through scope:

2] CONTROLLER MODEL:

The 'Controller' block, which stands in for the electronic control systems, is the brain of the car. It produces the desired engine torque, desired gearbox gear and desired brake torque dependent on the driver's inputs. The 'Powertrain' block, which symbolises the vehicle's drivetrain, receives these inputs.
It's result graph through scope:

a] ENGINE CONTROL UNIT:

In this control system, the engine control unit provides input for the engine speed by building a look-up table. In that table, we input Maximum torque and map speed. We then establish a second look-up table and input CT torque and map speed. This table then does subtraction and multiplication. We can fulfil the engine's needed torque output by integrating the engine speed with the optimal counterspeed.
It's result through scope is shown:

2] Transmission Control Unit:-

In this unit we create steadfy flow variable state for controlling of gears of vehicle as in ascending and descending order with respect to time, speed, distance. and give input to this steady state is vehicle speed in m/s to mph.
3] Brake Control Unit:-

In this calculate brake torque and then all three control signals output is give to powertrain.
3] POWERTRAIN MODEL:

The above model shown is powertrain in which the main components of the vehicle is present for the transmission of the power to the vehicle.
A] ENGINE:

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.
It's result graph through scope:

B] TRANSMISSION:

In these models, we use the gear selector from the controller for transmission of the gear ratio and the engine torque. The gearbox input speed is determined by multiplying the ratio by the gearbox input torque, positive torque, and negative torque, respectively. In this instance, the torque converter is a gearbox component that connects the engine to the gearbox. It essentially has decoupled engine dynamics.
It's result graph through scope:

TORQUE CONVERTER:

It's result graph through scope:




C] DIFFERNTIAL:

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 gearbox torque are greater than the axle torque.
It's result graph through scope:

D] WHEELS:

In this model, we take the braking torque from the controller and the axle torque from the differential. Rolling radius and speed are subtracted from and multiplied before we encounter the tractive force from axle and braking torque. and velocity is used to satisfy the wheelspeed.
E] VEHICLES DYNAMICS:

MeqdVvehdt=ηtλtotRwTm−(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.
It's result graph through scope:


Conclusion:`
As inertial resistance and aerodynamic drag increase, total power gradually rises. However, the decreasing rolling resistance in this drive cycle results in a detrimental impact`
Result:-
As comparing both cycles we used to UDDS drive cycle. Its best for asses of fuel consumption and Pollutants emission of vehicle in a normalised way.
Now For creating Plots we use MATLAB coding So the coding will give down:-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Skill-Lync -> Hybrid Drives Development
% Project 1 - Conventional Vehicle Model
% By - Pranay Padamwar
% 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; % 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]
WheelSpd= out.WheelSpd;
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]
%% 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.WheelSpd; % Wheel speed [kmph]
Eng_Fuel_Rate = out.Eng_Fuel_Rate % Engine 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 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, 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');
%% Plotting vehicle characteristics time trace to Engine speed, Engine Torque, Engine Power,
% And Engine fuel rate, Engine fuel consumption
% Data conversion from Double Timeseries
% 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,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
% Plotting fuel economy Vs Engine Fuel consumption
figure(3)
plot(Eng_Fuel_Consump,Eng_Fuel_rate,'color','r')
xlabel('Fuel consumption')
ylabel('Fuel Rate [%]')
title('Fuel economy Vs Fuel Consumption')
grid on
%% 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')
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')
% 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')
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')
%% 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)]);
%% plotting time vs vehicle distance and time vs vehicle speed
figure(7)
hold on
plot(Time, Veh_Dist, 'linewidth', 1, 'Color', 'black');
plot(Time, Veh_Spd, 'linewidth', 1, 'Color', 'red');
ylabel('velocity [m/s]')
xlabel('Time [s]');
xlim([0, Time(end)]);
grid on
legend('Veh_Spd','Veh_Dist');
title('Vehicle speed & vehicle dist wrt Time')
PLOTTING THE GRAPHS:
1]COMPARISION BETWEEN TRANS_IN , TRANS_OUT , WHEEL SPEED:
UDDS:

HWFET:

2]Vehicle characteristics time trace to Engine speed, Engine Torque, Engine Power, And Engine fuel rate, Engine fuel consumption:
UDDS

HWFET

3] Fuel economy Vs Engine Fuel consumption:-
UDDS

HWFET

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

HWFET

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

HWFET

6]Plotting engine fuek consumptions on engine fuel map:-
UDDS

HWFET

CONCLUSION :
| UDDS | 27.9092 |
| HWFET | 40.2712 |
END
THANK YOU