Project 2
Blocks added to convert Conventional Drive Cycle model to Hybrid Cycle Simulink Model :-
Model :-

- All blocks are same for driver block.
Controller Block :-
- In controller there is script block added to change drive mode according to requirement.
- Also electric motor block added to evaluate EM torque.
- Connected script block output whereas required as input.

Script chart

EM Block

Powertrain Block :-
- In this block Electric machine, Cranck Hub and ESS block added.

Electric machine block

Crank Hub

ESS Block

- SOC Calculator Block

- Terminal Voltage Block

- Rather than this main addition, there is small connection and function added according to requirement.
Program Script :-
%% 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 = 1; % 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);
% Variables Define
t = out.tout;
TIS = out.Trans_In_Spd;
ES = out.Eng_Spd;
TOS = out.Trans_Out_Spd;
WS = out.Wh_Spd;
% Plot the time trace for engine, transmission input, transmission output and wheel speed
figure(1)
hold on
subplot(2,2,1)
plot(t,ES)
xlabel('Time')
ylabel('Engine Output Speed')
subplot(2,2,2)
plot(t,TIS)
xlabel('Time')
ylabel('Transmision Input Speed')
subplot(2,2,3)
plot(t,TOS)
xlabel('Time')
ylabel('Transmision Output Speed')
subplot(2,2,4)
plot(t,WS)
xlabel('Time')
ylabel('Wheel Speed')
hold off
% Plot engine torque, engine power, fuel rate and fuel consumption using subplots.
Eng_trq = out.Eng_trq;
Eng_pow = ES * pi / 30 .* Eng_trq / 1000;
Eng_fuel_rate = out.Eng_Fuel_Rate;
Eng_fuel_cons = out.Eng_Fuel_Consumption;
figure(2)
hold on
subplot(2,2,1)
plot(t,Eng_trq)
xlabel('Time')
ylabel('Engine Torque')
subplot(2,2,2)
plot(t,Eng_pow)
xlabel('Time')
ylabel('Engine Power')
subplot(2,2,3)
plot(t,Eng_fuel_rate)
xlabel('Time')
ylabel('Engine Fuel Rate')
subplot(2,2,4)
plot(t,Eng_fuel_cons)
xlabel('Time')
ylabel('Engine Fuel Consumption')
hold off
% Plot accelerator and brake pedal, gear command, vehicle desired and actual speed, vehicle distance using subplots
Acc_pdl = out.Acc_Pdl;
Brk_pdl = out.Brk_Pdl;
Gear_cmd = out.Gear_Cmd;
Vh_de_spd = out.Vehicle_Desired_Speed;
Vh_act_spd = out.Veh_Spd;
Vh_dis = out.Veh_Dis;
figure(3)
subplot(2,2,1)
plot(t,Acc_pdl)
hold on
plot(t,Brk_pdl)
xlabel('Iime')
ylabel('Paddle')
legend('Acc','Brake')
hold off
subplot(2,2,2)
plot(t,Gear_cmd)
xlabel('Time')
ylabel('Gear Command')
subplot(2,2,3)
plot(t,Vh_de_spd)
hold on
plot(t,Vh_act_spd)
xlabel('Time')
ylabel('Speed')
legend('Desired','Actual')
subplot(2,2,4)
plot(t,Vh_dis)
xlabel('Time')
ylabel('Vehicle Distance')
% Eng_map_trq
figure(4)
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]');
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)]);
EM_spd = out.EM_spd;
EM_trq = out.EM_trq;
EM_input_power = out.EM_input_power;
figure(5)
hold on
subplot(2,2,1)
plot(t,EM_spd)
xlabel('Time')
ylabel('Electric Motor Speed')
subplot(2,2,2)
plot(t,EM_trq)
xlabel('Time')
ylabel('Electric Motor Torque')
subplot(2,2,3)
plot(t,EM_input_power)
xlabel('Time')
ylabel('Electric Motor Input Power')
Pack_voltage = out.Pack_voltage;
Pack_current = out.Pack_current;
SOC = out.SOC;
figure(6)
hold on
subplot(2,2,1)
plot(t,Pack_voltage)
xlabel('Time')
ylabel('Pack Voltage')
subplot(2,2,2)
plot(t,Pack_current)
xlabel('Time')
ylabel('Pack Current')
subplot(2,2,3)
plot(t,SOC)
xlabel('Time')
ylabel('SOC')
figure(7)
hold on
title('Engine Operating Points','fontsize',12);
p1=plot(EM_map_spd*30/pi,EM_max_trq,'linewidth',2,'color','r');
p4=plot(EM_map_spd*30/pi,EM_max_gen_trq,'linewidth',2,'color','k');
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('EM Speed [rpm]');
ylabel('EM Torque [Nm]');
title('EM Input Power');
hold off
legend([p1 p4 p3],{'Max Curve','Regen Curve','Operating Points'});
petrol_density = 0.7197;
kmpl = Vh_dis(end) / (Eng_fuel_cons(end) / 1000 / petrol_density)
First of all analysis run for UDDS cycle :-
1. Plot the time trace for engine, transmission input, transmission output and wheel speed on one plot.

- Engine speed is fluctuating according to UDDS cycle load rquirement. But during cycle, engine is being off because of small mode requirement Torque is provided by Elecrtric Motor.
- Engine and EM is connected with transmision through clutch. While no load condition clutch disengage transmission with Engine and EM. So transmission input is being zero while no torque requirement. Sudden torque requirement is not observed because excess load is provided by EM.
- Transmision speed is reduce due to friction and other minimal loss. Thats why output values are less than input values.
- This transmission output speed transfer to the wheel.And vehicle is start roling. Wheel speed is increase or decreased according to transmission output speed.
2. Plot engine torque, engine power, fuel rate and fuel consumption using subplots.

- As usual engine torque is increased as vehicle accelerate. Also torque value is going negative when vehicle is deaccelerate.
- This same pattern is followed by engine power. We can regen this negative torque or power to electiricity for using other places.
- Obviously, engine fuel rate is increase and decrease as vehicle speed increase or decrease.
- Fuel consumption is start as UDDS cycle start and increasing till vehicle will being off. But fuel consumption is less compare to conventional vehicle.
3. Plot accelerator and brake pedal, gear command, vehicle desired and actual speed, vehicle distance using subplots.

- First plot shows pedal position. As driver require more speed according to UDDS cycle it press more acceleration pedal. And while deacceleration it press brake pedal according to deacceleration requirement.
- As speed increase and decrease drive change gear shifter according to speed requirement. Higher the speed higher the gear ratio. But gear shifting is less compare to convention drive cycle model.
- In third plot, actual vehicle speed is less than desired speed due to friction and operation feedback delay and many other fatigues.
- Vehicle is start moving while UDDS cycle introduce to vehicle and keep increasing till vehicle stops or engine is getting off.
4. Plot the engine operating points on the engine fuel map.

- In fuel consumption contour map, it is conclude that fuel consumption is same as Lower speed and higher torque as higher engine speed and lower engine torque.
- Also mapped max curve and operating points on graph.
5. Plot motor speed, torque, motor input power using subplots.

- As UDDS cycle require extra torque or small torque, hybrid system on the EM and EM start running. Speed is vary according to requirement. Negative speed indicate generation of power.
- Torque is increase with EM speed increase.
- EM input power is increased as EM speed or torque increase because it needs more power to give desire output.
6. Plot pack voltage, current and SoC using subplots.

- ESS pack voltage is decrease when EM requires torque. And increase when EM is not required torque.
- Pack current is showing opposite behaviour as Pack Volltage. Ampere decrease when in use and increase when EM is getting OFF.
- SOC is continuously decrease instead of some cycle time where SOC increase due to regen power. SOC consumed by EM continuously as per torque requirement.
7. Plot the motor operating points on the motor input power map, with the motor max motoring and generating torque curves.

- In EM Input Power contour map, it is conclude that EM input power is required less if EM torque requirement is high at lower EM speed. And also at low EM torque with high EM speed.
- Also mapped max curve, regen curve and operating points on graph.
Analysis for HWFET cycle :-
- All program and simulink block is same. Only change selection of drive cycle to HWFET in matlab program.
1. Plot the time trace for engine, transmission input, transmission output and wheel speed on one plot.

- Engine, Transmission and Wheel shows same observaion as UDDS cycle only variation in speed is decreased.
2. Plot engine torque, engine power, fuel rate and fuel consumption using subplots.

- Every comments on this plot is same as UDDS cycle. Only working range of plot is converge due to less speed fluctuation.
3. Plot accelerator and brake pedal, gear command, vehicle desired and actual speed, vehicle distance using subplots.

- Plot obsevations are same as UDDS cycle. Only vehicle is mostly running on 3 or 4th gear due to less speed fluctuation.
4. Plot the engine operating points on the engine fuel map.

- This plot is as same as UDDS plot. There is no change in plot.
5. Plot motor speed, torque, motor input power using subplots.

- All obsevations are same as UDDS plot. Only EM show stability to 0 due to EM mode off due to less fluctuation in speed on highway.
6. Plot pack voltage, current and SoC using subplots.

- As motor is OFF condition most of time, Pack voltage and current shows stability.
- While SOC is increase as regen power mode is activate during cycle. SOC is not utilize because EM is OFF.
7. Plot the motor operating points on the motor input power map, with the motor max motoring and generating torque curves.

- It is same as UDDS cycle plot.
So, here are plots of both UDDS and HWFET cycle.
Comparision of fuel economy numbers :-
| Conventional | Hybrid | |
| UDDS | 1.42E+04 | 1.65E+04 |
| HWFET | 2.66E+04 | 3.69E+04 |
- Fuel economy number is better for HWFET compare with UDDS due to less speed fluctuation.
- Fuel economy number is higher for hybrid system compare with conventional system.