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: 0cs_4p::Float64
: correction factor for the steering sensitivity four point model Default: 1.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.objfoil_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.csvphysical_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: []cms::Float64
: steering dependant moment coefficient Default: 0width::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: 0smc::Float64
: steering moment coefficient Default: 0cmq::Float64
: pitch rate dependant moment coefficient Default: 0cord_length::Float64
: average aerodynamic cord length of the kite [m] 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: 10flap_height::Float64
: height at the start of the flap [m] Default: 0.05width_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: -8max_acc::Float64
: maximal acceleration [m/s²] Default: 0drum_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.6p_speed::Float64
: proportional gain for the speed controller Default: 0i_speed::Float64
: integral gain for the speed controller Default: 0v_wind::Float64
: wind speed at reference height [m/s] Default: 0upwind_dir::Float64
: initial upwind direction [deg] Default: 0temp_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 [s]t_sim::Float64
: time needed for one simulation timestep [s]sys_state::Int16
: state of system state controlcycle::Int16
: cycle numberfig_8::Int16
: number of the figure of eight of the current cyclee_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
: actual steering [-1..1]set_steering::Float32
: set value of the steering [-1..1]heading::Float32
: heading angle [rad]heading_rate::Float32
: heading rate [rad/s]course::Float32
: course angle [rad]bearing::Float32
: bearing angle (set value of heading/ course) [rad]attractor::StaticArraysCore.MVector{2, Float32}
: attractor coordinates (azimuth, elevation) [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]alpha3::Float32
: angle of attack at particle C [rad]alpha4::Float32
: angle of attack at particle D [rad]CL2::Float32
: lift coefficientCD2::Float32
: drag coefficientvel_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]set_torque::Float32
: torque setting [Nm]set_speed::Float32
: speed setting [m/s]set_force::Float32
: force setting [N]roll::Float32
: roll angle [rad]pitch::Float32
: pitch angle [rad]yaw::Float32
: yaw angle [rad]var_01::Float32
: generic variable 01var_02::Float32
: generic variable 02var_03::Float32
: generic variable 03var_04::Float32
: generic variable 04var_05::Float32
: generic variable 05var_06::Float32
: generic variable 06var_07::Float32
: generic variable 07var_08::Float32
: generic variable 08var_09::Float32
: generic variable 09var_10::Float32
: generic variable 10var_11::Float32
: generic variable 11var_12::Float32
: generic variable 12var_13::Float32
: generic variable 13var_14::Float32
: generic variable 14var_15::Float32
: generic variable 15var_16::Float32
: generic variable 16
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(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)set_steering_vec::Vector{Float32}
: Default: zeros(MyFloat, Q)heading_vec::Vector{Float32}
: Default: zeros(MyFloat, Q)heading_rate_vec::Vector{Float32}
: Default: zeros(MyFloat, Q)course_vec::Vector{Float32}
: Default: zeros(MyFloat, Q)bearing_vec::Vector{Float32}
: Default: zeros(MyFloat, Q)attractor_vec::Vector{StaticArraysCore.MVector{2, Float32}}
: Default: zeros(MVector{2, 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)alpha3_vec::Vector{Float32}
: Default: zeros(MyFloat, Q)alpha4_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)set_torque_vec::Vector{Float32}
: Default: zeros(MyFloat, Q)set_speed_vec::Vector{Float32}
: Default: zeros(MyFloat, Q)set_force_vec::Vector{Float32}
: Default: zeros(MyFloat, Q)roll_vec::Vector{Float32}
: Default: zeros(MyFloat, Q)pitch_vec::Vector{Float32}
: Default: zeros(MyFloat, Q)yaw_vec::Vector{Float32}
: Default: zeros(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)