@@ -3,6 +3,106 @@ SPDX-FileCopyrightText: 2025 Uwe Fechner, Bart van de Lint
33SPDX-License-Identifier: MPL-2.0
44-->
55
6+ # v0.6.0 21-02-2026
7+
8+ ## Changed
9+ - Component constructors (` Point ` , ` Segment ` , ` Wing ` , ` Winch ` ,
10+ ` Transform ` ) now accept a symbolic ` name ` (Symbol) as the first
11+ argument in addition to numeric indices. Numeric ` idx ` values still
12+ work. Use e.g. ` Point(:kcu, pos, DYNAMIC) ` .
13+ - BREAKING: ` Segment ` constructor takes separate ` point_i ` , ` point_j `
14+ arguments instead of a ` point_idxs ` vector.
15+ - BREAKING: Rotation matrix fields renamed from ` R_a_b ` to ` R_a_to_b `
16+ throughout (e.g. ` wing.R_b_w ` → ` wing.R_b_to_w ` ).
17+ - BREAKING: ` ControlPlotsExt ` package extension removed. Visualization is
18+ now handled entirely by ` SymbolicAWEModelsMakieExt ` .
19+ - BREAKING: Predefined model factory functions removed
20+ (` create_ram_sys_struct ` , ` create_simple_ram_sys_struct ` ). Build models
21+ using component constructors or YAML instead.
22+ - BREAKING: Ram air kite and V3 kite models moved to dedicated packages
23+ ([ RamAirKite.jl] ( https://github.com/OpenSourceAWE/RamAirKite.jl ) ,
24+ [ V3Kite.jl] ( https://github.com/OpenSourceAWE/V3Kite.jl ) ).
25+ Their data directories are removed from this package.
26+ - ` src/system_structure.jl ` split into modular files under
27+ ` src/system_structure/ ` (types, core, utilities, transforms, wing,
28+ named_collection).
29+ - ` src/generate_system.jl ` split into 13 focused modules under
30+ ` src/generate_system/ ` (point_eqs, segment_eqs, wing_eqs, group_eqs,
31+ winch_eqs, pulley_eqs, tether_eqs, scalar_eqs, vsm_eqs, accessors,
32+ helpers, create_sys).
33+ - Makie extension significantly overhauled with new plotting functions.
34+ - Test suite completely rewritten. The old tests (` test_simulation ` ,
35+ ` test_linearization ` , ` test_initialization ` , ` test_sam ` , etc.) tested
36+ the full assembled kite model as a black box, making failures hard to
37+ diagnose. The new tests isolate each component with minimal models
38+ built from constructors, verifying physics against analytical
39+ solutions:
40+ - ` test_point ` — gravity free-fall, damping, quasi-static equilibrium
41+ - ` test_segment ` — spring-damper forces, stiffness, drag
42+ - ` test_wing ` — QUATERNION and REFINE wing construction, VSM coupling
43+ - ` test_wing_dynamics ` — rigid body torque response, precession,
44+ angular momentum conservation
45+ - ` test_tether_winch ` — reel-out dynamics, Coulomb and viscous
46+ friction, terminal velocity
47+ - ` test_pulley ` — equal-tension constraints, multi-segment pulleys
48+ - ` test_transform ` — spherical coordinate positioning
49+ - ` test_quaternion_conversions ` — quaternion ↔ rotation matrix
50+ - ` test_quaternion_auto_groups ` — auto-generated twist DOFs
51+ - ` test_principal_body_frame ` — principal vs body frame separation
52+ - ` test_heading_calculation ` — kite heading from tether geometry
53+ - ` test_section_alignment ` — VSM section ↔ structural point mapping
54+ - ` test_profile_law ` — atmospheric wind profile verification
55+ - ` test_bench ` — performance regression tracking
56+ - Complete documentation overhaul with new pages: coordinate_frames,
57+ vsm_coupling, pipeline, tutorial_julia, tutorial_yaml.
58+ - Data files reorganised: base settings moved to ` data/base/ ` , new
59+ ` data/2plate_kite/ ` and ` data/saddle_form/ ` model directories added.
60+
61+ ## Added
62+ - ` NamedCollection ` indexing — components support symbolic names
63+ (e.g. ` sys.points[:kcu] ` , ` sys.segments[:bridle_1] ` ).
64+ ` SystemStructure ` resolves all symbolic references to numeric indices
65+ automatically via ` assign_indices_and_resolve!() ` .
66+ - ` WingType ` enum (` QUATERNION ` , ` REFINE ` ) for explicit wing type
67+ selection. ` REFINE ` applies per-panel forces directly to structural
68+ points for higher fidelity aeroelastic coupling.
69+ - ` AeroMode ` enum (` AERO_NONE ` , ` AERO_DIRECT ` , ` AERO_LINEARIZED ` ) for
70+ build-time control over aerodynamic computation strategy.
71+ - YAML-based model definition via ` load_sys_struct_from_yaml() ` ,
72+ ` update_yaml_from_sys_struct!() ` , and
73+ ` update_aero_yaml_from_struc_yaml!() ` .
74+ - REFINE wing support (` src/vsm_refine.jl ` ) — structural deformation
75+ coupled directly to VSM panel geometry with moment-preserving force
76+ distribution.
77+ - Principal vs body frame separation for QUATERNION wings. Principal
78+ frame (diagonal inertia) used for Euler equations, body frame (from
79+ reference points) used for output and VSM coupling.
80+ - Auto-group generation for QUATERNION wings when groups are not
81+ explicitly provided.
82+ - ` record() ` for saving simulation replays to MP4.
83+ - ` plot_sphere_trajectory ` , ` plot_body_frame ` , ` plot_aoa ` plotting
84+ functions.
85+ - ` update_segment_forces! ` , ` set_world_frame_damping ` ,
86+ ` set_body_frame_damping ` , ` segment_stretch_stats ` utility functions.
87+ - New examples: ` hanging_mass ` , ` catenary_line ` , ` saddle_form ` ,
88+ ` coupled_2plate_kite ` , ` coupled_realtime_visualization ` ,
89+ ` coupled_linearize ` , ` coupled_simple_lin_model ` ,
90+ ` coupled_tether_deflection ` , ` heading_gate ` ,
91+ ` cosine_steering_trajectory ` , ` makie_polar_plots ` ,
92+ ` static_load_2plate_kite ` .
93+ - Benchmark test (` test_bench.jl ` ) for performance tracking.
94+
95+ ## Removed
96+ - ` predefined_structures.jl ` and factory functions
97+ (` create_ram_sys_struct ` , ` create_simple_ram_sys_struct ` ,
98+ ` create_tether_sys_struct ` , ` copy_to_simple! ` ).
99+ - Ram air kite data files, LEI kite directory, ` data/kite.obj ` .
100+ - Old examples: ` ram_air_kite ` , ` lin_ram_model ` , ` simple_lin_model ` ,
101+ ` lin_simple_tuned_model ` , ` simple_tuned_model ` ,
102+ ` realtime_visualization ` , ` reposition ` , ` tether_props ` .
103+ - ` SymbolicAWEModelsControlPlotsExt ` package extension.
104+ - ` src/precompile.jl ` .
105+
6106# v0.5.0 25-08-2024
7107## Removed
8108- BREAKING: the Winch struct doesn't have a model field anymore. Instead, all equations are symbolic, and the WinchModels dependency is removed.
0 commit comments