Replies: 6 comments 6 replies
-
This optimisation problem can be solved with MPC. Due to the long predict horizon that is necessary, you need to use a simple model. You can take a look at AWEBox, they solve a flight path optimisation problem for rigid wing systems using MPC, with a simple model. ModelPredictiveControl.jl can be used when implementing this in Julia.
The optimisation problem doesn't have to take into account the ship speed, as you can just change the apparent wind speed and direction. The difference in the problem for a ship vs other AWE systems is that you want to maximize force in a certain direction, not just total power.
I would start with using the same states as they use in the simple model in AWEBox.
Wind sheer/veer isn't so important, as long as you consider the wind at the height of the kite. The tether drag is relatively small to the aerodynamic forces at the kite.
Constraints can be added easily when you use MPC.
The work over a cycle, W = F * d. I am not completely sure here, this should be checked. The force would be the component of the winch force that points forwards along the ships direction of motion. The distance d = v * t, and if you assume a constant velocity you get W = F * v * t where v is constant, t is also constant (the time of one power cycle), so you can simply optimize the average force component in the forwards direction of the ship during the last power cycle. p.s. A concern for this optimization problem is that the VSM underestimates drag, leading to very fast-flying kites which would not be realistic. So this would have to be investigated when we have such an optimization in place. |
Beta Was this translation helpful? Give feedback.
-
Very relevant discussion regarding optimized flight path calculation for kite-assisted ship traction. I would like to share some elements based on both literature and my experience in this domain.
The specific choice depends on problem complexity, real-time requirements, and available computational resources. For offline trajectory optimization, a wide range of methods are applicable.
Regarding constraints, realistic limitations must be considered:
Such an approach is well aligned with both the current state-of-the-art and practical system limitations. Happy to hear any suggestions or additional thoughts on this topic. |
Beta Was this translation helpful? Give feedback.
-
Hi, I am just rising a few questions on assumptions: |
Beta Was this translation helpful? Give feedback.
-
I started with some experiments at https://github.com/OpenSourceAWE/OptimalFlightPaths.jl |
Beta Was this translation helpful? Give feedback.
-
Hi all, Thanks for the stimulating discussion — I’d like to share a few points based on my current work and related modeling efforts. 1. On the Dynamic Model I’d recommend aiming for a simplified model that still captures the key dynamics. A point-mass or simplified rigid-body kite model should be sufficient for most optimization tasks. For the tether, a quasi-static straight-segment approximation might be enough to account for both weight and drag, while keeping the computational cost low. One advantage of a point-mass model is that it requires fewer parameters to estimate — in particular, you avoid the need to identify rotational inertias and aerodynamic moments, which are often difficult to obtain accurately for soft kites. This makes it well-suited for early-stage design, model-based optimization, or parameter sweeps. I’m currently working on a point-mass model for soft kites that explicitly resolves the angle of attack, so that aerodynamic polars can be used as input. This adds realism while keeping the model compact. In my current model, the required inputs are::
In addition to the previously mentioned constraints I would add a minimum elevation angle. Regarding drag estimation, as noted earlier, lifting-line models (VSM) and even CFD methods tend to underestimate drag, especially for soft kites. In my case, I’ve applied corrections based on experimental data. However, these corrections are likely kite-type dependent — ideally, characterization data should be available for different kite types (e.g., ram-air, inflatable, hybrid) to ensure reliable simulations. 2. On the Optimization Method For trajectory optimization, I’d recommend parameterizing the flight path (e.g., figure-eight or circular loops) using a small number of shape parameters (between 2 and 10 for reel-out or ship-propulsion scenarios). With this approach, you can formulate a direct optimal control problem, where the path shape is parameterized and the steering inputs are solved as part of the NLP. The main motivation is to avoid developing a dedicated closed-loop controller: the solver computes both the optimal control actions and the resulting trajectory, given the system dynamics and constraints. 3. On Wind Profile and Veer In ship propulsion scenarios, wind shear and veer may play a smaller role than in classic AWE systems, especially at low elevation angles. That said, including a simple wind profile and veer model is feasible and adds robustness to the optimization without much overhead — so I’d recommend including it when possible. Let me know if there’s anything critical I’m missing — I’d be glad to refine this further. Also happy to share some numerical examples once my current model is running robustly. |
Beta Was this translation helpful? Give feedback.
-
In response to your concerns about calculating optimal trajectories, I’d like to share some thoughts based on my thesis experience. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I don't have a good plan how to calculate an optimized flight path. Depending on the system configuration and wind speed there are different flight paths to optimize. A quite simple, but useful optimization would be the optimization of a figure of eight for pulling ships at low ship speeds. Questions:
It would be helpful to define the minimal useful set of features of such an optimizer, and then implement it.
Beta Was this translation helpful? Give feedback.
All reactions