Exported Types

Config files

KiteUtils.SettingsType
Settings

Flat struct, defining the settings of the Simulator and the Viewer.

  • sim_settings::String: name of the yaml file with the settings Default:

  • log_file::String: filename without extension [replay only] Default:

  • log_level::Float64: how many messages to print on the console, 0=none Default: 2

  • time_lapse::Float64: relative replay speed Default: 0

  • sim_time::Float64: simulation time [sim only] Default: 0

  • segments::Int64: number of tether segments Default: 0

  • sample_freq::Int64: sample frequency in Hz Default: 0

  • zoom::Float64: zoom factor for the system view Default: 0

  • kite_scale::Float64: relative zoom factor for the 4 point kite Default: 1.0

  • fixed_font::String: name or filepath+filename of alternative fixed pitch font Default:

  • l_tether::Float64: initial tether length [m] Default: 0

  • elevation::Float64: initial elevation angle [deg] Default: 0

  • v_reel_out::Float64: initial reel out speed [m/s] Default: 0

  • depower::Float64: initial depower settings [%] Default: 0

  • abs_tol::Float64: absolute tolerance of the DAE solver [m, m/s] Default: 0.0

  • rel_tol::Float64: relative tolerance of the DAE solver [-] Default: 0.0

  • solver::String: DAE solver, can be IDA or DFBDF Default: DFBDF

  • linear_solver::String: can be GMRES or Dense Default: GMRES

  • max_order::Int64: maximal order, usually between 3 and 5 Default: 4

  • max_iter::Int64: max number of iterations of the steady-state-solver Default: 1

  • c0::Float64: steering offset -0.0032 [-] Default: 0

  • c_s::Float64: steering coefficient one point model Default: 0

  • c2_cor::Float64: correction factor one point model Default: 0

  • k_ds::Float64: influence of the depower angle on the steering sensitivity Default: 0

  • delta_st::Float64: steering increment (when pressing RIGHT) Default: 0

  • max_steering::Float64: max. steering angle of the side planes for four point model [degrees] Default: 0

  • cs_4p::Float64: correction factor for the steering sensitivity four point model Default: 1.0

  • alpha_d_max::Float64: max depower angle [deg] Default: 0

  • depower_offset::Float64: at rel_depower=0.236 the kite is fully powered [%] Default: 23.6

  • model::String: file name of the 3D model of the kite for the viewer Default: data/kite.obj

  • foil_file::String: filename with or without extension for the foil shape [in dat format] Default:

  • polar_file::String: filename with or without extension for the polars [in csv format] Default: data/polars.csv

  • physical_model::String: name of the kite model to use (KPS3 or KPS4) Default:

  • version::Int64: version of the model to use Default: 1

  • mass::Float64: kite mass incl. sensor unit [kg] Default: 0

  • area::Float64: projected kite area [m^2] Default: 0

  • rel_side_area::Float64: relative side area [%] Default: 0

  • height_k::Float64: height of the kite [m] Default: 0

  • alpha_cl::Vector{Float64}: Default: []

  • cl_list::Vector{Float64}: Default: []

  • alpha_cd::Vector{Float64}: Default: []

  • cd_list::Vector{Float64}: Default: []

  • cms::Float64: steering dependant moment coefficient Default: 0

  • width::Float64: width of the kite [m] Default: 0

  • alpha_zero::Float64: should be 5 [degrees] Default: 0

  • alpha_ztip::Float64: Default: 0

  • m_k::Float64: relative nose distance; increasing m_k increases C2 of the turn-rate law Default: 0

  • rel_nose_mass::Float64: Default: 0

  • rel_top_mass::Float64: mass of the top particle relative to the sum of top and side particles Default: 0

  • smc::Float64: steering moment coefficient Default: 0

  • cmq::Float64: pitch rate dependant moment coefficient Default: 0

  • cord_length::Float64: average aerodynamic cord length of the kite [m] Default: 0

  • radius::Float64: the radius of the circle shape on which the kite lines, viewed from the front [m] Default: 10.0

  • bridle_center_distance::Float64: the distance from point the center bridle connection point of the middle line to the kite [m] Default: 2.0

  • middle_length::Float64: the cord length of the kite in the middle [m] Default: 2.0

  • tip_length::Float64: the cord length of the kite at the tips [m] Default: 1.0

  • min_steering_line_distance::Float64: the distance between the left and right steering bridle line connections on the kite that are closest to eachother [m] Default: 4.0

  • aero_surfaces::Int64: the number of aerodynamic surfaces to use per mass point [-] Default: 10

  • flap_height::Float64: height at the start of the flap [m] Default: 0.05

  • width_3l::Float64: the width of the 3 line kite laid flat Default: 20

  • d_line::Float64: bridle line diameter [mm] Default: 0

  • h_bridle::Float64: height of the bridle [m] Default: 0

  • l_bridle::Float64: sum of the lengths of the bridle lines [m] Default: 0

  • rel_compr_stiffness::Float64: relative compression stiffness of the kite springs Default: 0

  • rel_damping::Float64: relative damping of the kite spring (relative to main tether) Default: 0

  • kcu_model::String: model of the kite control unit, KCU1 or KCU2 Default: KCU1

  • kcu_mass::Float64: mass of the kite control unit [kg] Default: 0

  • kcu_diameter::Float64: diameter of the kite control unit for drag calculation [m] Default: 0

  • cd_kcu::Float64: drag coefficient of the kite control unit Default: 0

  • depower_zero::Float64: depower setting for alpha_zero = 0 [%] Default: 0

  • degrees_per_percent_power::Float64: linear approximation [degrees/%] Default: 0

  • power2steer_dist::Float64: power to steering line distance [m] Default: 0

  • depower_drum_diameter::Float64: Default: 0

  • tape_thickness::Float64: Default: 0

  • v_depower::Float64: max velocity of depowering in units per second (full range: 1 unit) Default: 0

  • v_steering::Float64: max velocity of steering in units per second (full range: 2 units) Default: 0

  • depower_gain::Float64: 3.0 means: more than 33% error -> full speed Default: 3.0

  • steering_gain::Float64: Default: 3.0

  • d_tether::Float64: tether diameter [mm] Default: 0

  • cd_tether::Float64: drag coefficient of the tether Default: 0

  • damping::Float64: unit damping coefficient [Ns] Default: 0

  • c_spring::Float64: unit spring constant coefficient [N] Default: 0

  • rho_tether::Float64: density of Dyneema [kg/m³] Default: 0

  • e_tether::Float64: axial tensile modulus of the tether [Pa] Default: 0

  • winch_model::String: the winch model, either AsyncMachine or TorqueControlledMachine Default:

  • max_force::Float64: maximal (nominal) tether force; short overload allowed [N] Default: 4000

  • v_ro_max::Float64: maximal reel-out speed [m/s] Default: 8

  • v_ro_min::Float64: minimal reel-out speed (=max reel-in speed) [m/s] Default: -8

  • drum_radius::Float64: radius of the drum [m] Default: 0.1615

  • gear_ratio::Float64: ratio of the gear box Default: 6.2

  • inertia_total::Float64: inertia of the motor, gearbox and drum, as seen from the motor [kgm²] Default: 0

  • f_coulomb::Float64: coulomb friction [N] Default: 122.0

  • c_vf::Float64: coefficient for the viscous friction [Ns/m] Default: 30.6

  • v_wind::Float64: wind speed at reference height [m/s] Default: 0

  • v_wind_ref::Vector{Float64}: wind speed vector at reference height [m/s] Default: []

  • temp_ref::Float64: temperature at reference height [°C] Default: 0

  • height_gnd::Float64: height of groundstation above see level [m] Default: 0

  • h_ref::Float64: reference height for the wind speed [m] Default: 0

  • rho_0::Float64: air density at zero height and 15 °C [kg/m³] Default: 0

  • alpha::Float64: exponent of the wind profile law Default: 0

  • z0::Float64: surface roughness [m] Default: 0

  • profile_law::Int64: 1=EXP, 2=LOG, 3=EXPLOG, 4=FASTEXP, 5=FASTLOG, 6=FAST_EXPLOG Default: 0

  • use_turbulence::Float64: turbulence intensity relative to Cabau, NL Default: 0

  • v_wind_gnds::Vector{Float64}: wind speeds at ref height for calculating the turbulent wind field [m/s] Default: []

  • avg_height::Float64: average height during reel out [m] Default: 0

  • rel_turbs::Vector{Float64}: relative turbulence at the vwindgnds Default: []

  • i_ref::Float64: the expected value of the turbulence intensity at 15 m/s Default: 0

  • v_ref::Float64: five times the average wind speed in m/s at hub height over the full year [m/s] Default: 0

  • height_step::Float64: grid resolution in z direction [m] Default: 0

  • grid_step::Float64: grid resolution in x and y direction [m] Default: 0

source

Also look at the default file that is parsed to fill the Settings struct with data: settings.yaml .

Log files and internal state representation

KiteUtils.MyFloatType
const MyFloat = Float32

Type used for position components and scalar SysState members.

source
KiteUtils.SysStateType
SysState{P}

Basic system state. One of these is saved per time step. P is the number of tether particles.

  • time::Float64: time since start of simulation [s]

  • t_sim::Float64: time needed for one simulation timestep [s]

  • sys_state::Int16: state of system state control

  • cycle::Int16: cycle number

  • fig_8::Int16: number of the figure of eight of the current cycle

  • e_mech::Float64: mechanical energy [Wh]

  • orient::StaticArraysCore.MVector{4, Float32}: orientation of the kite (quaternion, order w,x,y,z)

  • elevation::Float32: elevation angle [rad]

  • azimuth::Float32: azimuth angle in wind reference frame [rad]

  • l_tether::Float32: tether length [m]

  • v_reelout::Float32: reelout speed [m/s]

  • force::Float32: tether force [N]

  • depower::Float32: depower settings [0..1]

  • steering::Float32: steering settings [-1..1]

  • heading::Float32: heading angle [rad]

  • course::Float32: course angle [rad]

  • v_app::Float32: norm of apparent wind speed [m/s]

  • v_wind_gnd::StaticArraysCore.MVector{3, Float32}: wind vector at reference height [m/s]

  • v_wind_200m::StaticArraysCore.MVector{3, Float32}: wind vector at 200m height [m/s]

  • v_wind_kite::StaticArraysCore.MVector{3, Float32}: wind vector at the height of the kite [m/s]

  • AoA::Float32: angle of attack [rad]

  • CL2::Float32: lift coefficient

  • CD2::Float32: drag coefficient

  • vel_kite::StaticArraysCore.MVector{3, Float32}: velocity vector of the kite [m/s]

  • acc::Float32: acceleration [m/s²]

  • X::StaticArraysCore.MVector{P, Float32} where P: vector of particle positions in x [m]

  • Y::StaticArraysCore.MVector{P, Float32} where P: vector of particle positions in y [m]

  • Z::StaticArraysCore.MVector{P, Float32} where P: vector of particle positions in z [m]

  • var_01::Float32: generic variable 01

  • var_02::Float32: generic variable 02

  • var_03::Float32: generic variable 03

  • var_04::Float32: generic variable 04

  • var_05::Float32: generic variable 05

  • var_06::Float32: generic variable 06

  • var_07::Float32: generic variable 07

  • var_08::Float32: generic variable 08

  • var_09::Float32: generic variable 09

  • var_10::Float32: generic variable 10

  • var_11::Float32: generic variable 11

  • var_12::Float32: generic variable 12

  • var_13::Float32: generic variable 13

  • var_14::Float32: generic variable 14

  • var_15::Float32: generic variable 15

  • var_16::Float32: generic variable 16

source
KiteUtils.SysLogType
SysLog{P}

Flight log, containing the basic data as struct of vectors which can be accessed as if it would be an array structs. In addition an extended view on the data that includes derived/ calculated values for plotting. Finally it contains meta data like the name of the log file.

  • name::String: name of the flight log

  • colmeta::Dict

  • syslog::StructArrays.StructArray{SysState{P}} where P: struct of vectors that can also be accessed like a vector of structs

source
KiteUtils.LoggerType
mutable struct Logger{P, Q}

Struct to store a simulation log. P is number of points of the tether, segments+1 and Q is the number of time steps that will be pre-allocated.

Constructor:

  • Logger(P, steps)

Fields:

  • points::Int64: Default: P

  • index::Int64: Default: 1

  • time_vec::Vector{Float64}: Default: zeros(Float64, Q)

  • t_sim_vec::Vector{Float64}: Default: zeros(Float64, Q)

  • sys_state_vec::Vector{Int16}: Default: zeros(Int16, Q)

  • cycle_vec::Vector{Int16}: Default: zeros(Int16, Q)

  • fig_8_vec::Vector{Int16}: Default: zeros(Int16, Q)

  • e_mech_vec::Vector{Float64}: Default: zeros(Float64, Q)

  • orient_vec::Vector{StaticArraysCore.MVector{4, Float32}}: Default: zeros(MVector{4, Float32}, Q)

  • elevation_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • azimuth_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • l_tether_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • v_reelout_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • force_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • depower_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • steering_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • heading_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • course_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • v_app_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • v_wind_gnd_vec::Vector{StaticArraysCore.MVector{3, Float32}}: Default: zeros(MVector{3, MyFloat}, Q)

  • v_wind_200m_vec::Vector{StaticArraysCore.MVector{3, Float32}}: Default: zeros(MVector{3, MyFloat}, Q)

  • v_wind_kite_vec::Vector{StaticArraysCore.MVector{3, Float32}}: Default: zeros(MVector{3, MyFloat}, Q)

  • AoA_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • CL2_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • CD2_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • vel_kite_vec::Vector{StaticArraysCore.MVector{3, Float32}}: Default: zeros(MVector{3, MyFloat}, Q)

  • acc_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • X_vec::Array{StaticArraysCore.MVector{P, Float32}, 1} where P: Default: zeros(MVector{P, MyFloat}, Q)

  • Y_vec::Array{StaticArraysCore.MVector{P, Float32}, 1} where P: Default: zeros(MVector{P, MyFloat}, Q)

  • Z_vec::Array{StaticArraysCore.MVector{P, Float32}, 1} where P: Default: zeros(MVector{P, MyFloat}, Q)

  • var_01_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • var_02_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • var_03_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • var_04_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • var_05_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • var_06_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • var_07_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • var_08_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • var_09_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • var_10_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • var_11_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • var_12_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • var_13_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • var_14_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • var_15_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

  • var_16_vec::Vector{Float32}: Default: zeros(MyFloat, Q)

source