Exported Types
Config files
KiteUtils.Settings
— TypeSettings
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: 2time_lapse::Float64
: relative replay speed Default: 0sim_time::Float64
: simulation time [sim only] Default: 0segments::Int64
: number of tether segments Default: 0sample_freq::Int64
: sample frequency in Hz Default: 0zoom::Float64
: zoom factor for the system view Default: 0kite_scale::Float64
: relative zoom factor for the 4 point kite Default: 1.0fixed_font::String
: name or filepath+filename of alternative fixed pitch font Default:l_tether::Float64
: initial tether length [m] Default: 0elevation::Float64
: initial elevation angle [deg] Default: 0v_reel_out::Float64
: initial reel out speed [m/s] Default: 0depower::Float64
: initial depower settings [%] Default: 0abs_tol::Float64
: absolute tolerance of the DAE solver [m, m/s] Default: 0.0rel_tol::Float64
: relative tolerance of the DAE solver [-] Default: 0.0solver::String
: DAE solver, can be IDA or DFBDF Default: DFBDFlinear_solver::String
: can be GMRES or Dense Default: GMRESmax_order::Int64
: maximal order, usually between 3 and 5 Default: 4max_iter::Int64
: max number of iterations of the steady-state-solver Default: 1c0::Float64
: steering offset -0.0032 [-] Default: 0c_s::Float64
: steering coefficient one point model Default: 0c2_cor::Float64
: correction factor one point model Default: 0k_ds::Float64
: influence of the depower angle on the steering sensitivity Default: 0delta_st::Float64
: steering increment (when pressing RIGHT) Default: 0max_steering::Float64
: max. steering angle of the side planes for four point model [degrees] Default: 0alpha_d_max::Float64
: max depower angle [deg] Default: 0depower_offset::Float64
: at rel_depower=0.236 the kite is fully powered [%] Default: 23.6model::String
: file name of the 3D model of the kite for the viewer Default: data/kite.objphysical_model::String
: name of the kite model to use (KPS3 or KPS4) Default:version::Int64
: version of the model to use Default: 1mass::Float64
: kite mass incl. sensor unit [kg] Default: 0area::Float64
: projected kite area [m^2] Default: 0rel_side_area::Float64
: relative side area [%] Default: 0height_k::Float64
: height of the kite [m] Default: 0alpha_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: 0alpha_zero::Float64
: should be 5 [degrees] Default: 0alpha_ztip::Float64
: Default: 0m_k::Float64
: relative nose distance; increasing m_k increases C2 of the turn-rate law Default: 0rel_nose_mass::Float64
: Default: 0rel_top_mass::Float64
: mass of the top particle relative to the sum of top and side particles Default: 0radius::Float64
: the radius of the circle shape on which the kite lines, viewed from the front [m] Default: 10.0bridle_center_distance::Float64
: the distance from point the center bridle connection point of the middle line to the kite [m] Default: 2.0middle_length::Float64
: the cord length of the kite in the middle [m] Default: 2.0tip_length::Float64
: the cord length of the kite at the tips [m] Default: 1.0min_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.0aero_surfaces::Int64
: the number of aerodynamic surfaces to use per mass point [-] Default: 10width_3l::Float64
: the width of the 3 line kite laid flat Default: 20d_line::Float64
: bridle line diameter [mm] Default: 0h_bridle::Float64
: height of the bridle [m] Default: 0l_bridle::Float64
: sum of the lengths of the bridle lines [m] Default: 0rel_compr_stiffness::Float64
: relative compression stiffness of the kite springs Default: 0rel_damping::Float64
: relative damping of the kite spring (relative to main tether) Default: 0kcu_model::String
: model of the kite control unit, KCU1 or KCU2 Default: KCU1kcu_mass::Float64
: mass of the kite control unit [kg] Default: 0kcu_diameter::Float64
: diameter of the kite control unit for drag calculation [m] Default: 0cd_kcu::Float64
: drag coefficient of the kite control unit Default: 0depower_zero::Float64
: depower setting for alpha_zero = 0 [%] Default: 0degrees_per_percent_power::Float64
: linear approximation [degrees/%] Default: 0power2steer_dist::Float64
: power to steering line distance [m] Default: 0depower_drum_diameter::Float64
: Default: 0tape_thickness::Float64
: Default: 0v_depower::Float64
: max velocity of depowering in units per second (full range: 1 unit) Default: 0v_steering::Float64
: max velocity of steering in units per second (full range: 2 units) Default: 0depower_gain::Float64
: 3.0 means: more than 33% error -> full speed Default: 3.0steering_gain::Float64
: Default: 3.0d_tether::Float64
: tether diameter [mm] Default: 0cd_tether::Float64
: drag coefficient of the tether Default: 0damping::Float64
: unit damping coefficient [Ns] Default: 0c_spring::Float64
: unit spring constant coefficient [N] Default: 0rho_tether::Float64
: density of Dyneema [kg/m³] Default: 0e_tether::Float64
: axial tensile modulus of the tether [Pa] Default: 0winch_model::String
: the winch model, either AsyncMachine or TorqueControlledMachine Default:max_force::Float64
: maximal (nominal) tether force; short overload allowed [N] Default: 4000v_ro_max::Float64
: maximal reel-out speed [m/s] Default: 8v_ro_min::Float64
: minimal reel-out speed (=max reel-in speed) [m/s] Default: -8drum_radius::Float64
: radius of the drum [m] Default: 0.1615gear_ratio::Float64
: ratio of the gear box Default: 6.2inertia_total::Float64
: inertia of the motor, gearbox and drum, as seen from the motor [kgm²] Default: 0f_coulomb::Float64
: coulomb friction [N] Default: 122.0c_vf::Float64
: coefficient for the viscous friction [Ns/m] Default: 30.6v_wind::Float64
: wind speed at reference height [m/s] Default: 0v_wind_ref::Vector{Float64}
: wind speed vector at reference height [m/s] Default: []temp_ref::Float64
: temperature at reference height [°C] Default: 0height_gnd::Float64
: height of groundstation above see level [m] Default: 0h_ref::Float64
: reference height for the wind speed [m] Default: 0rho_0::Float64
: air density at zero height and 15 °C [kg/m³] Default: 0alpha::Float64
: exponent of the wind profile law Default: 0z0::Float64
: surface roughness [m] Default: 0profile_law::Int64
: 1=EXP, 2=LOG, 3=EXPLOG, 4=FASTEXP, 5=FASTLOG, 6=FAST_EXPLOG Default: 0use_turbulence::Float64
: turbulence intensity relative to Cabau, NL Default: 0v_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: 0rel_turbs::Vector{Float64}
: relative turbulence at the vwindgnds Default: []i_ref::Float64
: the expected value of the turbulence intensity at 15 m/s Default: 0v_ref::Float64
: five times the average wind speed in m/s at hub height over the full year [m/s] Default: 0height_step::Float64
: grid resolution in z direction [m] Default: 0grid_step::Float64
: grid resolution in x and y direction [m] Default: 0
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.MyFloat
— Typeconst MyFloat = Float32
Type used for position components and scalar SysState members.
KiteUtils.SysState
— TypeSysState{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 secondst_sim::Float64
: time needed for one simulation timestepsys_state::Int16
: state of system state controle_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 radiansazimuth::Float32
: azimuth angle in radiansl_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 radiancourse::Float32
: course angle in radianv_app::Float32
: norm of apparent wind speed [m/s]vel_kite::StaticArraysCore.MVector{3, Float32}
: velocity vector of the kiteX::StaticArraysCore.MVector{P, Float32} where P
: vector of particle positions in xY::StaticArraysCore.MVector{P, Float32} where P
: vector of particle positions in yZ::StaticArraysCore.MVector{P, Float32} where P
: vector of particle positions in zvar_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
var_11::Float32
var_12::Float32
var_13::Float32
var_14::Float32
var_15::Float32
var_16::Float32
KiteUtils.SysLog
— TypeSysLog{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 logcolmeta::Dict
syslog::StructArrays.StructArray{SysState{P}} where P
: struct of vectors that can also be accessed like a vector of structs
KiteUtils.Logger
— Typemutable 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: Pindex::Int64
: Default: 1time_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)var_11_vec::Vector{Float64}
: Default: zeros(Float64, Q)var_12_vec::Vector{Float64}
: Default: zeros(Float64, Q)var_13_vec::Vector{Float64}
: Default: zeros(Float64, Q)var_14_vec::Vector{Float64}
: Default: zeros(Float64, Q)var_15_vec::Vector{Float64}
: Default: zeros(Float64, Q)var_16_vec::Vector{Float64}
: Default: zeros(Float64, Q)