Renamed Chapters
Renamed chapters to make them easier to work with from the command line using tab completion.
This commit is contained in:
1 parent
c0a6731401
commit
64691d36a2
24 files changed
+24
-20
No files matched your search
@@ -0,0 +1,347 @@
|
||||
{
|
||||
"metadata": {
|
||||
"name": "",
|
||||
"signature": "sha256:8c68f422d155e6e256b984c1601ed17d878240844f686e8559510bac3b24b183"
|
||||
},
|
||||
"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": 2,
|
||||
"text": [
|
||||
"<IPython.core.display.HTML at 0x7f5f82564358>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 2
|
||||
},
|
||||
{
|
||||
"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, dim_u=1, gamma=.01)\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 #process noise\n",
|
||||
"\n",
|
||||
"f.V = 0.01\n",
|
||||
"f.Q = 0.01\n",
|
||||
"u = 1. #acceleration of 1 f/sec**2\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(u=u)\n",
|
||||
"\n",
|
||||
"plt.subplot(211)\n",
|
||||
"plt.plot(xs)\n",
|
||||
"plt.title('position')\n",
|
||||
"plt.subplot(212)\n",
|
||||
"plt.plot(vs) \n",
|
||||
"plt.title('velocity')\n",
|
||||
"plt.show()\n"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f5f616b2ac8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 14
|
||||
}
|
||||
],
|
||||
"metadata": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user