Skip to content

Instantly share code, notes, and snippets.

@loiseaujc
Last active January 31, 2024 09:07
Show Gist options
  • Save loiseaujc/905f039de82a2e52f09829c51a805c68 to your computer and use it in GitHub Desktop.
Save loiseaujc/905f039de82a2e52f09829c51a805c68 to your computer and use it in GitHub Desktop.
Notebook for the control class on the Kalman filter
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "c3592556-1b7f-4d9d-9bda-401ac4f514ea",
"metadata": {},
"source": [
"<img src=\"https://assets.ensam.eu/logo/fr/logo-trans-322x84.png\" style=\"width:256px\" >"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "cfe500ed-8cc7-4b39-9875-0838d4f0ff24",
"metadata": {},
"outputs": [],
"source": [
"# --> Standard Python packages.\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# --> LTI system related utilities.\n",
"from scipy.signal import lti, dlti, dlsim"
]
},
{
"cell_type": "markdown",
"id": "90b4096d-59e3-4bb8-8f7d-f7a628b42304",
"metadata": {},
"source": [
"# **Kalman Filtering**\n",
"\n",
"Let us consider a discrete-time linear time invariant dynamical system\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
" \\mathbf{x}_{t+1} & = \\mathbf{Ax}_t + \\mathbf{w}_t \\\\\n",
" \\mathbf{y}_t & = \\mathbf{Cx}_t + \\mathbf{v}_t,\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"where $\\mathbf{x} \\in \\mathbb{R}^n$ is the state vector of the system and $\\mathbf{y} \\in \\mathbb{R}^q$ the measurements taken.\n",
"The matrix $\\mathbf{A} \\in \\mathbb{R}^{n \\times n}$ describes the natural dynamics of the system.\n",
"We will assume throughout this notebook that $\\mathbf{A}$ has all of its eigenvalues inside the unit circle such that the system is stable.\n",
"The matrix $\\mathbf{C} \\in \\mathbb{R}^{q \\times n}$ is the measurement operator.\n",
"It describes the type of sensors used in the experiment.\n",
"We also assume that the dynamics are influenced by Gaussian random fluctuations $\\mathbf{w}_t \\sim \\mathcal{N}(\\mathbf{0}, \\mathbf{W})$ with $\\mathbf{W} \\in \\mathbb{R}^{n \\times n}$ the symmetric positive definite covariance matrix of this process noise.\n",
"Likewise, we suppose that our measurements are contaminated with some Gaussian random noise $\\mathbf{v}_t \\sim \\mathcal{N}(\\mathbf{0}, \\mathbf{V})$ with $\\mathbf{V} \\in \\mathbb{R}^{q \\times q}$ the symmetric positive definite covariance matrix of this sensor noise.\n",
"We also assume that both of these noise are $\\delta$-correlated in time and independent, i.e.\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
" \\mathbb{E} \\left[ \\mathbf{w}_t \\mathbf{w}_s^* \\right] & = \\mathbf{0} \\quad \\text{for } t \\neq s \\\\\n",
" \\mathbb{E} \\left[ \\mathbf{v}_t \\mathbf{v}_s^* \\right] & = \\mathbf{0} \\quad \\text{for } t \\neq s \\\\\n",
" \\mathbb{E} \\left[ \\mathbf{v}_t \\mathbf{w}_s^* \\right] & = \\mathbf{0} \\quad \\text{for all } t \\text{ and } s.\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"Our last assumption finally is that the initial condition $\\mathbf{x}_0$ is drawn from a multivariate distribution with mean $\\bar{\\mathbf{x}}_0$ and covariance $\\boldsymbol{\\Sigma}_0$, i.e.\n",
"\n",
"$$\n",
"\\mathbf{x}_0 \\sim \\mathcal{N}(\\bar{\\mathbf{x}}_0, \\boldsymbol{\\Sigma}_0).\n",
"$$\n",
"\n",
"Our objective in this notebook will be to design an *estimator* which, given knowledge of $\\mathbf{A}$, $\\mathbf{B}$, $\\mathbf{C}$, $\\mathbf{W}$, $\\mathbf{V}$, $\\bar{\\mathbf{x}}_0$, $\\boldsymbol{\\Sigma}_0$ and noise-contaminated measurements $\\left\\{ \\mathbf{y}_t \\right\\}_{t=0, T}$ returns the most likely state sequence $\\left\\{ \\hat{\\mathbf{x}}_t \\right\\}_{t=0, T}$.\n",
"The system will consider is the pendulum on a cart, also known as **cartpole**.\n",
"It is a classic problem in control theory.\n",
"A depiction of this sytem is shown below\n",
"\n",
"<img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/0/00/Cart-pendulum.svg/300px-Cart-pendulum.svg.png\" style=\"margin:auto\"/>\n",
"\n",
"</br>\n",
"\n",
"Note that while this schematic represents the inverted pendulum, we will actually consider the case where the pendulum is in the downward direction.\n",
"The cells below define the corresponding discrete LTI stochastic system."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "bf5f42dd-7811-44c8-9f1d-a58fcf247cbd",
"metadata": {},
"outputs": [],
"source": [
"# --> State-space model.\n",
"def state_space_model(params, dt=0.01):\n",
" \"\"\"\n",
" This function sets up the state-space model for CartPole.\n",
"\n",
" INPUT\n",
" -----\n",
"\n",
" params : python list\n",
" Physical parameters of the system. \n",
"\n",
" dt : float\n",
" Sampling period for the discretization of the dynamics.\n",
"\n",
" RETURN\n",
" ------\n",
"\n",
" dynsys : scipy.signal.dlti\n",
" State-space model encapsulated in the scipy-specific object.\n",
" \"\"\"\n",
"\n",
" # --> Unpack parameters.\n",
" m, M, L, g, δ = params\n",
"\n",
" # --> Dynamics matrix.\n",
" A = np.array([\n",
" [0.0, 1.0, 0.0, 0.0], # Equation for the velocity dx/dt = ẋ\n",
" [0.0, -δ/M, -m*g/M, 0.0], # Equation for the cart's acceleration.\n",
" [0.0, 0.0, 0.0, 1.0], # Equation for the pendulum angular velocity dθ/dt = θ̇\n",
" [0.0, δ/(M*L), (m+M)*g/(M*L), 0.0] # Equation for the pendulum angular acceleration.\n",
" ])\n",
"\n",
" # --> Input-to-state matrix.\n",
" B = np.array([\n",
" [0.0],\n",
" [1.0/M],\n",
" [0.0],\n",
" [-1.0/(M*L)]\n",
" ])\n",
"\n",
" # --> Measurement operator.\n",
" C = np.array([[1.0, 0.0, 0.0, 0.0]])\n",
"\n",
" # --> Feedthrough matrix.\n",
" D = np.zeros((len(C), len(B.T)))\n",
"\n",
" # --> Continuous-time state space model.\n",
" ssm = lti(A, B, C, D)\n",
"\n",
" return ssm"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "ca344499-ce02-4080-a29c-66107cdd8fe0",
"metadata": {},
"outputs": [],
"source": [
"# --> Parameters of the system.\n",
"params = m, M, L, g, δ = 1, 5, 2, -10, 1\n",
"\n",
"# --> Create the discrete-time state-space model.\n",
"ssm = state_space_model(params)\n",
"\n",
"# --> Get the continuous-time matrices.\n",
"A, B, C, D = ssm.A, ssm.B, ssm.C, ssm.D\n",
"\n",
"# --> Dimensions of the system.\n",
"m, n = C.shape ; p = B.shape[1]\n",
"\n",
"#####################################\n",
"##### INITIAL CONDITION #####\n",
"#####################################\n",
"\n",
"# --> Parameters of the initial condition distribution.\n",
"x̄0 = np.zeros(n)\n",
"Σ0 = np.eye(n)\n",
"\n",
"#################################\n",
"##### PROCESS NOISE #####\n",
"#################################\n",
"\n",
"# --> Parameters of the continuous time process noise.\n",
"w0 = np.zeros(n)\n",
"W = 0.001*B @ np.eye(p) @ B.T\n",
"\n",
"################################\n",
"##### SENSOR NOISE #####\n",
"################################\n",
"\n",
"# --> Parameters of the sensor noise distribution.\n",
"v0 = np.zeros(len(ssm.C))\n",
"\n",
"V = 0.001*np.eye(m)\n",
"\n",
"##################################\n",
"##### DISCRETIZATION #####\n",
"##################################\n",
"\n",
"from scipy.linalg import expm\n",
"\n",
"# --> Sampling period.\n",
"dt = 0.01\n",
"\n",
"# --> Discretization step.\n",
"F = np.block([[-A, W], [np.zeros_like(A), A.T]]) ; G = expm(dt*F)\n",
"\n",
"# --> Dynamics matrix.\n",
"A = G[n:, n:].T #expm(dt*A)\n",
"\n",
"# --> Process noise covariance matrix.\n",
"W = A @ G[:n, n:]\n",
"\n",
"# --> Resulting discrete-time LTI stochastic system.\n",
"ssm = dlti(A, np.eye(n), C, np.zeros((m, n)), dt=dt)"
]
},
{
"cell_type": "markdown",
"id": "b275a881-6633-47f8-a2cf-961089665188",
"metadata": {},
"source": [
"Let us simulate this sytem."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "52d5a708-e08a-4b27-b82d-04a5750d01ea",
"metadata": {},
"outputs": [],
"source": [
"#######################################\n",
"##### SIMULATE THE SYSTEM #####\n",
"#######################################\n",
"\n",
"from scipy.stats import multivariate_normal as mvn\n",
"\n",
"# --> Time-horizon.\n",
"Th = 50.0\n",
"\n",
"# --> Number of time-steps.\n",
"nt = int(Th / ssm.dt) + 1\n",
"\n",
"# --> Sample the initial condition.\n",
"x0 = mvn(x̄0, Σ0).rvs()\n",
"\n",
"# --> Sample the sensor noise.\n",
"v = mvn(v0, V).rvs(nt)\n",
"\n",
"# --> Sample process noise.\n",
"w = mvn(w0, W, allow_singular=True).rvs(nt)\n",
"\n",
"# --> Simulate the system.\n",
"t, y_true, x_true = dlsim(ssm, w, x0=x0)\n",
"\n",
"# --> Noise corrupted measurements.\n",
"y = y_true + v.reshape(-1, m)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "77fc967b-7a52-4f96-a0d7-c4530af0220e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f41ef042d90>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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rP90r4Eix9KjQlo3H5/mX7aBLrvsMsaMGcOjjz5a71fvxph6R5cwpxhHGR0dTVJSEitXruTrr7/mnnvuYe7cuSQmJuLu7s748eOxWq0sWbIEq9VKRUUF11577WlrdHd3d/xvsVjqXD867eib89G/S5cuJSoqqs5yVqsVgI8++ogZM2bw4osvkpCQgJ+fH3PnzmXdunWOZRcsWMB9993H8uXL+fDDD/nLX/7CypUrGThwIC4uLvXuhxP9KMrnuPaqqalh/PjxPP/88/WWPTZon2j/jr8Pjt3Xc1nv0XWczOzZs7nppptYunQpy5Yt44knnmDRokX85je/OeXtGovFYql3P7ZEx+/D6R5DR9vlzTffZMCAAXWWO/5D6PGa4vEzfvx4oqOjefPNN4mMjKSmpobu3bs7fhjap08fUlJSWLZsGV9//TU33HADI0eO5JNPPnGcae3Y/T3ZjwiPvZ8a8lw+0T43xmvEydZ77O1P5HSvgSLHUhgWuYA899xz9OrVy9GDeFTXrl1Zu3ZtnWnff/898fHxJ31D9vLy4uqrr+bqq69m6tSpdO7cme3bt9OnTx/c3NyYPHkyCxYswGq18tvf/rbRj0TRtWtXrFYr6enpDB069ITLrFmzhkGDBnHPPfc4ph37Y6CjevfuTe/evZk1axYJCQm8//77DBw4kLCwMHbs2FFn2a1bt572za5Pnz4sXryY2NjYRu0paqz1uru7U11dXW96fHw88fHxzJgxgxtvvJEFCxactzDcWoWFhZGTk1PnA+exPzCz2WxERUWxb98+br755iat5XSPn7y8PHbt2sUbb7zBkCFDAOq9LgD4+/szadIkJk2axHXXXcfYsWM5fPgwYWFhQO1RN472vB67ryfTkOfy2Wis9Xp4eJzw+XKq10CRYykMi1xAevTowc0338zf//73OtMfeOAB+vfvz9NPP82kSZP44YcfeOWVV076i/aFCxdSXV3NgAED8Pb25t1338XLy4t27do5lrnjjjvo0qULAN99912j74ufnx8PPvggM2bMoKamhksvvZTCwkK+//57fH19mTx5MhdddBHvvPMOX331FXFxcbz77rts2LCBuLg4AFJSUpg/fz5XX301kZGRJCUlkZyczO9//3sALr/8cubOncs777xDQkIC7733Hjt27Kj3Fevxpk6dyptvvsmNN97IQw89RGhoKHv27GHRokW8+eabp+3xa+r1xsbG8s033zB48GCsViuenp489NBDXHfddcTFxbF//342bNjQoN58ObVhw4Zx8OBBXnjhBa677jqWL1/OsmXL8Pf3dywze/Zs7rvvPvz9/Rk3bhwVFRVs3LiR/Px8Zs6c2Wi1nO7xExQUREhICPPnzyciIoL09HQeeeSROut4+eWXiYiIoFevXri4uPDxxx8THh5OYGAgLi4uDBw4kOeee47Y2FgOHTrEX/7yl9PW1ZDn8tlorPXGxsaSkpLC1q1badu2LX5+fnzwwQenfQ0UOUqHVhO5wDz99NP1vrbt06cPH330EYsWLaJ79+48/vjjPPXUUyc9iUBgYCBvvvkmgwcP5uKLL+abb77h3//+NyEhIY5lOnbsyKBBg+jUqVO9r38bc18ef/xx5syZQ5cuXRgzZgz//ve/HWH37rvv5pprrmHSpEkMGDCAvLy8Or3E3t7e/PLLL1x77bXEx8fzhz/8gWnTpnHXXXcBMGbMGB577DEefvhh+vfvT1FRkSMon0pkZCTfffcd1dXVjBkzhu7du3P//fcTEBDg+Cr5bDTWel988UVWrlxJdHQ0vXv3xtXVlby8PH7/+98THx/PDTfcwLhx43jyySfPulap1aVLF1599VX+7//+j549e7J+/XoefPDBOsvccccdvPXWWyxcuJAePXowdOhQFi5c6HgcN5bTPX5cXFxYtGgRmzZtonv37syYMYO5c+fWWYevry/PP/88/fr1o3///qSmpvLll186Hn///Oc/qayspF+/ftx///0888wzDartdM/ls9UY67322msZO3Ysw4cPJywsjA8++KBBr4EiR1nMqQYeirQA5eXlpKSkEBcXh6enZ3OX02IYY+jcuTN33XVXo/ZuiYi0JHoPEQ2TEHFCubm5vPvuu2RmZnLrrbc2dzkiIiLNRmFYxAnZbDZCQ0OZP38+QUFBzV2OiIhIs1EYFnFCGh0lIiJSSz+gExERERGnpTAsrYZ6O0VE5EzpvUMUhqXFO3qChdLS0mauREREWpqj7x06M53z0phhafFcXV0JDAwkNzcXqD027fGnLhYRETmWMYbS0lJyc3MJDAw865PtSMun4wxLq2CMIScnhyNHjjR3KSIi0oIEBgYSHh6uThQnpjAsrUp1dTWVlZXNXYaIiLQA7u7u6hEWhWERERERcV76AZ2IiIiIOC2FYRERERFxWgrDIiIiIuK0FIZFRERExGkpDIuIiIiI01IYFhERERGnpTAsIiIiIk5LYVhEREREnJbCsIiIiIg4LYVhEREREXFaCsMiIiIi4rQUhkVERETEaSkMi4iIiIjTUhgWEREREafl1twFXGhqamrIysrCz88Pi8XS3OWIiIiIyHGMMRQVFREZGYmLy7n17SoMHycrK4vo6OjmLkNERERETiMjI4O2bdue0zoUho/j5+cH1N65/v7+zVyNiIiIiByvsLCQ6OhoR247FwrDxzk6NMLf319hWEREROQC1hhDWvUDOhERERFxWgrDIiIiIuK0FIZFRERExGkpDIuIiIiI01IYFhERERGnpTAsIiIiIk5LYVhEREREnFaLCcNz5syhf//++Pn50aZNGyZOnEhSUlKdZYwxzJ49m8jISLy8vBg2bBg7d+5spopFRERE5ELXYsJwYmIiU6dO5ccff2TlypVUVVUxevRoSkpKHMu88MILvPTSS7zyyits2LCB8PBwRo0aRVFRUTNWLiIiIiIXKosxxjR3EWfj4MGDtGnThsTERC677DKMMURGRjJ9+nT+9Kc/AVBRUYHNZuP555/nrrvuatB6CwsLCQgIoKCgQGegExEREbkANWZeazE9w8crKCgAIDg4GICUlBRycnIYPXq0Yxmr1crQoUP5/vvvT7qeiooKCgsL61xERERExDm0yDBsjGHmzJlceumldO/eHYCcnBwAbDZbnWVtNptj3onMmTOHgIAAxyU6OrrpChcRERGRC0qLDMPTpk3jp59+4oMPPqg3z2Kx1LlujKk37VizZs2ioKDAccnIyGj0ekVERETkwuTW3AWcqXvvvZcvvviC1atX07ZtW8f08PBwoLaHOCIiwjE9Nze3Xm/xsaxWK1artekKFhEREZELVovpGTbGMG3aND799FP+85//EBcXV2d+XFwc4eHhrFy50jHNbreTmJjIoEGDzne5IiIiItICtJie4alTp/L+++/z+eef4+fn5xgHHBAQgJeXFxaLhenTp/Pss8/SsWNHOnbsyLPPPou3tzc33XRTM1cvIiIiIheiFhOGX3vtNQCGDRtWZ/qCBQuYMmUKAA8//DBlZWXcc8895OfnM2DAAFasWIGfn995rlZEREREWoIWe5zhpqLjDIuIiIhc2HScYRERERGRRqAwLCIi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46WXXuL222/njjvuAGDevHl89dVXvPbaa8yZM6dRtlGYmcmO119nx1//ysaiIpYCWcfMj4uLY8aMGdxx88146fByIiIiIhesBofhiRMnAmCxWJg8eXKdee7u7sTGxvLiiy82anFnym63s2nTJh555JE600ePHs33339/wttUVFRQUfHfU1wUFhY6/q+220l+5hm2Pv00P8XHs71jR3bs2EFaWlq99fgAV4SEcOc//sGI8eNxcTnjTncREREROc8aHIZrampPCxEXF8eGDRsIDQ1tsqLO1qFDh6iurq53JAubzUZOTs4JbzNnzhyefPLJetPHBQSwFSg9OiE5ufbyq0igx6+XEb/7HcNefhnPC/A+EREREZGTO+PTMaekpJx+oWZmOe4sbMaYetOOmjVrVp0z7BUWFhIdHc3RfmRvoCdwMdDj2WfpMXgw3bt1I9jXF6zWJqlfRERERM6PBoXhv/3tb2d0TNzXX3+dm2+++byffCM0NBRXV9d6vcC5ubknPe6x1WrFeoJQ+1J4OGMfeID4e+/FVaFXREREpFVq0MDWGTNmUFRU1OCVPvzwwxw8ePCsizpbHh4e9O3bl5UrV9aZvnLlSgYNGnRG67o9KYkuDz6oICwiIiLSijWoZ9gYw4gRI3Bza9ioirKysnMq6lzMnDmTW265hX79+pGQkMD8+fNJT0/n7rvvbraaREREROTC1KB0+8QTT5zRSidMmEBwMx1SbNKkSeTl5fHUU0+RnZ1N9+7d+fLLL2nXrl2z1CMiIiIiF64zPh3zlClTuPXWWxk6dGhT1dSsGvP0fiIiIiLS+Jr1dMxFRUWMGTOGjh078uyzz5KVlXX6G4mIiIiIXIDOOAwvXryYzMxMpk2bxscff0y7du0YN24cH3/8MZWVlU1Ro4iIiIhIkzir06SFhIRw//33s2XLFtavX89FF13E73//eyIjI5kxYwa7d+9u7DpFRERERBrdOZ0zODs7mxUrVrBixQpcXV254oor2LlzJ127duXll19urBpFRERERJrEGYfhyspKFi9ezFVXXUW7du34+OOPmTFjBtnZ2bz99tusWLGCd999l6eeeqop6hURERERaTRnfDrmiIgIampquPHGG1m/fj29evWqt8yYMWMIDAxshPJERERERJrOGYfhl19+meuvv/6Up2YOCgoiJSXlnAoTEREREWlqZxyGb7nllqaoQ0RERETkvDunH9CJiIiIiLRkCsMiIiIi4rQUhkVERETEaSkMi4iIiIjTUhgWEREREaelMCwiIiIiTkthWERERESclsKwiIiIiDgthWERERERcVoKwyIiIiLitBSGRURERMRpKQyLiIiIiNNSGBYRERERp6UwLCIiIiJOS2FYRERERJyWwrCIiIiIOC2FYRERERFxWgrDIiIiIuK0FIZFRERExGkpDIuIiIiI01IYFhERERGnpTAsIiIiIk5LYVhEREREnJbCsIiIiIg4rRYRhlNTU7n99tuJi4vDy8uLDh068MQTT2C32+ssl56ezvjx4/Hx8SE0NJT77ruv3jIiIiIiIke5NXcBDfHLL79QU1PDG2+8wUUXXcSOHTu48847KSkp4X//938BqK6u5sorryQsLIy1a9eSl5fH5MmTMcbw97//vZn3QEREREQuRBZjjGnuIs7G3Llzee2119i3bx8Ay5Yt46qrriIjI4PIyEgAFi1axJQpU8jNzcXf379B6y0sLCQgIICCgoIG30ZEREREzp/GzGstYpjEiRQUFBAcHOy4/sMPP9C9e3dHEAYYM2YMFRUVbNq0qTlKFBEREZELXIsYJnG8vXv38ve//50XX3zRMS0nJwebzVZnuaCgIDw8PMjJyTnpuioqKqioqHBcLywsbPyCRUREROSC1Kw9w7Nnz8ZisZzysnHjxjq3ycrKYuzYsVx//fXccccddeZZLJZ62zDGnHD6UXPmzCEgIMBxiY6ObpydExEREZELXrP2DE+bNo3f/va3p1wmNjbW8X9WVhbDhw8nISGB+fPn11kuPDycdevW1ZmWn59PZWVlvR7jY82aNYuZM2c6rhcWFioQi4iIiDiJZg3DoaGhhIaGNmjZzMxMhg8fTt++fVmwYAEuLnU7tRMSEvif//kfsrOziYiIAGDFihVYrVb69u170vVarVasVuvZ74SIiIiItFgt4mgSWVlZDB06lJiYGN555x1cXV0d88LDw4HaQ6v16tULm83G3LlzOXz4MFOmTGHixIlndGg1HU1CRERE5MLWmHmtRfyAbsWKFezZs4c9e/bQtm3bOvOOZnlXV1eWLl3KPffcw+DBg/Hy8uKmm25yHIdYREREROR4LaJn+HxSz7CIiIjIhU3HGRYRERERaQQKwyIiIiLitBSGRURERMRpKQyLiIiIiNNS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4mmYhIjIBS48PNxxCQgIwGKx1Jt2/DCJKVOmMHHiRJ599llsNhuBgYE8+eSTVFVV8dBDDxEcHEzbtm355z//WWdbmZmZTJo0iaCgIEJCQpgwYQKpqannd4dFRM4jhWERkVbqP//5D1lZWaxevZqXXnqJ2bNnc9VVVxEUFMS6deu4++67ufvuu8nIyACgtLSU4cOH4+vry+rVq1m7di2+vr6MHTsWu93ezHsjItI0FIZFRFqp4OBg/va3v9GpUyduu+02OnXqRGlpKY8++igdO3Zk1qxZeHh48N133wGwaNEiXFxceOutt+jRowddunRhwYIFpKens2rVqubdGRGRJuLW3AWIiEjT6NatGy4u/+3zsNlsdO/e3XHd1dWVkJAQcnNzAdi0aRN79uzBz8+vznrKy8vZu3fv+SlaROQ8UxgWEWml3N3d61y3WCwnnFZTUwNATU0Nffv25V//+le9dYWFhTVdoSIizUhhWEREAOjTpw8ffvghbdq0wd/fv7nLERE5LzRmWEREALj55psJDQ1lwoQJrFmzhpSUFBITE7n//vvZv39/c5cnItIkFIZFRAQAb29vVq9eTUxMDNdccw1dunThtttuo6ysTD3FItJq6aQbIiIiIuK01DMsIiIiIk5LYVhEREREnJbCsIiIiIg4LYVhEREREXFaCsMiIiIi4rQUhkVERETEaSkMi4iIiIjTUhgWEREREaelMCwiIiIiTkthWERERESclsKwiIiIiDgthWERERERcVr/H4FfTra13YsOAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 800x150 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(1, 1, figsize=(8, 1.5))\n",
"\n",
"ax.plot(t, y[:, 0], color=\"red\", ls=\"--\", label=\"Noisy measurements\")\n",
"ax.plot(t, y_true[:, 0], color=\"black\", label=\"True measurements\")\n",
"\n",
"ax.set(xlim=(0, Th), ylim=(-2*abs(y).max(), 2*abs(y).max()))\n",
"ax.set(xlabel=\"Time\", ylabel=\"y[t]\")\n",
"ax.legend(loc=\"lower center\", bbox_to_anchor=(0.5, 1.1), ncol=2)"
]
},
{
"cell_type": "markdown",
"id": "02873d60-1028-47ab-a23c-0a6a2dd9c1ee",
"metadata": {},
"source": [
"The figure above shows the true measurements and their noisy version obtained from this simulation.\n",
"Our goal will be to estimate all the other state variables using solely these measurements and prior knowledge of the system matrices $\\mathbf{A}$ and $\\mathbf{C}$.\n",
"\n",
"---\n",
"\n",
"## **Kalman-Bucy smoother**\n",
"\n",
"For the sake of simplicity, let us begin by considering an ordinary least-squares estimator.\n",
"The corresponding likelihood function is defined as\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
"\\mathcal{L}(\\hat{\\mathbf{x}} \\vert \\cdots) = & \\prod_{t=0}^{T} \\exp \\left( -\\dfrac12 \\left( \\mathbf{y}_t - \\mathbf{C} \\hat{\\mathbf{x}}_t \\right)^* \\left( \\mathbf{y}_t - \\mathbf{C} \\hat{\\mathbf{x}}_t \\right) \\right) & \\text{(Likelihood associated to the measurements)} \\\\\n",
"& \\times \\prod_{t=0}^{T-1} \\exp \\left( -\\dfrac12 \\left( \\hat{\\mathbf{x}}_{t+1} - \\mathbf{A} \\hat{\\mathbf{x}}_t \\right)^* \\left( \\hat{\\mathbf{x}}_{t+1} - \\mathbf{A} \\hat{\\mathbf{x}}_t \\right) \\right) & \\text{(Prior on the dynamics of $\\hat{\\mathbf{x}}_t$)}\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"Our objective is to find the state sequence $\\left\\{ \\hat{\\mathbf{x}}_t \\right\\}_{t=0, T}$ maximizing this likelihood function.\n",
"Directly optimizing the likelihood function often is numerically intractable because of floating point errors.\n",
"An equivalent problem is to minimize the negative logarithm of this likelihood.\n",
"Doing so, all the products are transformed into sums and we get rid of the exponentials.\n",
"This bring us to the following quadratic program\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
"\\mathrm{minimize} \\quad & \\dfrac12 \\sum_{t=0}^{T} \\left( \\mathbf{y}_t - \\mathbf{C} \\hat{\\mathbf{x}}_t \\right)^* \\left( \\mathbf{y}_t - \\mathbf{C} \\hat{\\mathbf{x}}_t \\right) \\\\\n",
" & + \\dfrac12 \\sum_{t=0}^{T-1} \\left( \\hat{\\mathbf{x}}_{t+1} - \\mathbf{A} \\hat{\\mathbf{x}}_t \\right)^* \\left( \\hat{\\mathbf{x}}_{t+1} - \\mathbf{A} \\hat{\\mathbf{x}}_t \\right)\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"For the sake of notational simplicity, let us denote by $\\mathcal{J}_t(\\hat{\\mathbf{x}}_t)$ the following component of our objective function\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
"\\mathcal{J}_t(\\hat{\\mathbf{x}}_t) = & \\dfrac12 \\left( \\mathbf{y}_t - \\mathbf{C} \\hat{\\mathbf{x}}_t \\right)^* \\left( \\mathbf{y}_t - \\mathbf{C} \\hat{\\mathbf{x}}_t \\right) \\quad & \\text{(Measurement error)} \\\\\n",
" & + \\dfrac12 \\left( \\left( \\hat{\\mathbf{x}}_t - \\mathbf{A} \\hat{\\mathbf{x}}_{t-1} \\right)^* \\left( \\hat{\\mathbf{x}}_t - \\mathbf{A} \\hat{\\mathbf{x}}_{t-1} \\right) + \\left( \\hat{\\mathbf{x}}_{t+1} - \\mathbf{A} \\hat{\\mathbf{x}}_{t} \\right)^* \\left( \\hat{\\mathbf{x}}_{t+1} - \\mathbf{A} \\hat{\\mathbf{x}}_{t} \\right) \\right) \\quad & \\text{(Evolution equation)}\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"The first order optimality conditions with respect to $\\hat{\\mathbf{x}}_{t}$ read\n",
"\n",
"$$\n",
"-\\mathbf{A} \\hat{\\mathbf{x}}_{t-1} + \\left( \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} + \\mathbf{A}^* \\mathbf{A} \\right) \\hat{\\mathbf{x}}_t - \\mathbf{A}^* \\hat{\\mathbf{x}}_{t+1} = \\mathbf{C}^* \\mathbf{y}_t.\n",
"$$\n",
"\n",
"For $t = 0$ and $t = T$, the corresponding optimal conditions imply\n",
"\n",
"$$\n",
"\\left( \\mathbf{C}^* \\mathbf{C} + \\mathbf{A}^* \\mathbf{A} \\right) \\hat{\\mathbf{x}}_0 - \\mathbf{A}^* \\hat{\\mathbf{x}}_{1} = \\mathbf{C}^* \\mathbf{y}_0\n",
"$$\n",
"\n",
"and\n",
"\n",
"$$\n",
"-\\mathbf{A} \\hat{\\mathbf{x}}_{T-1} + \\left( \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} \\right) \\hat{\\mathbf{x}}_T = \\mathbf{0}.\n",
"$$\n",
"\n",
"Combining all of these equations leads to the following linear system\n",
"\n",
"$$\n",
"\\begin{bmatrix}\n",
"\\left( \\mathbf{C}^* \\mathbf{C} + \\mathbf{A}^* \\mathbf{A} \\right) & - \\mathbf{A}^* & \\mathbf{0} & \\cdots \\\\\n",
"-\\mathbf{A} & \\left( \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} + \\mathbf{A}^* \\mathbf{A} \\right) & -\\mathbf{A}^* & \\mathbf{0} \\\\\n",
"\\mathbf{0} & -\\mathbf{A} & \\left( \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} + \\mathbf{A}^* \\mathbf{A} \\right) & -\\mathbf{A}^* & \\\\\n",
"\\vdots & \\ddots & \\ddots & \\ddots & \\\\\n",
"& \\mathbf{0} & -\\mathbf{A} & \\left( \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} + \\mathbf{A}^* \\mathbf{A} \\right) & -\\mathbf{A}^* \\\\\n",
"& & \\mathbf{0} & -\\mathbf{A} & \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} \n",
"\\end{bmatrix}\n",
"\\begin{bmatrix}\n",
"\\hat{\\mathbf{x}}_0 \\\\ \\hat{\\mathbf{x}}_1 \\\\ \\vdots \\\\ \\vdots \\\\ \\hat{\\mathbf{x}}_{T-1} \\\\ \\hat{\\mathbf{x}}_T\n",
"\\end{bmatrix}\n",
"=\n",
"\\begin{bmatrix}\n",
"\\mathbf{C}^* \\mathbf{y}_0 \\\\ \n",
"\\mathbf{C}^* \\mathbf{y}_1 \\\\\n",
"\\vdots \\\\\n",
"\\vdots \\\\\n",
"\\mathbf{C}^* \\mathbf{y}_{T-1} \\\\\n",
"\\mathbf{C}^* \\mathbf{y}_{T}\n",
"\\end{bmatrix}.\n",
"$$\n",
"\n",
"Note that, from a theoretical point of view, we assume $\\mathbf{V} \\propto \\mathbf{I}$ and $\\mathbf{W} \\propto \\mathbf{I}$.\n",
"Although this is slightly inconsistent with our system, it is not a big issue as the least-square estimator is quite robust to model mispecification.\n",
"We will see later how to incorporate prior knowledge of these covariance matrices in the estimation problem.\n",
"Let us now nonetheless construct this system and solve it using `numpy`/`scipy`.\n",
"Since this procedure estimates the whole state sequence simultaneously, we will denote it as a *batch estimator*."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "82d6b84b-2db9-4803-a629-04733fc76840",
"metadata": {},
"outputs": [],
"source": [
"def batch_estimator(y, ssm):\n",
" \"\"\"\n",
" Construction of the batch least-squares estimator to obtain the most likely state\n",
" sequence { x̂[t] } from the sequence of measurements { y[t] } and knowledge of\n",
" various properties of the system.\n",
"\n",
" INPUT\n",
" -----\n",
"\n",
" y : numpy array, shape (nt, m)\n",
" Sequence of noisy measurements.\n",
"\n",
" ssm : dlti object\n",
" State-space model of the system.\n",
"\n",
" RETURN\n",
" ------\n",
"\n",
" x : numpy array, shape (nt, n)\n",
" Batch estimate of the most likelihood state sequence.\n",
"\n",
"\n",
" NOTE: The block tridiagonal system is solved with a specialized version of\n",
" the Thomas algorithm. This python implementation is not however\n",
" optimized and should not be used in production.\n",
" \"\"\"\n",
"\n",
" # --> System matrices.\n",
" A, C = ssm.A, ssm.C\n",
" \n",
" # --> Dimensions of the problem.\n",
" m, n = C.shape # Number of sensors/states.\n",
" nt = len(y) # Length of the estimation window.\n",
"\n",
" ################################################################\n",
" ##### BUILDS THE BLOCKS OF THE TRI-DIAGONAL MATRIX #####\n",
" ################################################################\n",
"\n",
" # --> Lower diagonal blocks.\n",
" L = (nt-1) * [ -A ]\n",
"\n",
" # --> Diagonal blocks.\n",
" D = [ C.T @ C + A.T @ A ] # D[0, 0] block.\n",
" D += (nt-2) * [ C.T @ C + np.eye(n) + A.T @ A ] # D[i, i] blocks\n",
" D += [ C.T @ C + np.eye(n) ] # D[T, T] block.\n",
"\n",
" # --> Right-hand side vector.\n",
" b = [C.T @ y[i] for i in range(nt)]\n",
" \n",
"\n",
" #################################################\n",
" ##### BLOCK TRI-DIAG. THOMAS SOLVER #####\n",
" #################################################\n",
"\n",
" # --> Initialize factorization.\n",
" Q, U, w = [], [], []\n",
" Q.append( D[0] ) ; w.append( np.linalg.solve(Q[0], b[0]) )\n",
"\n",
" # --> Forward substitution.\n",
" for i in range(1, nt):\n",
" # --> Update off-diagonal block.\n",
" U.append( np.linalg.inv(Q[i-1]) @ L[i-1].T )\n",
"\n",
" # --> Update diagonal block.\n",
" Q.append( D[i] - L[i-1] @ U[i-1] )\n",
"\n",
" # --> Update forward solution.\n",
" w.append( np.linalg.solve(Q[i], b[i] - L[i-1] @ w[i-1]) )\n",
"\n",
" # --> Backward substitution.\n",
" x = w.copy()\n",
" for i in range(len(U)-1, -1, -1):\n",
" x[i] = w[i] - U[i] @ x[i+1]\n",
" \n",
" return np.asarray(x)"
]
},
{
"cell_type": "markdown",
"id": "c1bea8ce-c250-49fd-b1a5-0aaa6f9d08c2",
"metadata": {},
"source": [
"Given our sequence of measurements $\\left\\{ \\mathbf{y}_t \\right\\}_{t=0, T-1}$ we can now use `batch_estimator` to obtain the estimate of the state sequence."
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "01894a7c-5eaf-47e3-96f1-5c0d794d3a21",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[Text(0.5, 0, 'Time')]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAscAAAGaCAYAAADjDu6aAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAADVC0lEQVR4nOzdd3hT5dsH8G9Gk+5NoUBL2RsZMhVEceBAQVEcr4IDF4rzp+ICXLhQnOAEN+JAUZTdAmWWXSiU2d3SQXeb/X3/6OmxLR1JmzLvz3Xlgibn5H5ykpzc55kakoQQQgghhBAC2tNdACGEEEIIIc4UkhwLIYQQQgihkORYCCGEEEIIhSTHQgghhBBCKCQ5FkIIIYQQQiHJsRBCCCGEEApJjoUQQgghhFBIciyEEEIIIYRCf7oLIIRwjd1uh9VqPd3FEEIIeHh4QKfTne5iCOFWkhwLcZYgiaysLBQUFJzuogghhCowMBCtWrWCRqM53UURwi0kORbiLFGZGIeFhcHb21t+iIQQpxVJlJWVITs7GwAQHh5+mkskhHtIcizEWcBut6uJcUhIyOkujhBCAAC8vLwAANnZ2QgLC5MuFuKcIAPyhDgLVPYx9vb2Ps0lEUKI6irPSzIWQpwrJDkW4iwiXSmEEGcaOS+Jc40kx0IIIYQQQigkORZCCHHOWLBgAQIDA093MVxyNpZZiHOZJMdCiGaj0WjqvU2aNOl0FxEAMGnSJIwdO9bl/WbMmIG+ffu6vTzni0mTJtX6uRg9erRT+0dFRWHOnDnV7pswYQIOHjzYDKWt7kxKaDUaDf744w+X96vt+AkhZLYKIUQzyszMVP//888/4+WXX0ZiYqJ6X+VI90pWqxUeHh6nrHzi9Bs9ejTmz59f7T6j0djo5/Py8jrpcyWEEK6QmmMhRLNp1aqVegsICIBGo1H/NplMCAwMxKJFizBy5Eh4enri+++/r7U2ds6cOYiKiqp23/z589G9e3d4enqiW7du+PTTT+sty6+//orevXvDy8sLISEhuPzyy1FaWooZM2bgm2++wZ9//qnWXMbExAAAnn32WXTp0gXe3t7o0KEDXnrpJXVE/oIFCzBz5kzs3r1b3W/BggUAgMLCQtx///0ICwuDv78/LrvsMuzevdsdh/ScYzQaq31OWrVqhaCgIPXxGTNmIDIyEkajEa1bt8bUqVMBACNHjkRycjKeeOIJ9fgDJ9foVn6evv76a0RGRsLX1xcPPfQQ7HY73n77bbRq1QphYWF4/fXXq5XrvffeQ+/eveHj44OIiAg8/PDDKCkpAQDExMTg7rvvRmFhoRp7xowZAACLxYJnnnkGbdq0gY+PDwYPHqx+niotWLAAkZGR8Pb2xrhx45CXl1fvMbJYLHjkkUcQHh4OT09PREVFYdasWQCgfi/GjRsHjUaj/n3kyBHccMMNaNmyJXx9fTFw4ECsWrVKfc66jh8AbNy4ESNGjICXlxciIiIwdepUlJaW1ltGIc4lUnMsxFmqcgL+U83dC5A8++yzmD17NubPnw+j0YjPP/+8wX2++OILTJ8+HR9//DH69euHnTt3YvLkyfDx8cHEiRNP2j4zMxO33XYb3n77bYwbNw7FxcVYv349SOLpp5/G/v37UVRUpNZgBgcHAwD8/PywYMECtG7dGvHx8Zg8eTL8/PzwzDPPYMKECdi7dy+WLVumJh0BAQEgiWuvvRbBwcH4559/EBAQgM8++wyjRo3CwYMH1ec+ZepLanQ6wNPTuW21WqBqjWxt2/r4uF6+evz66694//33sXDhQvTs2RNZWVnqRcbvv/+OCy64APfffz8mT55c7/McOXIE//77L5YtW4YjR45g/PjxOHbsGLp06YK1a9di48aNuOeeezBq1CgMGTIEAKDVavHhhx8iKioKx44dw8MPP4xnnnkGn376KYYNG4Y5c+ZUawnx9fUFANx9991ISkrCwoUL0bp1ayxevBijR49GfHw8OnfujC1btuCee+7BG2+8gRtvvBHLli3D9OnT6y3/hx9+iCVLlmDRokWIjIxEamoqUlNTAQBxcXEICwvD/PnzMXr0aHWe4ZKSElxzzTV47bXX4OnpiW+++QZjxoxBYmIiIiMj6zx+8fHxuOqqq/Dqq6/iq6++Qk5ODh555BE88sgjJ9XwC3HOohDijFdeXs6EhASWl5er95WUlBDAKb+VlJQ06jXMnz+fAQEB6t/Hjh0jAM6ZM6fadtOnT+cFF1xQ7b7333+f7dq1U/+OiIjgjz/+WG2bV199lUOHDq019vbt2wmASUlJtT4+ceJE3nDDDQ2+hrfffpsDBgyot6yrV6+mv78/TSZTtfs7duzIzz77rMEYbgfUfbvmmurbenvXve0ll1TfNjT05G1cNHHiROp0Ovr4+FS7vfLKKyTJ2bNns0uXLrRYLLXu365dO77//vvV7qv5OZs+fTq9vb1ZVFSk3nfVVVcxKiqKdrtdva9r166cNWtWnWVdtGgRQ0JC6oxDkocPH6ZGo2F6enq1+0eNGsVp06aRJG+77TaOHj262uMTJkw46bmqevTRR3nZZZfR4XDU+jgALl68uM79K/Xo0YMfffSR+ndtx+/OO+/k/fffX+2+9evXU6vVVjv/VFXb+UmIs5nUHAshTqsLL7zQpe1zcnKQmpqKe++9t1qNl81mQ0BAQK37XHDBBRg1ahR69+6Nq666CldeeSXGjx9frfm+Nr/++ivmzJmDw4cPo6SkBDabDf7+/vXus337dpSUlJy0kmF5eTmOHDni5Ks8f1x66aWYO3dutfsqa9dvvvlmzJkzBx06dMDo0aNxzTXXYMyYMdDrXfvpioqKgp+fn/p3y5YtodPpoNVqq91XuQwyAERHR+ONN95AQkICioqKYLPZYDKZUFpaCp86ash37NgBkujSpUu1+81ms/p52L9/P8aNG1ft8aFDh2LZsmV1ln/SpEm44oor0LVrV4wePRrXXXcdrrzyynpfc2lpKWbOnIm///4bGRkZsNlsKC8vR0pKSr37bd++HYcPH8YPP/yg3kcSDocDx44dQ/fu3evdX4hzgSTHQpylvL291T6QpzquO9VMNLRaLUhWu6/qylsOhwNARdeKwYMHV9uurqVrdTodVq5ciY0bN2LFihX46KOP8MILL2DLli1o3759rfts3rwZt956K2bOnImrrroKAQEBWLhwIWbPnl3v63E4HAgPDz+pnymA0zO7QX2fkZrHq0pyeBJtjSEqSUmNLlJVPj4+6NSpU62PRUREIDExEStXrsSqVavw8MMP45133sHatWtdGrhZc1uNRlPrfZWfreTkZFxzzTV48MEH8eqrryI4OBixsbG49957610FzuFwQKfTYfv27Sd9Fiu7XdT8bDujf//+OHbsGP7991+sWrUKt9xyCy6//HL8+uuvde7zv//9D8uXL8e7776LTp06wcvLC+PHj4fFYqk3lsPhwAMPPKD27a4qMjLS5bILcTaS5FiIs5RGo6mzButs1qJFC2RlZYGk2rd5165d6uMtW7ZEmzZtcPToUdxxxx1OP69Go8FFF12Eiy66CC+//DLatWuHxYsX48knn4TBYIDdbq+2/YYNG9Cu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",
"text/plain": [
"<Figure size 800x400 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# --> Run the batch estimation.\n",
"x̂ = batch_estimator(y, ssm)\n",
"\n",
"# --> Plot the figure.\n",
"fig, axes = plt.subplots(n, 1, figsize=(8, 4), sharex=True)\n",
"\n",
"for i, ax in enumerate(axes):\n",
" ax.plot(t, x_true[:, i], color=\"black\", label=\"True state\")\n",
" ax.plot(t, x̂[:, i], color=\"red\", ls=\"--\", label=\"Estimated state\")\n",
" ax.set(xlim=(0, Th))\n",
" ax.set(ylim=(-2*abs(x_true[:, i]).max(), 2*abs(x_true[:, i]).max()))\n",
"\n",
"axes[0].legend(loc=\"lower center\", bbox_to_anchor=(0.5, 1.1), ncol=2)\n",
"\n",
"ylabels = [\"x[t]\", \"ẋ[t]\", \"θ[t]\", \"dθ/dt\"]\n",
"for i, ylabel in enumerate(ylabels):\n",
" axes[i].set(ylabel=ylabel)\n",
" \n",
"axes[-1].set(xlabel=\"Time\")"
]
},
{
"cell_type": "markdown",
"id": "5c369420-22ef-4049-bc37-c7079bedf72e",
"metadata": {},
"source": [
"The figure above depicts the estimates of the state variables obtained from the batch estimator.\n",
"Pause and ponder for a second and think about how impressive these results are.\n",
"Even though we only have noisy measurements of the cart's position, the batch estimation procedure is able to infer the time evolution of the other state variables we did not actually measure.\n",
"This is quite incredible when you think about it.\n",
"\n",
"It does have a problem though.\n",
"What if we have a new measurement $\\mathbf{y}_{T+1}$ and want to estimate the corresponding state $\\mathbf{x}_{T+1}$?\n",
"A naïve approach would be to construct the corresponding problem\n",
"\n",
"$$\n",
"\\begin{bmatrix}\n",
"\\left( \\mathbf{C}^* \\mathbf{C} + \\mathbf{A}^* \\mathbf{A} \\right) & - \\mathbf{A}^* & \\mathbf{0} & \\cdots \\\\\n",
"-\\mathbf{A} & \\left( \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} + \\mathbf{A}^* \\mathbf{A} \\right) & -\\mathbf{A}^* & \\mathbf{0} \\\\\n",
"\\mathbf{0} & -\\mathbf{A} & \\left( \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} + \\mathbf{A}^* \\mathbf{A} \\right) & -\\mathbf{A}^* & \\\\\n",
"\\vdots & \\ddots & \\ddots & \\ddots & \\\\\n",
"& \\mathbf{0} & -\\mathbf{A} & \\left( \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} + \\mathbf{A}^* \\mathbf{A} \\right) & -\\mathbf{A}^* \\\\\n",
"& & \\mathbf{0} & -\\mathbf{A} & \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} + {\\color{red} \\mathbf{A}^*\\mathbf{A}} & {\\color{red} -\\mathbf{A}^*} \\\\\n",
"& & & \\mathbf{0} & {\\color{red} -\\mathbf{A}} & {\\color{red} \\mathbf{C}^* \\mathbf{C} + \\mathbf{I}}\n",
"\\end{bmatrix}\n",
"\\begin{bmatrix}\n",
"\\hat{\\mathbf{x}}_0 \\\\ \\hat{\\mathbf{x}}_1 \\\\ \\vdots \\\\ \\vdots \\\\ \\hat{\\mathbf{x}}_{T-1} \\\\ \\hat{\\mathbf{x}}_T \\\\ {\\color{red} \\hat{\\mathbf{x}}_{T+1}}\n",
"\\end{bmatrix}\n",
"=\n",
"\\begin{bmatrix}\n",
"\\mathbf{C}^* \\mathbf{y}_0 \\\\ \n",
"\\mathbf{C}^* \\mathbf{y}_1 \\\\\n",
"\\vdots \\\\\n",
"\\vdots \\\\\n",
"\\mathbf{C}^* \\mathbf{y}_{T-1} \\\\\n",
"\\mathbf{C}^* \\mathbf{y}_{T} \\\\\n",
"{\\color{red} \\mathbf{C}^* \\mathbf{y}_{T+1}}\n",
"\\end{bmatrix}.\n",
"$$\n",
"\n",
"This problem is almost the same as before except for the addition of the terms in red, i.e. one new block-row and one block-column.\n",
"Solving it from scratch thus seems like a waste of computational resources: except for $\\hat{\\mathbf{x}}_{T+1}$, we can expect all the other components of the solution to be almost identical as the ones previously computed.\n",
"Moreover, as $T \\to \\infty$, the problem becomes intractable from a computational point of view.\n",
"Luckily, we can still to devise an efficient and recursive procedure to solve this problem."
]
},
{
"cell_type": "markdown",
"id": "7c17eb8e-416a-41e7-8dd9-63b9c4cf247c",
"metadata": {},
"source": [
"### **Forward-Backward recursions**\n",
"\n",
"Before looking at how to extend the estimation problem from time $t=T$ to $t=T+1$, let us look once more at our original problem, i.e. estimating the most likely state sequence from $t=0$ to $t=T$ given measurements $\\left\\{ \\mathbf{y}_t \\right\\}_{t=0, T}$.\n",
"The problem we have to solve is\n",
"\n",
"$$\n",
"\\begin{bmatrix}\n",
"\\left( \\mathbf{C}^* \\mathbf{C} + \\mathbf{A}^* \\mathbf{A} \\right) & - \\mathbf{A}^* & \\mathbf{0} & \\cdots \\\\\n",
"-\\mathbf{A} & \\left( \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} + \\mathbf{A}^* \\mathbf{A} \\right) & -\\mathbf{A}^* & \\mathbf{0} \\\\\n",
"\\mathbf{0} & -\\mathbf{A} & \\left( \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} + \\mathbf{A}^* \\mathbf{A} \\right) & -\\mathbf{A}^* & \\\\\n",
"\\vdots & \\ddots & \\ddots & \\ddots & \\\\\n",
"& \\mathbf{0} & -\\mathbf{A} & \\left( \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} + \\mathbf{A}^* \\mathbf{A} \\right) & -\\mathbf{A}^* \\\\\n",
"& & \\mathbf{0} & -\\mathbf{A} & \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} \n",
"\\end{bmatrix}\n",
"\\begin{bmatrix}\n",
"\\hat{\\mathbf{x}}_0 \\\\ \\hat{\\mathbf{x}}_1 \\\\ \\vdots \\\\ \\vdots \\\\ \\hat{\\mathbf{x}}_{T-1} \\\\ \\hat{\\mathbf{x}}_T\n",
"\\end{bmatrix} =\n",
"\\begin{bmatrix}\n",
"\\mathbf{C}^* \\mathbf{y}_0 \\\\ \n",
"\\mathbf{C}^* \\mathbf{y}_1 \\\\\n",
"\\vdots \\\\\n",
"\\vdots \\\\\n",
"\\mathbf{C}^* \\mathbf{y}_{T-1} \\\\\n",
"\\mathbf{C}^* \\mathbf{y}_{T}\n",
"\\end{bmatrix}.\n",
"$$\n",
"\n",
"This matrix has a particular structure: it is a **symmetric positive-definite block tridiagonal** matrix with $T+1$ blocks of size $n \\times n$.\n",
"While solving this problem with a general-purpose linear solver would incur a computational cost scaling as $\\mathcal{O}( (T+1)^3 n^3)$, we can actually leverage this particular structure to solve it far more efficiently.\n",
"In the process, we'll also obtain a recursive filter we can use for real-time forecasting.\n",
"\n",
"**A small detour through numerical linear algebra -** Consider a simplified version of the problem above with only 3 blocks.\n",
"The problem we wish to solve thus reads\n",
"\n",
"$$\n",
"\\begin{bmatrix}\n",
"\\mathbf{D}_0 & \\mathbf{L}_0^* & \\\\\n",
"\\mathbf{L}_0 & \\mathbf{D}_1 & \\mathbf{L}_1^* \\\\\n",
" & \\mathbf{L}_1 & \\mathbf{D}_2\n",
"\\end{bmatrix}\n",
"\\begin{bmatrix}\n",
"\\mathbf{z}_0 \\\\ \\mathbf{z}_1 \\\\ \\mathbf{z}_2\n",
"\\end{bmatrix} =\n",
"\\begin{bmatrix}\n",
"\\mathbf{b}_0 \\\\ \\mathbf{b}_1 \\\\ \\mathbf{b}_2\n",
"\\end{bmatrix}.\n",
"$$\n",
"\n",
"This linear system can be solved efficiently using a block version of the [Thomas algorithm](https://en.wikipedia.org/wiki/Tridiagonal_matrix_algorithm) for tridiagonal matrices.\n",
"It is easy to show that this amounts to factorizing the problem like so\n",
"\n",
"$$\n",
"\\begin{bmatrix}\n",
"\\mathbf{Q}_0 \\\\\n",
"\\mathbf{L}_0 & \\mathbf{Q}_1 \\\\\n",
" & \\mathbf{L}_1 & \\mathbf{Q}_2\n",
"\\end{bmatrix}\n",
"\\begin{bmatrix}\n",
"\\mathbf{I} & \\mathbf{U}_0 \\\\\n",
" & \\mathbf{I} & \\mathbf{U}_1 \\\\\n",
" & & \\mathbf{I}\n",
"\\end{bmatrix}\n",
"\\begin{bmatrix}\n",
"\\mathbf{z}_0 \\\\ \\mathbf{z}_1 \\\\ \\mathbf{z}_2\n",
"\\end{bmatrix}=\n",
"\\begin{bmatrix}\n",
"\\mathbf{b}_0 \\\\ \\mathbf{b}_1 \\\\ \\mathbf{b}_2\n",
"\\end{bmatrix},\n",
"$$\n",
"\n",
"where the matrices $\\mathbf{Q}_i$ and $\\mathbf{U}_i$ are defined recursively as\n",
"\n",
"```python\n",
"Q[0] = D[0]\n",
"for i = 1, 2, ..., k\n",
" U[i-1] = inv(Q[i-1]) @ L[i-1].T\n",
" Q[i] = D[i] - L[i-1] @ inv(Q[i-1]) @ L[i-1].T\n",
"```\n",
"\n",
"Solving this system of equations thus happens in two steps.\n",
"First, we solve the intermediate block lower-triangular system\n",
"\n",
"$$\n",
"\\begin{bmatrix}\n",
"\\mathbf{Q}_0 \\\\\n",
"\\mathbf{L}_0 & \\mathbf{Q}_1 \\\\\n",
" & \\mathbf{L}_1 & \\mathbf{Q}_2\n",
"\\end{bmatrix}\n",
"\\begin{bmatrix}\n",
"\\mathbf{w}_0 \\\\ \\mathbf{w}_1 \\\\ \\mathbf{w}_2\n",
"\\end{bmatrix}=\n",
"\\begin{bmatrix}\n",
"\\mathbf{b}_0 \\\\ \\mathbf{b}_1 \\\\ \\mathbf{b}_2\n",
"\\end{bmatrix}\n",
"$$\n",
"\n",
"using forward substitution.\n",
"The solution is given by\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
"\\mathbf{w}_0 & = \\mathbf{Q}_0^{-1} \\mathbf{b}_0 \\quad \\text{with} \\quad \\mathbf{Q}_0 = \\mathbf{D}_0 \\\\\n",
"\\mathbf{w}_1 & = \\mathbf{Q}_1^{-1} \\left( \\mathbf{b}_1 - \\mathbf{L}_0 \\mathbf{w}_0 \\right) \\quad \\text{with} \\quad \\mathbf{Q}_1 = \\mathbf{D}_1 - \\mathbf{L}_0 \\mathbf{Q}_0^{-1} \\mathbf{L}_0^* \\\\\n",
"\\mathbf{w}_2 & = \\mathbf{Q}_2^{-1} \\left( \\mathbf{b}_2 - \\mathbf{L}_1 \\mathbf{w}_1 \\right) \\quad \\text{with} \\quad \\mathbf{Q}_2 = \\mathbf{D}_2 - \\mathbf{L}_1 \\mathbf{Q}_1^{-1} \\mathbf{L}_1^*.\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"Note that the solution $\\mathbf{w}_i$ depends explicitly only on $\\mathbf{w}_{i-1}$ although it does depends implicitly on all the previous $\\mathbf{w}$'s through the recursive nature of the solution.\n",
"Once the different $\\mathbf{w}$'s have been computed, we then solve the block upper-triangular system\n",
"\n",
"$$\n",
"\\begin{bmatrix}\n",
"\\mathbf{I} & \\mathbf{U}_0 \\\\\n",
" & \\mathbf{I} & \\mathbf{U}_1 \\\\\n",
" & & \\mathbf{I}\n",
"\\end{bmatrix}\n",
"\\begin{bmatrix}\n",
"\\mathbf{z}_0 \\\\ \\mathbf{z}_1 \\\\ \\mathbf{z}_2\n",
"\\end{bmatrix}=\n",
"\\begin{bmatrix}\n",
"\\mathbf{w}_0 \\\\ \\mathbf{w}_1 \\\\ \\mathbf{w}_2\n",
"\\end{bmatrix}\n",
"$$\n",
"\n",
"using a backward substitution scheme.\n",
"The solution finally reads\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
"\\mathbf{z}_2 & = \\mathbf{w}_2 \\\\\n",
"\\mathbf{z}_1 & = \\mathbf{w}_1 - \\mathbf{U}_1 \\mathbf{z}_2 \\\\\n",
"\\mathbf{z}_0 & = \\mathbf{w}_0 - \\mathbf{U}_0 \\mathbf{z}_1.\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"This time, owing to the backward recursion, the solution $\\mathbf{z}_i$ only depends explicitely on $\\mathbf{w}_i$ and $\\mathbf{z}_{i+1}$ (if it exists), although once more the recursive nature of this solution makes it depend implicitely on all the previously computed $\\mathbf{z}$'s.\n",
"\n",
"**A statistical interpretation -** Let's relate this forward-backward recursive procedure to our statistical inference problem.\n",
"We will use the notation $\\hat{\\mathbf{x}}_{t \\vert s}$ to denote the estimate of $\\mathbf{x}_t$ given that we have observations until time $s$.\n",
"Remember that our objective is to infer the most likely state sequence from $t=0$ to $t=T$ given that we have measurements covering this whole period of time.\n",
"Using our newly introduced notation, we thus seek to infer $\\hat{\\mathbf{x}}_{0 \\vert T}$, $\\hat{\\mathbf{x}}_{1 \\vert T}$, ..., and $\\hat{\\mathbf{x}}_{T \\vert T}$.\n",
"It should be obvious that the output of the algorithm described in the previous section is precisely this state sequence, i.e.\n",
"\n",
"$$\n",
"\\mathbf{z}_0 = \\hat{\\mathbf{x}}_{0 \\vert T}, \\quad \\mathbf{z}_1 = \\hat{\\mathbf{x}}_{1 \\vert T}, \\quad \\cdots, \\quad \\mathbf{z}_T = \\hat{\\mathbf{x}}_{T \\vert T}.\n",
"$$\n",
"\n",
"Hence, the question is:\n",
"> *What is the statistical interpretation of the intermediate solutions $\\mathbf{w}$'s ?*\n",
"\n",
"Consider again the simplified 3 $\\times$ 3 problem but this time already pre-factorized.\n",
"The lower-triangular system we need to solve thus reads\n",
"\n",
"$$\n",
"\\begin{bmatrix}\n",
" \\mathbf{Q}_0 \\\\\n",
" -\\mathbf{A} & \\mathbf{Q}_1 \\\\\n",
" & -\\mathbf{A} & \\mathbf{Q}_2\n",
"\\end{bmatrix}\n",
"\\begin{bmatrix}\n",
" \\mathbf{w}_0 \\\\ \\mathbf{w}_1 \\\\ \\mathbf{w}_2\n",
"\\end{bmatrix}=\n",
"\\begin{bmatrix}\n",
" \\mathbf{C}^* \\mathbf{y}_0 \\\\\n",
" \\mathbf{C}^* \\mathbf{y}_1 \\\\\n",
" \\mathbf{C}^* \\mathbf{y}_2\n",
"\\end{bmatrix}\n",
"$$\n",
"\n",
"with\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
" \\mathbf{Q}_0 & = \\mathbf{C}^* \\mathbf{C} + \\mathbf{A}^* \\mathbf{A}, \\\\\n",
" \\mathbf{Q}_{1} & = \\left( \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} + \\mathbf{A}^* \\mathbf{A} \\right) - \\mathbf{A} \\mathbf{Q}_{0}^{-1} \\mathbf{A}^*, \\\\\n",
" \\mathbf{Q}_{2} & = \\left( \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} \\right) - \\mathbf{A} \\mathbf{Q}_{1}^{-1} \\mathbf{A}^*.\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"At step 0, the solution is given by\n",
"\n",
"$$\n",
"\\mathbf{w}_0 = \\left( \\mathbf{C}^* \\mathbf{C} + \\mathbf{A}^* \\mathbf{A} \\right)^{-1} \\mathbf{C}^* \\mathbf{y}_0.\n",
"$$\n",
"\n",
"Informally, the matrix $\\mathbf{Q}_0$ can be interpreted as the Fisher information matrix (i.e. the inverse of the covariance matrix) of the least-squares estimate of $\\mathbf{x}_0$ given that we only observed up to $t=0$.\n",
"Hence, we have $\\mathbf{w}_0 = \\hat{\\mathbf{x}}_{0 \\vert 0}$.\n",
"Likewise, at step 1 we have\n",
"\n",
"$$\n",
"\\mathbf{w}_1 = \\left[ \\left( \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} + \\mathbf{A}^* \\mathbf{A} \\right) - \\mathbf{A} \\mathbf{Q}_{0}^{-1} \\mathbf{A}^* \\right]^{-1} \\left( \\mathbf{C}^* \\mathbf{y}_1 + \\mathbf{A} \\hat{\\mathbf{x}}_{0 \\vert 0} \\right).\n",
"$$\n",
"\n",
"The matrix $\\mathbf{Q}_1$ can be expressed as the [Schur complement](https://en.wikipedia.org/wiki/Schur_complement) $\\mathbf{M}/\\mathbf{Q}_0$ of the matrix\n",
"\n",
"$$\n",
"\\mathbf{M} =\n",
"\\begin{bmatrix}\n",
"\\mathbf{Q}_0 & \\mathbf{A}^* \\\\\n",
"\\mathbf{A} & \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} + \\mathbf{A}^* \\mathbf{A}\n",
"\\end{bmatrix}.\n",
"$$\n",
"\n",
"Hence, $\\mathbf{Q}_1^{-1}$ is the covariance matrix of the least-squares estimate of $\\mathbf{x}_1$ conditionned on $\\mathbf{x}_0 = \\hat{\\mathbf{x}}_{0 \\vert 0}$ and on the fact that we have observations until $t=1$.\n",
"We thus have $\\mathbf{w}_1 = \\hat{\\mathbf{x}}_{1 \\vert 1}$.\n",
"Using the same arguments, we have $\\mathbf{w}_2 = \\hat{\\mathbf{x}}_{2 \\vert 2}$ all the way to $\\mathbf{w}_T = \\hat{\\mathbf{x}}_{T \\vert T}$.\n",
"\n",
"**A digitial signal processing interpretation -** Due to the recursive nature of the definition of $\\hat{\\mathbf{x}}_{t \\vert t}$, we can actually express this forward procedure as a *causal linear time-varying* [recursive filter](https://en.wikipedia.org/wiki/Recursive_filter).\n",
"Given $\\mathbf{Q}_0$ and $\\hat{\\mathbf{x}}_{0 \\vert 0}$, we have\n",
"\n",
"$$\n",
"\\hat{\\mathbf{x}}_{t \\vert t } = \\mathbf{F}_{t-1} \\hat{\\mathbf{x}}_{t-1 \\vert t-1} + \\mathbf{G}_{t} \\mathbf{y}_{t} \\quad \\forall t \\in \\left[1, T \\right],\n",
"$$\n",
"\n",
"with $\\mathbf{F}_{t-1} = \\mathbf{Q}_{t}^{-1} \\mathbf{A}$, $\\mathbf{G}_{t} = \\mathbf{Q}_{t}^{-1} \\mathbf{C}^*$ and $\\mathbf{Q}_t$ recursively defined from the diagonal and off-diagonal blocks of the original problem.\n",
"This filter thus takes as input a signal $\\mathbf{y}_t$ and transform it into a new signal $\\hat{\\mathbf{x}}_{t \\vert t}$.\n",
"Similarly, the backward recursion can also be expressed as an *anti-causal linear time-varying recursive filter*.\n",
"Given $\\hat{\\mathbf{x}}_{T \\vert T}$, it is defined as\n",
"\n",
"$$\n",
"\\hat{\\mathbf{x}}_{t-1 \\vert T} = \\hat{\\mathbf{x}}_{t-1 \\vert t-1} - \\mathbf{U}_{t-1} \\hat{\\mathbf{x}}_{t \\vert T} \\quad \\forall t \\in \\left[ T, 1 \\right].\n",
"$$\n",
"\n",
"The successive application of the two, i.e. the causal filter from $t=0$ to $t=T$ and the anti-causal one from $t=T$ to $t=0$, thus gives us a computationally efficient way to perform Kalman-Bucy smoothing."
]
},
{
"cell_type": "markdown",
"id": "3d79517d-f36f-4d80-acbc-8f576ce392a1",
"metadata": {},
"source": [
"---\n",
"\n",
"## **The Kalman filter**\n",
"\n",
"We are now ready to answer to our original question, i.e. how to compute $\\hat{\\mathbf{x}}_{T+1 \\vert T+1}$ given knowledge of $\\left\\{ \\hat{\\mathbf{x}}_{t \\vert T} \\right\\}_{t=0, T}$ and $\\mathbf{y}_{T+1}$ without having to re-solve a large-scale linear system.\n",
"Using again our small $3 \\times 3$ example, we thus want to move from\n",
"\n",
"$$\n",
"\\begin{bmatrix}\n",
"\\mathbf{C}^* \\mathbf{C} + \\mathbf{A}^* \\mathbf{A} & -\\mathbf{A}^* \\\\\n",
"-\\mathbf{A} & \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} + \\mathbf{A}^* \\mathbf{A} & -\\mathbf{A}^* \\\\\n",
" & -\\mathbf{A} & \\mathbf{C}^* \\mathbf{C} + \\mathbf{I}\n",
"\\end{bmatrix}\n",
"\\begin{bmatrix}\n",
"\\hat{\\mathbf{x}}_{0 \\vert 2} \\\\ \\hat{\\mathbf{x}}_{1 \\vert 2} \\\\ \\hat{\\mathbf{x}}_{2 \\vert 2}\n",
"\\end{bmatrix}=\n",
"\\begin{bmatrix}\n",
"\\mathbf{C}^* \\mathbf{y}_0 \\\\ \\mathbf{C}^* \\mathbf{y}_1 \\\\ \\mathbf{C}^* \\mathbf{y}_2\n",
"\\end{bmatrix},\n",
"$$\n",
"\n",
"to the $4 \\times 4$ system\n",
"\n",
"$$\n",
"\\begin{bmatrix}\n",
"\\mathbf{C}^* \\mathbf{C} + \\mathbf{A}^* \\mathbf{A} & -\\mathbf{A}^* \\\\\n",
"-\\mathbf{A} & \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} + \\mathbf{A}^* \\mathbf{A} & -\\mathbf{A}^* \\\\\n",
" & -\\mathbf{A} & \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} {\\color{red} + \\mathbf{A}^* \\mathbf{A}} & {\\color{red} -\\mathbf{A}^*} \\\\\n",
" & & {\\color{red}-\\mathbf{A}} & {\\color{red} \\mathbf{C}^* \\mathbf{C} + \\mathbf{I}} \n",
"\\end{bmatrix}\n",
"\\begin{bmatrix}\n",
"\\hat{\\mathbf{x}}_{0 \\vert {\\color{red}3}} \\\\ \\hat{\\mathbf{x}}_{1 \\vert {\\color{red}3}} \\\\ \\hat{\\mathbf{x}}_{2 \\vert {\\color{red}3}} \\\\ {\\color{red} \\hat{\\mathbf{x}}_{3 \\vert 3}}\n",
"\\end{bmatrix}=\n",
"\\begin{bmatrix}\n",
"\\mathbf{C}^* \\mathbf{y}_0 \\\\ \\mathbf{C}^* \\mathbf{y}_1 \\\\ \\mathbf{C}^* \\mathbf{y}_2 \\\\ {\\color{red} \\mathbf{C}^* \\mathbf{y}_3}\n",
"\\end{bmatrix}\n",
"$$\n",
"\n",
"where we highlighted in ${\\color{red} \\text{red}}$ the new terms.\n",
"Since we are interested only in $\\hat{\\mathbf{x}}_{3 \\vert 3}$, from the discussion in the previous section, this computation involves only the forward recursion.\n",
"Rather than these two systems, we are thus technically interested only in moving from the $3 \\times 3$ lower triangular system\n",
"\n",
"$$\n",
"\\begin{bmatrix}\n",
"\\mathbf{Q}_0 \\\\\n",
"-\\mathbf{A} & \\mathbf{Q}_1 \\\\\n",
" & -\\mathbf{A} & \\mathbf{Q}_2\n",
"\\end{bmatrix}\n",
"\\begin{bmatrix}\n",
" \\hat{\\mathbf{x}}_{0 \\vert 0} \\\\ \\hat{\\mathbf{x}}_{1 \\vert 1} \\\\ \\hat{\\mathbf{x}}_{2 \\vert 2}\n",
"\\end{bmatrix}=\n",
"\\begin{bmatrix}\n",
" \\mathbf{C}^* \\mathbf{y}_0 \\\\ \\mathbf{C}^* \\mathbf{y}_1 \\\\ \\mathbf{C}^* \\mathbf{y}_2\n",
"\\end{bmatrix}\n",
"$$\n",
"\n",
"to the $4 \\times 4$ one\n",
"\n",
"$$\n",
"\\begin{bmatrix}\n",
"\\mathbf{Q}_0 \\\\\n",
"-\\mathbf{A} & \\mathbf{Q}_1 \\\\\n",
" & -\\mathbf{A} & \\mathbf{Q}_2 + {\\color{red} \\mathbf{A}^* \\mathbf{A}} \\\\\n",
" & & {\\color{red} -\\mathbf{A}} & {\\color{red} \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} - \\mathbf{A} \\left( \\mathbf{Q}_2 + {\\color{red} \\mathbf{A}^* \\mathbf{A}} \\right)^{-1} \\mathbf{A}^*}\n",
"\\end{bmatrix}\n",
"\\begin{bmatrix}\n",
" \\hat{\\mathbf{x}}_{0 \\vert 0} \\\\ \\hat{\\mathbf{x}}_{1 \\vert 1} \\\\ {\\color{red} \\tilde{\\mathbf{x}}_{2 \\vert 2}} \\\\ {\\color{red} \\hat{\\mathbf{x}}_{3 \\vert 3}}\n",
"\\end{bmatrix}=\n",
"\\begin{bmatrix}\n",
" \\mathbf{C}^* \\mathbf{y}_0 \\\\ \\mathbf{C}^* \\mathbf{y}_1 \\\\ \\mathbf{C}^* \\mathbf{y}_2 \\\\ {\\color{red} \\mathbf{C}^* \\mathbf{y}_3}\n",
"\\end{bmatrix}.\n",
"$$\n",
"\n",
"While the first two estimates do not change, we temporarily indicate that the estimate for $\\mathbf{x}_2$ changes from $\\hat{\\mathbf{x}}_{2 \\vert 2}$ to $\\tilde{\\mathbf{x}}_{2 \\vert 2}$ due to the inclusion of the term $\\mathbf{A}^* \\mathbf{A}$ in the corresponding diagonal block.\n",
"Computing $\\hat{\\mathbf{x}}_{3 \\vert 3}$ from $\\left\\{ \\hat{\\mathbf{x}}_{t \\vert t} \\right\\}_{t=0, 2}$ can actually be obtained efficiently using a *prediction-correction* scheme.\n",
"\n",
"### **Prediction step**\n",
"\n",
"In the prediction step, our objective is to obtain the most likely estimate for $\\mathbf{x}_3$ given that we have measurements only from $t=0$ to $t=2$.\n",
"We will thus denote this estimate as $\\hat{\\mathbf{x}}_{3 \\vert 2}$.\n",
"The corresponding problem reads\n",
"\n",
"$$\n",
"\\begin{bmatrix}\n",
"\\mathbf{Q}_0 \\\\\n",
"-\\mathbf{A} & \\mathbf{Q}_1 \\\\\n",
" & -\\mathbf{A} & \\mathbf{Q}_2 + {\\color{red} \\mathbf{A}^* \\mathbf{A}} \\\\\n",
" & & {\\color{red} -\\mathbf{A}} & {\\color{red} \\mathbf{I} - \\mathbf{A} \\left( \\mathbf{Q}_2 + {\\color{red} \\mathbf{A}^* \\mathbf{A}} \\right)^{-1} \\mathbf{A}^*}\n",
"\\end{bmatrix}\n",
"\\begin{bmatrix}\n",
" \\hat{\\mathbf{x}}_{0 \\vert 0} \\\\ \\hat{\\mathbf{x}}_{1 \\vert 1} \\\\ {\\color{red} \\tilde{\\mathbf{x}}_{2 \\vert 2}} \\\\ {\\color{red} \\hat{\\mathbf{x}}_{3 \\vert 2}}\n",
"\\end{bmatrix}=\n",
"\\begin{bmatrix}\n",
" \\mathbf{C}^* \\mathbf{y}_0 \\\\ \\mathbf{C}^* \\mathbf{y}_1 \\\\ \\mathbf{C}^* \\mathbf{y}_2 \\\\ {\\color{red} \\mathbf{0}}\n",
"\\end{bmatrix}.\n",
"$$\n",
"\n",
"Let us denote the update of the third diagonal element by $\\tilde{\\mathbf{Q}}_2 = \\mathbf{Q}_2 + \\mathbf{A}^* \\mathbf{A}$.\n",
"We thus have\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
"\\tilde{\\mathbf{x}}_{2 \\vert 2} & = \\tilde{\\mathbf{Q}}_2^{-1} \\left( \\mathbf{C}^* \\mathbf{y}_2 + \\mathbf{A} \\hat{\\mathbf{x}}_{1 \\vert 1} \\right) \\\\\n",
" & = \\left( \\mathbf{Q}_2 + \\mathbf{A}^* \\mathbf{A} \\right)^{-1} \\left( \\mathbf{C}^* \\mathbf{y}_2 + \\mathbf{A} \\hat{\\mathbf{x}}_{1 \\vert 1} \\right).\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"Note that, provided $\\mathbf{Q}_2^{-1}$ has already been computed, $\\left( \\mathbf{Q}_2 + \\mathbf{A}^* \\mathbf{A} \\right)^{-1}$ can \"easily\" be obtained by invoking the [matrix inversion lemma](https://en.wikipedia.org/wiki/Woodbury_matrix_identity).\n",
"Doing so, we have\n",
"\n",
"$$\n",
"\\left( \\mathbf{Q}_2 + \\mathbf{A}^* \\mathbf{A} \\right)^{-1} = \\mathbf{Q}_2^{-1} - \\mathbf{Q}_2^{-1} \\mathbf{A}^* \\left( \\mathbf{I} + \\mathbf{A} \\mathbf{Q}_2^{-1} \\mathbf{A}^* \\right)^{-1} \\mathbf{A} \\mathbf{Q}_2^{-1}.\n",
"$$\n",
"\n",
"Plugging this long expression into the definition of $\\tilde{\\mathbf{x}}_{2 \\vert 2}$ leads after some simplifications to\n",
"\n",
"$$\n",
"\\tilde{\\mathbf{x}}_{2 \\vert 2} = \\hat{\\mathbf{x}}_{2 \\vert 2} - \\mathbf{Q}_2^{-1} \\mathbf{A}^* \\left( \\mathbf{I} + \\mathbf{A} \\mathbf{Q}_2^{-1} \\mathbf{A}^* \\right)^{-1} \\mathbf{A} \\hat{\\mathbf{x}}_{2 \\vert 2}.\n",
"$$\n",
"\n",
"Letting $\\tilde{\\mathbf{Q}}_3 = \\mathbf{I} - \\mathbf{A} \\left( \\mathbf{Q}_2 + \\mathbf{A}^* \\mathbf{A} \\right)^{-1} \\mathbf{A}^*$, the equation for $\\hat{\\mathbf{x}}_{3 \\vert 3}$ now reads\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
" \\hat{\\mathbf{x}}_{3 \\vert 2} & = \\tilde{\\mathbf{Q}}_3^{-1} \\mathbf{A} \\tilde{\\mathbf{x}}_{2 \\vert 2} \\\\\n",
" & = \\tilde{\\mathbf{Q}}_3^{-1} \\left( \\mathbf{I} - \\mathbf{A} \\mathbf{Q}_2^{-1} \\mathbf{A}^* \\left( \\mathbf{I} + \\mathbf{A} \\mathbf{Q}_2^{-1} \\mathbf{A}^* \\right)^{-1} \\right) \\mathbf{A} \\hat{\\mathbf{x}}_{2 \\vert 2} \\\\\n",
" & = \\tilde{\\mathbf{Q}}_3^{-1} \\left( \\mathbf{I} + \\mathbf{A} \\mathbf{Q}_2^{-1} \\mathbf{A}^* \\right)^{-1} \\mathbf{A} \\tilde{\\mathbf{x}}_{2 \\vert 2} \\\\\n",
" & = \\mathbf{A} \\hat{\\mathbf{x}}_{2 \\vert 2}.\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"While deriving this expression for $\\hat{\\mathbf{x}}_{3 \\vert 2}$, we made us of the identity for symmetric matrices\n",
"\n",
"$$\n",
" \\mathbf{I} - \\mathbf{S} \\left( \\mathbf{I} + \\mathbf{S} \\right)^{-1} = \\left( \\mathbf{I} + \\mathbf{S} \\right)^{-1},\n",
"$$\n",
"\n",
"as well as the matrix inversion lemma once more\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
" \\left( \\mathbf{I} + \\mathbf{A} \\mathbf{Q}_2^{-1} \\mathbf{A}^* \\right)^{-1} & = \\mathbf{I} - \\mathbf{A} \\left( \\mathbf{Q}_2 + \\mathbf{A}^* \\mathbf{A} \\right)^{-1} \\mathbf{A}^* \\\\\n",
" & = \\mathbf{I} - \\mathbf{A} \\tilde{\\mathbf{Q}}_2^{-1} \\mathbf{A}^{*} \\\\\n",
" & = \\tilde{\\mathbf{Q}}_3.\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"All this lengthy mathematics just to prove that the most likely estimate of $\\mathbf{x}_3$ given that we observed only from $t=0$ to $t=2$ is given by $\\hat{\\mathbf{x}}_{3 \\vert 2} = \\mathbf{A} \\hat{\\mathbf{x}}_{2 \\vert 2}$, i.e. simply propagating forward in time the estimate of $\\mathbf{x}_2$ given that we have measurements from $t=0$ to $t=2$...\n",
"\n",
"### **Correction step**\n",
"\n",
"Consider now the situation where, given measurements from $t=0$ to $t=T$, we have been able to estimate $\\hat{\\mathbf{x}}_{T \\vert T}$ and obtain the prediction $\\hat{\\mathbf{x}}_{T+1 \\vert T}$.\n",
"Suppose now that, after having made our prediction, we eventually have access to the measurement $\\mathbf{y}_{T+1}$.\n",
"We would thus like to *correct* our prediction using this new bit of knowledge, i.e. moving from $\\hat{\\mathbf{x}}_{T+1 \\vert T}$ to $\\hat{\\mathbf{x}}_{T+1 \\vert T+1}$.\n",
"Using once more our small example, we know by now that this can be obtained by solving\n",
"\n",
"$$\n",
"\\begin{bmatrix}\n",
"\\mathbf{Q}_0 \\\\\n",
"-\\mathbf{A} & \\mathbf{Q}_1 \\\\\n",
" & -\\mathbf{A} & \\mathbf{Q}_2 + \\mathbf{A}^* \\mathbf{A} \\\\\n",
" & & -\\mathbf{A} & {\\color{red} \\mathbf{C}^* \\mathbf{C}} + \\mathbf{I} - \\mathbf{A} \\left( \\mathbf{Q}_2 + \\mathbf{A}^* \\mathbf{A} \\right)^{-1} \\mathbf{A}^*\n",
"\\end{bmatrix}\n",
"\\begin{bmatrix}\n",
" \\hat{\\mathbf{x}}_{0 \\vert 0} \\\\ \\hat{\\mathbf{x}}_{1 \\vert 1} \\\\ \\hat{\\mathbf{x}}_{2 \\vert 2} \\\\ {\\color{red} \\hat{\\mathbf{x}}_{3 \\vert 3}}\n",
"\\end{bmatrix}=\n",
"\\begin{bmatrix}\n",
" \\mathbf{C}^* \\mathbf{y}_0 \\\\ \\mathbf{C}^* \\mathbf{y}_1 \\\\ \\mathbf{C}^* \\mathbf{y}_2 \\\\ {\\color{red} \\mathbf{C}^* \\mathbf{y}_3}\n",
"\\end{bmatrix}.\n",
"$$\n",
"\n",
"Let $\\mathbf{Q}_3 = \\mathbf{C}^* \\mathbf{C} + \\mathbf{I} - \\mathbf{A} \\left( \\mathbf{Q}_2 + \\mathbf{A}^* \\mathbf{A} \\right)^{-1} \\mathbf{A}^* = \\mathbf{C}^* \\mathbf{C} + \\tilde{\\mathbf{Q}}_3$.\n",
"From the last equation, we can write\n",
"\n",
"$$\n",
"\\hat{\\mathbf{x}}_{3 \\vert 3} = \\mathbf{Q}_3^{-1} \\left( \\mathbf{C}^* \\mathbf{y}_3 + \\mathbf{A} \\hat{\\mathbf{x}}_{2 \\vert 2} \\right).\n",
"$$\n",
"\n",
"Invoking once more the matrix inversion lemma and the fact that $\\hat{\\mathbf{x}}_{3 \\vert 2} = \\mathbf{A} \\hat{\\mathbf{x}}_{2 \\vert 2}$, we can write\n",
"\n",
"$$\n",
"\\mathbf{Q}_3^{-1} \\mathbf{A} \\hat{\\mathbf{x}}_{2 \\vert 2} = \\hat{\\mathbf{x}}_{3 \\vert 2} - \\tilde{\\mathbf{Q}}_3^{-1} \\mathbf{C}^* \\left( \\mathbf{I} + \\mathbf{A} \\tilde{\\mathbf{Q}}_3^{-1} \\mathbf{A}^* \\right)^{-1} \\mathbf{C} \\hat{\\mathbf{x}}_{3 \\vert 2}\n",
"$$\n",
"\n",
"and\n",
"\n",
"$$\n",
"\\mathbf{Q}_3^{-1} \\mathbf{C}^* \\mathbf{y}_3 = \\tilde{\\mathbf{Q}}_3^{-1} \\mathbf{C}^* \\left( \\mathbf{I} + \\mathbf{C} \\tilde{\\mathbf{Q}}_3^{-1} \\mathbf{C}^* \\right)^{-1} \\mathbf{y}_3.\n",
"$$\n",
"\n",
"Combining these two expressions, we finally obtain the corrected estimate as\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
" \\hat{\\mathbf{x}}_{3 \\vert 3} & = \\hat{\\mathbf{x}}_{3 \\vert 2} + \\mathbf{K}_{3} \\left( \\mathbf{y}_3 - \\mathbf{C} \\hat{\\mathbf{x}}_{3 \\vert 2} \\right) \\\\\n",
" & = \\mathbf{A} \\hat{\\mathbf{x}}_{2 \\vert 2} + \\mathbf{K}_{3} \\left( \\mathbf{y}_3 - \\mathbf{C} \\hat{\\mathbf{x}}_{3 \\vert 2} \\right).\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"where $\\mathbf{K}_3 = \\tilde{\\mathbf{Q}}_3^{-1} \\mathbf{C}^* \\left( \\mathbf{I} + \\mathbf{A} \\tilde{\\mathbf{Q}}_3^{-1} \\mathbf{A}^* \\right)^{-1}$.\n",
"The estimate $\\hat{\\mathbf{x}}_{3 \\vert 3}$ is thus composed of two terms:\n",
"- $\\hat{\\mathbf{x}}_{3 \\vert 2} = \\mathbf{A} \\hat{\\mathbf{x}}_{2 \\vert 2}$ : This term corresponds to our best prediction of what $\\mathbf{x}_3$ will be before the measurement $\\mathbf{y}_3$ is available to us.\n",
"- $\\mathbf{K}_3 \\left( \\mathbf{y}_3 - \\mathbf{C} \\hat{\\mathbf{x}}_{3 \\vert 2} \\right)$ : This term is the correction we make to our prediction once the measurement $\\mathbf{y}_3$ is available. Note that it is proportional to the difference between what the measurement actually is (i.e. $\\mathbf{y}_3$) and what we thought it would be (i.e. $\\hat{\\mathbf{y}}_{3 \\vert 2} = \\mathbf{C} \\hat{\\mathbf{x}}_{3 \\vert 2}$).\n",
"\n",
"For the sake of notational \"simplicity\", let us denote\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
" \\mathbf{P}_{3 \\vert 2} \\coloneqq \\tilde{\\mathbf{Q}}_3^{-1} & = \\mathbf{I} + \\mathbf{A} \\mathbf{Q}_2^{-1} \\mathbf{A} \\\\\n",
" & = \\mathbf{I} + \\mathbf{A} \\mathbf{P}_{2 \\vert 2} \\mathbf{A}.\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"The matrix $\\mathbf{K}_3$, known as the *Kalman gain*, can be written as\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
" \\mathbf{K}_3 & = \\tilde{\\mathbf{Q}}_{3}^{-1} \\mathbf{C}^* \\left( \\mathbf{I} + \\mathbf{A} \\tilde{\\mathbf{Q}}_3^{-1} \\mathbf{C}^* \\right)^{-1} \\\\\n",
" & = \\mathbf{P}_{3 \\vert 2} \\mathbf{C}^* \\left( \\mathbf{I} + \\mathbf{C} \\mathbf{P}_{3 \\vert 2} \\mathbf{C}^* \\right)^{-1}.\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"Finally, we can also derive the following expression\n",
"\n",
"$$\n",
" \\mathbf{P}_{3 \\vert 3} \\coloneqq \\mathbf{Q}_3^{-1} = \\left( \\mathbf{I} - \\mathbf{K}_3 \\mathbf{C} \\right) \\mathbf{P}_{3 \\vert 2}.\n",
"$$\n",
"\n",
"Now that we went through all these maths, we have everything we need to derive the recursive definition of the [Kalman filter](https://en.wikipedia.org/wiki/Kalman_filter).\n",
"\n",
"### **Putting everything together**\n",
"\n",
"From the previous sections, we have seen that the Kalman filter operates in two steps.\n",
"Given an initial estimate for $\\hat{\\mathbf{x}}_{0 \\vert 0}$ and $\\mathbf{P}_{0 \\vert 0}$, the next estimates are obtained by the following procedure:\n",
"1. **Prediction step:** Given $\\hat{\\mathbf{x}}_{t \\vert t}$ and the associated covariance matrix $\\mathbf{P}_{t \\vert t}$, the state of the system at $t+1$ is predicted by\n",
" $$\n",
" \\begin{aligned}\n",
" \\hat{\\mathbf{x}}_{t+1 \\vert t} & = \\mathbf{A} \\hat{\\mathbf{x}}_{t \\vert t} \\quad & \\text{(State prediction)} \\\\\n",
" \\mathbf{P}_{t+1 \\vert t} & = \\mathbf{A} \\mathbf{P}_{t \\vert t} \\mathbf{A}^* + \\mathbf{I} \\quad & \\text{(Covariance prediction)}\n",
" \\end{aligned}\n",
" $$\n",
"2. **Correction step:** Once the measurement $\\mathbf{y}_{t+1}$ is available, we then correct our estimates $(\\hat{\\mathbf{x}}_{t+1 \\vert t}, \\mathbf{P}_{t+1 \\vert t})$ to obtain\n",
" $$\n",
" \\begin{aligned}\n",
" \\hat{\\mathbf{x}}_{t+1 \\vert t+1} & = \\hat{\\mathbf{x}}_{t+1 \\vert t} + \\mathbf{K}_{t+1} \\left( \\mathbf{y}_{t+1} - \\mathbf{C} \\hat{\\mathbf{x}}_{t+1 \\vert t} \\right) \\quad & \\text{(State correction)} \\\\\n",
" \\mathbf{P}_{t+1 \\vert t+1} & = \\left( \\mathbf{I} - \\mathbf{K}_{t+1} \\mathbf{C} \\right) \\mathbf{P}_{t+1 \\vert t} \\quad & \\text{(Covariance correction)}\n",
" \\end{aligned}\n",
" $$\n",
" where the Kalman gain is given by $\\mathbf{K}_{t+1} = \\mathbf{P}_{t+1 \\vert t} \\mathbf{C}^* \\left( \\mathbf{I} + \\mathbf{C} \\mathbf{P}_{t+1 \\vert t} \\mathbf{C}^* \\right)^{-1}$.\n",
"\n",
"The state prediction and correction steps can be combined to obtain the recursive filter discussed previously, i.e.\n",
"\n",
"$$\n",
"\\hat{\\mathbf{x}}_{t+1 \\vert t+1} = \\left( \\mathbf{A} - \\mathbf{K}_{t+1} \\mathbf{C} \\right) \\hat{\\mathbf{x}}_{t \\vert t} + \\mathbf{K}_{t+1} \\mathbf{y}_{t+1}.\n",
"$$\n",
"\n",
"Note that the Kalman filter differs from the Kalman smoother in that it only acts forward in time.\n",
"As such, Kalman filtering can be used for real-time forecasting and estimation.\n",
"The Kalman smoother on the other hand, requiring both a forward and backward estimation, is typically used for post-processing of experimentally collected data.\n",
"Let us compare the estimates obtained by both approaches for our stochastically forced cartpole system."
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "de0ef9c7-b64f-448b-a972-33f79b7226f7",
"metadata": {},
"outputs": [],
"source": [
"def kalman_filter(y, ssm, x0, P0):\n",
" \"\"\"\n",
" Simple implementation of Kalman filtering.\n",
"\n",
" INPUT\n",
" -----\n",
"\n",
" y : numpy array, shape (nt, m)\n",
" Sequence of noisy measurements.\n",
"\n",
" ssm : dlti object\n",
" State-space model of the system.\n",
"\n",
" RETURN\n",
" ------\n",
"\n",
" x : numpy array, shape (nt, n)\n",
" Kalman filtered estimates of the state sequence.\n",
" \"\"\"\n",
"\n",
" ##################################\n",
" ##### INITIALIZATION #####\n",
" ##################################\n",
" \n",
" # --> System matrices.\n",
" A, C = ssm.A, ssm.C\n",
" \n",
" # --> Dimensions of the problem.\n",
" m, n = C.shape # Number of sensors/states.\n",
" nt = len(y) # Length of the signal to be filtered.\n",
"\n",
" # --> Various useful arrays.\n",
" x = np.zeros((nt, n)) # Array containing the estimated states.\n",
" P = np.zeros((nt, n, n)) # Array containing the covariance matrices P[t|t].\n",
" K = np.zeros((nt, n, m)) # Array containing the time-varying Kalman gains.\n",
" In = np.eye(n) # Identity matrix.\n",
" Im = np.eye(m)\n",
"\n",
" # --> Initialization.\n",
" x[0], P[0] = x0, P0\n",
"\n",
" ####################################\n",
" ##### KALMAN FILTERING #####\n",
" ####################################\n",
"\n",
" for i in range(nt-1):\n",
" # --> Prediction step.\n",
" x[i+1] = A @ x[i] # State prediction.\n",
" P[i+1] = A @ P[i] @ A.T + In # Covariance prediction.\n",
"\n",
" # --> Correction step.\n",
" K[i+1] = P[i+1] @ C.T @ np.linalg.inv(C @ P[i+1] @ C.T + Im) # Kalman gain.\n",
" x[i+1] += K[i+1] @ (y[i+1] - C @ x[i+1]) # State correction.\n",
" P[i+1] = (In - K[i+1] @ C) @ P[i+1] # Covariance correction.\n",
" \n",
" return x, P, K"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "6e5ff5cc-9d45-408e-b119-3c177dca9ccd",
"metadata": {},
"outputs": [],
"source": [
"# --> Initialize x[0|0] and P[0|0].\n",
"x0 = np.linalg.pinv(C) @ y[0] # Least-squares estimate of the initial condition.\n",
"P0 = np.linalg.pinv(C.T @ C) # Covariance matrix of the initial least-squares estimator.\n",
"\n",
"# --> Runs the Kalman filter.\n",
"x, Ps, Ks = kalman_filter(y, ssm, x0, P0)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "50a84195-d6ef-4478-8170-1f102b4cb52f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[Text(0.5, 0, 'Time')]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 800x400 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# --> Plot the figure.\n",
"fig, axes = plt.subplots(n, 1, figsize=(8, 4), sharex=True)\n",
"\n",
"for i, ax in enumerate(axes):\n",
" ax.plot(t, x[:, i], color=\"dodgerblue\", label=\"Kalman filter\")\n",
" ax.plot(t, x_true[:, i], color=\"black\", label=\"True state\", lw=2)\n",
" ax.plot(t, x̂[:, i], color=\"red\", ls=\"--\", label=\"Kalman smoother\", lw=1.25)\n",
" \n",
" ax.set(xlim=(0, Th))\n",
" ax.set(ylim=(-2*abs(x_true[:, i]).max(), 2*abs(x_true[:, i]).max()))\n",
"\n",
"axes[0].legend(loc=\"lower center\", bbox_to_anchor=(0.5, 1.1), ncol=3)\n",
"\n",
"ylabels = [\"x[t]\", \"ẋ[t]\", \"θ[t]\", \"dθ/dt\"]\n",
"for i, ylabel in enumerate(ylabels):\n",
" axes[i].set(ylabel=ylabel)\n",
" \n",
"axes[-1].set(xlabel=\"Time\")"
]
},
{
"cell_type": "markdown",
"id": "90bb8f4b-40d1-4f93-be27-d3cb62e613d4",
"metadata": {},
"source": [
"As you can see from the figure above, using solely the prior knowledge of the state-space matrices $(\\mathbf{A}, \\mathbf{C})$ and the measurements $\\left\\{ \\mathbf{y}_t \\right\\}$, the Kalman filter is able to quickly track the evolution of the unobserved states of the system.\n",
"It is obvious from this figure though that the real-time estimates of the states obtained from by Kalman filtering are not as smooth as those obtained by batch processing the whole sequence with the Kalman smoother.\n",
"This slight loss of accuracy is however the price to pay for being able to process the measurement data in real time.\n",
"\n",
"---\n",
"\n",
"## **To go further**\n",
"\n",
"In this final section, we explore quickly some extensions of the Kalman filter methodology we have just been trough.\n",
"\n",
"### **Kalman filtering and the Riccati equation**\n",
"\n",
"As discussed in the previous section, the Kalman filter fundamentally is a time-varying recursive filter defined by\n",
"\n",
"$$\n",
"\\hat{\\mathbf{x}}_{t+1 \\vert t+1} = \\left( \\mathbf{A} - \\mathbf{K}_{t+1} \\mathbf{C} \\right) \\hat{\\mathbf{x}}_{t \\vert t} + \\mathbf{K}_{t+1} \\mathbf{y}_{t+1}.\n",
"$$\n",
"\n",
"In particular, the time-varying nature of this filter comes for the recursive definition of the Kalman gains $\\mathbf{K}_t$.\n",
"One might thus wonder how do these gains actually evolve over time.\n",
"The answer is visible from the figure below, plotting the evolution of the entries of $\\mathbf{K}_t$ for our cartpole system as a function of time."
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "ed02face-9f39-4548-b9b6-441aa4ee1a5a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f41ed24e7d0>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 800x200 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# --> Squeeze array.\n",
"Ks = np.squeeze(Ks)\n",
"\n",
"fig, ax = plt.subplots(1, 1, figsize=(8, 2))\n",
"\n",
"ax.plot(t, Ks[:, 0], label=\"Position\")\n",
"ax.plot(t, Ks[:, 1], label=\"Velocity\")\n",
"ax.plot(t, Ks[:, 2], label=\"Angular position\")\n",
"ax.plot(t, Ks[:, 3], label=\"Angular velocity\")\n",
"\n",
"ax.set(xlim=(0, Th), xlabel=\"Time\")\n",
"ax.set(ylim=(-2, 2), ylabel=\"Kalman gains\")\n",
"\n",
"ax.legend(loc=\"lower center\", bbox_to_anchor=(0.5, 1.1), ncols=4)"
]
},
{
"cell_type": "markdown",
"id": "0353e5a0-f21a-43af-aaa6-4da489659d72",
"metadata": {},
"source": [
"Clearly, the gains quickly attain an asymptotic value.\n",
"This behaviour is not too dissimilar from that of the LQR gain matrices we discussed in the previous class, albeit it occurs in the opposite temporal direction.\n",
"Once you look a bit deeper into the maths, this actually ain't that surprising.\n",
"Recall that the Kalman gain are defined as\n",
"\n",
"$$\n",
"\\mathbf{K}_{t+1} = \\mathbf{P}_{t+1 \\vert t} \\mathbf{C}^* \\left( \\mathbf{I} + \\mathbf{C} \\mathbf{P}_{t+1 \\vert t} \\mathbf{C}^* \\right)^{-1}\n",
"$$\n",
"\n",
"where $\\mathbf{P}_{t+1 \\vert t}$ is the covariance matrix of the predicted state at time $t+1$.\n",
"This covariance itself is defined recursively from\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
" \\mathbf{P}_{t \\vert t} & = \\left( \\mathbf{I} - \\mathbf{K}_{t} \\mathbf{C} \\right) \\mathbf{P}_{t \\vert t-1} \\quad & \\text{(Covariance correction)} \\\\\n",
" \\mathbf{P}_{t+1 \\vert t} & = \\mathbf{A} \\mathbf{P}_{t \\vert t} \\mathbf{A}^* + \\mathbf{I} \\quad & \\text{(Covariance prediction)}\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"Before we get started with the calculations, you should have realized by now (if you followed carefully during class) that the equation for the covariance prediction is nothing but a difference [Lyapunov equation](https://en.wikipedia.org/wiki/Lyapunov_equation).\n",
"With this clue alone, you may have a hint of where we are going.\n",
"Let us start by combining the replacing $\\mathbf{P}_{t \\vert t}$ in the covariance prediction equation by its expression.\n",
"This leads to\n",
"\n",
"$$\n",
"\\mathbf{P}_{t+1 \\vert t} = \\mathbf{A} \\left( \\mathbf{I} - \\mathbf{K}_{t} \\mathbf{C} \\right) \\mathbf{P}_{t \\vert t-1} \\mathbf{A}^* + \\mathbf{I}.\n",
"$$\n",
"\n",
"Likewise, we can replace $\\mathbf{K}_t$ by its definition, yielding\n",
"\n",
"$$\n",
"\\mathbf{P}_{t+1 \\vert t} = \\mathbf{A} \\left( \\mathbf{I} - \\mathbf{P}_{t \\vert t-1} \\mathbf{C}^* \\left( \\mathbf{I} + \\mathbf{C} \\mathbf{P}_{t \\vert t-1} \\mathbf{C}^* \\right)^{-1} \\mathbf{C} \\right) \\mathbf{P}_{t \\vert t-1} \\mathbf{A}^* + \\mathbf{I}.\n",
"$$\n",
"\n",
"Slight rearrangement of the terms finally leads to\n",
"\n",
"$$\n",
"\\mathbf{P}_{t+1 \\vert t} = \\mathbf{A} \\mathbf{P}_{t \\vert t-1} \\mathbf{A}^* - \\mathbf{A} \\mathbf{P}_{t \\vert t-1} \\mathbf{C}^* \\left( \\mathbf{I} + \\mathbf{C} \\mathbf{P}_{t \\vert t-1} \\mathbf{C}^* \\right)^{-1} \\mathbf{C} \\mathbf{P}_{t \\vert t-1} \\mathbf{A}^* + \\mathbf{I}.\n",
"$$\n",
"\n",
"You should recognize that this is a **Riccati equation**, hence the similarity with the observations we made for the LQR problem.\n",
"The only differences with the Linear Quadratic Regulator are that:\n",
"- $\\mathbf{A}$ is replaced with $\\mathbf{A}^*$,\n",
"- $\\mathbf{B}$ is replaced with $\\mathbf{C}^*$,\n",
"- The backward Riccati recursion is now replaced with a forward recursion.\n",
"\n",
"These differences come from the same duality existing between the observability of the matrix pair $(\\mathbf{A}, \\mathbf{C})$ and the controllability of the pair $(\\mathbf{A}^*, \\mathbf{C}^*)$.\n",
"Just like for the LQR problem, this Riccati equation admits a fixed point (under suitable conditions).\n",
"This fixed point, corresponding to the asymptotic prediction covariance matrix, is solution to the following algebraic Riccati equation\n",
"\n",
"$$\n",
"\\mathbf{P} = \\mathbf{A} \\mathbf{P} \\mathbf{A}^* - \\mathbf{A} \\mathbf{P} \\mathbf{C}^* \\left( \\mathbf{I} + \\mathbf{C} \\mathbf{P} \\mathbf{C}^* \\right)^{-1} \\mathbf{C} \\mathbf{P} \\mathbf{A}^* + \\mathbf{I}.\n",
"$$\n",
"\n",
"Given the solution $\\mathbf{P}$ to this equation, we can replace the time-varying Kalman gains with a static one defined as\n",
"\n",
"$$\n",
"\\mathbf{K} = \\mathbf{P} \\mathbf{C}^* \\left( \\mathbf{I} + \\mathbf{C} \\mathbf{P} \\mathbf{C}^* \\right)^{-1}.\n",
"$$\n",
"\n",
"Following the definition of the static feedback gain in the LQR problem, a second Kalman gain can be defined as\n",
"\n",
"$$\n",
"\\mathbf{L} = \\mathbf{A} \\mathbf{P} \\mathbf{C}^* \\left( \\mathbf{I} + \\mathbf{C} \\mathbf{P} \\mathbf{C}^* \\right)^{-1}\n",
"$$\n",
"\n",
"Using these definition, the Kalman filter can be recast as a *linear time-invariant* recursive filter whose state-space model is given by\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
" \\hat{\\mathbf{x}}_{t+1 \\vert t} & = \\left( \\mathbf{A} - \\mathbf{LC} \\right) \\hat{\\mathbf{x}}_{t \\vert t-1} + \\mathbf{L} \\mathbf{y}_t \\\\\n",
" \\hat{\\mathbf{x}}_{t \\vert t} & = \\left( \\mathbf{I} - \\mathbf{KC} \\right) \\hat{\\mathbf{x}}_{t \\vert t-1} + \\mathbf{Ky}_t.\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"Because Kalman filters are often used in control problems to infer the state of a partially-observed dynamical systems, they are often called *state observers*.\n",
"Due to the duality with the Linear Quadratic Regulator, it also known as the *Linear Quadratic Estimator*.\n",
"Using the notation introduced during class, the corresponding system $\\Sigma$ can be denoted as\n",
"\n",
"$$\n",
"\\Sigma =\n",
"\\begin{pmatrix}\n",
" \\begin{array}{c|c}\n",
" \\mathbf{A} - \\mathbf{LC} & \\mathbf{L} \\\\\n",
" \\hline\n",
" \\mathbf{I} - \\mathbf{KC} & \\mathbf{K}\n",
" \\end{array}\n",
" \\end{pmatrix}.\n",
"$$\n",
"\n",
"The `python` cell below uses the function `scipy.linalg.solve_discrete_are` to solve the discrete-time algebraic Riccati equation and construct the `scipy.signal.dlti` state-space representation of the Kalman filter."
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "b535b036-3f43-42eb-8a9f-628741ec92ec",
"metadata": {},
"outputs": [],
"source": [
"# --> Import the Riccati solver.\n",
"from scipy.linalg import solve_discrete_are as dare\n",
"\n",
"# --> Solve for the steady-state covariance matrix.\n",
"A, C = ssm.A, ssm.C ; m, n = C.shape\n",
"P = dare(A.T, C.T, np.eye(n), np.eye(m)) # NOTE: In the derivation we assumed V ~ Im and W ~ In\n",
"\n",
"# --> Definition of the Kalman gains.\n",
"K = P @ C.T @ np.linalg.inv(np.eye(m) + C @ P @ C.T)\n",
"L = A @ K\n",
"\n",
"# --> Definition of the state space model for the state observer.\n",
"observer = dlti( A - L @ C, L, np.eye(n) - K @ C, K, dt=ssm.dt)"
]
},
{
"cell_type": "markdown",
"id": "31a928f2-a3b0-46b2-a3c5-5859fb2b025b",
"metadata": {},
"source": [
"Given the definition of this observer, the figure below plots its output when fed with the noisy measurement we have used since the begining of this notebook."
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "7d149331-e7ae-4830-8915-619a62216143",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[Text(0.5, 0, 'Time')]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 800x400 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# --> Filter the measurement with the state observer.\n",
"t, x_lqe, _ = dlsim(observer, y, x0=x0)\n",
"\n",
"# --> Plot the figure.\n",
"fig, axes = plt.subplots(n, 1, figsize=(8, 4), sharex=True)\n",
"\n",
"for i, ax in enumerate(axes):\n",
" ax.plot(t, x[:, i], color=\"dodgerblue\", label=\"Recursive Kalman filter\")\n",
" ax.plot(t, x_true[:, i], color=\"black\", label=\"True state\", lw=2)\n",
" ax.plot(t, x_lqe[:, i], color=\"red\", ls=\"-.\", label=\"LQE\", lw=1)\n",
" \n",
" ax.set(xlim=(0, Th))\n",
" ax.set(ylim=(-2*abs(x_true[:, i]).max(), 2*abs(x_true[:, i]).max()))\n",
"\n",
"axes[0].legend(loc=\"lower center\", bbox_to_anchor=(0.5, 1.1), ncol=3)\n",
"\n",
"ylabels = [\"x[t]\", \"ẋ[t]\", \"θ[t]\", \"dθ/dt\"]\n",
"for i, ylabel in enumerate(ylabels):\n",
" axes[i].set(ylabel=ylabel)\n",
" \n",
"axes[-1].set(xlabel=\"Time\")"
]
},
{
"cell_type": "markdown",
"id": "18752715-9563-462e-9fa7-306377de17ae",
"metadata": {},
"source": [
"Except for a short burn-in period (from $t=0$ to $t \\simeq 5$), the output of the Linear Quadratic Estimator are on track with the ones for the time-varying Kalman filter.\n",
"Because using linear time-invariant observers instead of linear time-varying ones is far more convenient, we will stick to this Linear Quadratic Estimator for the rest of this class.\n",
"\n",
"#### **Generalization to arbitrary noise and process covariance matrices**\n",
"\n",
"So far, we have assumed that the process and sensor noise covariance matrices were both proportional to an identity matrix of appropriate dimensions.\n",
"This was due to the use of the ordinary least-squares estimator in order to simplify the derivation of the Kalman filter.\n",
"Yet, nothing in the theory prevents us from using the true $n \\times n$ process noise covariance matrix $\\mathbf{W} \\succcurlyeq \\mathbf{0}$ and the $m \\times m$ sensor noise covariance matrix $\\mathbf{V} \\succ \\mathbf{0}$.\n",
"The only difference with what we have done so far is that the Riccati recursion definining the Kalman gains is now given by\n",
"\n",
"$$\n",
"\\mathbf{P}_{t+1 \\vert t} = \\mathbf{A} \\mathbf{P}_{t \\vert t-1} \\mathbf{A}^* - \\mathbf{A} \\mathbf{P}_{t \\vert t-1} \\mathbf{C}^* \\left( \\mathbf{V} + \\mathbf{C} \\mathbf{P}_{t \\vert t-1} \\mathbf{C}^* \\right)^{-1} \\mathbf{C} \\mathbf{P}_{t \\vert t-1} \\mathbf{A}^* + \\mathbf{W}.\n",
"$$\n",
"\n",
"Note however that having access to both the process noise and sensor noise covariance matrices might be complicated for realistic applications.\n",
"While the sensor noise covariance matrix can somehow be parsed from the sensors documentation, the process noise covariance matrix often has to be guessed unless a very detailled mechanistic model of the system can be derived.\n",
"In practice, these two matrices are often used as tuning knobs to balance how confident we are (or not) in our model versus our sensors.\n",
"\n",
"### **Beyond linear time-invariant dynamical systems**\n",
"\n",
"**Linear time-varying dynamical system -** Although we focused our attention here on *linear time-invariant* dynamical system, nothing in the theoretical framework of Kalman filtering prevents us for applying to a system for which both the dynamics matrix and the measurement operator vary in time.\n",
"You can indeed do the exact same analysis by considering a *linear time-varying* dynamical system whose state-space formulation is given by\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
" \\mathbf{x}_{t+1} & = \\mathbf{A}_t \\mathbf{x}_t + \\mathbf{w}_t \\\\\n",
" \\mathbf{y}_t & = \\mathbf{C}_t \\mathbf{x}_t + \\mathbf{v}_t.\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"The only limitation for linear time-varying (LTV) systems is that the Riccati equation for the covariance matrices no longer admits a fixed point.\n",
"As a consequence, the sequence of Kalman gains $\\mathbf{K}_t$ cannot be replaced by a static gain matrix $\\mathbf{K}$ computed from the solution of an algebraic Riccati equation.\n",
"Except for this small technical point, nothing changes otherwise.\n",
"\n",
"**Nonlinear dynamical system -** Kalman filtering can also be applied fairly easily to infer the state of a nonlinear dynamical system\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
" \\mathbf{x}_{t+1} & = f(\\mathbf{x}_t) + \\mathbf{w}_t \\\\\n",
" \\mathbf{y}_{t} & = h(\\mathbf{x}_t) + \\mathbf{v}_t.\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"Using local linearizations, the dynamics function $f : \\mathbb{R}^n \\to \\mathbb{R}^n$ and the measurement operator $h : \\mathbb{R}^n \\to \\mathbb{R}^m$ can be approximated by\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
" f(\\mathbf{x}_{t+1}) \\simeq f(\\mathbf{x}_t) + \\mathbf{A}_t \\left( \\mathbf{x}_{t+1} - \\mathbf{x}_t \\right) \\\\\n",
" h(\\mathbf{x}_{t+1}) \\simeq h(\\mathbf{x}_t) + \\mathbf{C}_t \\left( \\mathbf{x}_{t+1} - \\mathbf{x}_t \\right),\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"where $\\mathbf{A}_t$ and $\\mathbf{C}_t$ are the *Jacobian* matrices of $f$ and $h$, respectively.\n",
"With the exception of have to linearize locally the model at every time steps, applying Kalman filtering to a nonlinear dynamical is thus no different than applying it a linear time-varying system !"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.0"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment