Added HIfinity placeholder chapter.
Just pointed to Dan Simon's H Infinity PDF for now.
This commit is contained in:
1 parent
1f806719f3
commit
18549e8137
1 file changed
+389
@@ -0,0 +1,389 @@
|
||||
{
|
||||
"metadata": {
|
||||
"name": "",
|
||||
"signature": "sha256:7d487f11e312a7f42c8b0f26c54306db69a8a6b3fcec7863bf7db4070d9fc17e"
|
||||
},
|
||||
"nbformat": 3,
|
||||
"nbformat_minor": 0,
|
||||
"worksheets": [
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"[Table of Contents](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 1,
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"$H_\\infty$ filter"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"#format the book\n",
|
||||
"%matplotlib inline\n",
|
||||
"from __future__ import division, print_function\n",
|
||||
"import sys\n",
|
||||
"sys.path.insert(0,'../code') # allow us to format the book\n",
|
||||
"import book_format\n",
|
||||
"book_format.load_style()"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"html": [
|
||||
"<style>\n",
|
||||
"@import url('http://fonts.googleapis.com/css?family=Source+Code+Pro');\n",
|
||||
"\n",
|
||||
" div.cell{\n",
|
||||
" width: 850px;\n",
|
||||
" margin-left: 0% !important;\n",
|
||||
" margin-right: auto;\n",
|
||||
" }\n",
|
||||
" div.text_cell code {\n",
|
||||
" background: transparent;\n",
|
||||
" color: #000000;\n",
|
||||
" font-weight: 600;\n",
|
||||
" font-size: 11pt;\n",
|
||||
" font-style: bold;\n",
|
||||
" font-family: 'Source Code Pro', Consolas, monocco, monospace;\n",
|
||||
" }\n",
|
||||
" h1 {\n",
|
||||
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
|
||||
"\t}\n",
|
||||
"\t\n",
|
||||
" div.input_area {\n",
|
||||
" background: #F6F6F9;\n",
|
||||
" border: 1px solid #586e75;\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" .text_cell_render h1 {\n",
|
||||
" font-weight: 200;\n",
|
||||
" font-size: 30pt;\n",
|
||||
" line-height: 100%;\n",
|
||||
" color:#c76c0c;\n",
|
||||
" margin-bottom: 0.5em;\n",
|
||||
" margin-top: 1em;\n",
|
||||
" display: block;\n",
|
||||
" white-space: wrap;\n",
|
||||
" } \n",
|
||||
" h2 {\n",
|
||||
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
|
||||
" }\n",
|
||||
" .text_cell_render h2 {\n",
|
||||
" font-weight: 200;\n",
|
||||
" font-size: 20pt;\n",
|
||||
" font-style: italic;\n",
|
||||
" line-height: 100%;\n",
|
||||
" color:#c76c0c;\n",
|
||||
" margin-bottom: 0.5em;\n",
|
||||
" margin-top: 1.5em;\n",
|
||||
" display: block;\n",
|
||||
" white-space: nowrap;\n",
|
||||
" } \n",
|
||||
" h3 {\n",
|
||||
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
|
||||
" }\n",
|
||||
" .text_cell_render h3 {\n",
|
||||
" font-weight: 300;\n",
|
||||
" font-size: 18pt;\n",
|
||||
" line-height: 100%;\n",
|
||||
" color:#d77c0c;\n",
|
||||
" margin-bottom: 0.5em;\n",
|
||||
" margin-top: 2em;\n",
|
||||
" display: block;\n",
|
||||
" white-space: nowrap;\n",
|
||||
" }\n",
|
||||
" h4 {\n",
|
||||
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
|
||||
" }\n",
|
||||
" .text_cell_render h4 {\n",
|
||||
" font-weight: 300;\n",
|
||||
" font-size: 16pt;\n",
|
||||
" color:#d77c0c;\n",
|
||||
" margin-bottom: 0.5em;\n",
|
||||
" margin-top: 0.5em;\n",
|
||||
" display: block;\n",
|
||||
" white-space: nowrap;\n",
|
||||
" }\n",
|
||||
" h5 {\n",
|
||||
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
|
||||
" }\n",
|
||||
" .text_cell_render h5 {\n",
|
||||
" font-weight: 300;\n",
|
||||
" font-style: normal;\n",
|
||||
" color: #1d3b84;\n",
|
||||
" font-size: 16pt;\n",
|
||||
" margin-bottom: 0em;\n",
|
||||
" margin-top: 1.5em;\n",
|
||||
" display: block;\n",
|
||||
" white-space: nowrap;\n",
|
||||
" }\n",
|
||||
" div.text_cell_render{\n",
|
||||
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
|
||||
" line-height: 135%;\n",
|
||||
" font-size: 110%;\n",
|
||||
" width:750px;\n",
|
||||
" margin-left:auto;\n",
|
||||
" margin-right:auto;\n",
|
||||
" text-align:justify;\n",
|
||||
" text-justify:inter-word;\n",
|
||||
" }\n",
|
||||
" div.output_subarea.output_text.output_pyout {\n",
|
||||
" overflow-x: auto;\n",
|
||||
" overflow-y: scroll;\n",
|
||||
" max-height: 300px;\n",
|
||||
" }\n",
|
||||
" div.output_subarea.output_stream.output_stdout.output_text {\n",
|
||||
" overflow-x: auto;\n",
|
||||
" overflow-y: scroll;\n",
|
||||
" max-height: 300px;\n",
|
||||
" }\n",
|
||||
" code{\n",
|
||||
" font-size: 70%;\n",
|
||||
" }\n",
|
||||
" .rendered_html code{\n",
|
||||
" background-color: transparent;\n",
|
||||
" }\n",
|
||||
" ul{\n",
|
||||
" margin: 2em;\n",
|
||||
" }\n",
|
||||
" ul li{\n",
|
||||
" padding-left: 0.5em; \n",
|
||||
" margin-bottom: 0.5em; \n",
|
||||
" margin-top: 0.5em; \n",
|
||||
" }\n",
|
||||
" ul li li{\n",
|
||||
" padding-left: 0.2em; \n",
|
||||
" margin-bottom: 0.2em; \n",
|
||||
" margin-top: 0.2em; \n",
|
||||
" }\n",
|
||||
" ol{\n",
|
||||
" margin: 2em;\n",
|
||||
" }\n",
|
||||
" ol li{\n",
|
||||
" padding-left: 0.5em; \n",
|
||||
" margin-bottom: 0.5em; \n",
|
||||
" margin-top: 0.5em; \n",
|
||||
" }\n",
|
||||
" ul li{\n",
|
||||
" padding-left: 0.5em; \n",
|
||||
" margin-bottom: 0.5em; \n",
|
||||
" margin-top: 0.2em; \n",
|
||||
" }\n",
|
||||
" a:link{\n",
|
||||
" font-weight: bold;\n",
|
||||
" color:#447adb;\n",
|
||||
" }\n",
|
||||
" a:visited{\n",
|
||||
" font-weight: bold;\n",
|
||||
" color: #1d3b84;\n",
|
||||
" }\n",
|
||||
" a:hover{\n",
|
||||
" font-weight: bold;\n",
|
||||
" color: #1d3b84;\n",
|
||||
" }\n",
|
||||
" a:focus{\n",
|
||||
" font-weight: bold;\n",
|
||||
" color:#447adb;\n",
|
||||
" }\n",
|
||||
" a:active{\n",
|
||||
" font-weight: bold;\n",
|
||||
" color:#447adb;\n",
|
||||
" }\n",
|
||||
" .rendered_html :link {\n",
|
||||
" text-decoration: underline; \n",
|
||||
" }\n",
|
||||
" .rendered_html :hover {\n",
|
||||
" text-decoration: none; \n",
|
||||
" }\n",
|
||||
" .rendered_html :visited {\n",
|
||||
" text-decoration: none;\n",
|
||||
" }\n",
|
||||
" .rendered_html :focus {\n",
|
||||
" text-decoration: none;\n",
|
||||
" }\n",
|
||||
" .rendered_html :active {\n",
|
||||
" text-decoration: none;\n",
|
||||
" }\n",
|
||||
" .warning{\n",
|
||||
" color: rgb( 240, 20, 20 )\n",
|
||||
" } \n",
|
||||
" hr {\n",
|
||||
" color: #f3f3f3;\n",
|
||||
" background-color: #f3f3f3;\n",
|
||||
" height: 1px;\n",
|
||||
" }\n",
|
||||
" blockquote{\n",
|
||||
" display:block;\n",
|
||||
" background: #fcfcfc;\n",
|
||||
" border-left: 5px solid #c76c0c;\n",
|
||||
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
|
||||
" width:680px;\n",
|
||||
" padding: 10px 10px 10px 10px;\n",
|
||||
" text-align:justify;\n",
|
||||
" text-justify:inter-word;\n",
|
||||
" }\n",
|
||||
" blockquote p {\n",
|
||||
" margin-bottom: 0;\n",
|
||||
" line-height: 125%;\n",
|
||||
" font-size: 100%;\n",
|
||||
" }\n",
|
||||
"</style>\n",
|
||||
"<script>\n",
|
||||
" MathJax.Hub.Config({\n",
|
||||
" TeX: {\n",
|
||||
" extensions: [\"AMSmath.js\"]\n",
|
||||
" },\n",
|
||||
" tex2jax: {\n",
|
||||
" inlineMath: [ ['$','$'], [\"\\\\(\",\"\\\\)\"] ],\n",
|
||||
" displayMath: [ ['$$','$$'], [\"\\\\[\",\"\\\\]\"] ]\n",
|
||||
" },\n",
|
||||
" displayAlign: 'center', // Change this to 'center' to center equations.\n",
|
||||
" \"HTML-CSS\": {\n",
|
||||
" styles: {'.MathJax_Display': {\"margin\": 4}}\n",
|
||||
" }\n",
|
||||
" });\n",
|
||||
"</script>\n"
|
||||
],
|
||||
"metadata": {},
|
||||
"output_type": "pyout",
|
||||
"prompt_number": 4,
|
||||
"text": [
|
||||
"<IPython.core.display.HTML at 0x7f16501445f8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 4
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"I am still mulling over how to write this chapter. In the meantime, Dan Simon has an accessible introduction here:\n",
|
||||
"\n",
|
||||
"http://academic.csuohio.edu/simond/courses/eec641/hinfinity.pdf\n",
|
||||
"\n",
|
||||
"In one sentence the $H_\\infty$ (H infinity) filter is like a Kalman filter, but it is robust in the face of non-Gaussian, non-predictable inputs.\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"My filterpy library contains an H-Infinity filter. I've pasted some test code below which implements the filter designed by Simon in the article above. Hope it helps."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"from __future__ import (absolute_import, division, print_function,\n",
|
||||
" unicode_literals)\n",
|
||||
"\n",
|
||||
"from numpy import array\n",
|
||||
"import matplotlib.pyplot as plt\n",
|
||||
"\n",
|
||||
"from filterpy.hinfinity import HInfinityFilter\n",
|
||||
"\n",
|
||||
"dt = 0.1\n",
|
||||
"f = HInfinityFilter(2, 1, 0, gamma=.4)\n",
|
||||
"\n",
|
||||
"f.F = array([[1., dt],\n",
|
||||
" [0., 1.]])\n",
|
||||
"\n",
|
||||
"f.H = array([[0., 1.]])\n",
|
||||
"f.x = array([[0., 0.]]).T\n",
|
||||
"#f.G = array([[dt**2 / 2, dt]]).T\n",
|
||||
"\n",
|
||||
"f.P = 0.01\n",
|
||||
"f.W = array([[0.0003, 0.005],\n",
|
||||
" [0.0050, 0.100]])/ 1000\n",
|
||||
"\n",
|
||||
"f.V = 0.01\n",
|
||||
"f.Q = 0.01\n",
|
||||
"\n",
|
||||
"xs = []\n",
|
||||
"vs = []\n",
|
||||
"\n",
|
||||
"for i in range(1,40):\n",
|
||||
" f.update (5)\n",
|
||||
" print(f.x.T)\n",
|
||||
" xs.append(f.x[0,0])\n",
|
||||
" vs.append(f.x[1,0])\n",
|
||||
" f.predict()\n",
|
||||
"\n",
|
||||
"plt.subplot(211)\n",
|
||||
"plt.plot(xs)\n",
|
||||
"plt.subplot(212)\n",
|
||||
"plt.plot(vs)\n",
|
||||
"plt.show()\n"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"output_type": "stream",
|
||||
"stream": "stdout",
|
||||
"text": [
|
||||
"[[ 0.250005 2.50005 ]]\n",
|
||||
"[[ 0.66806083 3.34442646]]\n",
|
||||
"[[ 1.1284151 3.77161316]]\n",
|
||||
"[[ 1.60570517 4.03126553]]\n",
|
||||
"[[ 2.09144161 4.20685183]]\n",
|
||||
"[[ 2.58197401 4.33419113]]\n",
|
||||
"[[ 3.07547127 4.4312003 ]]\n",
|
||||
"[[ 3.57091268 4.50783208]]\n",
|
||||
"[[ 4.06768385 4.57005637]]\n",
|
||||
"[[ 4.56539275 4.62167173]]\n",
|
||||
"[[ 5.06377767 4.66521177]]\n",
|
||||
"[[ 5.56265755 4.7024333 ]]\n",
|
||||
"[[ 6.06190354 4.73459514]]\n",
|
||||
"[[ 6.5614219 4.76262524]]\n",
|
||||
"[[ 7.0611432 4.78722492]]\n",
|
||||
"[[ 7.56101536 4.80893611]]\n",
|
||||
"[[ 8.06099891 4.828186 ]]\n",
|
||||
"[[ 8.56106372 4.8453174 ]]\n",
|
||||
"[[ 9.06118672 4.86060987]]\n",
|
||||
"[[ 9.56135018 4.87429471]]\n",
|
||||
"[[ 10.06154053 4.88656573]]\n",
|
||||
"[[ 10.56174736 4.89758722]]\n",
|
||||
"[[ 11.06196277 4.9074998 ]]\n",
|
||||
"[[ 11.5621808 4.9164249]]\n",
|
||||
"[[ 12.06239701 4.92446815]]\n",
|
||||
"[[ 12.56260818 4.93172204]]\n",
|
||||
"[[ 13.06281197 4.93826801]]\n",
|
||||
"[[ 13.56300681 4.94417805]]\n",
|
||||
"[[ 14.06319168 4.94951612]]\n",
|
||||
"[[ 14.563366 4.95433916]]\n",
|
||||
"[[ 15.0635295 4.95869805]]\n",
|
||||
"[[ 15.56368218 4.96263833]]\n",
|
||||
"[[ 16.06382423 4.96620086]]\n",
|
||||
"[[ 16.56395596 4.96942231]]\n",
|
||||
"[[ 17.06407777 4.97233571]]\n",
|
||||
"[[ 17.56419015 4.97497078]]\n",
|
||||
"[[ 18.0642936 4.97735429]]\n",
|
||||
"[[ 18.56438866 4.97951041]]\n",
|
||||
"[[ 19.06447587 4.98146094]]\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f164f16d518>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 5
|
||||
}
|
||||
],
|
||||
"metadata": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user