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.

source
KiteModels.KVec3Type

const KVec3 = MVector{3, SimFloat}

Basic 3-dimensional vector, stack allocated, mutable.

source
KiteModels.SVec3Type

const SVec3 = SVector{3, SimFloat}

Basic 3-dimensional vector, stack allocated, immutable.

source
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.

source

Struct KPS3 and KPS4 and KPS4_3L

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 model (Kite Control Unit as implemented in the package KitePodModels Default: KCU()

  • am::AtmosphericModel: Reference to the atmospheric model as implemented in the package AtmosphericModels Default: AtmosphericModel()

  • wm::AbstractWinchModel: Reference to winch model as implemented in the package WinchModels Default: AsyncMachine()

  • iter::Int64: Iterations, number of calls to the function residual! 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: z vector of the kite reference frame Default: zeros(S, 3)

  • res1::StaticArraysCore.SVector{P, StaticArraysCore.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::StaticArraysCore.SVector{P, StaticArraysCore.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::StaticArraysCore.SVector{P, StaticArraysCore.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 [m²] Default: zero(S)

  • bridle_area::Any: total actual bridle area [m²] 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: last norm of the apparent wind speed at a tether segment [m/s] 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

  • cor_steering::Any: correction term for the steering, in paper named i_(s,c), Eq. 30 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)

  • alpha_depower::Any: depower angle [deg] 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: actual relative depower setting, must be between 0 .. 1.0 Default: 0.0

  • steering::Any: actual relative steering setting, must be between -1.0 .. 1.0 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

  • initial_masses::StaticArraysCore.MVector{P, S} where {S, P}: initial masses of the point masses Default: ones(P)

  • masses::StaticArraysCore.MVector{P, S} where {S, P}: current masses, depending on the total tether length Default: ones(P)

  • forces::StaticArraysCore.SVector{P, StaticArraysCore.MVector{3, Float64}} where P: vector of the forces, acting on the particles Default: zeros(SVector{P, KVec3})

  • sync_speed::Any: synchronous speed of the motor/ generator Default: 0.0

source
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 model (Kite Control Unit as implemented in the package KitePodModels Default: KCU()

  • am::AtmosphericModel: Reference to the atmospheric model as implemented in the package AtmosphericModels Default: AtmosphericModel()

  • wm::AbstractWinchModel: Reference to winch model as implemented in the package WinchModels Default: AsyncMachine()

  • iter::Int64: Iterations, number of calls to the function residual! 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)

  • res1::StaticArraysCore.SVector{P, StaticArraysCore.MVector{3, Float64}} where P: a copy of the residual one (pos,vel) for debugging and unit tests Default: zeros(SVector{P, KVec3})

  • res2::StaticArraysCore.SVector{P, StaticArraysCore.MVector{3, Float64}} where P: a copy of the residual two (vel,acc) for debugging and unit tests Default: zeros(SVector{P, KVec3})

  • pos::StaticArraysCore.SVector{P, StaticArraysCore.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)

  • alpha_depower::Any: depower angle [deg] 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: unstretched tether length Default: 0.0

  • rho::Any: air density at the height of the kite Default: 0.0

  • depower::Any: actual relative depower setting, must be between 0 .. 1.0 Default: 0.0

  • steering::Any: actual relative steering setting, must be between -1.0 .. 1.0 Default: 0.0

  • stiffness_factor::Any: multiplier for the stiffniss of tether and bridle Default: 1.0

  • initial_masses::StaticArraysCore.MVector{P, S} where {S, P}: initial masses of the point masses Default: ones(P)

  • masses::StaticArraysCore.MVector{P, S} where {S, P}: current masses, depending on the total tether length Default: zeros(P)

  • springs::StaticArraysCore.MVector: vector of the springs, defined as struct Default: zeros(SP, Q)

  • forces::StaticArraysCore.SVector{P, StaticArraysCore.MVector{3, Float64}} where P: vector of the forces, acting on the particles Default: zeros(SVector{P, KVec3})

  • sync_speed::Any: synchronous speed of the motor/ generator Default: 0.0

  • x::Any: x vector of kite reference frame Default: zeros(S, 3)

  • y::Any: y vector of kite reference frame Default: zeros(S, 3)

  • z::Any: z vector of kite reference frame Default: zeros(S, 3)

source
KiteModels.KPS4_3LType
mutable struct KPS4_3L{S, T, P, Q, SP} <: AbstractKiteModel

State of the kite power system, using a 4 point kite model and three steering lines to the ground. 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 model (Kite Control Unit as implemented in the package KitePodModels Default: KCU()

  • am::AtmosphericModel: Reference to the atmospheric model as implemented in the package AtmosphericModels Default: AtmosphericModel()

  • wm::AbstractWinchModel: Reference to winch model as implemented in the package WinchModels Default: AsyncMachine()

  • iter::Int64: Iterations, number of calls to the function residual! 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)

  • res1::StaticArraysCore.SVector{P, StaticArraysCore.MVector{3, Float64}} where P: a copy of the residual one (pos,vel) for debugging and unit tests Default: zeros(SVector{P, KVec3})

  • res2::StaticArraysCore.SVector{P, StaticArraysCore.MVector{3, Float64}} where P: a copy of the residual two (vel,acc) for debugging and unit tests Default: zeros(SVector{P, KVec3})

  • pos::StaticArraysCore.SVector{P, StaticArraysCore.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)

  • alpha_depower::Any: depower angle [deg] 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: unstretched tether length Default: 0.0

  • rho::Any: air density at the height of the kite Default: 0.0

  • depower::Any: actual relative depower setting, must be between 0 .. 1.0 Default: 0.0

  • steering::Any: actual relative steering setting, must be between -1.0 .. 1.0 Default: 0.0

  • stiffness_factor::Any: multiplier for the stiffniss of tether and bridle Default: 1.0

  • initial_masses::StaticArraysCore.MVector{P, S} where {S, P}: initial masses of the point masses Default: ones(P)

  • masses::StaticArraysCore.MVector{P, S} where {S, P}: current masses, depending on the total tether length Default: zeros(P)

  • springs::StaticArraysCore.MVector: vector of the springs, defined as struct Default: zeros(SP, Q)

  • forces::StaticArraysCore.SVector{P, StaticArraysCore.MVector{3, Float64}} where P: vector of the forces, acting on the particles Default: zeros(SVector{P, KVec3})

  • sync_speed::Any: synchronous speed of the motor/ generator Default: 0.0

  • x::Any: x vector of kite reference frame Default: zeros(S, 3)

  • y::Any: y vector of kite reference frame Default: zeros(S, 3)

  • z::Any: z vector of kite reference frame Default: zeros(S, 3)

source

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. The model KPS4_3L is not yet implemented, it is just a copy of KPS4.