Skip to content

Commit 5225f9a

Browse files
committed
Add tutorial list table to index.md and @id anchors to 4 tutorials
1 parent 89764f7 commit 5225f9a

5 files changed

Lines changed: 22 additions & 6 deletions

File tree

docs/src/index.md

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,25 @@
1-
# Tutorials
1+
# Getting Started
22

33
This collection of tutorials is part of the [control-toolbox ecosystem](https://github.com/control-toolbox). The control-toolbox ecosystem gathers Julia packages for mathematical control and applications. It aims to provide tools to model and solve optimal control problems with ordinary differential equations by direct and indirect methods, both on CPU and GPU. If you want to define an optimal control problem and solve it, please check the [documentation](https://control-toolbox.org/OptimalControl.jl).
44

55
From this page, you can find a list of tutorials to solve optimal control problems with OptimalControl.
66

7+
## Available tutorials
8+
9+
| Tutorial | Description |
10+
| :------- | :---------- |
11+
| **[Discrete continuation](@ref tutorial-continuation)** | Uses warm start to implement a discrete continuation method, solving a sequence of OCPs where each solution initializes the next. |
12+
| **[Discretisation methods](@ref tutorial-discretisation-methods)** | Compares discretisation schemes (trapeze, midpoint, Gauss-Legendre…) and automatic differentiation backends on the Goddard problem. |
13+
| **[Free final time](@ref tutorial-free-times-final)** | OCP with a free final time `tf`, solved by direct transcription and indirect shooting on a double integrator. |
14+
| **[Free initial time](@ref tutorial-free-times-initial)** | OCP with a free initial time `t0`, solved by direct transcription and indirect shooting on a double integrator. |
15+
| **[Free initial and final times](@ref tutorial-free-times-final-initial)** | OCP with both initial and final times as free optimization variables. |
16+
| **[NLP manipulations](@ref tutorial-nlp)** | Low-level decomposition of `solve`: discretize the OCP, build an NLP model, solve it with an NLP solver, and rebuild the OCP solution. |
17+
| **[Indirect simple shooting](@ref tutorial-indirect-simple-shooting)** | Implements the indirect simple shooting method on a simple example. |
18+
| **[Goddard: direct, indirect](@ref tutorial-goddard)** | Solves the Goddard rocket problem (maximize altitude) with both direct and indirect methods, including singular and boundary arcs. |
19+
| **[Linear–quadratic regulator](@ref tutorial-lqr)** | A simple LQR example illustrating how to solve a linear-quadratic OCP. |
20+
| **[Minimal action](@ref tutorial-mam)** | Applies the Minimal Action Method (MAM) to find the most probable transition pathway between stable states in a stochastic system. |
21+
| **[Model Predictive Control](@ref tutorial-mpc)** | Implements MPC for ship navigation in a sea current, with a real-time replanning loop. |
22+
723
## Reproducibility
824

925
```@setup main
@@ -61,4 +77,4 @@ Pkg.status(; mode = PKGMODE_MANIFEST) # hide
6177

6278
```@raw html
6379
</details>
64-
```
80+
```

docs/src/tutorial-continuation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Discrete continuation
1+
# [Discrete continuation](@id tutorial-continuation)
22

33
By using the warm start option, it is easy to implement a basic discrete continuation method, in which a sequence of problems is solved by using each solution as the initial guess for the next problem. This approach typically leads to faster and more reliable convergence than solving each problem with the same initial guess and is particularly useful for problems that require a good initial guess to converge.
44

docs/src/tutorial-lqr.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# A simple Linear–quadratic regulator example
1+
# [A simple Linear–quadratic regulator example](@id tutorial-lqr)
22

33
## Problem statement
44

docs/src/tutorial-mam.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Minimal Action Method using Optimal Control
1+
# [Minimal Action Method using Optimal Control](@id tutorial-mam)
22

33
The Minimal Action Method (MAM) is a numerical technique for finding the most probable transition pathway between stable states in stochastic dynamical systems. It achieves this by minimizing an action functional that represents the path's deviation from the deterministic dynamics, effectively identifying the path of least resistance through the system's landscape.
44

docs/src/tutorial-mpc.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Navigation problem, MPC approach
1+
# [Navigation problem, MPC approach](@id tutorial-mpc)
22

33
We consider a ship in a constant current $w=(w_x,w_y)$, where $\|w\|<1$. The [heading angle](https://en.wikipedia.org/wiki/Heading) is controlled, leading to the following differential equations:
44

0 commit comments

Comments
 (0)