VTOL UAV Battery Sizing for Mission Over an Urban Environment
This example shows you how to select a battery size that will give the electric vertical take-off and landing UAV (eVTOL UAV) the best range for mission in urban environment.
Model Overview
Open the example live script and the directory that contains the VTOLRefApp.prj
project file project by running openExample('uav/VTOLUAVBatterySizingForMissionOverAnUrbanEnvironmentExample')
in the Command Window.
After opening the example live script and the directory, you must open the VTOLRefApp.prj
project file to access the Simulink model, supporting files, and project shorcuts that this example uses.
% Open the Simulink project prj = openProject("VTOLApp");
Open the EVTOLTiltrotor.slx
Simulink® model.
open_system("EVTOLTiltrotor")
The eVTOL UAV model contains the Electric Propulsion
variant subsystem, which models the battery and motor-rotor assembly of an eVTOL UAV. The Electric Propulsion
variant subsystem is enabled by default when you open the EVTOLTiltrotor.slx
Simulink model. You can choose to enable or disable the electric propulsion subsystem by setting the value of ElectricPropulsion
in the Command Window:
ElectricPropulsion=1
— Enables the electric propulsion subsytstemElectricPropulsion=0
— Disables the electric propulsion subsytstem
Motor Rotor Assembly Subsystem
Open the Motor Rotor Asesembly
subsystem.
open_system("MotorPropellerSystem")
The Electric Propulsion Model
area of the Motor Rotor Assembly
subsystem contains these main blocks and subsystems:
Motor & Drive
block — Models an electric motor with a closed-loop torque control.Speed Controller
subsystem — Calculates the torque demand for the motor based on the input reference angular velocity.Inertia
block — Models the rotational inertia of the motor-rotor pair.Ideal Rotational Motion Sensor
block — Measures the motor angular velocity to be used as input to theSpeed Controller
andRotor Assembly
subsystems.Current Sensor
andVoltage Sensor
subsystems — Measure the current and voltage drawn by the motor.Ideal Torque Source
block — Models the torque load of the motor as an ideal torque source.
Battery Plant Subsystem
Open the Battery Plant
subsystem.
open_system("BatteryPlantModel_Simple")
This subsystem uses these blocks:
Battery
— Simplified battery model with constant voltage. In this example, the battery is configured to output a voltage of 22.5 Volt with internal resistance of 0.002 Ohm.Current Sensor
— Ideal current sensor that measures current drawn from the battery.
Battery Sizing Overview
The battery size affects the range of an eVTOL UAV. Larger batteries contain more energy, which extends the range of the eVTOL UAV. However, larger batteries are also heavier, which increases energy consumption during flight. The goal of the battery sizing process is to determine the optimal battery size that offers sufficient energy without being too heavy to carry efficiently.
This example shows the impact of varying battery size on the range of an eVTOL UAV during these flight modes:
Hover mode
Fixed-wing mode
Urban mission
For the simulation of each flight mode, the battery capacity is adjusted in 200 Wh increments, ranging from 300 Wh to 3000 Wh. The battery has an energy density of 180 Wh/kg. The mass of the eVTOL UAV, excluding the battery, is 6023 kg.
battery.GravDensity = 180; % Energy density of battery (Wh/kg) baseMass = uavParam.geom.mass; % Aircraft base mass (kg) , 6.023 Kg capacityRange = 300:200:3000; % Battery capacity range (Wh) percWeightGain = 1; % scaling for weight change
After simulating the UAV in different modes and battery sizes, this example shows you how to choose a battery size that maximizes the range of the UAV in an urban mission, which consists of take-off, hover, forward transition, fixed-wing, backward transition, and land modes.
Hover Mode
This section shows how to calculate the energy consumption and the range of the UAV during a waypoint guidance mission in hover mode using different battery sizes.
During hover mode, the propulsion system draws more energy compared to fixed-wing mode because the propulsion system needs to support the entire weight of the UAV and battery. A larger battery contains more energy that the propulsion system can use. However, increasing the battery size also makes the eVTOL UAV heavier, requiring the motor to operate at a higher RPM, which increases energy consumption.
Set up the eVTOL UAV plant and enable the hover configuration.
setupEVTOLPlant
Initialized EVTOL model. Enabled hover configuration.
Set up a hover guidance mission that consists of takeoff, waypoint navigation, and landing.
setupEVTOLHoverGuidanceMission
Enabled EVTOL hover guidance mission.
Create structure arrays to store the energy consumption and the range of the eVTOL UAV.
hover.mileage = []; hover.range = [];
To run the simulation in hover mode with the specified battery capacity range, run the utilities/Mission/exampleHelperHoverModeRangeComputation.m
script.The simulation can take some time. To load a pre-generated simulation result, load the hoverModeRangeResults
MAT file.
load hoverModeRangeResults.mat;
Plot the energy consumption per meter of flight distance against the battery capacity. The plot shows that increasing battery sizes raises the energy consumption of the eVTOL UAV.
plot(capacityRange,hover.mileage) title("Energy Consumption vs Battery Capacity in Hover Mode") xlabel("Battery Capacity (Whr)") ylabel("Energy Consumption/Meter (Whr/m)") grid on
Plot the range of the eVTOL UAV against the battery capacity. The plot shows that increasing battery size initially increases the range of the UAV until it reaches a critical point, at which point the range starts to decrease due to excessive battery weight. This decrease occurs at a battery capacity of around 2000 Whr.
plot(capacityRange,hover.range) xlabel("Battery (Whr)") ylabel("Range (m)") title("Range vs Battery Capacity in Hover Mode") grid on
Fixed-Wing Mode
This section shows how to calculate the energy consumption, range, and angle of attack of the eVTOL UAV during a waypoint guidance mission in fixed-wing mode using different battery sizes.
During fixed-wing mode, the propulsion system operates more efficiently compared to hover mode because the wings counteract the weight of the eVTOL UAV, and the propulsion system only needs to provide thrust to counteract drag. A larger battery contains more energy that the propulsion system can use. However, increasing the battery size also makes the eVTOL UAV heavier, requiring it to cruise with a higher angle of attack to maintain lift. This higher angle of attack causes an increase in drag, which in turn requires the motor to operate at a higher RPM, subsequently increasing energy consumption.
Set up the eVTOL UAV in fixed-wing configuration.
setupFixedWingConfiguration
Enabled fixed-wing configuration.
Set up a fixed-wing guidance mission that consists of a straight-line path at an altitude of 20 meters and an orbit.
setupFixedWingGuidanceMission
Enabled fixed-wing guidance mission.
Create structure arrays to store the angle of attack, energy consumption, and the range of the eVTOL UAV.
angleOfAttack = []; fixedwing.mileage = []; fixedwing.range = [];
To run the simulation in hover mode with the specified battery capacity range, run the utilities/Mission/exampleHelperFixedWingRangeComputation.m
script. The simulation can take some time. To load a pre-generated simulation result, load the fixedWingRangeResults
file.
load fixedwingRangeResults.mat;
Use the simAttackAnglePlotter
helper function to plot the angle of attack of the eVTOL UAV during the fixed-wing guidance mission for various battery sizes. The plot shows that increasing battery sizes raises the angle of attack of the eVTOL UAV.
simAttackAnglePlotter(angleOfAttack,capacityRange); title("Angle of Attack in Fixed-Wing Mode") xlabel("Time (s)") ylabel("Angle of Attack (deg)") legend grid on
Plot the energy consumption per meter of flight distance against the battery capacity. The plot shows that increasing battery sizes raises the energy consumption of the eVTOL UAV.
plot(capacityRange,fixedwing.mileage) title("Energy Consumption vs Battery Capacity in Fixed-Wing Mode") xlabel("Battery Capacity (Whr)") ylabel("Energy Consumption/Meter (Whr/m)") grid on
Plot the range of the eVTOL UAV against the battery capacity. The plot shows that increasing battery size initially increases the range of the UAV until the range reaches a critical point, at which the range starts to decrease due to excessive battery weight. This decrease occurs at a battery capacity of around 2200 Whr.
plot(capacityRange,fixedwing.range) xlabel("Battery (Whr)") ylabel("Range (m)") title("Range vs Battery Capacity in Fixed-Wing Mode") grid on
Urban Mission
This section shows how to calculate the energy consumption and range of the eVTOL UAV during an urban mission using different battery sizes.
Narrow down the battery size range based on the results of the hover and fixed-wing simulations, which show that the critical point at which the range starts to decrease due to excessive battery weight occurs around a battery capacity of 1500 Whr to 2700 Whr.
capacityRange = 1500:100:2700;
Set up the urban mission. The mission includes take-off, hover, forward transition, fixed-wing, backward transition and land modes.
setupEVTOLUrbanMission
Initialized EVTOL model. Enabled hover configuration. Enabled urban mission.
Create structure arrays to store the energy consumption and the range of the eVTOL UAV.
mission.mileage = []; mission.range = [];
To run the urban mission simulation with the specified battery capacity range, run the utilities/Mission/exampleHelperUrbanMissionRangeComputation.m
script. The simulation can take some time. To load a pre-generated simulation result, load the urbanMissionRangeResults
MAT file.
load urbanMissionRangeResults.mat;
Plot the energy consumption per meter of flight distance against the battery capacity. The plot shows that increasing battery sizes raises the energy consumption of the eVTOL UAV.
plot(capacityRange,mission.mileage); title("Energy Consumption vs Battery Capacity in Urban MIssion") xlabel("Battery Capacity (Whr)") ylabel("Energy Consumption/Meter (Whr/m)") grid on
Plot the range of the eVTOL UAV against battery capacity. The plot indicates that increasing battery sizes initially extends the range of the eVTOL UAV until a critical point is reached, where the range begins to decrease due to excessive battery weight. This critical point represents the battery capacity that maximizes the range of the eVTOL UAV during an urban mission.
plot(capacityRange, mission.range) xlabel("Battery (Whr)") ylabel("Range (m)") title("Range vs Battery Capacity in Urban Mission") grid on
Determine the maximum range of the eVTOL UAV and identify the optimal battery capacity that provides this maximum range.
% Maximum range [maxRange,index]= max(mission.range); % Battery capacity that provides maximum range optimalBattery = capacityRange(index);
Plot the maximum range and the optimal battery capacity on the graph of range against battery capacity. As indicated on the plot, a battery size of 2600 Whr provides the eVTOL UAV with a maximum range of 28853 meters.
plot(capacityRange,mission.range) % Add vertical and horizontal lines at the optimal battery size and maximum range. line([optimalBattery optimalBattery], ylim); line(xlim, [maxRange maxRange]); % Add a text bubble near the maximum point text(optimalBattery-200, maxRange-300, sprintf("%.f Whr, %.f m",optimalBattery,maxRange), ... BackgroundColor="w",EdgeColor="k"); % Add grid, label, and title. grid on xlabel("Battery (Whr)") ylabel("Range (m)") title("Range vs Battery Capacity in Urban Mission")
Before resuming to other examples in this example series, you must close the VTOLRefApp.prj
Simulink project by running this command in the Command Window:
close(prj)