Work on animations.

Experimented with adding animations to the book. Also, fixed
the H-Infinity code a bit to more close reflect Simon's code.
This commit is contained in:
Roger Labbe committed 2014-09-08 22:04:42 -07:00
1 parent d8507caf9b
commit 9a8616a508
3 files changed
+105 -104

No files matched your search

@@ -1,7 +1,7 @@
{
"metadata": {
"name": "",
"signature": "sha256:7d487f11e312a7f42c8b0f26c54306db69a8a6b3fcec7863bf7db4070d9fc17e"
"signature": "sha256:8c68f422d155e6e256b984c1601ed17d878240844f686e8559510bac3b24b183"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -256,13 +256,13 @@
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 4,
"prompt_number": 2,
"text": [
"<IPython.core.display.HTML at 0x7f16501445f8>"
"<IPython.core.display.HTML at 0x7f5f82564358>"
]
}
],
"prompt_number": 4
"prompt_number": 2
},
{
"cell_type": "markdown",
@@ -291,96 +291,54 @@
"from filterpy.hinfinity import HInfinityFilter\n",
"\n",
"dt = 0.1\n",
"f = HInfinityFilter(2, 1, 0, gamma=.4)\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",
"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",
" [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",
" #print(f.x.T)\n",
" xs.append(f.x[0,0])\n",
" vs.append(f.x[1,0])\n",
" f.predict()\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.plot(vs) \n",
"plt.title('velocity')\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
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f164f16d518>"
"<matplotlib.figure.Figure at 0x7f5f616b2ac8>"
]
}
],
"prompt_number": 5
"prompt_number": 14
}
],
"metadata": {}