{ "cells": [ { "cell_type": "markdown", "id": "11badd4e", "metadata": {}, "source": [ "# iLQR: swinging up a torque-limited pendulum\n", "\n", "This notebook solves a non-linear optimal control problem with the **iterative LQR** solver `diffilqrax.ilqr.ilqr_solver`. A pendulum starts hanging down and must be swung up to the upright position within $T\\,\\delta t = 5$ s. The motor cannot lift it directly, because the torque limit is smaller than $mgl$, so the solver has to discover a pumping strategy.\n", "\n", "**Dynamics.** With angle $\\phi$ measured from hanging down,\n", "\n", "$$\n", "\\ddot\\phi = -\\frac{g}{l}\\sin\\phi - b\\,\\dot\\phi + \\frac{u}{m l^2},\n", "$$\n", "\n", "discretised with an Euler step. The state is $x = (\\phi, \\dot\\phi)$.\n", "\n", "**Cost.** There is a small running cost on being away from upright, on velocity and on torque, plus a smooth barrier that keeps $|u| \\lesssim u_{\\max}$. A large terminal cost asks for upright ($\\phi = \\pm\\pi$) and still.\n", "\n", "**How iLQR works.** Each iteration takes the current trajectory $(\\bar x, \\bar u)$ and forms a local LQR problem from first-order dynamics and second-order cost expansions. These are computed with `jax.jacfwd`/`jax.hessian`, so no hand-written derivatives are needed. The solver then:\n", "\n", "1. solves the local LQR with a Riccati backward pass, adding Levenberg–Marquardt regularisation to the input Hessian until it is positive definite;\n", "2. rolls out the non-linear dynamics under the new feedback policy $u_t = \\bar u_t + \\alpha k_t + K_t(x_t - \\bar x_t)$, choosing $\\alpha$ with an Armijo line search.\n", "\n", "It stops when the input gradient of the Lagrangian $\\max_t|\\partial L/\\partial u_t|$ falls below `kkt_tol`." ] }, { "cell_type": "code", "execution_count": 1, "id": "1cdb0bc1", "metadata": { "execution": { "iopub.execute_input": "2026-10-14T22:44:10.770231Z", "iopub.status.busy": "2026-10-14T22:44:10.770026Z", "iopub.status.idle": "2026-10-14T22:44:11.403343Z", "shell.execute_reply": "2026-10-14T22:44:11.402840Z" } }, "outputs": [], "source": [ "import jax\n", "import jax.numpy as jnp\n", "import jax.random as jr\n", "import matplotlib.pyplot as plt\n", "\n", "from diffilqrax.ilqr import ilqr_solver, ilqr_simulate, approx_lqr, kkt_input_residual\n", "from diffilqrax.typs import System, ModelDims, iLQRParams, PendulumParams\n", "\n", "jax.config.update(\"jax_enable_x64\", True)" ] }, { "cell_type": "markdown", "id": "15685e15", "metadata": {}, "source": [ "## Defining the model\n", "\n", "A `diffilqrax.typs.System` bundles three functions and the problem dimensions:\n", "\n", "- `cost(t, x, u, theta)` is the running cost,\n", "- `costf(x, theta)` is the terminal cost,\n", "- `dynamics(t, x, u, theta)` returns $x_{t+1}$.\n", "\n", "`theta` can be any pytree of parameters. Here it is a `PendulumParams(m, l, g)`. Keeping parameters in `theta` instead of hard-coding them is what makes them differentiable later (see [gradients through iLQR](gradients_through_ilqr.ipynb))." ] }, { "cell_type": "code", "execution_count": 2, "id": "c37a21d4", "metadata": { "execution": { "iopub.execute_input": "2026-10-14T22:44:11.406948Z", "iopub.status.busy": "2026-10-14T22:44:11.406702Z", "iopub.status.idle": "2026-10-14T22:44:11.728722Z", "shell.execute_reply": "2026-10-14T22:44:11.728076Z" } }, "outputs": [], "source": [ "DT, DAMPING, U_MAX, HORIZON = 0.05, 0.1, 3.0, 100\n", "dims = ModelDims(n=2, m=1, horizon=HORIZON, dt=DT)\n", "\n", "\n", "def dynamics(t, x, u, theta):\n", " \"\"\"Euler step; x = [angle, angular velocity], angle 0 is hanging down\"\"\"\n", " acc = -theta.g / theta.l * jnp.sin(x[0]) - DAMPING * x[1] + u[0] / (theta.m * theta.l**2)\n", " return x + DT * jnp.stack([x[1], acc])\n", "\n", "\n", "def cost(t, x, u, theta):\n", " \"\"\"Small running cost on angle, velocity and torque, plus a smooth barrier at |u| = U_MAX\"\"\"\n", " barrier = jax.nn.softplus(5.0 * (u - U_MAX)) ** 2 + jax.nn.softplus(5.0 * (-u - U_MAX)) ** 2\n", " return 0.1 * (1.0 + jnp.cos(x[0])) + 0.01 * x[1] ** 2 + 0.01 * jnp.sum(u**2) + jnp.sum(barrier)\n", "\n", "\n", "def costf(x, theta):\n", " \"\"\"Be upright (angle ±pi) and still at the final time\"\"\"\n", " return 50.0 * (1.0 + jnp.cos(x[0])) + 5.0 * x[1] ** 2\n", "\n", "\n", "model = System(cost, costf, dynamics, dims)\n", "params = iLQRParams(x0=jnp.array([0.1, 0.0]), theta=PendulumParams(m=1.0, l=1.0, g=9.8))\n", "Us_init = 0.5 * jr.normal(jr.PRNGKey(0), (HORIZON, 1))\n", "time = jnp.arange(HORIZON + 1) * DT" ] }, { "cell_type": "markdown", "id": "fa1dc77e", "metadata": {}, "source": [ "## Solving\n", "\n", "The solver returns `((Xs, Us, lambdas), total_cost, cost_history)`. `cost_history` has length\n", "`max_iter`; after convergence its entries stay constant at the final cost." ] }, { "cell_type": "code", "execution_count": 3, "id": "c4112e8a", "metadata": { "execution": { "iopub.execute_input": "2026-10-14T22:44:11.732565Z", "iopub.status.busy": "2026-10-14T22:44:11.732229Z", "iopub.status.idle": "2026-10-14T22:44:20.503224Z", "shell.execute_reply": "2026-10-14T22:44:20.502320Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "cost: 118.408 (initial) -> 17.897 (optimal)\n", "max|dL/du| = 8.7e-11\n", "final angle -3.140 rad (upright = ±3.142), max|u| = 2.52\n" ] } ], "source": [ "(Xs, Us, lambdas), total_cost, cost_log = ilqr_solver(model, params, Us_init, max_iter=300)\n", "\n", "(X_init, _), J_init = ilqr_simulate(model, Us_init, params)\n", "residual = kkt_input_residual(approx_lqr(model, Xs, Us, params))\n", "print(f\"cost: {float(J_init):.3f} (initial) -> {float(total_cost):.3f} (optimal)\")\n", "print(f\"max|dL/du| = {jnp.max(jnp.abs(residual)):.1e}\")\n", "print(f\"final angle {float(Xs[-1, 0]):.3f} rad (upright = ±{jnp.pi:.3f}), max|u| = {float(jnp.abs(Us).max()):.2f}\")" ] }, { "cell_type": "code", "execution_count": 4, "id": "25e2c9af", "metadata": { "execution": { "iopub.execute_input": "2026-10-14T22:44:20.506351Z", "iopub.status.busy": "2026-10-14T22:44:20.506095Z", "iopub.status.idle": "2026-10-14T22:44:22.157169Z", "shell.execute_reply": "2026-10-14T22:44:22.156419Z" }, "tags": [ "thumbnail" ] }, "outputs": [ { "data": { "image/png": "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K6S//bY0w9AYIiLSfpP6hzJvan+e+WY/f/54J2f3DyXIx3VGootI53GaYteyZctafbx06VLCwsLYvHkz5557rkGpRKQrWSwWLBaL0TGkG5s3bx6ffPIJK1euJDo6+oTHeXp64unp2YXJnNShTfZbZx3VBdAr3n5blglWK7jICEYRkZ5i3vn9+XxHPvsLq/jrZ2k8cmWi0ZFExAk47W98p+rHAvaeLBUVFa02ERFxPTabjXnz5vHBBx/wzTffkJCQYHQk11Caab8NHWBsjjMREAVmN2hugMo8o9OIiEg7ebpZ+NvlIwB4e1MO6w4WG5xIRJyBUxa72tKPBew9WQIDAx2bpqiIiLim2267jddee43XX38df39/8vPzyc/Pp7a21uhozq3ikP020InPnxa3H/JrKqOIiFMaGx/MdRNiAXjwk11YrVqhW0ROzimLXS39WN58882THrdgwQLKy8sdW3Z2dhclFBGRrvT8889TXl7OlClT6NOnj2N76623jI7m3Mpz7LcBUcbmOFMtUxlV7BIRcVp3XzgIf083duZW8GHqIaPjiEg353TFrpZ+LN9+++1J+7GAvSdLQEBAq01ERFyPzWY77jZnzhyjozkvq/WokV0nP992eyp2iUgnmjVrFr169eLKK680OopLC/b14Nap9kVHHv1iD3WNzQYnEpHuzGmKXerHIiIi0oVqiux9rjBBgJMv9a5il4h0ojvvvJNXXnnF6Bg9wtzJ8UQFeZNXXsfSNRlGxxGRbsxpil3qxyIiItKFyo9M/fcLB4u7sVnOlIpdItKJpkyZgr+/v9ExegQvdwv/d8FAAF5YeZCahiaDE4lId+U0xS71YxEREelC5S4yhRFU7BLpwVauXMkll1xCZGQkJpOJDz/88JhjnnvuOeLj4/Hy8mLChAls2LCh64NKm80cFUlssA/F1Q38d12W0XFEpJtymmKX+rGIiIh0IUe/LidvTg8/FLuqC6Gh2tAoItK1qqurSUxM5Lnnnjvu42+99Rbz58/n/vvvJyUlhcTERKZPn05hYaHjmFGjRjF8+PBjttzc3K76MuQobhYz84707vrXyoPUNqh3l4gcy83oACIiItINtazEGBhjbI6O4B0EXkFQVwalmRA+1OBAItJVZsyYwYwZM074+OOPP87NN9/M3LlzAVi8eDGffvopL730Evfeey8AqampHZKl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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, axes = plt.subplots(1, 3, figsize=(12, 3.2), layout=\"constrained\")\n", "axes[0].plot(time, X_init[:, 0], c=\"0.6\", label=\"initial\")\n", "axes[0].plot(time, Xs[:, 0], c=\"C0\", label=\"iLQR\")\n", "for s in (-1, 1):\n", " axes[0].axhline(s * jnp.pi, ls=\":\", c=\"k\")\n", "axes[0].set(xlabel=\"time (s)\", ylabel=\"angle (rad)\")\n", "axes[0].legend()\n", "axes[1].plot(time[:-1], Us[:, 0], c=\"C1\")\n", "for s in (-1, 1):\n", " axes[1].axhline(s * U_MAX, ls=\":\", c=\"k\")\n", "axes[1].set(xlabel=\"time (s)\", ylabel=\"torque\")\n", "axes[2].semilogy(cost_log - cost_log.min() + 1e-12)\n", "axes[2].set(xlabel=\"iteration\", ylabel=r\"$J - J^\\star$\");" ] }, { "cell_type": "markdown", "id": "e9885061", "metadata": {}, "source": [ "The torque limit is well below $mgl$, so the solver discovers a pump: it swings one way, then\n", "the other, and finally over the top, all while staying within the limit. The cost drops by most of\n", "its initial value within the first ~20 iterations. After that the solver converges linearly down to\n", "the round-off level of the cost. The default first trial step is\n", "$\\alpha = \\tau \\cdot \\texttt{alpha\\_init} = 0.5$, which is cautious but robust." ] }, { "cell_type": "code", "execution_count": 5, "id": "4b6ff506", "metadata": { "execution": { "iopub.execute_input": "2026-10-14T22:44:22.160152Z", "iopub.status.busy": "2026-10-14T22:44:22.159939Z", "iopub.status.idle": "2026-10-14T22:44:22.303317Z", "shell.execute_reply": "2026-10-14T22:44:22.302510Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(4, 4))\n", "for i in range(0, HORIZON + 1, 4):\n", " px, py = jnp.sin(Xs[i, 0]), -jnp.cos(Xs[i, 0])\n", " ax.plot([0, px], [0, py], c=plt.cm.viridis(i / HORIZON), alpha=0.8)\n", "ax.set(aspect=\"equal\", xlim=(-1.2, 1.2), ylim=(-1.2, 1.2), xticks=[], yticks=[], title=\"colour = time\");" ] }, { "cell_type": "markdown", "id": "dcd37d35", "metadata": {}, "source": [ "## How to adapt\n", "\n", "- **Your own system:** replace `dynamics` with any differentiable JAX function of `(t, x, u, theta)` and update `ModelDims(n, m, horizon, dt)`. For stiff or fast dynamics, use a better integrator (for example RK4) inside `dynamics`.\n", "- **Costs:** any twice-differentiable scalar function works. Use smooth penalties (softplus, as here) for limits, because hard `clip`/`max` have zero curvature and slow iLQR down.\n", "- **Initial guess:** iLQR is a local method. A non-zero `Us_init` (here a little noise) can break symmetries, and a feasible heuristic speeds up hard problems.\n", "- **Convergence:** `kkt_tol` (default `1e-10`) sets the stopping test and `max_iter` caps the iterations. Line-search options (`tau`, `beta`, `alpha_min`, `max_iter_linesearch`) are passed through as keyword arguments. `alpha_init=2.0` makes the first trial a full Newton step ($\\alpha = 1$).\n", "- **Compile once, solve many:** wrap the call in `jax.jit` (with `model` closed over) when solving repeatedly, for example in MPC or in a training loop." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.11" } }, "nbformat": 4, "nbformat_minor": 5 }