- the functions
copy_examples_3d()andinstall_examples_3d() - add the functions
states(kps)to determine the number of states of a model - add parameter
-y--yesto install script
- add parameter
--updatetoinstallscript and remove it fromcreate_sys_imagescript
- the
create_sys_image2script now includesKiteViewersonly if needed for the 3d examples
- fixed citation metadata in CITATION.cff
- all files in
srcand all files in theexamplesnow free of warnings - the install script now keeps the currently active Julia version
- fixed all JETLS warnings in the src folder and the examples
- the script bin/jetls which checks the syntax of the src files
- the script bin/jetls_examples which checks the syntax in the examples
- bumped KiteUtils to 0.11.3
- add parameter
dtmaxto the solver settings to improve stability
- fixed most JETLS warnings, only two left
- fixed many warnings in the examples
- suppressed some more warnings in
.JETLSConfig.toml.default - the install script now copies
.JETLSConfig.toml.defaultto.JETLSConfig.tomlif it does not exist yet - deleted unused code
- moved the initialization functions from init.jl to KPS4.jl and renamed
init.jltoutils.jl
- first version with good support for MacOS
- the install script now installs qtagg for MacOS
- bumped ControlPlots to 0.2.13 for MacOS support. Plots are blocking now.
- bumped KiteViewers to 0.5.1 for MacOS support. Different text positions, new font.
- updated many other dependencies
- when a plot is closed, the main app gets activated (MacOS)
- when the KiteViewer is displayed, it is brought into the foreground (MacOS)
- updated all examples for MacOS support
- the install script is more robust now and reports warnings at the end (if needed)
- examples_3d is a workspaces now
- improved
create_sys_imageandinstallscripts
- examples_3d/parking_4p.jl is working now
- examples_3d/show_kite.jl is working now
- example
auto_parking.jl - example
parking_wind_dir.jl
- remove SymbolicAWEModels
- fix warnings and spelling errors
- improve find_steady_state!, print warning if the solver fails
- test-steady-state-kps4.jl is now a separate test file
- all test files can be executed separately
- test files have been renamed, now all start with
test- - use workspaces for the
test,examples, anddocsfolder - all markdown files are now checked with
markdownlint - no more global variables in the main test scripts
- all examples and tests that call
find_steady_state!succeed now without warning - other fixes of examples
- dead or wrong links in README.md and the documentation
- many JETLS warnings, only two left
- configuration files from
BestieTemplate.jl - installer script
bin/install - a warning if
find_steady_state!does not succeed
- Support Julia 1.12
- Bump KitePodModels to 0.4.0
- Bump KiteUtils to 0.11.1
- Breaking: rename
c_springtoaxial_stiffnessanddampingto `axial_damping - Breaking: rename
forcetowinch_forcewhen SysState is referred to - Make tests more robust by deleting unused files from the temporary directory and by increasing tolerances
- the configuration file
.JETLSConfig.toml - the script
reuse_lintto check the licenses
- BREAKING: rename
init_sim!toinit! - removed the parameter
upwind_dir!frominit!; use set.upwind_dir instead. Careful: This is in degrees. - the function
init!accepts (and ignores) the parametersdeltaandstiffness_factorif applied to a SymbolicAWEModel - bump
KiteUtils.jlto v0.10.15 - bump
AtmosphericModelsto v0.3.0, the first version that supports turbulent wind fields
- add the test script test_interface.jl
- add the field
integratorto KPS4 and KPS3 structs
- renamed POWER to POWER_LINE and STEERING to STEERING_LINE
- improved documentation, fixed example
- add a tutorial for custom system structures
- add documentation for
SystemStructurecomponents #229 - add the
Transformstruct which defines initial orientation of theSystemStructure#214 - add a custom amount of kites to the
SystemStructure#208 - make model initialization faster #222
- implement missing methods for the
SymbolicAWEModel#198
- fixed the performance regression when using the
KPS4model with a winch model of typeAsyncMachine - improved the script
create_sys_image; it is now also available if you install the package without using git - make model initialization faster #222
- make next_step! return nothing #213
- Change the names of
RamAirKitetoSymbolicAWESystemandPointMassSystemtoSystemStructure#208
- added licenses to each file, the command
pipx run reuse lintsucceeds now - add the command above to the CI scripts
- the script
create_xz_file - the option to linearize the SymbolicAWEModel system using ModelingToolkit
- a simplified ram air kite model for faster development and testing
- the example
lin_ram_model.jlto show how to linearize a model - add the page
Examples SymbolicAWEModeldo the documentation
- the example
ram_air_kite.jlcan now be run like thisSIMPLE=true; include("examples/ram_air_kite.jl") - the package
Rotationsis no longer re-exported - improved documentation
- small fixes of the SymbolicAWEModel model
- fix function update_sys_state!()
- bump KiteUtils to v0.10.5, which provides much more fields for in the SysState
- fixed or documented issues found by
Aqua.jl - made
DSPa test dependency - remove package
OrdinaryDiffEqSDIRK - improve documentation for
SymbolicAWEModel
- the examples
calc_spectrum.jlandplot_spectrum.jlto the menu - the quality insurance package
Aqua.jl - added the script
update_default_manifest - calculate
side_slipangle in radian
- fixed broken installation by freezing NLSolversBase to
~7.8.3in Project.toml
- added
mwe_26.jlfor debugging the initial state solver - the example
ram_air_kite.jl - the struct
SystemStructurefor easy definition of the kite power system
- BREAKING: the model KPS_3L was renamed to SymbolicAWEModel
- the SymbolicAWEModel model is using the VortexStepMethod with a deforming wing now
- bump KiteUtils to
v0.10 - bump ModellingToolkit to
9.72 - bump VortexStepMethod to
1.2.5 - the file CONTRIBUTING.md was updated
- always use the brake if the
set_speedis zero; this fixes the examplesteering_test_4p.jl
initial_reel_out_4p.jlshows a simulation that starts with an initial reel-out speed > 0initial_reel_out_4p_torque_controlruns a simulation with a torque controlled winch and an initial reel-out speed > 0
- initial reel-out speed handled correctly
- log kcu_steering in SysState (output of KCU without applying corrections)
- fix tests for Julia 1.11.3
- cleanup
run_julia - add function
calculate_rotational_inertia!() - add example
calculate_rotational_inertia.jland add it to the menu
- crash due to a new version of
DierckX_jll
- bump versions in Project.toml
- add upwind_dir to
settings.yamlfile, removev_wind_refvector - add
p_speed,i_speedandmax_accto winch settings - replaced
autodiff=falsewithautodiff=AutoFiniteDiff()to fix warnings - added package
ADTypesto provideAutoFiniteDiff() - cleanup code
- update the fields
set_steering,bearingandattractorof theSysStatestruct in the functionupdate_sys_state! - add the parameters
bearingandattractorto the functionnext_step!for logging
- fix #88: the function
init_sim!()has the new parameterupwind_dirto define the initial wind direction
- update the fields
set_torque,set_force,set_speed,alpha3,alpha4,roll,pitch,yawof theSysStatestruct in the functionupdate_sys_state! - add the parameter
set_forceto the functionnext_step!for logging - the four point kite model KPS4 was extended to include aerodynamic damping of pitch oscillations;
for this purpose, the parameters
cmqandcord_lengthmust be defined insettings.yaml - the four point kite model KPS4 was extended to include the impact of the deformation of the
kite on the turn rate; for this, the parameter
smcmust be defined insettings.yaml - improve examples
- add the packages
JLD2andColorsto the system image
- add examples
calc_spectrum.jlandplot_spectrumto plot the eigenfrequencies of the system - the script
calculate_rotational_inertia.jlfor calculating the inertia matrix of the kite - function
menu2()which displays a menu with scripts for model verification
- fixed bug in spring_forces(), it used 4000N hardcoded max force
- bump KiteUtils to 0.9.0
- the fields AoA, CL2, CD2 and the vectors v_wind_gnd, v_wind_200m and v_wind_kite are now updated when converting KPS3 or KPS4 to SysState
- add example test_steady_state.jl
- fixed the installation of the examples
- updated the documentation
- the package Rotations is now re-exported by KiteModels
- reduce number of dependencies of the examples
- added tests for calc_azimuth(s::AKM), the azimuth in wind reference frame
- re-enable logging of the angles of attack of the three plates
steering_test_4p.jlnow calculates bothc1andc2of the turn-rate law- the environment variable
NO_MTKdisables the pre-compilation of theSymbolicAWEModelmodel to save time during development - the script
menu2.jlfor model verification was added
- the sign of the steering signal was changed. Now, a positive steering signal causes a positive turn rate. The turn rate is the derivative of the heading angle.
- all orientation tests pass now (calculation of roll, pitch, yaw, azimuth_north, elevation, heading)
- add example
steering_test_1p.jl - improve
steering_test_4p.jl, use fully powered kite now - the logged steering signal is now divided by
set.cs_4p, because the new version of KitePodModels.jl multiplies the steering value with this constant - update documentation regarding
steeringandheading
- renamed test_init.jl to test_init_4p.jl
- by default,
azimuthin wind reference frame is now used - the orientation is now represented in NED reference frame
- the method
calc_headinghas two new, optional parameters: neg_azimuth=false, one_point=false - the definition of heading and azimuth has changed, which will require adaptions in the controller
- example
plot_side_cl.jl - example
plot_cl_cd_plate.jl - example
steering_test.jl - example
test_init_1p.jl - the test script
test_orientation.jlwas contributed by Daan van Wolffelaar; currently, some of these tests are still broken (error of about 2%)
- many of the examples; all examples of
menu.jlnow work
- the method
next_step!uses nowupwind_diras parameter and not longerwind_dir - install
matplotlibif it is not already installed after user confirmation in a Julia specific environment - replaced OrdinaryDiffEq with the three packages OrdinaryDiffEqCore, OrdinaryDiffEqBDF and OrdinaryDiffEqSDIRK. This should help to reduce the pre-compilation time.
- set the parameter delta in the examples
- always specify the
system.yamlfile to use in the examples, always useload_settingsinstead ofse. This ensures that the settings are always freshly loaded from the file when the script is launched, so any changes to the settings become immediately effective. - the SymbolicAWEModel model was replaced by the pure ModelingToolkit (MTK) based version. This allows not only a much faster simulation, but the results are also much more accurate.
- bump KiteUtils to 0.7.7
- add new examples to menu
- major change to the function that finds the initial equilibrium; the function
init_sim!has the new parameterdeltawhich should be in the range of 0.01 to 0.03. - better error message if
init_sim!, but no exception any more. I just returnsnothing. - remove dependency StatProfilerHTML
- add KCU drag, based on kcu_diameter and cd_kcu
- add function bridle_length (not exported)
- unit tests for the KPS3_3L model, based on ModelingToolkit
- script
examples/plot_cl_cd.jl - script
examples/plot_cl_cd_plate.jl - script
torque_controlled_mtk.jl
- correct tether drag based on l_bridle; if the kite has more than 7 bridle lines l_bridle must be larger than bridle_length(se)
- a new kite model, KPS3_3L was contributed by Bart van de Lint. It uses three lines to the ground and three winches for steering a ram-air foil kite.
- caching for the initial equilibrium
- function
KiteModels.install_examples()that copies the examples, the data folder and installs the required extra packages - log alpha2, alpha3, alpha4; they must never become negative
- the calculation of the call-backs per time step was fixed in all examples and the tests
- the function
copy_examples()copies now all examples - updated the documentation
- improved the scripts in the bin folder, not relevant for most users
- renamed the example
simulate.jltosimulate_simple.jl - renamed the example
simulate_ii.jltosimulate_steering.jl - add the script
menu.jlthat provides a menu with all the examples - bump ControlPlots to 0.1.4
- bump KiteUtils to 0.7.4
- bump WinchModels to 0.3.2
- bump KitePodModels to 0.3.3
- fix example
reel_out_4p_torque_control.jl
- use a new version of
WinchModels.jlwhich provides an additional, torque-controlled winch - add many new winch parameters to
settings.jl - BREAKING change: rename
v_rotoset_speedin function step()
- bump KiteUtils to version 0.6.16
- bump ControlPlots to version 0.0.12
- bump KiteUtils to version 0.6.12
- drop support for Julia 1.9
- replace Plots with ControlPlots in the examples
- use
rel_compr_stiffnessandrel_dampingfrom settings.yaml
- update KiteUtils to v0.6.7
- update Documenter to v1.0
- add type
SymbolicAWEModel, which is now only a copy ofKPS4, but shall implement a kite with the steering lines going to the ground
- document the support for the
DImplicitEulersolver, which is not very accurate, but because it is well known it can serve as a reference - support changing
max_orderfor theDFBDF - further reduced the memory usage
- it is now possible (and suggested) to use the DAE solver DFBDF.
This requires adding the following line to the settings.yaml file:
solver: "DFBDF"
The new solver is much faster (4x average, 1.8x worst case), has a lot less memory allocations (~ 50%) and is also much more stable in highly dynamic situations.
- new, non-allocating function
update_sys_state!(ss::SysState, s::AKM, zoom=1.0)
- improved performance by 10% by implementing custom
norm()function for 3D vectors
- fix the method
clear!(s::KPS4)which failed for models with less than 6 tether segments
Simulations should work fine now for one to about 28 tether segments (no hard upper limit, but things become slow and the visualization ugly if you have too many segments).