Exported Types
Basic types
KiteModels.SimFloat
— Typeconst 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.KVec3
— Typeconst KVec3 = MVector{3, SimFloat}
Basic 3-dimensional vector, stack allocated, mutable.
KiteModels.SVec3
— Typeconst SVec3 = SVector{3, SimFloat}
Basic 3-dimensional vector, stack allocated, immutable.
KiteModels.ProfileLaw
— TypeProfileLaw
Enumeration to describe the wind profile low that is used.
KiteModels.AbstractKiteModel
— Typeabstract 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.AKM
— Typeconst AKM = AbstractKiteModel
Short alias for the AbstractKiteModel.
Struct KPS3 and KPS4
KiteModels.KPS3
— Typemutable 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.KPS4
— Typemutable 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.