Jump to content

Jackson: Difference between revisions

From mintOC
 
Line 47: Line 47:
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:Jackson.png| States and discretized control for a local optimum.
  Image:Jackson.png| States and discretized control for a local optimum.
</gallery>
</gallery>

Latest revision as of 10:42, 28 November 2025

Jackson
State dimension: 1
Differential states: 3
Discrete control functions: 1


The Jackson problem is a classical benchmark in optimal control. This description is taken from [1].

It consists of controlling a three-dimensional system in which the first two states interact linearly under the effect of a single control input, while the third state accumulates based on the complementary control. The objective is to minimise the third state at the final time, while satisfying bounds on states and control, as well as initial and terminal conditions. The problem exhibits singular arcs, making it a useful benchmark for testing direct transcription and nonlinear programming methods.

Mathematical formulation

minux3(tf)subject tox1˙(t)=u(t)(k1x1(t)k2x2(t)),x2˙(t)=u(t)(k1x1(t)k2x2(t))(1u(t))k3x2(t),x3˙(t)=(1u(t))k3x2(t),x(0)=(1,0,0)T,xi(t)[0,1.1] t[0,tf], i{1,2,3},u(t)[0,1] t[0,tf]

Parameters

These fixed values are used within the model:

Symbol Value Description
k1 1 Interaction between x1 and x2
k2 10 Interaction between x1 and x2
k3 1 Growth of x3 under complementary control
tf 1 Horizon of the control problem

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/jackson.md