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

  • 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

  • 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: []

  • 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

  • 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_mass::Float64: mass of the kite control unit [kg] 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

  • 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

  • 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 in seconds

  • t_sim::Float64: time needed for one simulation timestep

  • sys_state::Int16: state of system state control

  • 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 in radians

  • azimuth::Float32: azimuth angle in radians

  • l_tether::Float32: tether length [m]

  • v_reelout::Float32: reel out velocity [m/s]

  • force::Float32: tether force [N]

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

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

  • heading::Float32: heading angle in radian

  • course::Float32: course angle in radian

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

  • vel_kite::StaticArraysCore.MVector{3, Float32}: velocity vector of the kite

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

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

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

  • var_01::Float32

  • var_02::Float32

  • var_03::Float32

  • var_04::Float32

  • var_05::Float32

  • var_06::Float32

  • var_07::Float32

  • var_08::Float32

  • var_09::Float32

  • var_10::Float32

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(MyFloat, Q)

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

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

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

  • orient_vec::Vector{StaticArraysCore.MVector{4, Float32}}: Default: zeros(SVector{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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

source