Challenge

Project 2

Aim :

To quantify the improvement in fuel economy numbers for the hybrid vehicle (kmpl), compared to the conventional vehicle, on the urban cycle (UDDS) and highway cycle (HWFET). Also, to analyze and understand the vehicle operating points in terms of engine and motor speed, torque, transmission speeds, pedal positions, gear, distance traveled, battery voltage, current, SoC etc.

Honda chose the P1 architecture for their first-generation Integrated Motor Assist (IMA) technology because it allows the electric motor to be connected directly to the crankshaft. The electric motor serves as a generator, an engine starter, a motor (to help the engine), and a generator during vehicle braking. The fact that the electric motor can deliver more torque than the BiSG because there is no belt restriction is one of the solution's main benefits (due to slip). The torque demands on the electric motor, however, can be fairly high because there is no speed to torque relationship between the electric machine and crankshaft.

MATLAB script :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 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
load Vehicle_Data/EM_Honda_Insight_10kW
load Vehicle_Data/ESS_NiMH6
ESS_init_soc = 0.8;
ESS_soc_max = 0.9;
ESS_soc_min = 0.6;
%% 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 model :
The controller block sends control signals for engine torque, gear shifting, and brake torque to the Powertrain model while the driver block receives feedback on the actual vehicle speed and supplies the controller block with the necessary acceleration or braking output.
Driver :
A fundamental PI controller called Driver Model produces outputs from the accelerator and brake pedals that are matched to the desired and actual vehicle speeds. By giving the controller output for the accelerator and brake pedals, the PI controller manages the discrepancy between the needed driving cycle and the actual vehicle speed.
Controller :
The vehicle's "Controller block," which stands in for the electronic control modules, is its brain. It produces the required engine torque, desired motor torque, desired transmission gear, and desired brake torque based on the driver's inputs. These inputs are supplied to the "Powertrain" block, which symbolises the vehicle's drivetrain.
-> Model selection :
The supervisory control unit, which selects the operation mode, is modelled as a state flow machine. while in start/stop, cruise, or regeneration braking mode. The engine drive and the motor drive are adjusted for each mode.
-> Engine control unit :
engine management system Give the engine block the necessary torque command by comparing engine speed to the lookup table's maximum and lowest torque curves. To estimate the torque input needed for the engine, the throttle input is combined with the idle speed throttle and gains with the torque output from the lookup table.
->> Idle speed controller :
-> Transmission control unit :
->> Shift logic :
-> EM control unit :
Drive Motor Unit Give the Electric Motor the necessary torque command by comparing its speed to the maximum torque curve and maximum torque generation curves in the lookup table. In order to compare the lookup tables and determine the torque input needed for the E-Motor, the EM throttle input is employed.
-> Brack control unit :
Powertrain :
->> SOC estimation :
->> Terminal voltage :
-> Engine :
-> Electric motor :
-> Crank hub :
-> Transmission :
->> Torque converter :
-> Differential :
-> Wheels :
-> Vehicle dynamics :
Battery model :
-> SOC estimation :
-> Terminal voltage :
MATLAB script :
Time = out.tout;
Acceleration_Pdl = out.Acceleration_Pdl; % Accelerator
Brake_Pdl = out.Brake_Pdl; % Brake
Gear = out.Gear_CMD; % Transmission
Transmission_In_Spd = out.Trans_In_Spd*30/pi; % Transmission input speed
Transmission_Out_Spd = out.TransOutSpd*30/pi;% Transmission output speed
Engine_Torque = out.Eng_Trq; % Engine brake torque
Engine_Speed = out.Eng_Spd*30/pi; % Engine speed
Engine_Fuel_Consumption = out.Eng_Fuel_Consumption; % Engine fuel consumption
Vehicle_Dist = out.Veh_Dist/1000; % Distance traveled by vehicle
Vehicle_Speed = out.Veh_Spd*18/5; % Vehicle speed
Wheel_Speed = out.WheelSpeed; % Wheel speed
Engine_Fuel_Rate = out.Eng_Fuel_Rate % Engine fuel rate
EM_Speed = out.EMSpd*18/5; % Electric Motor Speed
EM_Power = out.EMPwr; % Electric Motor Power
EM_Torque = out.EMTrq; % Electric Motor Torque
Term_Volt = out.term_volt; % Terminal Voltage of battery
SOC = out.SOC; % State Of Charge
Pack_Current = out.Pack_Current; %Pack current of battery
Eng_Power = Engine_Speed*pi/30*Engine_Torque/1000; % Engine brake power
rho_petrol = 0.7197; % Density of petrol
kmpl = Vehicle_Dist(end)/(Engine_Fuel_Consumption(end)/1000/rho_petrol); % Fuel economy [kmpl]
Eng_spd = Engine_Speed.Data(:,1); % engine speed
Eng_trq = Engine_Torque.Data(:,1); % engine torque
Eng_pwr = Eng_Power.Data(:,1); % engine power
Eng_fuel_rate = Engine_Fuel_Rate.Data(:,1); % engine fuel rate
Eng_fuel_consumption = Engine_Fuel_Consumption.Data(:,1); % engine fuel consumption
EM_speed = EM_Speed.Data(:,1); % motor speed
EM_power = EM_Power.Data(:,1); % Motor Power
EM_torque = EM_Torque.Data(:,1); % Motor Torque
Pack_current = Pack_Current.Data(:,1); %pack current of battery
State_of_charge = SOC.Data(:,1); %state of charge
Term_voltage = Term_Volt.Data(:,1); % terminal Voltage of battery
% Plotting
figure(1)
hold on
grid on
plot(Time, Transmission_In_Spd, 'linewidth', 1, 'Color', 'black');
plot(Time, Transmission_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('Transmission Input','Transmission Output','Wheel Speed');
%% Plotting
figure(2)
subplot(4,1,1)
plot(Time,Eng_trq,'linewidth',1,'color','black')
xlim([0, Time(end)]);
xlabel('Time(s)')
ylabel('Torque(Nm)')
legend('Engine Torque')
grid on
subplot(4,1,2)
plot(Time,Eng_pwr,'linewidth',1,'color','blue')
xlim([0, Time(end)]);
xlabel('Time(s)')
ylabel('Power(KW)')
legend('Engine Power')
grid on
subplot(4,1,3)
plot(Time,Eng_fuel_rate,'linewidth',1,'color','red')
xlim([0, Time(end)]);
xlabel('Time(s)')
ylabel('Fuel Rate(%)')
legend('Engine Fuel Rate')
grid on
subplot(4,1,4)
plot(Time,Eng_fuel_consumption,'linewidth',1,'color','green')
xlim([0, Time(end)]);
xlabel('Time(s)')
ylabel('Fuel Consumption')
legend('Engine Fuel Consumption')
grid on
% Plotting
figure(3)
plot(Eng_fuel_consumption,Eng_fuel_rate,'color','r')
xlabel('Fuel consumption')
ylabel('Fuel Rate(%)')
title('Fuel economy Vs Fuel Consumption')
grid on
% Potting
figure(4)
subplot(2,1,1)
hold on
plot(Time, Acceleration_Pdl, 'linewidth', 1, 'Color', 'black');
plot(Time, Brake_Pdl, 'linewidth', 1, 'Color', 'red');
ylabel('Pedal (%)')
xlabel('Time (s)');
xlim([0, Time(end)]);
grid on
legend('Acceleraton','Brake');
title('Acceleration & Brake Pedal wrt Time')
subplot(2,1,2)
plot(Time, Gear, 'linewidth', 1, 'Color', 'black');
xlim([0, Time(end)]);
xlabel('Time(s)');
ylabel('Gear');
grid on
title('Gear command wrt Time')
% Plotting
figure(5)
subplot(2,1,1)
plot(Veh_spd, Gear, '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, 'linewidth', 1, 'Color', 'red');
xlabel('Distance(kmpl)');
ylabel('Gear');
grid on
title('Gear command wrt Distance')
% Plotting
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)]);
% State of Charge
figure(6)
subplot(3,1,1)
plot(Time,Pack_current,'linewidth',1,'color','black')
xlim([0, Time(end)]);
xlabel('Time (s)')
ylabel('Current (W)')
legend('Pack Current')
grid on
subplot(3,1,2)
plot(Time,State_of_charge,'linewidth',1,'color','blue')
xlim([0, Time(end)]);
xlabel('Time (s)')
ylabel('Charging (%)')
legend('State Of Charge')
grid on
subplot(3,1,3)
plot(Time,Term_voltage,'linewidth',1,'color','red')
xlim([0, Time(end)]);
xlabel('Time (s)')
ylabel('Voltage (V)')
legend('Terminal Voltage')
grid on
% Motor Speed
figure(7)
subplot(3,1,1)
plot(Time,EM_power,'linewidth',1,'color','black')
xlim([0, Time(end)]);
xlabel('Time (s)')
ylabel('Power (W)')
legend('Electric Motor Power ')
grid on
subplot(3,1,2)
plot(Time,EM_torque,'linewidth',1,'color','blue')
xlim([0, Time(end)]);
xlabel('Time (s)')
ylabel(' Torque (Nm)')
legend('Electric Motor Torque')
grid on
subplot(3,1,3)
plot(Time,EM_speed,'linewidth',1,'color','red')
xlim([0, Time(end)]);
xlabel('Time (s)')
ylabel('Speed (Rpm)')
legend('Electrical Motor Speed')
grid on
% Plotting
figure('Name','Electric Motor Operating Points');
hold on
grid on
title('Electric Motor Operating Points','fontsize',12);
p1=plot(EM_map_spd*30/pi,EM_max_trq,'linewidth',2,'color','r');
p2=line([EM_map_spd(end)*30/pi EM_map_spd(end)*30/pi],[0 EM_max_trq(end)]);
set(p2,'linewidth',1,'linestyle','--','color','k');
p3=line([EM_map_spd(1)*30/pi EM_map_spd(1)*30/pi],[0 EM_max_trq(1)]);
set(p3,'linewidth',1,'linestyle','--','color','k');
[c,h] = contour(EM_map_spd'*30/pi,EM_map_trq,EM_inpwr_map');
clabel(c,h);
xlabel('Motor Speed (rpm)');
ylabel('Motor Torque (Nm)');
title('Motor Input Power Map [g/s]');
legend([p1 p3],{'Max Curve','Operating Points'});
axis([EM_map_spd(1)*30/pi EM_map_spd(end)*30/pi 0 EM_map_trq(end)]);
Result graph :
UDDS :
(time trace for engine, transmission input, transmission output and wheel speed on one plot) :
(engine torque, engine power, fuel rate and fuel consumption using subplots) :
(accelerator and brake pedal, gear command, vehicle desired and actual speed, vehicle distance using subplots) :
(engine operating points on the engine fuel map) :
(motor speed, torque, motor input power using subplots) :
(pack voltage, current and SoC using subplots) :
motor operating points on the motor input power map, with the motor max motoring and generating torque curves):
(Fuel economy v/s time) :
HWFET :
(time trace for engine, transmission input, transmission output and wheel speed on one plot) :
(engine torque, engine power, fuel rate and fuel consumption using subplots) :
(accelerator and brake pedal, gear command, vehicle desired and actual speed, vehicle distance using subplots) :
(engine operating points on the engine fuel map) :
(motor speed, torque, motor input power using subplots) :
(pack voltage, current and SoC using subplots) :
(motor operating points on the motor input power map, with the motor max motoring and generating torque curves):
(Fuel economy v/s time) :
-> In this case, we can see that the graph fluctuates more during the UDDS drive cycle than during the HWFET drive cycle. Because HWFET has fewer starts and stops than UDDS, this is the case. Compared to HWFET, UDDS requires more braking.In the UDDS drive cycle, the engine's maximum speed was close to 4200 RPM, but in the HWFET drive cycle, it was 3000 RPM.
-> The car used more electricity in the UDDS driving cycle since it had to make more starts and stops than a HWFET in urban areas. Because the vehicle needs more torque when starting from a standstill to overcome static friction, the engine is higher in the UDDS drive cycle than the HWFET drive cycle. Compared to the UDDS drive cycle, the HWFET drive cycle has a higher fuel rate since it will be moving continuously and require more fuel. Due to the UDDS cycle's frequent starts and stops and the engine's idle position, the fuel efficiency is high in HWFET.
-> Due to the frequent starts and pauses, the accelerator and brake pedals in UDDS experience greater variations. However, because there won't be any frequent stops, the brake pedal fluctuations in HWFET are almost close to the zero line. The first and second gears are used frequently in UDDS cycles, whereas the third and fourth gears are rarely used because the cycle cannot reach high speeds in such traffic. The car runs primarily in third and fourth gears during the HWFET cycle because it will be travelling quickly.
-> As the objective of the motor in the P! hybrid is the starting of crank rotation, the variations will be greater in the UDDS cycle compared to the HWFET cycle because UDDS has more starts and stops as a result of traffic. Both cycles would have higher fluctuations if the motor's goal were to provide traction. We can see that the motor power and torque in the HWFET start out very high and quickly drop to nearly nothing, but in the UDDS, there are continuous variations. This is due to the frequent braking in the UDDS.
-> Due to the many starts and stops throughout the drive and the battery's need to supply energy each time the car is started from the idle position, the pack voltage and current will fluctuate more in UDDS than in HWFET cycle. SOC declined with time in the UDDS cycle but increased over time in the HWFET cycle. This is due to the fact that in UDDS, where there are frequent starts and stops, the battery must constantly supply energy when the car is in the idle position, SOC increases while in the HWFET cycle, where the vehicle will be moving continuously without frequent stops, the alternator is used to transfer some engine power to the battery through the motor, SOC increases.
The fule economy number for project 2 is
For drive cycle UDDS the fuel economy number is 15.0773
For drive cycle HWFET the fuel economy number is 17.1613
As can be seen, HWFET has higher fuel efficiency than UDDS. This is due to the fact that when driving in cities, there is more traffic, stops are required more frequently, and gasoline consumption is higher at first. Because there is no traffic and the car is moving without excessive braking during HWFET, the fuel economy rating is higher.
Comparing with project 1
For drive cycle UDDS the fuel economy number is 14.209
For drive cycle HWFET the fuel economy number is 16.503
When we can see, project 2's fuel economy figures are a little higher than project 1's because it has an electric motor installed. Because project 2 is a P1 hybrid, the fuel economy may not vary much, but as we add additional architectural features, it will rise dramatically.
Conclusion :
The UDDS drive cycle and the HWFET drive cycle's various performance parameters and operating points are analysed, and graphs are plotted as a result. Time line for the engine, transmission input, transmission output, and wheelspeed. Fuel rate, fuel consumption, engine torque, and engine power as a function of time. The pedals for the accelerator and brake, the intended gear and the desired vehicle, the actual speed, and the vehicle's distance in relation to time. Engine operating points in relation to time on the fuel map for the engine. Motor torque, speed, and power input in relation to time. In relation to time, pack voltage, current, and charging state. The points where the motor is working in relation to time on the motor input power map. Additionally, it compares the HWFET driving cycle and its numbers. The motor's operating points in relation to time on the motor input power map. Additionally, it compares its figures to those of the HWFET driving 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.