{
  "aliases": null,
  "backlinks": [
    {
      "field": "defines",
      "target": "SAH0W43RMW"
    }
  ],
  "body": "\n## Summary\n\nModel predictive control is a feedback strategy that solves a finite-horizon [[optimal control|T3V6ZNAMDN]] problem at every sampling time.\nFrom the measured state it predicts the future with a model and optimises the controls over a horizon of $N$ steps subject to constraints.\nIt applies only the first control and repeats at the next step.\nThis receding-horizon principle turns open-loop optimisation into a closed-loop controller that handles constraints on states and inputs directly.\nIt is standard in process industry, power electronics and autonomous driving.\n\n## Explanations\n\n### L1 human\n\nA driver looks a little way down the road, plans the next few seconds, starts doing the first part of the plan, and then plans again with fresh information.\nModel predictive control does the same with a mathematical model of the system and an optimiser.\nBecause it replans all the time, it corrects for disturbances and model errors.\nConstraints such as a maximum speed or a limited motor force simply enter the optimisation problem.\nThe short horizon must be handled with care: if the plan ignores what happens after the horizon, the closed loop may fail to settle.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "kind": "concept",
    "msc": [
      "93B45",
      "49N35",
      "93C55"
    ],
    "name": "Model predictive control",
    "same_as": {
      "wikidata": "Q1782962",
      "wikipedia": "Model predictive control"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Model_predictive_control"
      }
    ],
    "tag": "15Z6BT9XYR"
  },
  "kind": "concept",
  "link": "https://tamnd.github.io/math2/node/15Z6BT9XYR/",
  "links": null,
  "markdown": "https://tamnd.github.io/math2/node/15Z6BT9XYR.md",
  "msc": [
    "93B45",
    "49N35",
    "93C55"
  ],
  "name": "Model predictive control",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/15Z/15Z6BT9XYR.md",
  "status": null,
  "tag": "15Z6BT9XYR",
  "uri": "m2://15Z6BT9XYR",
  "url": "https://tamnd.github.io/math2/wiki/model-predictive-control/",
  "writing": {
    "tag": "15Z6BT9XYR",
    "kind": "concept",
    "level": "W0",
    "next": [
      {
        "what": "an inventory row",
        "note": "the row of the inventory that the node accounts for",
        "have": 0,
        "want": 1
      },
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
