Exported Types

Basic types

KiteModels.SimFloatType
const SimFloat = Float64

This type is used for all real variables, used in the Simulation. Possible alternatives: Float32, Double64, Dual Other types than Float64 or Float32 do require support of Julia types by the solver.

KiteModels.KVec3Type

const KVec3 = MVector{3, SimFloat}

Basic 3-dimensional vector, stack allocated, mutable.

KiteModels.SVec3Type

const SVec3 = SVector{3, SimFloat}

Basic 3-dimensional vector, stack allocated, immutable.

KiteModels.AbstractKiteModelType
abstract type AbstractKiteModel

All kite models must inherit from this type. All methods that are defined on this type must work with all kite models. All exported methods must work on this type.

KiteModels.AKMType
const AKM = AbstractKiteModel

Short alias for the AbstractKiteModel.

Struct KPS3 and KPS4

KiteModels.KPS3Type
mutable struct KPS3{S, T, P} <: AbstractKiteModel

State of the kite power system. Parameters:

  • S: Scalar type, e.g. SimFloat In the documentation mentioned as Any, but when used in this module it is always SimFloat and not Any.
  • T: Vector type, e.g. MVector{3, SimFloat}
  • P: number of points of the system, segments+1

Normally a user of this package will not have to access any of the members of this type directly, use the input and output functions instead.

  • set::Settings

    Reference to the settings struct Default: se()

  • kcu::KCU

    Reference to the KCU struct (Kite Control Unit, type from the module KitePodSimulor Default: KCU()

  • iter::Int64

    Iteration Default: 0

  • calc_cl::Any

    Function for calculation the lift coefficent, using a spline based on the provided value pairs. Default: Spline1D((se()).alphacl, (se()).cllist)

  • calc_cd::Any

    Function for calculation the drag coefficent, using a spline based on the provided value pairs. Default: Spline1D((se()).alphacd, (se()).cdlist)

  • v_wind::Any

    wind vector at the height of the kite Default: zeros(S, 3)

  • v_wind_gnd::Any

    wind vector at reference height Default: zeros(S, 3)

  • v_wind_tether::Any

    wind vector used for the calculation of the tether drag Default: zeros(S, 3)

  • v_apparent::Any

    apparent wind vector at the kite Default: zeros(S, 3)

  • v_app_perp::Any

    vector, perpendicular to vapparent; output of calcdrag Default: zeros(S, 3)

  • drag_force::Any

    drag force of kite and bridle; output of calcaeroforces Default: zeros(S, 3)

  • lift_force::Any

    lift force of the kite; output of calcaeroforces Default: zeros(S, 3)

  • steering_force::Any

    steering force acting on the kite; output of calcaeroforces Default: zeros(S, 3)

  • last_force::Any

    Default: zeros(S, 3)

  • spring_force::Any

    spring force of the current tether segment, output of calc_res Default: zeros(S, 3)

  • total_forces::Any

    Default: zeros(S, 3)

  • force::Any

    sum of spring and drag forces acting on the current segment, output of calc_res Default: zeros(S, 3)

  • unit_vector::Any

    unit vector in the direction of the current tether segment, output of calc_res Default: zeros(S, 3)

  • av_vel::Any

    average velocity of the current tether segment, output of calc_res Default: zeros(S, 3)

  • kite_y::Any

    y-vector of the kite fixed referense frame, output of calcaeroforces Default: zeros(S, 3)

  • segment::Any

    vector representing one tether segment (p1-p2) Default: zeros(S, 3)

  • last_tether_drag::Any

    vector of the drag force of the last calculated tether segment Default: zeros(S, 3)

  • vec_z::Any

    Default: zeros(S, 3)

  • res1::StaticArrays.SVector{P, StaticArrays.MVector{3, Float64}} where P

    part one of the residual, difference between pos' and vel, non-flat, mainly for unit testing Default: zeros(SVector{P, KVec3})

  • res2::StaticArrays.SVector{P, StaticArrays.MVector{3, Float64}} where P

    part two of the residual, difference between vel' and acc, non-flat, mainly for unit testing Default: zeros(SVector{P, KVec3})

  • pos::StaticArrays.SVector{P, StaticArrays.MVector{3, Float64}} where P

    vector of the positions of the particles Default: zeros(SVector{P, KVec3})

  • vel_kite::Any

    velocity vector of the kite Default: zeros(S, 3)

  • seg_area::Any

    area of one tether segment Default: zero(S)

  • bridle_area::Any

    Default: zero(S)

  • c_spring::Any

    spring constant, depending on the length of the tether segment Default: zero(S)

  • segment_length::Any

    unstressed segment length [m] Default: 0.0

  • damping::Any

    damping factor, depending on the length of the tether segment Default: zero(S)

  • last_v_app_norm_tether::Any

    Default: zero(S)

  • param_cl::Any

    lift coefficient of the kite, depending on the angle of attack Default: 0.2

  • param_cd::Any

    drag coefficient of the kite, depending on the angle of attack Default: 1.0

  • v_app_norm::Any

    Default: zero(S)

  • cor_steering::Any

    Default: zero(S)

  • psi::Any

    azimuth angle in radian; inital value is zero Default: zero(S)

  • beta::Any

    elevation angle in radian; initial value about 70 degrees Default: deg2rad((se()).elevation)

  • last_alpha::Any

    Default: 0.1

  • alpha_depower::Any

    Default: 0.0

  • t_0::Any

    relative start time of the current time interval Default: 0.0

  • v_reel_out::Any

    reel out speed of the winch [m/s] Default: 0.0

  • last_v_reel_out::Any

    reel out speed during the last time step Default: 0.0

  • l_tether::Any

    unstretched tether length Default: 0.0

  • rho::Any

    air density at the height of the kite Default: 0.0

  • depower::Any

    Default: 0.0

  • steering::Any

    Default: 0.0

  • stiffness_factor::Any

    factor for the tether stiffness, used to find the steady state with a low stiffness first Default: 1.0

  • log_href_over_z0::Any

    pre-calculated constant for the wind profile law calcuation Default: log((se()).h_ref / (se()).z0)

  • initial_masses::StaticArrays.MVector{P, S} where {S, P}

    initial masses of the point masses Default: ones(P)

  • masses::StaticArrays.MVector{P, S} where {S, P}

    current masses, depending on the total tether length Default: ones(P)

KiteModels.KPS4Type
mutable struct KPS4{S, T, P, Q, SP} <: AbstractKiteModel

State of the kite power system, using a 4 point kite model. Parameters:

  • S: Scalar type, e.g. SimFloat In the documentation mentioned as Any, but when used in this module it is always SimFloat and not Any.
  • T: Vector type, e.g. MVector{3, SimFloat}
  • P: number of points of the system, segments+1
  • Q: number of springs in the system, P-1
  • SP: struct type, describing a spring

Normally a user of this package will not have to access any of the members of this type directly, use the input and output functions instead.

  • set::Settings

    Reference to the settings struct Default: se()

  • kcu::KCU

    Reference to the KCU struct (Kite Control Unit, type from the module KitePodSimulor Default: KCU()

  • iter::Int64

    Iteration Default: 0

  • calc_cl::Any

    Function for calculation the lift coefficent, using a spline based on the provided value pairs. Default: Spline1D((se()).alphacl, (se()).cllist)

  • calc_cd::Any

    Function for calculation the drag coefficent, using a spline based on the provided value pairs. Default: Spline1D((se()).alphacd, (se()).cdlist)

  • v_wind::Any

    wind vector at the height of the kite Default: zeros(S, 3)

  • v_wind_gnd::Any

    wind vector at reference height Default: zeros(S, 3)

  • v_wind_tether::Any

    wind vector used for the calculation of the tether drag Default: zeros(S, 3)

  • v_apparent::Any

    apparent wind vector at the kite Default: zeros(S, 3)

  • drag_force::Any

    drag force of kite and bridle; output of calcaeroforces! Default: zeros(S, 3)

  • lift_force::Any

    lift force of the kite; output of calcaeroforces! Default: zeros(S, 3)

  • spring_force::Any

    spring force of the current tether segment, output of calcparticleforces! Default: zeros(S, 3)

  • last_force::Any

    last winch force Default: zeros(S, 3)

  • segment::Any

    Default: zeros(S, 3)

  • res1::StaticArrays.SVector{P, StaticArrays.MVector{3, Float64}} where P

    a copy of the residual one (pos,vel) for debugging and unit tests Default: zeros(SVector{P, KVec3})

  • res2::StaticArrays.SVector{P, StaticArrays.MVector{3, Float64}} where P

    a copy of the residual two (vel,acc) for debugging and unit tests Default: zeros(SVector{P, KVec3})

  • pos::StaticArrays.SVector{P, StaticArrays.MVector{3, Float64}} where P

    a copy of the actual positions as output for the user Default: zeros(SVector{P, KVec3})

  • vel_kite::Any

    velocity vector of the kite Default: zeros(S, 3)

  • segment_length::Any

    unstressed segment length [m] Default: 0.0

  • param_cl::Any

    lift coefficient of the kite, depending on the angle of attack Default: 0.2

  • param_cd::Any

    drag coefficient of the kite, depending on the angle of attack Default: 1.0

  • psi::Any

    azimuth angle in radian; inital value is zero Default: zero(S)

  • beta::Any

    elevation angle in radian; initial value about 70 degrees Default: deg2rad((se()).elevation)

  • alpha_depower::Any

    Default: 0.0

  • t_0::Any

    relative start time of the current time interval Default: 0.0

  • v_reel_out::Any

    reel out speed of the winch Default: 0.0

  • last_v_reel_out::Any

    reel out speed at the last time step Default: 0.0

  • l_tether::Any

    Default: 0.0

  • rho::Any

    air density Default: 0.0

  • depower::Any

    Default: 0.0

  • steering::Any

    Default: 0.0

  • stiffness_factor::Any

    Default: 1.0

  • log_href_over_z0::Any

    Default: log((se()).h_ref / (se()).z0)

  • initial_masses::StaticArrays.MVector{P, S} where {S, P}

    initial masses of the point masses Default: ones(P)

  • masses::StaticArrays.MVector{P, S} where {S, P}

    current masses, depending on the total tether length Default: zeros(P)

  • springs::StaticArrays.MVector{Q, SP} where {Q, SP}

    Default: zeros(SP, Q)

  • rel_vel::Any

    Default: zeros(S, 3)

  • half_drag_force::Any

    Default: zeros(S, 3)

  • forces::StaticArrays.SVector{P, StaticArrays.MVector{3, Float64}} where P

    Default: zeros(SVector{P, KVec3})

  • x::Any

    Default: zeros(S, 3)

  • y::Any

    Default: zeros(S, 3)

  • z::Any

    Default: zeros(S, 3)

These structs store the state of the one point model and four point model. Only in unit tests it is allowed to access the members directly, otherwise use the input and output functions.