{
    "componentChunkName": "component---src-layouts-default-js",
    "path": "/projects/lyapunov_switch/",
    "result": {"data":{"mdx":{"id":"5bbfe685-96aa-5ece-95c5-ecbfb420513b","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Fuel Optimality in Lyapunov Control\",\n  \"image_src\": \"/images/projects/lyapunov_switch/lyapunov_switch_thumbnail.png\",\n  \"date\": \"2026-09-30T00:00:00.000Z\",\n  \"ongoing\": true,\n  \"categories\": [\"mad\"],\n  \"outcome\": [\"MAD-con-111\"]\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Image = makeShortcode(\"Image\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h2\", null, \"Project overview\"), mdx(\"p\", null, \"Control Lyapounov Functions (CLFs) \", \"[5]\", \" provide a framework for designing closed-loop, feedback-driven control laws for spacecraft trajectory design, guidance, and control applications. By enforcing the monotonic decrease of a suitably chosen Lyapunov function, CLF-based controllers guarantee closed-loop stability and robustness to disturbances. \"), mdx(\"p\", null, \"In their basic form, most CLF-based controllers are typically formulated for continuous spacecraft thrusting. As such, they are often good at time-optimal many-revolution transfers. In this work, instead of considering the design, shape or optimisation of the CLFs themselves, we study the comparatively under-explored mechanisms for switching between thrusting and coasting arcs, which has a notable impact on fuel-optimality.\"), mdx(\"h3\", null, \"Linking CLFs with Optimal Control Theory\"), mdx(\"p\", null, \"This project, in particular, explores the link between CLFs and Optimal Control Theory. Existing works on the link between OCT and CLFs \", \"[1, 2]\", \" focus on the structure of the CLF and instead in this project we extend the link to the fuel-optimal switching strategy. We are motivated by the fact that CLFs are an approximation of the time-optimal value function, which is tricky to solve for directly as its the solution to the Hamiltonian-Jacobi-Bellman equations.\"), mdx(\"p\", null, \"By creating a pseudo-Hamiltonian where the state costates are replaced by the spatial derivative of the CLF, and using the same switching function that exhibits bang-bang solutions in OCT, we can introduce a fuel-optimal switching strategy for the CLF without requiring the solution of a two-point boundary value problem.\"), mdx(\"h3\", null, \"Test Cases\"), mdx(\"div\", {\n    style: {\n      display: 'flex',\n      gap: '1rem',\n      alignItems: 'flex-start'\n    }\n  }, mdx(\"div\", {\n    style: {\n      width: '48%'\n    }\n  }, mdx(Image, {\n    src: \"/images/projects/lyapunov_switch/GTOGEO_sqrtdvel_switch_trajectory2D.png\",\n    caption: \"GTO-GEO Trajectory\",\n    mdxType: \"Image\"\n  })), mdx(\"div\", {\n    style: {\n      width: '52%'\n    }\n  }, mdx(Image, {\n    src: \"/images/projects/lyapunov_switch/GTOGEO_sqrtdvel_switch_Ldot_switch.png\",\n    caption: \"GTO-GEO Lyapunov function (top left), Throttle (top right), mass-costate (bottom left) and switching function (bottom right).\",\n    mdxType: \"Image\"\n  }))), mdx(\"p\", null, \"This is applied to many-revolution low-thrust trajectories (GTO-GEO, LEO-GEO, GTO-Molniya, etc. The newly proposed switching functions exhibit an advantage as the thrust-to-mass ratio decreases. Since the CLF provides an approximation of the time-optimal value function, it may consequently become a better approximation of the fuel-optimal value function in the low-thrust regime, as the two converge (see LEO-GEO case).\"), mdx(\"p\", null, \"We compare this switching function approach with two main ones in the literature:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Lyapunov decay thresholds:\"), \" The user imposes a decay condition on the CLF, within which a quadratic program (QP) is solved to minimise the instantaneous thrust magnitude while preserving formal Lyapunov stability guarantees. (e.g. in \", \"[3]\", \")\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Effectivity thresholds:\"), \" The more widely adopted approach in astrodynamics and compares the instantaneous rate of CLF decrease to its maximum and minimum values along the current osculating orbit. \", \"[4]\", \", \", \"[5]\"))), mdx(\"div\", {\n    style: {\n      display: 'flex',\n      gap: '1rem',\n      alignItems: 'flex-start'\n    }\n  }, mdx(\"div\", {\n    style: {\n      width: '50%'\n    }\n  }, mdx(Image, {\n    src: \"/images/projects/lyapunov_switch/GTOGEO_sqrtdvel_pareto.png\",\n    caption: \"GTO-GEO pareto front, showing effectivity (blue/orange), decay (purple/grey) and switching (red/green) approaches.\",\n    mdxType: \"Image\"\n  })), mdx(\"div\", {\n    style: {\n      width: '50%'\n    }\n  }, mdx(Image, {\n    src: \"/images/projects/lyapunov_switch/LEOGEO_sqrtdvel_pareto.png\",\n    caption: \"LEO-GEO pareto front, showing effectivity (blue/orange), decay (purple/grey) and switching (red/green) approaches.\",\n    mdxType: \"Image\"\n  }))), mdx(\"h2\", null, \"References\"), mdx(\"p\", null, \"[1]\", \" Yang, G., 2009. Direct optimization of low-thrust many-revolution earth-orbit transfers. Chinese Journal of Aeronautics, 22(4), pp.426-433.\"), mdx(\"p\", null, \"[2]\", \" Gao, Y. and Li, X., 2010. Optimization of low-thrust many-revolution transfers and Lyapunov-based guidance. Acta Astronautica, 66(1-2), pp.117-129.\"), mdx(\"p\", null, \"[3]\", \" Petropoulos, A., 2004, August. Low-thrust orbit transfers using candidate Lyapunov functions with a mechanism for coasting. In AIAA/AAS Astrodynamics Specialist Conference and Exhibit (p. 5089).\"), mdx(\"p\", null, \"[4]\", \" Schaub, H., and Junkins, J. L., 2018. Analytical Mechanics of Space Systems,Fourth Edition. American Institute of Aeronautics\\nand Astronautics, Inc.\"), mdx(\"p\", null, \"[5]\", \" R.Tedrake, 2023. Underactuated Robotics. \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://underactuated.csail.mit.edu/lyapunov.html\"\n  }, \"https://underactuated.csail.mit.edu/lyapunov.html\")));\n}\n;\nMDXContent.isMDXComponent = true;","fields":{"slug":"/projects/lyapunov_switch/"},"frontmatter":{"title":"Fuel Optimality in Lyapunov Control","pagetype":null,"categories":["mad"],"author":null,"institution":null,"banner":null,"banner_caption":null,"headline":null,"image_src":"/images/projects/lyapunov_switch/lyapunov_switch_thumbnail.png","date":"2026-09-30T00:00:00.000Z","time":null,"outcome":[{"actCategory":"Mission Analysis","authors":"Harry Holt and\n                  Dario Izzo","booktitle":null,"editor":null,"institution":null,"journal":"ESA GNC & ICATT Conference, Sevilla, Spain","key":"MAD-con-111","kind":"Conference paper","month":null,"number":null,"organization":null,"pages":null,"publisher":null,"quarter":null,"rawBibtex":"@inproceedings{Holt2026Switching,\n\tauthor = {Holt, Harry and Izzo, Dario},\n\tbooktitle = {ESA {GNC} & {ICATT} {Conference}, {Sevilla}, {Spain}},\n\tyear = {2026},\n\ttitle = {A {Switching} {Function} for {Fuel}-optimality in {Control} {Lyapunov} {Functions}},\n\thowpublished = {},\n}\n\n","title":"A Switching Function for Fuel-optimality in Control Lyapunov Functions","type":"inproceedings","url":"","volume":null,"year":"2026"}]}}},"pageContext":{"id":"5bbfe685-96aa-5ece-95c5-ecbfb420513b"}},
    "staticQueryHashes": ["2102389209","284332080","855417905"]}