Ducted Fan: Difference between revisions
RobertLampel (talk | contribs) No edit summary |
RobertLampel (talk | contribs) |
||
| (9 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
{{Dimensions | {{Dimensions | ||
|nd = 1 | |nd = 1 | ||
|nx = | |nx = 6 | ||
|nw = | |nw = 3 | ||
}} | }} | ||
| Line 13: | Line 13: | ||
== Mathematical formulation == | == Mathematical formulation == | ||
We summarize the states as <math>x := (x_1, v_1, x_2, v_2, \alpha, v_\alpha)</math>. | |||
<p> | <p> | ||
<math> | <math> | ||
\begin{array}{lll} | \begin{array}{lll} | ||
\displaystyle \min_{u} && \frac{1}{ | \displaystyle \min_{u, t_\mathrm{f}} && \frac{1}{t_\mathrm{f}} \int_0^{t_\mathrm{f}} \left( 2 u_1^2(t) + u_2^2(t) \right) \mathrm{d}t + \mu \, t_\mathrm{f} \\ | ||
\text{subject to} \\ | \text{subject to} \\ | ||
\quad \dot{ | \quad \dot{x_1}(t) & = & v_1(t),\\ | ||
\quad \dot{ | \quad \dot{v_1}(t) & = & \frac{1}{m} \left( u_1 \cos \alpha - u_2 \sin \alpha \right), \\ | ||
\quad \dot{x_2}(t) & = & | \quad \dot{x_2}(t) & = & v_2(t), \\ | ||
\quad \dot{ | \quad \dot{v_2}(t) & = & \frac{1}{m} \left( -\mathrm{mg} + u_1 \sin \alpha + u_2 \cos \alpha \right), \\ | ||
\quad | \quad \dot{\alpha} & = & v_\alpha, \\ | ||
\quad | \quad \dot{v}_\alpha & = & \frac{r}{J} u_1, \\ | ||
\quad | \quad x(0) &=& (0, 0, 0, 0, 0, 0)^T, \\ | ||
\quad x(t_\mathrm{f}) &=& (1, 0, 0, 0, 0, 0)^T, \\ | |||
\quad u_1(t) & \in & [-5, 5] \ & \forall t \in [0,t_\mathrm{f}], \\ | |||
\quad u_2(t) & \in & [0, 17] \ & \forall t \in [0,t_\mathrm{f}], \\ | |||
\quad \alpha(t) & \in & [-30, 30] \ & \forall t \in [0,t_\mathrm{f}] | |||
\end{array} | \end{array} | ||
</math> | </math> | ||
| Line 34: | Line 40: | ||
{| border="1" align="center" cellpadding="5" cellspacing="0" | {| border="1" align="center" cellpadding="5" cellspacing="0" | ||
|- bgcolor=#c7c7c7 | |- bgcolor=#c7c7c7 | ||
! Symbol !! Value | ! Symbol !! Value | ||
|- | |- | ||
| align=center | <math> | | align=center | <math>m</math> || align=right | 2.2 <math>\mathrm{kg}</math> | ||
|- | |- | ||
| align=center | <math> | | align=center | <math>J</math> || align=right | 0.05 <math>\mathrm{kg \cdot m^2}</math> | ||
|- | |- | ||
| align=center | <math> | | align=center | <math>r</math> || align=right | 0.2 <math>\mathrm{m}</math> | ||
|- | |- | ||
| align=center | <math> | | align=center | <math>\mathrm{mg}</math> || align=right | 4 <math>\mathrm{N}</math> | ||
|- | |- | ||
| align=center | <math> | | align=center | <math>\mu</math> || align=right | 1 | ||
|} | |} | ||
The weight <math>\mu</math> balances control effort and transition time. | |||
== Reference Solutions == | == Reference Solutions == | ||
| Line 55: | Line 59: | ||
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:Ducted_Fan.png| States and discretized control for a local optimum. | ||
</gallery> | </gallery> | ||
| Line 63: | Line 67: | ||
== 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/ducted_fan.md<br> | ||
[[Category:MIOCP]] | [[Category:MIOCP]] | ||
[[Category:ODE model]] | [[Category:ODE model]] | ||
Latest revision as of 10:43, 28 November 2025
| Ducted Fan | |
|---|---|
| State dimension: | 1 |
| Differential states: | 6 |
| Discrete control functions: | 3 |
The Ducted Fan problem is a classical nonlinear benchmark in optimal control with multiple input and state constraints. This description is taken from [1].
It models the planar motion of a ducted fan aircraft, described by its horizontal and vertical positions , the angle with respect to the vertical, and their velocities . The inputs are the body-fixed thrust components , generated by moving flaps at the end of the duct.
The objective is to steer the fan from the origin to a horizontal position of at altitude , with zero final velocities and attitude, in a free final time , while minimising a trade-off between control effort and transition time.
Mathematical formulation
We summarize the states as .
Parameters
These fixed values are used within the model:
| Symbol | Value |
|---|---|
| 2.2 | |
| 0.05 | |
| 0.2 | |
| 4 | |
| 1 |
The weight balances control effort and transition time.
Reference Solutions
Here is one local solution to the above control problem.
- Reference solution plots
-
States and discretized control for a local optimum.
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/ducted_fan.md