Project 2
Aim :-
To do that, the following steps need to be followed:
1) Load the Project2 folder as the Current Folder in Matlab.
2) Run the “Project2_InitFile.m” Matlab script.
3) Copy the Conventional vehicle Simulink model created for Project 1 in this folder. Figure 1: P1 Hybrid ArchitectureHybrid Drives Development
4) Modify this model into a hybrid vehicle model. The lecture presentations can be used as reference. Battery and Supervisory controller models developed in the assignments can be reused.
5) Add additional ‘To Workspace’ blocks for transferring the desired Simulink vehicle data into the Matlab workspace.
6) Simulate the hybrid model on the desired drive cycles.
7) Write a project report that contains the following:
a. Tabulate the fuel economy numbers (kmpl) for UDDS and HWFET cycle. Compare these numbers with the baseline numbers for conventional vehicle model from Project 1.
b. Plot the time trace for engine, transmission input, transmission output and wheel speed on one plot.
c. Plot engine torque, engine power, fuel rate and fuel consumption using subplots.
d. Plot accelerator and brake pedal, gear command, vehicle desired and actual speed, vehicle distance using subplots.
e. Plot the engine operating points on the engine fuel map.
f. Plot motor speed, torque, motor input power using subplots.
g. Plot pack voltage, current and SoC using subplots.
h. Plot the motor operating points on the motor input power map, with the motor max motoring and generating torque curves.
i. Write down appropriate brief comments on each of these plots, describing the vehicle behavior throughout the drive cycle.
j. Generate the plots for both drive cycles
Description:
As discussed in Lecture 11, Project 2 deals with the development of a forward energy-based fuel consumption model of a P1 hybrid vehicle. This model is based on the conventional vehicle model from Project 1.

The main goal of this project is to understand the functionality of a P1 hybrid and be able to model it.
Honda Insight motor and battery are considered for this project. Data is taken from ADVISOR data base developed by NREL, USA. Data provided in the project files.
Theory :-
P1 Mild Hybrid Electric Vehicle :-
The P1 architecture with the electric machine connected directly to the crankshaft is the solution adopted by Honda on their first generation integrated Motor Assist. The electric motor function as a generator, during vehicle deceleration as an engine starter, and as a motor(to assist the engine), during vehicle accelerations. One of the biggest advantage of this solution is that the BiSG, since there is no belt limitation. However, since there is no speed/torque ratio between the electric machine and crankshaft, the torque requirements on the electric motor can be quite demanding.
Two exmaples of P1MHEV architecture are:
1. Honda Insight Hybrid 2009
2.Mercedes Benz S400 Bluehybrid 2010
For, Example main characteristics of the P1 MHEV.
1.Electric Machine Performance;-
Maximum torque up to 34Nm.
Maximum power. 10KW.
Efficiency: Up to 94 Percent.
2.Hybrid Modes;-
Idle stop and stop
Moving stop and start
Engine load shift
Torque assist
Torque boost
Energy recuperation
Brake generation
3.Advantages;-
Higher efficiency
The 12V starter can be removed
4.Disadvantages;-
Output torque limited by the size of the electric machine.
Energy recuperation affected by engine friction losses.
High impact on existing vehicle architecture.
Higher overall cost of the electrical components.
Air cooling not possible for electric machine.
5.Overall characteristics;-
Torque Boosting capacity; High
Electrica energy recuperation; Medium
Driveability improvements; Medium
Electrical creep/drive; Possible
In this model we use Forward Model:-
It also known as dynamic simulation. Dynamic models are used for detailed simulations. In this model force/torque/power is the input and the vehicle state variable velocity and acceleration are outputs. The models and simulation are more realistic due to physical casually hence appropriate for control development. There is feeback loop to meet the desired vehicle state. It is mainly used to simulate a vehicle on a driving cycle a analyse the dynamic behaviour of the system helps significantly in control development.
Process :-
Load the project2 folder as the current folder in Matlab.
Run the "Project2_InitFile.m"Matlab script.
The drive cycle selection is done here.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 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);
After run this coding file open simulink model.
1.Layout :-

2.Driver :-

It is modeled using a Driver block which is a basic PI controller that generates accelerator and brake pedal outputs to match the desired and actual vehicle speeds. In this we use drive cycles for the based on these results of fuel consumption and emissions the vehicle gets certified and it also forms a basis of uniform assessment.

The controller block is the brains of the vehicle representing the electronic controls units. It is ;based on the driver inputs, it generates desired engine torque, desired transmission gear desired motro torque and disred brake torque. These inputa are fed to the Powertrain block which represents the drivetrain of the vehicle.
4.Stateflow for Controller:-

In this we created four condition as stop, start, drive and regeneration braking. The initial block represent the stop condition. In which the engine is off. The engine and motor throttle conditions are zero. Then the second block represent start condition. In which the mode is 1 the electric motor throttle is only used to provide the required torque and power to the vehicle .
The state 1 and 2 are conneccted using the links it moves from state 1 to 2 when acceleration is less than one or SOC is less then the minimum SOC.
State 3 represents mode2 engine is on and the engine throttle is also having positive value from the driver but the electric motor throttle is zero.
State 4 represents regenerative braking which is model 3 In this state the engine is on but the engine throttle is having no input from driver whereas the electric moto receives the negative power.
5.Engine Control Unit :-

In this control model we use engine control unit in that give input engine speed through creating look up table. In that table we give input maximum torque and map speed then also create 2nd lookup table in that give input torque and map speed then itsubtracts and multiplied the engine speed also give to ideal control speed.
6.Transmission Control Unit :-

In this unit we create steady 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.
7.Shiftlogic In this Unit :-

8.Threeshold Value in this controller :-

9.Electric Motor Control Unit :-

10.Brake Control Unit :-

In this calculate brake torque and then all three control signals output is give to powertrain.
11.Engine :-

In this model we used map based model to model the fuel consumption of engine. It is based on maximum torque and minimum torque form the controller and then it saturated torque and give output then saturated torque and speed map give fuel consumption takes the speed and torque then the output goes into saturated then its integrated.
12.Electric Motor :-

13.Crankhub :-

14.Transmission :-

In thes model we take engine torque, gear selector form controller for transmission of gear ratio. The ratio is multiply by transmission input torque and then the transmission efficiency positive torque and negative torque gives transmission input speed.

16.Differential :-

In this taking input is the transmission ouptput then its going to the differential ratio multipied the output and input torque then meet axle torque. The axle torque is a lower than the transmission torque and differential ratio.
17.Wheel :-

In this model we take the axle torque from differential and brake torque from controller. It is substracts and multiplied rolling raidus and velocity then we meet the tractive force from axle and brake torque and the wheel speed is meet using velocity.
18.Vehicle Dynamics :-

In this take tractive force and road load. It is dicates vehicle speed based on tractive force and road load.
19.Estimated storage system:-

In this we give input as power then it multiply and give to pack current then from soc estimation meet output SOC its give to terminal voltage as input and then meet terminal voltage as output.

In this use input soc it is connected to 1d lookup table 1st tabel variable interpolated as state of charge and open voltage circuit in 2nd table variable interpolated as resistance discharge and state of charge and in 3rd table variable interpolated as resistance charge and state of charge. Then it is passed to switch block for controlling the threeshold.
21.Pack Current :-

In this we intrgrate pack current and convert it rad to amp then saturated and meet SOC.
Then we create one coding file for creating plots and to meet all answers, that file shown .
%%Renaming variables
Time = out.tout;
Acc_Pdl = out.Acc_Pdl;
Brk_Pdl = out.Brk_Pdl;
Gear_Cmd = out.Gear_CMD;
Trans_In_Spd = out.Trans_In_Spd*30/pi;
Trans_Out_Spd = out.Trans_Out_Spd*30/pi;
Eng_Trq = out.Eng_Trq;
Eng_Spd = out.Eng_Spd*30/pi;
Eng_Fuel_Consump = out.Eng_Fuel_Consumption;
Veh_Dist = out.Veh_Dist/1000;
Veh_Spd = out.Veh_Spd*18/5;
Wheel_Speed = out.WheelSpeed;
Eng_Fuel_Rate = out.Eng_Fuel_Rate;
EM_Speed = out.EMSpd*18/5;
EM_Power = out.EMPwr;
EM_Torque = out.EMTrq;
Term_Volt = out.term_volt;
Soc = out.SOC;
pack_current = out.pack_current;
%%Data Analysis
Eng_Pwr = Eng_Spd*pi/30*Eng_Trq/1000;
rho_petrol = 0.7197;
kmpl = Veh_Dist(end)/(Eng_Fuel_Consump(end)/1000/rho_petrol);
%%Plotting vehicle characteristics time trace to Engine speed, Engine
%%Torque, Engine Power, And Engine fuel rate, Enginefuel consumption
%Data conversion from Double Timeseries
Eng_Spd = Eng_Spd.Data(:,1);
Eng_Trq = Eng_Trq.Data(:,1);
Eng_pwr = Eng_Pwr.Data(:,1);
Eng_fuel_rate = Eng_Fuel_Rate.Data(:,1);
Eng_fuel_Consumption = Eng_Fuel_Consump.Data(:,1);
EM_Speed = EM_Speed.Data(:,1);
EM_Power = EM_Power.Data(:,1);
EM_Torque = EM_Torque.Data(:,1);
pack_current = pack_current.Data(:,1);
State_of_charge = Soc.Data(:,1);
Term_voltage = Term_Volt.Data(:,1);
%%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');
ylabel('Speed [rpm]')
xlabel('Time m[s]')
xlim([0, Time(end)]);
ylim([0, 6000]);
legend('Trans Input','Trans Output','Wheel Speed')
%%Plotting Engine speed, Engine Torque, Engine Power, Engine fuel rate,
%%Engine fuel consumption wrt Time
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','black')
xlim([0, Time(end)])
xlabel('Tiem [s]')
ylabel('Torque [Nm]')
legend on
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 fuel economy Vs Engine Fuel consumption
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
%%Plotting Accelerationpedal, 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)])
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 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)])
%%State of charge, pack Current, And Terminal Voltage withrespect to Time
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,Torque,Motor input power with respect to Time
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('Electric Motor Speed')
grid on
%%Plotting EM Operating Points on motor input power map
figure('Name','Electric Motor Operating Points')
hold on
grid on
title('Elctric 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')
[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)]);
Plotting :-
1.Plot the time trace for engine, transmission input, transmission output and wheel speed on one plot.
2.plot engine torque,engine power,fuel rate and fuel consumption using subplots.
3.plot accelerator and brake pedal,gear command,vehicle desired and actual speed,vehicle distance using subplots.
4.plot the engine operating points on the engine fuel map.
5.plot motor speed, torque, motor input power using subplots.
6.plot pack voltage,current and soc using subplots.
7.Plot the motor operating points on the motor input power map, with the motor max motoring and generating torque curves.
This given plots are below in the file submitted.
Conclusion :-
The various performance of characteristics and operating points of UDDS drive cycle and HWFET drive cycle are analysed and the graphs are plotted.