In this takes tractive force and road load. It is dictates vehicle speed based on tractive force and road load.
g = gravity.
Then we calculate and integrate then we meet acceleration of vehicle and velocity of vehicle it mean vehicle distance and vehicle speed.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Skill-Lync -> Hybrid Drives DevelopmentS
% Project 1 - Conventional Vehicle Model
% By - Ayyappan G
% 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*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_Consump; % 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_Spd=out.Wheel_Spd;
Eng_Fuel_Rate=out.Eng_Fuel_Rate;
EM_Speed=out.EM_Speed;
EM_Power=out.EM_Power;
EM_Trq=out.EM_Trq;
I_pack=out.I_pack;
TerminalVoltage=out.TerminalVoltage;
SOC=out.SOC;
%% Data Analysis
Eng_Pwr = Eng_Spd*pi/30*Eng_Trq/1000; % Engine brake power [kW]
rho_petrol = 0.7197; % Density of petrol [kg/L]
%% Plotting vehicle characteristics time trace to Engine speed, Engine Torque, Engine Power,
% And Engine fuel rate, Engine fuel consumption
% Data conversion from Double Timeseries
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
Wheel_spd = Wheel_Spd.Data(:,1);
Eng_pwr = Eng_Pwr.Data(:,1);
EM_speed = EM_Speed.Data(:,1);
EM_trq = EM_Trq.Data(:,1);
EM_power = EM_Power.Data(:,1);
Terminalvoltage = TerminalVoltage.Data(:,1);
%I_Pack=I.pack(:,1);
soc=SOC(:,1);
% Plotting Time Vs'Trans Input','Trans Output','Wheel Speed'
figure(1)
hold on
grid on
plot(Time, Trans_In_Spd, 'linewidth', 1, 'Color', 'blue');
plot(Time, Trans_Out_Spd, 'linewidth', 1, 'Color', 'green');
plot(Time, Wheel_spd, 'linewidth',1, 'color', 'black')
ylabel('Speed [rpm]')
xlabel('Timem [s]')
xlim([0, Time(end)]);
ylim([0, 3000]);
legend('Trans Input','Trans Output','Wheel Speed');
%subplots for Torque,Power,Fuel Rate,Fuel Consumption
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_consumption,'linewidth',1,'color','green')
xlabel('Time [s]')
ylabel('Fuel Consumption')
legend('Engine Fuel Consumption')
grid on
%% Plotting vehicle characteristics time trace
figure(3)
subplot(3,2,1)
hold on
grid on
plot(Time, Acc_Pdl, 'linewidth', 1, 'Color', 'black');
plot(Time, Brk_Pdl, 'linewidth', 1, 'Color', 'red');
ylabel('Pedal [%]')
xlim([0, Time(end)]);
legend('Accel','Brake');
subplot(3,2,2)
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]')
xlim([0, Time(end)]);
ylim([0, 6000]);
legend('Trans Input','Trans Output');
subplot(3,2,3)
hold on
grid on
plot(Time, Gear_Cmd, 'linewidth', 1, 'Color', 'black');
xlim([0, Time(end)]);
xlabel('Time [s]');
ylabel('Gear');
subplot(3,2,4)
hold on
grid on
plot(Time, Wheel_spd, 'linewidth', 1, 'Color', 'black');
plot(Time, Veh_spd, 'linewidth', 1, 'Color', 'red');
ylabel('Speed [rpm]')
xlim([0, Time(end)]);
legend('Desired Speed','Actual Speed');
subplot(3,2,5)
hold on
grid on
plot(Time, Veh_dist, 'linewidth', 1, 'Color', 'blue');
xlim([0, Time(end)]);
xlabel('Time [s]');
ylabel('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]');
p4 = plot(Eng_spd,Eng_trq,'.','color','k');
legend([p1 p4],{'Max Curve','Operating Points'});
axis([Eng_map_spd(1)*30/pi Eng_map_spd(end)*30/pi 0 Eng_map_trq(end)]);
%%Plot motor speed, torque, motor input power using subplots:
figure(5)
subplot(3,1,1)
plot(Time,EM_speed,'linewidth',1,'color','black')
xlabel('Time [s]')
ylabel('Motor speed Rpm')
legend('Motor speed')
grid on
subplot(3,1,2)
plot(Time,EM_trq,'linewidth',1,'color','blue')
xlabel('Time [s]')
ylabel('Motor Torque Nm')
legend('Motor Torque')
grid on
subplot(3,1,3)
plot(Time,Eng_pwr,'linewidth',1,'color','red')
xlabel('Time [s]')
ylabel('Motor Input Power')
legend('Motor Input Power')
grid on
%% Plot pack voltage, current and SoC using subplots:
figure(6)
subplot(3,1,1)
plot(Time,Terminalvoltage,'linewidth',1,'color','black')
xlabel('Time [s]')
ylabel('Voltage')
legend('Voltage')
grid on
subplot(3,1,2)
plot(Time,I_pack,'linewidth',1,'color','blue')
xlabel('Time [s]')
ylabel('Current')
legend('Current')
grid on
subplot(3,1,3)
plot(Time,soc,'linewidth',1,'color','red')
xlabel('Time [s]')
ylabel('soc')
legend('soc')
grid on
%% Plotting engine operating points on engine fuel map
figure('Name','Motor Operating Points');
hold on
grid on
%%Plot the motor operating points on the motor input power map, with the motor max motoring and generating torque curves:
title('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');
xlabel('Motor Speed [rpm]');
ylabel('Motor Torque [Nm]');
title('Motor Operating Points');
p4 = plot(EM_speed,EM_trq,'.','color','k');
legend([p1 p4],{'Max Curve','Operating Points'});
axis([EM_map_spd(1)*30/pi EM_map_spd(end)*30/pi 0 EM_map_trq(end)]);
%% Data Analysis
kmpl = Veh_dist(end)/(Eng_fuel_consumption(end)/1000/rho_petrol); % Fuel economy [kmpl]