[WORK IN PROGRESS]
Julia package for simulation and validation of the TU Delft V3 ram-air kite.
V3Kite.jl provides calibration functions, model setup utilities, CSV replay capabilities, and simulation functions built on top of SymbolicAWEModels.jl for the TU Delft V3 kite.
Inside the REPL:
using Pkg
Pkg.add(url="https://github.com/OpenSourceAWE/V3Kite.jl")
using V3Kite
using GLMakie # Optional, for visualization
# Create a simulation configuration
config = V3SimConfig(
sim_time = 60.0, # seconds
fps = 60, # frames per second
v_wind = 10.0, # wind speed [m/s]
up = 40.0, # depower percentage [0-100]
us = 0.0, # steering percentage [-100, 100]
wing_type = REFINE, # or QUATERNION
)
# Run simulation
sam, syslog, tape_data = run_v3_simulation(config)
# Visualize (requires GLMakie)
fig = plot(sam.sys_struct, syslog)
display(fig)
V3Kite uses a base + delta calibration pattern:
| Parameter | Base Value | Description |
|---|---|---|
V3_STEERING_L0_BASE |
1.6 m | Neutral steering tape length |
V3_DEPOWER_L0_BASE |
0.2 m | Neutral depower tape length |
V3_STEERING_GAIN |
1.4 m | Max differential at 100% steering |
V3_DEPOWER_GAIN |
5.0 m | Depower range for 0-100% |
Tape reductions (shortening of steering/depower tapes) are applied
through V3GeomAdjustConfig, not through global constants. Use
set_steering!/set_depower! with a config to apply reductions.
# Using base values (no reduction)
L_left, L_right = steering_percentage_to_lengths(50.0)
L_depower = depower_percentage_to_length(40.0)
# With custom l0_base (e.g. after reduction)
L_left, L_right = steering_percentage_to_lengths(50.0; l0_base=1.4)
# Inverse conversions
pct = steering_length_to_percentage(L_left, L_right)
pct = depower_length_to_percentage(L_depower)
V3SimConfig(
# Geometry files (relative to data directory)
struc_yaml_path = "struc_geometry_depower0.0_tip0.4_te0.95.yaml",
aero_yaml_path = "aero_geometry_depower0.0_tip0.4_te0.95.yaml",
vsm_settings_path = "vsm_settings_reduced_for_coupling.yaml",
# Simulation parameters
sim_time = 60.0, # Duration [s]
fps = 60, # Logging frequency
# Wind parameters
v_wind = 10.0, # Wind speed [m/s]
upwind_dir = -90.0, # Wind direction [deg]
# Control parameters
up = 40.0, # Depower [0-100%]
us = 0.0, # Steering [-100, 100%]
tether_length = 250.0, # [m]
# Model options
wing_type = REFINE, # REFINE or QUATERNION
n_panels = 36, # VSM panel count
brake = true, # Winch brake engaged
)
V3Kite includes bundled V3 kite geometry and configuration files. Access with:
data_path = v3_data_path()
Run the included example:
julia --project=examples examples/v3kite.jl
When GLMakie is loaded, additional visualization functions become available:
using V3Kite
using GLMakie
# Plot wing points in body frame
fig = plot_body_frame_local(sys_struct; dir=:front)
julia --project=. -e 'using Pkg; Pkg.test()'
- SymbolicAWEModels.jl - Symbolic kite modeling
- VortexStepMethod.jl - Aerodynamic calculations
- KiteUtils.jl - Shared utilities
MPL-2.0