Skip to content

Commit 8e8c2b8

Browse files
committed
solar UAVs
1 parent e7b1a21 commit 8e8c2b8

5 files changed

Lines changed: 22 additions & 15 deletions

File tree

Solar_UAV_Optimization/Analyses.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
# ----------------------------------------------------------------------
99

1010
import SUAVE
11+
from SUAVE.Core import Units
12+
import numpy as np
1113

1214
# ----------------------------------------------------------------------
1315
# Setup Analyses
@@ -54,6 +56,10 @@ def base(vehicle):
5456
# ------------------------------------------------------------------
5557
aerodynamics = SUAVE.Analyses.Aerodynamics.Fidelity_Zero()
5658
aerodynamics.geometry = vehicle
59+
aerodynamics.settings.number_spanwise_vortices = 10
60+
aerodynamics.settings.number_chordwise_vortices = 2
61+
aerodynamics.process.compute.lift.inviscid_wings.training.angle_of_attack = np.array([[-5., 0.0, 5.0, 10.0, 75.]]).T * Units.deg
62+
aerodynamics.process.compute.lift.inviscid_wings.training.Mach = np.array([[0.0, 0.2, 0.3, 0.9, 1.3, 1.35, 1.5, 2.0]]).T
5763
analyses.append(aerodynamics)
5864

5965
# ------------------------------------------------------------------

Solar_UAV_Optimization/Missions.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ def mission(analyses,vehicle):
5454
# connect vehicle configuration
5555
segment.analyses.extend(analyses.base)
5656

57-
# segment attributes
57+
# segment attributes
58+
ones_row = segment.state.numerics.ones_row
5859
segment.state.numerics.number_control_points = 50
5960
segment.dynamic_pressure = 115.0 * Units.pascals
6061
segment.start_time = time.strptime("Tue, Jun 21 11:00:00 2020", "%a, %b %d %H:%M:%S %Y",)

Solar_UAV_Optimization/Optimize.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,11 @@ def setup():
4848

4949
# [ tag , initial, [lb,ub], scaling, units ]
5050
problem.inputs = np.array([
51-
[ 'wing_area' , 0.62, ( 0.1, 1.5 ), 0.5, Units.meter ],
52-
[ 'aspect_ratio' , 13.5, ( 5.0, 20.0 ), 10.0, Units.less ],
53-
[ 'dynamic_pressure', 115.0, ( 1.0, 2000.0 ), 125.0, Units.pascals ],
54-
[ 'solar_ratio' , 0.0, ( 0.0, 0.97), 1.0, Units.less ],
55-
[ 'kv' , 900.0, ( 10.0, 1500.0 ), 800.0, Units['rpm/volt']],
51+
[ 'wing_area' , 0.5, ( 0.1, 1.5 ), 0.5, Units.meter ],
52+
[ 'aspect_ratio' , 10.0, ( 5.0, 20.0 ), 10.0, Units.less ],
53+
[ 'dynamic_pressure', 125.0, ( 1.0, 2000.0 ), 125.0, Units.pascals ],
54+
[ 'solar_ratio' , 0.0, ( 0.0, 0.97), 1.0, Units.less ],
55+
[ 'kv' , 800.0, ( 10.0, 10000.0 ), 800.0, Units['rpm/volt']],
5656
])
5757

5858
# -------------------------------------------------------------------

Solar_UAV_Optimization/Vehicles.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ def base_setup():
3838
# Vehicle-level Properties
3939
# ------------------------------------------------------------------
4040
# mass properties
41-
vehicle.mass_properties.takeoff = 6.75 * Units.kg
42-
vehicle.mass_properties.operating_empty = 6.75 * Units.kg
43-
vehicle.mass_properties.max_takeoff = 6.75 * Units.kg
41+
vehicle.mass_properties.takeoff = 4.00 * Units.kg
42+
vehicle.mass_properties.operating_empty = 4.00 * Units.kg
43+
vehicle.mass_properties.max_takeoff = 4.00 * Units.kg
4444

4545
# basic parameters
4646
vehicle.reference_area = 1.0
@@ -178,17 +178,17 @@ def base_setup():
178178

179179
# Component 5 the Motor
180180
motor = SUAVE.Components.Energy.Converters.Motor_Lo_Fid()
181-
motor.speed_constant = 800. * Units['rpm/volt'] # RPM/volt is standard
181+
motor.speed_constant = 900. * Units['rpm/volt'] # RPM/volt is standard
182182
motor = size_from_kv(motor)
183183
motor.gear_ratio = 1. # Gear ratio, no gearbox
184184
motor.gearbox_efficiency = 1. # Gear box efficiency, no gearbox
185-
motor.motor_efficiency = 0.825;
185+
motor.motor_efficiency = 0.8;
186186
net.motor = motor
187187

188188
# Component 6 the Payload
189189
payload = SUAVE.Components.Energy.Peripherals.Payload()
190190
payload.power_draw = 0. #Watts
191-
payload.mass_properties.mass = 0.0 * Units.kg
191+
payload.mass_properties.mass = 1.0 * Units.kg
192192
net.payload = payload
193193

194194
# Component 7 the Avionics
@@ -198,8 +198,8 @@ def base_setup():
198198

199199
# Component 8 the Battery
200200
bat = SUAVE.Components.Energy.Storages.Batteries.Constant_Mass.Lithium_Ion()
201-
bat.mass_properties.mass = 5.0 * Units.kg
202-
bat.specific_energy = 250. *Units.Wh/Units.kg
201+
bat.mass_properties.mass = 3.0 * Units.kg
202+
bat.specific_energy = 200. *Units.Wh/Units.kg
203203
bat.resistance = 0.003
204204
initialize_from_mass(bat,bat.mass_properties.mass)
205205
net.battery = bat

tut_solar_uav.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from SUAVE.Plots.Mission_Plots import *
1717
from SUAVE.Components.Energy.Networks.Solar import Solar
1818
from SUAVE.Methods.Propulsion import propeller_design
19-
from SUAVE.Methods.Power.Battery.Sizing import initialize_from_energy_and_power, initialize_from_mass
19+
from SUAVE.Methods.Power.Battery.Sizing import initialize_from_mass
2020

2121
# ----------------------------------------------------------------------
2222
# Main

0 commit comments

Comments
 (0)