Hang Glider: Difference between revisions
RobertLampel (talk | contribs) Created page with "{{Dimensions |nd = 1 |nx = 4 |nw = 2 }} The '''Hang Glider problem''' is a classical benchmark in optimal control. This description is taken from [1]. It consists of steering a hang glider from an initial horizontal position and altitude to a target altitude while maximising the horizontal distance travelled. The glider dynamics incorporate lift, drag, gravity, and the effect of a thermal updraft. The control variable is the lift coeff..." |
RobertLampel (talk | contribs) |
||
| (12 intermediate revisions by the same user not shown) | |||
| Line 19: | Line 19: | ||
\quad \dot{x}(t) & = & v_x(t),\\ | \quad \dot{x}(t) & = & v_x(t),\\ | ||
\quad \dot{y}(t) & = & v_y(t), \\ | \quad \dot{y}(t) & = & v_y(t), \\ | ||
\quad \dot{ | \quad \dot{v}_x(t) & = & - \frac{L(t) \cdot w(t) + D(t) \cdot v_x(t)}{mv(t)}, \\ | ||
\quad \dot{ | \quad \dot{v}_y(t) & = & \frac{L(t) \cdot v_x(t) - D(t) \cdot w}{mv(t)} - g, \\ | ||
\quad | \quad x(t) & \geq & 0 \ \quad & \forall t \in [0, t_f], \\ | ||
\quad v_x(t) & \geq & 0 \ \quad & \forall t \in [0, t_f], \\ | |||
\quad x(0) & = & (x_0, y_0, v_{x,0}, v_{y,0})^T, \\ | \quad x(0) & = & (x_0, y_0, v_{x,0}, v_{y,0})^T, \\ | ||
\quad y(t_f) & = & y_f \\ | \quad y(t_f) & = & y_f \\ | ||
\quad v_x(t_f) & = & v_{x,f} \\ | \quad v_x(t_f) & = & v_{x,f} \\ | ||
\quad v_y(t_f) & = & v_{y,f} \\ | \quad v_y(t_f) & = & v_{y,f} \\ | ||
\quad c_L(t) & \in & [0., 1.4] \ \quad & \forall t \in [0, t_f], \\ | |||
\quad t_f & \geq & 0 | |||
\end{array} | \end{array} | ||
</math> | </math> | ||
| Line 31: | Line 34: | ||
with the auxiliary equations: | with the auxiliary equations: | ||
<p> | |||
<math> | <math> | ||
\begin{align} | |||
w = v_y - U_\text{updraft}(x), \\ | r(t) &= \left( \frac{x(t)}{r_c} - 2.5 \right)^2, \\ | ||
U_\text{updraft}(x(t)) &= u_c\, (1 - r(t)) \cdot \exp\left(-r(t)\right), \\ | |||
D = \frac{1}{2} \rho S (c_0 + c_1 c_L^2) v^2, \\ | w(t) &= v_y(t) - U_\text{updraft}(x(t)), \\ | ||
v(t) &= \sqrt{v_x(t)^2 + w(t)^2}, \\ | |||
D(t) &= \frac{1}{2} \rho S (c_0 + c_1 c_L(t)^2) \cdot v(t)^2, \\ | |||
L(t) &= \frac{1}{2} \rho S c_L(t) v(t)^2. | |||
\end{align} | |||
</math> | </math> | ||
</p> | |||
== Parameters == | == Parameters == | ||
| Line 47: | Line 54: | ||
! Symbol !! Value !! Description | ! Symbol !! Value !! Description | ||
|- | |- | ||
| align=center | <math> | | align=center | <math>x_0</math> || align=right | 0 || Initial horizontal position | ||
|- | |- | ||
| align=center | <math> | | align=center | <math>y_0</math> || align=right | 1000 || Initial altitude | ||
|- | |- | ||
| align=center | <math> | | align=center | <math>y_f</math> || align=right | 900 || Final altitude | ||
|- | |||
| align=center | <math>v_{x,0}</math> || align=right | 13.23 || Initial horizontal velocity | |||
|- | |||
| align=center | <math>v_{x,f}</math> || align=right | 13.23 || Final horizontal velocity | |||
|- | |||
| align=center | <math>v_{y,0}</math> || align=right | -1.288 || Initial vertical velocity | |||
|- | |||
| align=center | <math>v_{y,f}</math> || align=right | -1.288 || Final vertical velocity | |||
|- | |||
| align=center | <math>u_c</math> || align=right | 2.5 || | |||
|- | |||
| align=center | <math>r_c</math> || align=right | 100 || | |||
|- | |||
| align=center | <math>c_0</math> || align=right | 0.034 || | |||
|- | |||
| align=center | <math>c_1</math> || align=right | 0.069662 || | |||
|- | |||
| align=center | <math>S</math> || align=right | 14 || Wing area | |||
|- | |||
| align=center | <math>\rho</math> || align=right | 1.13 || Air density | |||
|- | |||
| align=center | <math>m</math> || align=right | 100 || Mass of the glider | |||
|- | |- | ||
| align=center | <math> | | align=center | <math>g</math> || align=right | 9.81 || Gravitational constant | ||
|} | |} | ||
| Line 60: | Line 89: | ||
Here is one local solution to the above control problem. | Here is one local solution to the above control problem. | ||
<gallery caption="Reference solution plots" widths=" | <gallery caption="Reference solution plots" widths="500px" heights="300px" perrow="1"> | ||
Image: | Image:Hang_Glider.png| States and discretized control for a local optimum. The initial guess for <math>t_f</math> was chosen as 100. | ||
</gallery> | </gallery> | ||
| Line 68: | Line 97: | ||
== References == | == References == | ||
<span id="OCPjl">[1]</span> Caillau, J.-B., Cots, O., Gergaud, J., & Martinon, P. OptimalControlProblems.jl: a collection of optimal control problems with ODE's in Julia. https://github.com/control-toolbox/OptimalControlProblems.jl/blob/main/ext/Descriptions/ | <span id="OCPjl">[1]</span> Caillau, J.-B., Cots, O., Gergaud, J., & Martinon, P. OptimalControlProblems.jl: a collection of optimal control problems with ODE's in Julia. https://github.com/control-toolbox/OptimalControlProblems.jl/blob/main/ext/Descriptions/glider.md<br> | ||
[[Category:MIOCP]] | [[Category:MIOCP]] | ||
[[Category:ODE model]] | [[Category:ODE model]] | ||
Latest revision as of 12:23, 18 February 2026
| Hang Glider | |
|---|---|
| State dimension: | 1 |
| Differential states: | 4 |
| Discrete control functions: | 2 |
The Hang Glider problem is a classical benchmark in optimal control. This description is taken from [1].
It consists of steering a hang glider from an initial horizontal position and altitude to a target altitude while maximising the horizontal distance travelled. The glider dynamics incorporate lift, drag, gravity, and the effect of a thermal updraft. The control variable is the lift coefficient , which modulates the aerodynamic lift and influences the trajectory through the thermal region.
Mathematical formulation
with the auxiliary equations:
Parameters
These fixed values are used within the model:
| Symbol | Value | Description |
|---|---|---|
| 0 | Initial horizontal position | |
| 1000 | Initial altitude | |
| 900 | Final altitude | |
| 13.23 | Initial horizontal velocity | |
| 13.23 | Final horizontal velocity | |
| -1.288 | Initial vertical velocity | |
| -1.288 | Final vertical velocity | |
| 2.5 | ||
| 100 | ||
| 0.034 | ||
| 0.069662 | ||
| 14 | Wing area | |
| 1.13 | Air density | |
| 100 | Mass of the glider | |
| 9.81 | Gravitational constant |
Reference Solutions
Here is one local solution to the above control problem.
- Reference solution plots
-
States and discretized control for a local optimum. The initial guess for was chosen as 100.
Miscellaneous and Further Reading
This formulation and a detailed description can be found in [1].
References
[1] Caillau, J.-B., Cots, O., Gergaud, J., & Martinon, P. OptimalControlProblems.jl: a collection of optimal control problems with ODE's in Julia. https://github.com/control-toolbox/OptimalControlProblems.jl/blob/main/ext/Descriptions/glider.md