Jump to content

Ducted Fan: Difference between revisions

From mintOC
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Dimensions
{{Dimensions
|nd        = 1
|nd        = 1
|nx        = 4
|nx        = 6
|nw        = 1
|nw        = 3
}}
}}


Line 28: Line 28:
\quad x(0) &=& (0, 0, 0, 0, 0, 0)^T, \\
\quad x(0) &=& (0, 0, 0, 0, 0, 0)^T, \\
\quad x(t_\mathrm{f}) &=& (1, 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] \ \quad \forall t \in [0,t_\mathrm{f}], \\
\quad u_1(t) & \in & [-5, 5] \ & \forall t \in [0,t_\mathrm{f}], \\
\quad u_2(t) & \in & [0, 17] \ \quad \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] \ \quad \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 59: 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="180px" heights="140px" perrow="1">
<gallery caption="Reference solution plots" widths="500px" heights="300px" perrow="1">
  Image:Ducted_Fan.png| States and discretized control for a local optimum.
  Image:Ducted_Fan.png| States and discretized control for a local optimum.
</gallery>
</gallery>
Line 67: 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/double_oscillator.md<br>
<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 (x1,x2) , the angle α with respect to the vertical, and their velocities (v1,v2,vα) . The inputs are the body-fixed thrust components (u1,u2) , 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 1m at altitude 0, with zero final velocities and attitude, in a free final time tf, while minimising a trade-off between control effort and transition time.

Mathematical formulation

We summarize the states as x:=(x1,v1,x2,v2,α,vα).

minu,tf1tf0tf(2u12(t)+u22(t))dt+μtfsubject tox1˙(t)=v1(t),v1˙(t)=1m(u1cosαu2sinα),x2˙(t)=v2(t),v2˙(t)=1m(mg+u1sinα+u2cosα),α˙=vα,v˙α=rJu1,x(0)=(0,0,0,0,0,0)T,x(tf)=(1,0,0,0,0,0)T,u1(t)[5,5] t[0,tf],u2(t)[0,17] t[0,tf],α(t)[30,30] t[0,tf]

Parameters

These fixed values are used within the model:

Symbol Value
m 2.2 kg
J 0.05 kgm2
r 0.2 m
mg 4 N
μ 1

The weight μ balances control effort and transition time.

Reference Solutions

Here is one local solution to the above control problem.

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