You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
277 lines
30 KiB
277 lines
30 KiB
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Compute $\\boldsymbol{J}$ in Kinetic Energy\n",
|
|
"\n",
|
|
"We can define the rotational kinetic energy of a single body as\n",
|
|
"\n",
|
|
"$$\n",
|
|
"\\frac{1}{2} \\boldsymbol{\\omega}^{T} \\boldsymbol{I} \\boldsymbol{\\omega}=\\frac{1}{2} \\operatorname{tr}\\left([\\boldsymbol{\\omega}] \\boldsymbol{J}[\\boldsymbol{\\omega}]^{T}\\right),\n",
|
|
"$$\n",
|
|
"\n",
|
|
"where $\\boldsymbol{J}$ is a diagonal PD matrix that ensures the equality above holds. The following notebook derives the definition of $\\boldsymbol{J}$."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import numpy\n",
|
|
"import sympy.vector\n",
|
|
"from IPython.display import Latex, Math, display\n",
|
|
"from sympy import *\n",
|
|
"\n",
|
|
"init_printing()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"def hat(x):\n",
|
|
" return numpy.array([[0, -x[2], x[1]], [x[2], 0, -x[0]], [-x[1], x[0], 0]],\n",
|
|
" dtype=x.dtype)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"omega = numpy.array(symbols(\"omega_x omega_y omega_z\"))\n",
|
|
"I = numpy.diag(symbols(\"I_x I_y I_z\"))\n",
|
|
"J = numpy.diag(symbols(\"J_0 J_1 J_2\"))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/latex": [
|
|
"$\\displaystyle I_{x} \\omega_{x}^{2} + I_{y} \\omega_{y}^{2} + I_{z} \\omega_{z}^{2}$"
|
|
],
|
|
"text/plain": [
|
|
" 2 2 2\n",
|
|
"Iₓ⋅ωₓ + I_y⋅ω_y + I_z⋅ω_z "
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAGEAAAAWCAYAAADQIfLaAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADPElEQVRoBe2Z7VHcMBCGD4YCGOgAOoCkgkAHHKmA0EH4Cf+YpAOSCjKhA+ggCR2EDgJ0QJ5HSI6xfT4T25yYYWf2Vl/efbWrlWzd0vHx8cfJZHIIS9OTk5Orh+Lr71gewMePfL5EED5h7IKOy7GMvupt9gA+D75fae7+1xoHbtGyE1vNlGv4iD7ls1FOWJz0UHi6BOEoGrxHXmN42/oiCNvZYHH+Q+FZ7uJMjJkJ0vmDWNxvTlj0whB4OgUBW2krulic+wvLOWERVG88XYOwqzWinsPhnRMW3dIbT9cgGO1cXl1zwmIQeuOZGwRWf0q3b1pcJOWERT8MhWduELAV0g2ZzVaUCRZgDOObLkEImUDUc9iOcsJiEAbB0yUIvp7mkAVOOicsg+FZUdMsKu15ja+m9HsHIm3CfoJ7B7Vqmb5Bv6bbsMQ+A/SW8hQZiLLXMWk7Tc2DyGhTXbN8I57v8B0spg34hudqO8q8TEgTqGUCygzAOfIzcg0+o+wX7RtYAAXRbmD60kwsKN6NOPaSLaQYxFKjNKbW8bSGNjxqeg/r/APYxSnGWgBon8wLwp6DZjx8R3ta7To5rYgD2osva8r23SJ/qasHNWJBryvsFOn+7LWKK0+y/jOUSj/0j4onmcKOd2s6PeCxnvqqsnaLymAn5daiTCtapzrBRkW0e6+0jWyMNO2/6Zcck5z00NLyy9jOWBhr6hcYY/0H0kx9RLSNjkeD2NF/O00YYn/zLSoPuLqLfdXBbRQNTZAhAMgNOGVIeJT6JhxWcpuual/U0xWLEz4r6TATTkv1ovgceLDxKADUXVCeCbVFuFwge0JBhfBtfMS9r5wB6Q+iqkYPzRqA6qCe9Rufx44BWEWWcVVVj4YHuzr8K2xmbkU8vqw0zn+liqxj3cleovQDMpwFlD2o1+Ha6qNvlfY/8JjkVnmILc8es2dmAJ4BjwvxHbwPh2AgZ2b0fwWBSRjRstLa2xP9ZdrnmdreXB7QpxydeoUMLwRIsZW3pqr6sfGks/MLhuVWSgdz2q9f5H/MON1DORzClN2KTP2F/fnU6nE6weauYbaswdOl+3tfbF42MSkXkRNy21unnlbii5jYX0XXbmtaVm9AAAAAAElFTkSuQmCC\n",
|
|
"text/latex": [
|
|
"$\\displaystyle \\left[ I_{x}, \\ I_{y}, \\ I_{z}\\right]$"
|
|
],
|
|
"text/plain": [
|
|
"[Iₓ, I_y, I_z]"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"lhs = omega.T @ I @ omega\n",
|
|
"display(lhs.collect(omega))\n",
|
|
"lhs_coeffs = [lhs.coeff(omega[i], 2) for i in range(omega.size)]\n",
|
|
"display(lhs_coeffs)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/latex": [
|
|
"$\\displaystyle \\omega_{x}^{2} \\left(J_{1} + J_{2}\\right) + \\omega_{y}^{2} \\left(J_{0} + J_{2}\\right) + \\omega_{z}^{2} \\left(J_{0} + J_{1}\\right)$"
|
|
],
|
|
"text/plain": [
|
|
" 2 2 2 \n",
|
|
"ωₓ ⋅(J₁ + J₂) + ω_y ⋅(J₀ + J₂) + ω_z ⋅(J₀ + J₁)"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPEAAAAVCAYAAACXHgidAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEYUlEQVR4Ae2c7VUUMRSGFw8FcLQD6ACOFYgdiB0IHcDxF/yFDsQOxA7WEpQOpAOEEnyf2WSdnclAEibDXcw9J5vJzcd98yY3yXzAxunp6fFsNjtSQA7Ozs6uF5f1tzJQGbDIgHx0xWc35MTnAjpXxg+LgCumykBlIMyAfLbx3c1wdljrKm0rd1eB+EbhWvoDxWbFIm6LmGIG0CJui5im5DJrJ3aksaXv6Xptjt8WcVvElDABTc2B/41L19/5q5gBC5TZl+5ejYzuwGpzX+EwYHMMVTHcTwBXDFPl8gmj0qlqmctcJ+Y4XeoeekttE0pISdy5eEtiqlzmjkq/nlkuk52YFcn1b97vp12NRdwWMcWMoEXcFjFNxWWyEwuYf4j1LQakoTIWcVvEFDNkFnFbxDQJlzlOzE58o5XvPgahoTIWcVvEFDNkFnFbxDQJl5sxVnwZOS73BdsKl17nY5f3UekjXe95vYV4CLfTf3YY6RfySfriC9QQJgAoj/d/yK3CG6VPmpSBnyHcTl+5TBijIS5pwuVF+VOSE6ttGkWuFtHiVwZ5OMNKiODoj4rqfFEhX6dd/jUJ5fuvyNp5ue+kg7jV8HnbjsP0S/qdttFC10FMwoAD3yq+wK7ifQU+xnk/hEN5lcsFOd15uZZcajyT/CnViZuJJCMrT6aV5lUTDvZhaKJ19SobctKZa2NbcTOJu/Uy00HcautQdq4UfH8YdHS7CqO/PutgH8Skcu98WbAp4MRwwsc1PZG+cilWxIMfR88RryrXjkv1I8mfgk6sRjhasiNd6rp9lGPnLD25ZSJPMnAz+X/mWYurlYLJleUk0z3Ok2Z1DjpxHJK0Uim4XcuVywGKM7gcaCmsfhVWz9hRmUzckzUiIF7XdmqfbSX2GKNwq08sUm2HYSLy0G5loVIaLnIlBZO386djjHRzm9HRl0ym4J6Jo8rl8GgkcTncTDhnyImZxCcaGH9fxuT6qnAhXffIEm75ebTZuNUvdjrIXnkoJz19v1PMySRHsjG1jOHA3sFb6qKX2bgrl71xyeay11JAEXRiDQKOymeVxwRd48D8maLlXXgmfFm4VY/bB+6H+Rb8XvFSXJpj7Jaukx1JdVIwedvdXRe7kx2l6Xwibqo0onqVS0/GP05S5kCn9uPJ4D0x1TQYvddIjzf3/CVScftJp9g/aGJHZgFbOo2udxTYpbNEdaO4xKYCjhxaLFjNJ5VY3B6UyjcOrLhy6UlxcSqXneoPJged+MFaZTOZxITi4iYdr2e4dcB5Ee6LQyeOtyrzvSlR9geHXz5AlM3mWvFyUUkwX7lcQy4TxrcpmvWniF0jmmCswEx+JhzOwET8Lf2Yr4nU5LgifHdqsbfrSb/RtqQ0ZXj1NEl/ZIejPcIDOt5Zs8hMsrBhNEeEr3KZQ1ygjriM8ic3T+ajOHEAx4tSiSwcOOpI/KI6XqAzlcvxSO06sb/fq/9jazyOa0uVgSIMyHl52MzJlwegB38BLCruKec+zfIAAAAASUVORK5CYII=\n",
|
|
"text/latex": [
|
|
"$\\displaystyle \\left[ J_{1} + J_{2}, \\ J_{0} + J_{2}, \\ J_{0} + J_{1}\\right]$"
|
|
],
|
|
"text/plain": [
|
|
"[J₁ + J₂, J₀ + J₂, J₀ + J₁]"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"rhs = numpy.trace(hat(omega) @ J @ hat(omega).T)\n",
|
|
"display(rhs.collect(omega))\n",
|
|
"rhs_coeffs = [rhs.coeff(omega[i], 2) for i in range(omega.size)]\n",
|
|
"display(rhs_coeffs)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/latex": [
|
|
"$\\displaystyle \\left[ I_{x} = J_{1} + J_{2}, \\ I_{y} = J_{0} + J_{2}, \\ I_{z} = J_{0} + J_{1}\\right]$"
|
|
],
|
|
"text/plain": [
|
|
"[Iₓ = J₁ + J₂, I_y = J₀ + J₂, I_z = J₀ + J₁]"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\boldsymbol{J}=$"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.Latex object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/latex": [
|
|
"$\\displaystyle \\left[\\begin{matrix}- \\frac{I_{x}}{2} + \\frac{I_{y}}{2} + \\frac{I_{z}}{2} & 0 & 0\\\\0 & \\frac{I_{x}}{2} - \\frac{I_{y}}{2} + \\frac{I_{z}}{2} & 0\\\\0 & 0 & \\frac{I_{x}}{2} + \\frac{I_{y}}{2} - \\frac{I_{z}}{2}\\end{matrix}\\right]$"
|
|
],
|
|
"text/plain": [
|
|
"⎡ Iₓ I_y I_z ⎤\n",
|
|
"⎢- ── + ─── + ─── 0 0 ⎥\n",
|
|
"⎢ 2 2 2 ⎥\n",
|
|
"⎢ ⎥\n",
|
|
"⎢ Iₓ I_y I_z ⎥\n",
|
|
"⎢ 0 ── - ─── + ─── 0 ⎥\n",
|
|
"⎢ 2 2 2 ⎥\n",
|
|
"⎢ ⎥\n",
|
|
"⎢ Iₓ I_y I_z⎥\n",
|
|
"⎢ 0 0 ── + ─── - ───⎥\n",
|
|
"⎣ 2 2 2 ⎦"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"eqs = [\n",
|
|
" Eq(lhs_coeff, rhs_coeff)\n",
|
|
" for lhs_coeff, rhs_coeff in zip(lhs_coeffs, rhs_coeffs)\n",
|
|
"]\n",
|
|
"display(eqs)\n",
|
|
"J_of_I = solve(eqs, numpy.diag(J).tolist())\n",
|
|
"J_solved = numpy.diag([J_of_I[numpy.diag(J)[i]] for i in range(3)])\n",
|
|
"display(Latex(\"$\\\\boldsymbol{J}=$\"), Matrix(J_solved))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/latex": [
|
|
"$\\displaystyle x^{2} \\left(- \\frac{I_{x}}{2} + \\frac{I_{y}}{2} + \\frac{I_{z}}{2}\\right) + y^{2} \\left(\\frac{I_{x}}{2} - \\frac{I_{y}}{2} + \\frac{I_{z}}{2}\\right) + z^{2} \\left(\\frac{I_{x}}{2} + \\frac{I_{y}}{2} - \\frac{I_{z}}{2}\\right)$"
|
|
],
|
|
"text/plain": [
|
|
" 2 ⎛ Iₓ I_y I_z⎞ 2 ⎛Iₓ I_y I_z⎞ 2 ⎛Iₓ I_y I_z⎞\n",
|
|
"x ⋅⎜- ── + ─── + ───⎟ + y ⋅⎜── - ─── + ───⎟ + z ⋅⎜── + ─── - ───⎟\n",
|
|
" ⎝ 2 2 2 ⎠ ⎝2 2 2 ⎠ ⎝2 2 2 ⎠"
|
|
]
|
|
},
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"x = numpy.array(symbols(\"x y z\"), dtype=Symbol)\n",
|
|
"(x.T @ J_solved @ x).collect(numpy.diag(I))"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"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.9.5"
|
|
},
|
|
"varInspector": {
|
|
"cols": {
|
|
"lenName": 16,
|
|
"lenType": 16,
|
|
"lenVar": 40
|
|
},
|
|
"kernels_config": {
|
|
"python": {
|
|
"delete_cmd_postfix": "",
|
|
"delete_cmd_prefix": "del ",
|
|
"library": "var_list.py",
|
|
"varRefreshCmd": "print(var_dic_list())"
|
|
},
|
|
"r": {
|
|
"delete_cmd_postfix": ") ",
|
|
"delete_cmd_prefix": "rm(",
|
|
"library": "var_list.r",
|
|
"varRefreshCmd": "cat(var_dic_list()) "
|
|
}
|
|
},
|
|
"types_to_exclude": [
|
|
"module",
|
|
"function",
|
|
"builtin_function_or_method",
|
|
"instance",
|
|
"_Feature"
|
|
],
|
|
"window_display": false
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 4
|
|
}
|
|
|