Challenge

Project 2

AIM:

To Develop a model for forwarding Energy based fuel consumption model of a P1 type Hybrid Vehicle.

Objectives:

  1. Tabulate the fuel economy numbers (kmpl) for UDDS and HWFET cycle. Compare these numbers with the baseline numbers for conventional vehicle.
  2. Plot the time trace for engine, transmission input, transmission output and wheel speed on one plot.
  3. Plot engine torque, engine power, fuel rate and fuel consumption using subplots.
  4. Plot accelerator and brake pedal, gear command, vehicle desired and actual speed, vehicle distance using subplots.
  5. Plot the engine operating points on the engine fuel map.
  6. Plot motor speed, torque, motor input power using subplots.
  7. Plot pack voltage, current and SoC using subplots.
  8. Plot the motor operating points on the motor input power map, with the motor max motoring and generating torque curves.
  9. Generate the plots for UDDS and HWGET drive cycles.

Theory:-

P1 Mild Hybrid Electric Vehicle:-

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.

Two examples of P1 MHEV architectures are:

  1. Honda Insight Hybrid 2009 (with Integrated Motor Assist technology)
  2. Mercedes Benz S400 Bluehybrid 2010

For example, the main characteristics of the P1 MHEV.

1. ELectric Machine Performance:-

Maximum torque up to 34 Nm.

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 thje size of the elctric 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 charcteristics:-

Toruqe Boosting capacity: High

Electrical 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 simulatios are more realistic due to phhysical casualty hence appropriate for control development. There is feedback loop to meet the desired vehicle state. It is mainly used to simulate a vehicle on a driving cycle to analyse the dynamic behaviour of the system helps significantly in control development.

Vehicle Model:

Process:-

Load the Project2 folder as the Current Folder in Matlab.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 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 = 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);
Simulink model :
Driver:
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.
Controller:
The controller block, which stands in for the electronic control systems, is the brains of the car. It produces the required engine torque, desired transmission gear, desired motor torque, and desired brake torque dependent on the driver's inputs. These inputs are supplied to the "Powertrain" block, which symbolises the car's drivetrain. This calls for the creation of a stateflow block, as seen in the following diagram.
State flow:

The four situations we created in this were stop, start, drive, and regenration braking. The halt condition is represented by the first block. wherein the engine is turned off. There is no throttle applied to the engine or the motor. The second block represents the commencement condition after that. When the electric motor is in mode 1, the throttle is solely used to give the car the necessary torque and power. Engine throttle condition is zero and the engine is not running.

The links connect states 1 and 2, so when acceleration is less than one or SOC is less than the minimum SOC, it switches between states 1 and 2.

State 3 represents mode 2, meaning that the engine is running and that the driver has applied a positive value to the engine throttle, but that the electric motor throttle is at zero. When the engine speed is greater than or equal to the engine idle speed, it transitions from state 2 to state 3.

Model 3's regenrative braking is represented by state 4, The engine is running in this situation, but the driver is not controlling the engine throttle, while the electric motor receives negative power from braking.

Acceleration, barke, engine speed, vehicle speed, SOC, and clutch lockup are the inputs for the chart.

Mode, engine condition, engine throttle condition, and electric motor throttle condition are the outputs we get from the chart.

Engine Control:

engine control 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.

Transmission control:

The transmission control block controls the gear shifting using the study flow Variable chart.

Shiftlogic:

Threshold Value:

Electric motor control:

Brake control:

It calculates brack torque anth then all three control signals output is given to powertrain.

Powertrain:

All the parts that transform an engine's power into motion are included in the powertrain model. This includes the subsystems for the vehicle's body dynamics as well as the engine, battery pack, electric motor, crank hub, transmission, differential, wheels, and wheels. The appropriate blocks in the powertrain model get the control signals from the control model through a bus.

Engine:

To model the engine's fuel consumption in this model, we used 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.

Electric motor:

Crankhub:

The transmission block receives the crank torque from the crank hub after adding the EM torque and engine torque.

Transmission:

We add engine torque and a gear selection from a controller for gear ratio transmission in these models. The gearbox input speed is determined by multiplying the ratio by the transmission input torque, positive torque, and negative torque, respectively. In this instance, the torque converter is a transmission component that connects the engine to the transmission. It essentially has decoupled engine dynamics.

Torque converter:

Differential:

In this block, the differential ratio and differential efficiency are multiplied with the transmission output torque to produce the axle torque, which is then sent to the wheel.

Wheel:

To calculate the tractive force, the axle torque from the control model is subtracted from the brake torque, which is then divided by the rolling radius.
The vehicle velocity is used to calculate the Wheel speed, which is then saved in the workspace.

Vehicle dynamics:

The "Vehicle Dynamics" block displays the vehicle's longitudinal dynamics as well as the road load.

Formula:-

(ηt * λt * Te)/Rω = M(dVveh/dt) + (1/2)* ρa*Af *Cd(Vveh + Vωd)^2 + Cr*M*g*cosθ + M*g*sinθ

(ηt * λt * Te)/Rω = Tractive force

(1/2)* ρa*Af *Cd(Vveh + Vωd)^2 + Cr*M*g*cosθ + M*g*sinθ = Road load

Where,

ρa = Air density

Af = Frontal area

Cd = Drag coefficient

Cr = Rolling coefficient

M = Mass of vehicle

g = accelaration due to gravity

θ = Slope

Battery:

The current from the battery is taken into account in the battery based on the input power requirement from the motor. And using a method known as coulomb counting, the SOC level of the battery is determined depending on the current drawn. The SOC level of the battery determines the battery's voltage, thus that voltage is used to calculate the open circuit voltage.

Terminal voltage:

Pack current:

Post-Processing:

%% 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.TransOutSpd*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.WheelSpeed; % Wheel speed [kmph]
Eng_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
%% 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 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
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 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('Timem [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','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 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
%% 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)]);
%% State of Charge, Pack Current, And Terminal Voltage with respect 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('Electrical Motor Speed')
grid on
%% Plotting EM Operating Points on motor input power Map
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)]);
Q.1.
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.

Fuel Economy Numbers for project 2

S.No Drive cycle Fuel Economy Number (KMpl)
1 UDDS 15.0773
2 HWFET 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.

Fuel economy numbers for project 1

S.No Drive cycle Fuel Economy Number (KMpl)
1 UDDS 14.209
2 HWFET 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.

Q.2.

Plot the time trace for engine, transmission input, transmission output and wheel speed on one plot.

UDDS drive cycle:

HWFET drive cycle:

Compared to HWFET drive cycle, the graph is more unstable during UDDS drive cycle. Because HWFET has fewer starts and stops than UDDS, this is the case. Compared to HWFET, UDDS requires more braking.

Q.3.

Plot engine torque, engine power, fuel rate and fuel consumption using subplots.

UDDS drive cycle:

HWFET drive cycle:

Vehicles used more power throughout the UDDS drive cycle since they had to make more starts and stops than HWFETs in metropolitan areas. UDDS drive cycles have higher engines than HWFET drive cycles because when a vehicle is started from a standstill, more torque is needed to overcome static friction.

In comparison to UDDS drive cycle, the fuel rate is higher in the HWFET drive cycle because it will be moving continuously and require more fuel. Because the UDDS cycle involves numerous starts and stops while the engine is in the idle position, the HWFET has a high fuel efficiency.

Q.4.

Plot accelerator and brake pedal, gear command, vehicle desired and actual speed, vehicle distance using subplots.

UDDS drive cycle:

HWFET drive cycle:

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.

Q.5.

Plot the engine operating points on the engine fuel map.

UDDS drive cycle:

HWFET drive cycle:

On the fuel map, the engine operating point is shown, and it is below the maximum torque curve.

Q.6.

Plot motor speed, torque, motor input power using subplots.

UDDS drive cycle:

HWFET drive cycle:

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.

Q.7.

Plot pack voltage, current and SoC using subplots.

UDDS drive cycle:

HWFET drive cycle:

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.

Q.8.

Plot the motor operating points on the motor input power map, with the motor max motoring and generating torque curves.

UDDS drive cycle:

HWFET drive cycle:

Q.9.

Fuel economy Vs Fuel consumption

UDDS drive cycle:

HWFET drive cycle:

Conclusion:-

The various performance of characteristics and operating points of UDDS drive cycle and HWFET drive cycle are analysed and the graphs are plotted

  • Time trace for engine, Transmission input, Transmission output and wheelspeed with respect to time.
  • Engine torque, Engine power, Fuel rate and Fuel consumption with respect to time.
  • Accelerator and brake pedal, gear command and vehicle desired, actual speed, vehicle distance with respect to time.
  • Engine operating points on the engine fuel map with respect to time.
  • Motor speed, Torque, Motor input power with respect to time.
  • Pack voltage, Current and State of charging with respect to time.
  • The motor operating points on the motor input power map with respect to time.

and also it comparing with HWFET drive cycle and their numbers also compared.

Note : Modified proect1 simulink file is attached with this answer body.

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.