{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import sympy as sm\n", "import sympy.physics.mechanics as me\n", "me.init_vprinting()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Problem 3.1" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "L = me.ReferenceFrame('L') # The laboratory frame\n", "C = me.ReferenceFrame('C') # The disc frame\n", "R = me.ReferenceFrame('R') # The rod frame\n", "q1, q2 = me.dynamicsymbols('q1, q2')\n", "r = sm.symbols('r', real=True)\n", "t = me.dynamicsymbols._t\n", "C.orient(L, 'Axis', (q1, L.x))\n", "R.orient(C, 'Axis', (q2, C.y))" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "O, P = sm.symbols('O, P', cls=me.Point)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "P.set_pos(O, r*C.y - 3*r*R.x)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - 3 r \\operatorname{cos}\\left(q_{2}\\right)\\mathbf{\\hat{l}_x} + (- 3 r \\operatorname{sin}\\left(q_{1}\\right) \\operatorname{sin}\\left(q_{2}\\right) + r \\operatorname{cos}\\left(q_{1}\\right))\\mathbf{\\hat{l}_y} + (r \\operatorname{sin}\\left(q_{1}\\right) + 3 r \\operatorname{sin}\\left(q_{2}\\right) \\operatorname{cos}\\left(q_{1}\\right))\\mathbf{\\hat{l}_z}$" ], "text/plain": [ "-3⋅r⋅cos(q₂) l_x + (-3⋅r⋅sin(q₁)⋅sin(q₂) + r⋅cos(q₁)) l_y + (r⋅sin(q₁) + 3⋅r⋅s\n", "in(q₂)⋅cos(q₁)) l_z" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P.pos_from(O).express(L)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you express in L and differeniate each measure number you get these measure numbers of P in L:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 3 r \\operatorname{sin}\\left(q_{2}\\right) \\dot{q}_{2}\\mathbf{\\hat{l}_x} + (- 3 r \\operatorname{sin}\\left(q_{1}\\right) \\operatorname{cos}\\left(q_{2}\\right) \\dot{q}_{2} - r \\operatorname{sin}\\left(q_{1}\\right) \\dot{q}_{1} - 3 r \\operatorname{sin}\\left(q_{2}\\right) \\operatorname{cos}\\left(q_{1}\\right) \\dot{q}_{1})\\mathbf{\\hat{l}_y} + (- 3 r \\operatorname{sin}\\left(q_{1}\\right) \\operatorname{sin}\\left(q_{2}\\right) \\dot{q}_{1} + 3 r \\operatorname{cos}\\left(q_{1}\\right) \\operatorname{cos}\\left(q_{2}\\right) \\dot{q}_{2} + r \\operatorname{cos}\\left(q_{1}\\right) \\dot{q}_{1})\\mathbf{\\hat{l}_z}$" ], "text/plain": [ "3⋅r⋅sin(q₂)⋅q₂̇ l_x + (-3⋅r⋅sin(q₁)⋅cos(q₂)⋅q₂̇ - r⋅sin(q₁)⋅q₁̇ - 3⋅r⋅sin(q₂)⋅\n", "cos(q₁)⋅q₁̇) l_y + (-3⋅r⋅sin(q₁)⋅sin(q₂)⋅q₁̇ + 3⋅r⋅cos(q₁)⋅cos(q₂)⋅q₂̇ + r⋅cos\n", "(q₁)⋅q₁̇) l_z" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "L_v_P = (P.pos_from(O).dot(L.x).diff(t) * L.x +\n", " P.pos_from(O).dot(L.y).diff(t) * L.y +\n", " P.pos_from(O).dot(L.z).diff(t) * L.z)\n", "L_v_P" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 3 r \\operatorname{sin}\\left(q_{2}\\right) \\dot{q}_{2}\\mathbf{\\hat{c}_x} - 3 r \\operatorname{sin}\\left(q_{2}\\right) \\dot{q}_{1}\\mathbf{\\hat{c}_y} + r \\left(3 \\operatorname{cos}\\left(q_{2}\\right) \\dot{q}_{2} + \\dot{q}_{1}\\right)\\mathbf{\\hat{c}_z}$" ], "text/plain": [ "3⋅r⋅sin(q₂)⋅q₂̇ c_x + -3⋅r⋅sin(q₂)⋅q₁̇ c_y + r⋅(3⋅cos(q₂)⋅q₂̇ + q₁̇) c_z" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "L_v_P.express(C).simplify()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Same as doing:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 3 r \\operatorname{sin}\\left(q_{2}\\right) \\dot{q}_{2}\\mathbf{\\hat{c}_x} - 3 r \\operatorname{sin}\\left(q_{2}\\right) \\dot{q}_{1}\\mathbf{\\hat{c}_y} + r \\left(3 \\operatorname{cos}\\left(q_{2}\\right) \\dot{q}_{2} + \\dot{q}_{1}\\right)\\mathbf{\\hat{c}_z}$" ], "text/plain": [ "3⋅r⋅sin(q₂)⋅q₂̇ c_x + -3⋅r⋅sin(q₂)⋅q₁̇ c_y + r⋅(3⋅cos(q₂)⋅q₂̇ + q₁̇) c_z" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P.pos_from(O).dt(L).express(C).simplify()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle (3 r \\operatorname{sin}\\left(q_{2}\\right) \\ddot{q}_{2} + 3 r \\operatorname{cos}\\left(q_{2}\\right) \\dot{q}_{2}^{2})\\mathbf{\\hat{l}_x} + (3 r \\operatorname{sin}\\left(q_{1}\\right) \\operatorname{sin}\\left(q_{2}\\right) \\dot{q}_{1}^{2} + 3 r \\operatorname{sin}\\left(q_{1}\\right) \\operatorname{sin}\\left(q_{2}\\right) \\dot{q}_{2}^{2} - 3 r \\operatorname{sin}\\left(q_{1}\\right) \\operatorname{cos}\\left(q_{2}\\right) \\ddot{q}_{2} - r \\operatorname{sin}\\left(q_{1}\\right) \\ddot{q}_{1} - 3 r \\operatorname{sin}\\left(q_{2}\\right) \\operatorname{cos}\\left(q_{1}\\right) \\ddot{q}_{1} - 6 r \\operatorname{cos}\\left(q_{1}\\right) \\operatorname{cos}\\left(q_{2}\\right) \\dot{q}_{1} \\dot{q}_{2} - r \\operatorname{cos}\\left(q_{1}\\right) \\dot{q}_{1}^{2})\\mathbf{\\hat{l}_y} + (- 3 r \\operatorname{sin}\\left(q_{1}\\right) \\operatorname{sin}\\left(q_{2}\\right) \\ddot{q}_{1} - 6 r \\operatorname{sin}\\left(q_{1}\\right) \\operatorname{cos}\\left(q_{2}\\right) \\dot{q}_{1} \\dot{q}_{2} - r \\operatorname{sin}\\left(q_{1}\\right) \\dot{q}_{1}^{2} - 3 r \\operatorname{sin}\\left(q_{2}\\right) \\operatorname{cos}\\left(q_{1}\\right) \\dot{q}_{1}^{2} - 3 r \\operatorname{sin}\\left(q_{2}\\right) \\operatorname{cos}\\left(q_{1}\\right) \\dot{q}_{2}^{2} + 3 r \\operatorname{cos}\\left(q_{1}\\right) \\operatorname{cos}\\left(q_{2}\\right) \\ddot{q}_{2} + r \\operatorname{cos}\\left(q_{1}\\right) \\ddot{q}_{1})\\mathbf{\\hat{l}_z}$" ], "text/plain": [ "⎛ 2⎞ ⎛ 2\n", "⎝3⋅r⋅sin(q₂)⋅q₂̈ + 3⋅r⋅cos(q₂)⋅q₂̇ ⎠ l_x + ⎝3⋅r⋅sin(q₁)⋅sin(q₂)⋅q₁̇ + 3⋅r⋅sin\n", "\n", " 2\n", "(q₁)⋅sin(q₂)⋅q₂̇ - 3⋅r⋅sin(q₁)⋅cos(q₂)⋅q₂̈ - r⋅sin(q₁)⋅q₁̈ - 3⋅r⋅sin(q₂)⋅cos(\n", "\n", " 2⎞ ⎛\n", "q₁)⋅q₁̈ - 6⋅r⋅cos(q₁)⋅cos(q₂)⋅q₁̇⋅q₂̇ - r⋅cos(q₁)⋅q₁̇ ⎠ l_y + ⎝-3⋅r⋅sin(q₁)⋅si\n", "\n", " 2\n", "n(q₂)⋅q₁̈ - 6⋅r⋅sin(q₁)⋅cos(q₂)⋅q₁̇⋅q₂̇ - r⋅sin(q₁)⋅q₁̇ - 3⋅r⋅sin(q₂)⋅cos(q₁)\n", "\n", " 2 2 ⎞\n", "⋅q₁̇ - 3⋅r⋅sin(q₂)⋅cos(q₁)⋅q₂̇ + 3⋅r⋅cos(q₁)⋅cos(q₂)⋅q₂̈ + r⋅cos(q₁)⋅q₁̈⎠ l_\n", "\n", "\n", "z" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "L_a_P = (L_v_P.dot(L.x).diff(t) * L.x +\n", " L_v_P.dot(L.y).diff(t) * L.y +\n", " L_v_P.dot(L.z).diff(t) * L.z)\n", "L_a_P" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 3 r \\left(\\operatorname{sin}\\left(q_{2}\\right) \\ddot{q}_{2} + \\operatorname{cos}\\left(q_{2}\\right) \\dot{q}_{2}^{2}\\right)\\mathbf{\\hat{c}_x} - r \\left(3 \\operatorname{sin}\\left(q_{2}\\right) \\ddot{q}_{1} + 6 \\operatorname{cos}\\left(q_{2}\\right) \\dot{q}_{1} \\dot{q}_{2} + \\dot{q}_{1}^{2}\\right)\\mathbf{\\hat{c}_y} + r \\left(- 3 \\operatorname{sin}\\left(q_{2}\\right) \\dot{q}_{1}^{2} - 3 \\operatorname{sin}\\left(q_{2}\\right) \\dot{q}_{2}^{2} + 3 \\operatorname{cos}\\left(q_{2}\\right) \\ddot{q}_{2} + \\ddot{q}_{1}\\right)\\mathbf{\\hat{c}_z}$" ], "text/plain": [ " ⎛ 2⎞ ⎛\n", "3⋅r⋅⎝sin(q₂)⋅q₂̈ + cos(q₂)⋅q₂̇ ⎠ c_x + -r⋅⎝3⋅sin(q₂)⋅q₁̈ + 6⋅cos(q₂)⋅q₁̇⋅q₂̇ +\n", "\n", " 2⎞ ⎛ 2 2 ⎞\n", " q₁̇ ⎠ c_y + r⋅⎝- 3⋅sin(q₂)⋅q₁̇ - 3⋅sin(q₂)⋅q₂̇ + 3⋅cos(q₂)⋅q₂̈ + q₁̈⎠ c_z" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "L_a_P.express(C).simplify()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 3 r \\operatorname{sin}\\left(q_{2}\\right) \\dot{q}_{2}\\mathbf{\\hat{c}_x} + 3 r \\operatorname{cos}\\left(q_{2}\\right) \\dot{q}_{2}\\mathbf{\\hat{c}_z}$" ], "text/plain": [ "3⋅r⋅sin(q₂)⋅q₂̇ c_x + 3⋅r⋅cos(q₂)⋅q₂̇ c_z" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "C_v_P = (P.pos_from(O).dot(C.x).diff(t) * C.x +\n", " P.pos_from(O).dot(C.y).diff(t) * C.y +\n", " P.pos_from(O).dot(C.z).diff(t) * C.z)\n", "C_v_P" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle (3 r \\operatorname{sin}\\left(q_{2}\\right) \\ddot{q}_{2} + 3 r \\operatorname{cos}\\left(q_{2}\\right) \\dot{q}_{2}^{2})\\mathbf{\\hat{c}_x} + (- 3 r \\operatorname{sin}\\left(q_{2}\\right) \\dot{q}_{2}^{2} + 3 r \\operatorname{cos}\\left(q_{2}\\right) \\ddot{q}_{2})\\mathbf{\\hat{c}_z}$" ], "text/plain": [ "⎛ 2⎞ ⎛ 2\n", "⎝3⋅r⋅sin(q₂)⋅q₂̈ + 3⋅r⋅cos(q₂)⋅q₂̇ ⎠ c_x + ⎝- 3⋅r⋅sin(q₂)⋅q₂̇ + 3⋅r⋅cos(q₂)⋅q\n", "\n", " ⎞\n", "₂̈⎠ c_z" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "C_a_P = (C_v_P.dot(C.x).diff(t) * C.x +\n", " C_v_P.dot(C.y).diff(t) * C.y +\n", " C_v_P.dot(C.z).diff(t) * C.z)\n", "C_a_P" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Problem 3.3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Setup the problem like 2.7." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "q1, q2, q3, q4, q5 = me.dynamicsymbols('q1:6')\n", "R = sm.symbols('R')\n", "A = me.ReferenceFrame('A')\n", "Y = me.ReferenceFrame('Y') # intermediate frame so that simple rotations can be used\n", "B = me.ReferenceFrame('B')\n", "C = me.ReferenceFrame('C')\n", "Y.orient(A, 'Axis', (q1, A.z))\n", "B.orient(Y, 'Axis', (sm.pi/2 - q2, Y.x))\n", "C.orient(B, 'Axis', (q3, B.z))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define some new variables for use in defining velocities." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "u1, u2, u3, u4, u5 = me.dynamicsymbols('u1:6')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create the points of interest." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "O, P, Cs = sm.symbols('O, P, C^*', cls=me.Point)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Set the relative positions of the points." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "P.set_pos(O, q4 * A.x + q5 * A.y)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "Cs.set_pos(P, R * B.y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$u_1,u_2,u_4$ are equal to the measure numbers of the angular velocity of C in A as described in Problem 2.7." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - \\dot{q}_{2}\\mathbf{\\hat{b}_x} + \\operatorname{cos}\\left(q_{2}\\right) \\dot{q}_{1}\\mathbf{\\hat{b}_y} + (\\operatorname{sin}\\left(q_{2}\\right) \\dot{q}_{1} + \\dot{q}_{3})\\mathbf{\\hat{b}_z}$" ], "text/plain": [ "-q₂̇ b_x + cos(q₂)⋅q₁̇ b_y + (sin(q₂)⋅q₁̇ + q₃̇) b_z" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "C.ang_vel_in(A).express(B)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Set the velocity of P in A using the u's." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "P.set_vel(A, u4*A.x + u5*A.y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$C^*$ and $P$ are both fixed in B, so apply the two point theory:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle (- R \\operatorname{sin}\\left(q_{2}\\right) \\dot{q}_{1} + u_{4} \\operatorname{cos}\\left(q_{1}\\right) + u_{5} \\operatorname{sin}\\left(q_{1}\\right))\\mathbf{\\hat{b}_x} + \\left(- u_{4} \\operatorname{sin}\\left(q_{1}\\right) + u_{5} \\operatorname{cos}\\left(q_{1}\\right)\\right) \\operatorname{sin}\\left(q_{2}\\right)\\mathbf{\\hat{b}_y} + (- R \\dot{q}_{2} + u_{4} \\operatorname{sin}\\left(q_{1}\\right) \\operatorname{cos}\\left(q_{2}\\right) - u_{5} \\operatorname{cos}\\left(q_{1}\\right) \\operatorname{cos}\\left(q_{2}\\right))\\mathbf{\\hat{b}_z}$" ], "text/plain": [ "(-R⋅sin(q₂)⋅q₁̇ + u₄⋅cos(q₁) + u₅⋅sin(q₁)) b_x + (-u₄⋅sin(q₁) + u₅⋅cos(q₁))⋅si\n", "n(q₂) b_y + (-R⋅q₂̇ + u₄⋅sin(q₁)⋅cos(q₂) - u₅⋅cos(q₁)⋅cos(q₂)) b_z" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Cs.v2pt_theory(P, A, B).express(B).simplify()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that this has qdots present and we only want this velocity interms of the u's. So, solve for the qdots and substitute them in." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "eqs = [C.ang_vel_in(A).dot(B.x) - u1,\n", " C.ang_vel_in(A).dot(B.y) - u2,\n", " C.ang_vel_in(A).dot(B.z) - u3]" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "qdots = sm.solve(eqs, q1.diff(), q2.diff(), q3.diff())" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle (- R u_{2} \\operatorname{tan}\\left(q_{2}\\right) + u_{4} \\operatorname{cos}\\left(q_{1}\\right) + u_{5} \\operatorname{sin}\\left(q_{1}\\right))\\mathbf{\\hat{b}_x} + \\left(- u_{4} \\operatorname{sin}\\left(q_{1}\\right) + u_{5} \\operatorname{cos}\\left(q_{1}\\right)\\right) \\operatorname{sin}\\left(q_{2}\\right)\\mathbf{\\hat{b}_y} + (R u_{1} + u_{4} \\operatorname{sin}\\left(q_{1}\\right) \\operatorname{cos}\\left(q_{2}\\right) - u_{5} \\operatorname{cos}\\left(q_{1}\\right) \\operatorname{cos}\\left(q_{2}\\right))\\mathbf{\\hat{b}_z}$" ], "text/plain": [ "(-R⋅u₂⋅tan(q₂) + u₄⋅cos(q₁) + u₅⋅sin(q₁)) b_x + (-u₄⋅sin(q₁) + u₅⋅cos(q₁))⋅sin\n", "(q₂) b_y + (R⋅u₁ + u₄⋅sin(q₁)⋅cos(q₂) - u₅⋅cos(q₁)⋅cos(q₂)) b_z" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Cs.v2pt_theory(P, A, B).express(B).subs(qdots).simplify()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Problem 3.4" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle (- \\frac{R u_{2} \\operatorname{sin}\\left(q_{2}\\right)}{\\operatorname{cos}\\left(q_{2}\\right)} + u_{4} \\operatorname{cos}\\left(q_{1}\\right) + u_{5} \\operatorname{sin}\\left(q_{1}\\right))\\mathbf{\\hat{b}_x} + (- u_{4} \\operatorname{sin}\\left(q_{1}\\right) \\operatorname{sin}\\left(q_{2}\\right) + u_{5} \\operatorname{sin}\\left(q_{2}\\right) \\operatorname{cos}\\left(q_{1}\\right))\\mathbf{\\hat{b}_y} + (R u_{1} + u_{4} \\operatorname{sin}\\left(q_{1}\\right) \\operatorname{cos}\\left(q_{2}\\right) - u_{5} \\operatorname{cos}\\left(q_{1}\\right) \\operatorname{cos}\\left(q_{2}\\right))\\mathbf{\\hat{b}_z}$" ], "text/plain": [ "⎛ R⋅u₂⋅sin(q₂) ⎞\n", "⎜- ──────────── + u₄⋅cos(q₁) + u₅⋅sin(q₁)⎟ b_x + (-u₄⋅sin(q₁)⋅sin(q₂) + u₅⋅sin\n", "⎝ cos(q₂) ⎠\n", "\n", "\n", "(q₂)⋅cos(q₁)) b_y + (R⋅u₁ + u₄⋅sin(q₁)⋅cos(q₂) - u₅⋅cos(q₁)⋅cos(q₂)) b_z\n" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A_v_Cs = Cs.v2pt_theory(P, A, B).subs(qdots).express(B)\n", "A_v_Cs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Time differentiate the velcity vector (use the one with only u's) and then substitute in the qdots." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}R u_{1} u_{2} + \\frac{R u_{1} u_{2}}{\\operatorname{cos}^{2}\\left(q_{2}\\right)} - R \\operatorname{tan}\\left(q_{2}\\right) \\dot{u}_{2} + \\operatorname{sin}\\left(q_{1}\\right) \\dot{u}_{5} + \\operatorname{cos}\\left(q_{1}\\right) \\dot{u}_{4}\\\\- R u^{2}_{1} - R u^{2}_{2} \\operatorname{tan}^{2}\\left(q_{2}\\right) - \\operatorname{sin}\\left(q_{1}\\right) \\operatorname{sin}\\left(q_{2}\\right) \\dot{u}_{4} + \\operatorname{sin}\\left(q_{2}\\right) \\operatorname{cos}\\left(q_{1}\\right) \\dot{u}_{5}\\\\R u^{2}_{2} \\operatorname{tan}\\left(q_{2}\\right) + R \\dot{u}_{1} + \\operatorname{sin}\\left(q_{1}\\right) \\operatorname{cos}\\left(q_{2}\\right) \\dot{u}_{4} - \\operatorname{cos}\\left(q_{1}\\right) \\operatorname{cos}\\left(q_{2}\\right) \\dot{u}_{5}\\end{matrix}\\right]$" ], "text/plain": [ "⎡ R⋅u₁⋅u₂ ⎤\n", "⎢ R⋅u₁⋅u₂ + ──────── - R⋅tan(q₂)⋅u₂̇ + sin(q₁)⋅u₅̇ + cos(q₁)⋅u₄̇ ⎥\n", "⎢ 2 ⎥\n", "⎢ cos (q₂) ⎥\n", "⎢ ⎥\n", "⎢ 2 2 2 ⎥\n", "⎢- R⋅u₁ - R⋅u₂ ⋅tan (q₂) - sin(q₁)⋅sin(q₂)⋅u₄̇ + sin(q₂)⋅cos(q₁)⋅u₅̇⎥\n", "⎢ ⎥\n", "⎢ 2 ⎥\n", "⎣ R⋅u₂ ⋅tan(q₂) + R⋅u₁̇ + sin(q₁)⋅cos(q₂)⋅u₄̇ - cos(q₁)⋅cos(q₂)⋅u₅̇ ⎦" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A_v_Cs.dt(A).subs(qdots).simplify().to_matrix(B)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Problem 3.6" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "Ch = me.Point('C_h')" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "Ch.set_pos(Cs, -R*B.y)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeQAAAAvCAYAAAAy9rk6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAbQUlEQVR4Ae2di7UcNdLH4R4HYLwRABkYE8FCBl4TAZABHEfAgQy8RPDtkgEQAeAMgAgW3wz4/j+hatRqvVqtnsed1jkavUpVpapS6dE9M2//+eefbx3hkMAhgUMChwQOCdySBN5+++3HWv/uL2nMdyEzYvA9xc/CujBfaw9hR+RPTa+F5714Et7n4G7h4ZZhDjnto/297Bpuz6Wzc9EdoaG99HHNMqnJdc3YkK/w/aKU+LiG+2TtnJD9KRmmvrdynKqt1s5C/l9FjtxE8sTvg/hZjDdXVp8ivVQ/9UHIbxSb6aTw5Op6eMrhStULP/J6L9V21P1lp8jh0uQkfobafqxrbELxau36nDq7NFuJdZsqi+fVvi+FJ1d3jTLJjSWubxmbYD5SZD79ovirz1+E33WLMYPyzGWZqrWbYAQHssXCrjpzKv812FLaSi/EoT5PFaH/dVg/Kt/D0xraws9E/GVNH4P1fZ2RWd0lp1v43SKnPWUivobYfsyj8F61XTOeXp35ft123Us31sEpy+KZhSLri7fyco0yaR1zbWy+HYP8wnAq/7XiGyufM70TI1wpscP/WYz8RjkOtXaDFxyOg8CpeBY87h9UydWswc1grNBKz+AtFY3Xim8rfml1o9JentbQF9/3gv9BtL5Y0w9Y3/cPZZM6XIsvBS++0N1q3lK4tvC7RU4pXkbUSS5m05tsP8WLxnvVds2YenW2xU620E3p4RR1sqOiLx7BQ68uYtoj/UGMu7dcG5tvf0fpN0ZDedaLd628Z1qTGYsXCzLH9o+VTzrzWrsNQHA4a3Yb76dweTyclJPtAZ4iPwZ3yrRVBlt5Eh1Oyb9Lfu9sxTW6v3h7Lpzs3CdjHk2jFd+lyUn8DLH91vGPghPfJ5tr59LZuej26OhU+hghE+G4GH8QynrE2EJ8I/M1md0JgAWSHWxuMS62R8x+rPJ9CpcxovYfUu2Gp8aPwaVS+io+Jabae+u28LSWpmTDKfk30eQ5xxEyErhAOW22/cxQ2TBfvV0ztnPp7Fx0c/rM1R9+JieZdfUlfUvGXyvyItf3Pv1V6StFt86tozQe+pFQssvhKjkXau1hPxaR78IK8hosOL5V/E7C+hd1hZClJzwstNBg8/BEkdPkJ8L5gRfoK5WNB0fH94E2Av+PosEo+9aHij+pf+3El+UJJARP/3NlOXHA178VuX7iurEkX4EsAvDwX+03mO6CkdEVg/ltltPocSTwmd3NmjTequ0L5lbsGtk06WywnTTRFU3mLTd8bIoJlHkfZvJpHual6v8HgMI/FIGZ5mpJn65H/uNi/Uye5b4WL0f84/uKv4Y+2Lf9rvp3VW+6WEtoYWfCi3y5yeLQ+AEIva54Zv9C+Q9UnzyYAnuqwDOv7FvJaiu2awDsfOEVp0KGN4URNAMnTx2L4FODLaWCS9JTvU0OR89wqB5lTnUqI9zFi2PAKYI7fJjPIg1/xRcofL+SjHDGvHgy4VHejd14U5mJjhzggZTvwE18h3m1Ib/qy12CqdIFrwK6WbxoF9JsyQuHM+gW2BSM+lf5FQxywnaQETLcLKcULyPrxGO37TM+xYVuVPfg7BqZK1RtWzBVO/G4mu26Rlft+ALm8HOzDeXBP81rX8aPTPPc8zH5FbU16dNohKn6Jn2fwah9qFyEr6oLo51K1b/bH6jvK3AquDGF+FXH/FdV2j/6fos5E8Kr/2JsqoNfiMZzC7lT73gK8YzOi0ZRZo8EgCHyMlAu1NqtH4IlfKpBTLsa7ToQDCfH1hetcvSeCccz4cNBT/hVh+MOQ24s7HyeqS9Xiy4oz9UweXjnRJsLOZ7YYTEBWTi+BF+E4DVlwbjF2NpVBv5HRbdLAyYKjAG82dBIF4eC7AmM4WyhkV90yUbE6UJ9bFGedBYNoCqnCH6v4hbbvyW7Rv5FnTXaSY9dF+mKL+bkb7K96TSsss0Zm4vAcMsXz3N8G9egnMqeKLb4KYEtwlY/s1YuNZksGBxRITkxTg5OBG4CY3ky36cbB4DCoP4sajbnwqYwvxgbulVffG5Mz8qm7xDPyfPsAD8Ss7nTWrHd+gkHu4zkq+OqZ/fR9FUkcCgm+VE9u1NwuR2p0tlOFV58W+qETJ/FqVN1dJpOzTaeMFV7iScWDYHP5ef7uDErP9tVq8zEge6Cf/BYe4wzLAumStfgBYvxznaF1pZKBcsGggkTR8aBLOJ6yguZh7jVXuXXw0x2ojKbOaGZy9bKanNytHIuFRwONcVzqa7pRgeaCptsX/1vwq69rIo6kyyqdmJ6FmyzXQs2S1dt2AeKzJ6QrL/S6QRtfPhx0T+c75Szfirsa3nBb/IzAZ4muYheViaGi1RhqD8QvunWS3nGPPO/qTrjh76K8KOqtF/wPCfH5vuzoIMD/bDJsvm3WB9KNEptHn/KvxR96CN1HBUwgnB36fD63RD5EbsPdjcvFaGFQHlA/28Jxk6BqioGdk2jwwshnO3m/JgxHBRugfHbTuzeV4Z1BteattJtxTfBSZ7J2wyNC0NmE1F75j7hCjJVfhN6RN8z2Qb4mrPCi7xztxHNeAqAW23/sOu/hVu1k79Bh+XMN+Esc8FgbO6m4FgECFv1+ReW+ec55OI4GO0P/Hzk5pB5g5+cbidVhwypy817NulfKX6huCp4/8UCTMDH/QteVM8mELzDQq/M7sTB4mgfcVVrtwfjdAsXIENjRtq6GCbpSWhuQjBQRR6+c9fMQvyZ2lDsniHHE4ZDjMft+BGPzqiU8jWv0MBMJj9nmH6ielu8FyAabxPdRcczVfTw6/vghJKbAz+UopxOMVzxabqMbQDy1pa1ffW/JbtGJlmd9dgJCBtDlq7621zjBaNcMBjmXi7wCGyLPjf5mRxThfqSTArdhjVxNc1jgvsAI77zXnWvgzqX9XMtho/BrDwbm7ctW4w/F/5vIrrWz2jxmwu8gf2nj07vyr/xZdpKtjDD11pgQcbQYD4Xau30swUxtcDwJjNh2n1WBpKjh6HPdjESKDsrTuVuEijdK+R4Mnq0h4HnIguDCgA43bOxCA0xaHbjybWFcGvphn3PkW/iV/bB7vdHxa8ko5Ic0XuLnPYc61bbvyW7Rg8tOmuyk5VKzdL18xA743n+IsgeuaamHVtbvM+g9qe+Ew5/iz4Zd80Xe1IuqfmZEDaVz8okBbxDHXKL5zfydeuI5Mph63FAl2/U4O9bQjy2ULfh4QhcwM4CdBTZoBks7wUYHAdCDlnDfc+dCCKQ0nVerZ2BfMKHGIyFS/VPfFjwgzInZtVhWqL3MlIQ/VCYCc3whEq0ui1pkievENpMUdwWsGlgfDFPjr7aWYz5Lnbp2hd9JPuDpIcu/c4V1vKLbBSRwfuSV+rkaUMpysmAdk5H2P6t2DWqyOpsrZ2s1GuWrsfD4rb4cx0/X82v/VMwfD3GFmBj4VtlsFmbs636tP6WDvMzhrCS1mRS6b65ebbxklzxmyycVj8temrDr3K13BpmY/O6sQWUR28uRLp8rPLkywFQP3eKVxY/ROSlZbMHFceGR0IHkdJAs+1inn4I0BmoyuwQeR19eiagPG+2sfh8rFSJG2RpMcrSU1fwMiFYcBEuOxhepOCqCB5eKrrFXmV4+VQRAcf1PIOg3p49M4E+FB4mZSqUeGKSfqv+9kzDjIk+syAYjIoXGozurD0oIFN4L4VmuiUkJ2zr4ZfNC1dDnFBSO+MWOe0yRPE00vZvxa7RRU1nPXbSouMiXe9D+PlE5jLOnBu9fyjyopeb00pf+7YvlZpzxxdx22WLsYp5P0VjIQzxMwX8cVNRJjHwDmUeR8W+E9nzbhD+9P+gqTwyxm+ab6W6FlJjc7jVEX/PQkvgdyJYm5A9awf+Bn2GaxSw2MMTxVDPKg4OIgxGiCXf+G1pB2ZkrPEzklYrrlaeBMeiK7RzmagOZYdvEFNevMmrOoyv+Y1oo6M+Sbq0KzhDM9jeVHieK87eiNyAa8av8DJu3ricZKI8myYGsPgOuOq65NTL70PtJzkW576NGx0oqthn1/RTWK2zHF2Pr8mue+jG4zxVWbxu0kerXEbIRDiG+YOSfD0dNsBs0InkMSjS3X2DaLBYc8CD5mrfHI5N/YsyuxMAgUGWXp6ptTskAz9OTa+F9Vae2E3NrjS04+L0Tv+flOdlAZSCvFM7vpeqx9DWhgXdAAGOcERgdzjdfmxEOONXRnsvfH8oklrA4VL+j1UEaa+cAhRHVhI4lV0j7B6dzewk0lirXffQjUidrNitj4DDFrmMkMlIfxCwP8/KN/A8lxexOLniN5ERgXLKH40YmyMgX81CzEtm3J5iizzWWNx+OuC2j7LMRMidboULIqVTcrHd8IxKa/yMorMGTwtPguGUN52Ewe/ryMxiTFvtTKSu78J5GjFdTpivFNl1QxvjGnLCjXlfWxYfKTnZxoXrKiYd/C5sUnXdclrL5y3AS57VuS2YlL6om9k05ZTMVN+lswzdZrvupZsaw6nqxHOvPprkco0yMdmLd25qkI/5s9n3wkeNzdMx+558pqcLbXzqjLbxuCV1izEIFJgw2Z8jq7VvYSLV99T0UjzEdSWe1MYCwhfBTVnZHxmI8VpZfasT0WAtHUHXcJ0iHcFvj5xOMbZrpSF5Zuf+CH0hl7U6OxfdS9Chxr6rPtbq4hJk0srDtY/N/f2iBuGCjuLssPiVrNQ1AA/Xi+0ezbDk1PRaGN+LJ+Fl51f8J6wW/h46zCGnfTS8l13D7bl0di66IzS0lz6uWSY1uT6Esc0W5NqAj/ZDAocEDgkcEjgkcEhgHwnc7YP2wHpI4JDAIYFDAocEDgmskcCxIK+R1gF7SOCQwCGBQwKHBHaSwLEg7yTYA+0hgUMChwQOCVyWBPScmRfmLjbMFmReJPAPxpMM19qTnTZUnppeC6t78SS8fD/5vRYebhnmkNM+2t/LruH2XDo7F91eDT1EHfTKorXfGh0jX+Hlf6uJl7kw2+vkYjT7qj0wDe28JWy/ZkIH8kS+ymNx8asqRj9O1afITwzveUTgfHesmU4KT66uh6ccrlS98Ce/d5uCveW6S5MT9uZ5wu43236sW+G8artmPF4+i++Ux2MdXR5F99DB/BfaRutpC74WHQuGHxlibeCrqXyHmPzJ7bE2zvB7yDCaZVBtxXYjJDhm3+L7zOBWRAjFP7IP8DTRM3hSBX5YgszsBzJCmC154V3N0xp6ws8mpPeHQejrDG4NzXPB+rF28btFTnuOV3wNsf2YR+G9artmPL068/267GQL3UMHl7sAJ3RT9JvehjDC8Ac++N2INzGuc5fvxJR9T/BnMZP6KcdqOzgIugbAcRA4Ec+Cx83PhnE1a3AzGCuonRNHlh+Di1PR4IfC+SpX6WdA425N5V6empB7IPF9r+wPomV/VNHc3fflpyeTOmxGVAAUX+huNW8plFv43SKnFC8j6iQXs+lNtp/iReO9artmTL0622InW+jGerhlHcSyGOkHYtw95Zpt+fZ3lE5/GKE8awR/JnJRwX0PWQLmCP+xmEw681q7jUhw9pOH/G3WApfHw0k52R7gKfJjcKdMW2WwlSfRYbf3u+T3zlZco/uLN36Dm1uUybBH02jFd2lyEj9DbL91/KPgxPfJ5tq5dHYuuq06ujYdiN+L8QMm40vXsfFZS+80EBZIdrCLBZT6WjswQeDHt/kh7gUuU6Lai79GtZJeQPovXtX/KXHWsLGwhae1pCU7Tsn8nSTPPI6QkcAFymmz7WeG6ubgtds1YzuXzkbQxQccOshZ6PnrSzqW3vg7R17k+t6n/MXiK0W39p2f+785eKQsux2uknOh1h72YxFZ/G+tBg6Ob2mT4HL/OWx4svSEh4UWGiz4TxQ5TX4inB944fJHCsaDo+P7QBvh869BBqPsWx8q/qT+tRNflieQEDx9/ueYEwd88fOjXL1z3ViSr0AWAXj4r/YbTHfByOiKwfw2y2n0OBL4zO5mTRpv1fYFcyt2jWyadDbYTqp0Dx3MzHaXgmSMX8Qnvq/I3xhOfte3/a76d1XPoaQnLGxLeJl/3F5xUOT/kPHVzDfeB3qh/AeqXxwggTtX4JlX9q1ktRXbNRj3YpjgGCQPznlTGKEjBPLUsQhO/3NrfVKp4JL0VI8yUy+Lzf6fUjAIevHimOpYKMEdPthnkYa/7Mts8KiQ5Mn4VzvOmBdPJjzKu7EbzJpUfZFf9eUuwQylW+NR9Jxx1+By7aP5Fb4mOeX4GVUvPrptX31vxq6Rd4vOBDPcrkt01XbowPvxljkheXX5AfVzf7ij1Ok3pKU61gtV9b9Mpv4Lf6A6eMXw4nUCn0796j8B2sJjre8jMcSixMtAuVBrt34ImfCpiE47HO1AEBInx9YXrXL0ngnHM+F7HOJXHYt9GHJjYRf0TH25WnRBea6GycN78g81HGBBRvAjGBZf/psz3mm99v3ZlfFWH7CMDzjgJzmpHAbGAGw2tNIFgWBZMHjzfBp7FvFODa38ejn9T2ywi36iOLOniL2qnCL4vYpbbP+W7Br5F3XWaicgWmnXJbpXrYPBsgDd8CBd4fc4LBG4/Yt9Jb5pdiPo9ftS9V8p4ivdPJMfy/nqhY4F+53wcDKO6VkZvi4mPBInOL3cwgCjtXZgCPYMbYYL4UkgLJoItmVRTtITHt4+RuBvlKI4djhcgU/XHirXgikhhisufgJO8uSRuIWWcUZIp0Ve/ALDTszRV5kF/EdFd4US9aMIXM1QWug+FR42Q4Qavr+g9On5tUVmqlcGOT1R+ydhpc//pvG5xwSJNqpa+MVOuBlwshQdysgqt5FokRPjgW/kvSawEXjd2KHb9kXjluwacdZ01mInPXadpXvlOhgqi9DeB/uBP2xei8YLRRbZMLApiuvwu899BLb2yDOnY+o/0nh4RIm8WKNICdC4qMBVK3+56K6e41RtxXaDFxzH/9RVMQtBss36hmmJntpwrExYdlrgXFw5qI6FOsUH9akrb3BM19ghL5ZXe1YGvm2GV3U2ZidXlbkuD6+zMQboTnVGi1TBtYd1cV4w8FSka30Ex+I6u7KxtjWpcDA5irLK4VO/Kr+CYQGevkOuPLcrQpm1zaqccn1H1sOjYsrmzA4WbSF99b0Ju2bMCkWdqb1qJyY7wTbbdQPdq9TBHrIwnLlUstziB9AZhsBNZ/y4c/ZYUzDAQgubmeCtX5x6OFX/7S98f+gRuRZ3eJTia6irPhoM8e2dvxNDi2O+6sJQa7erI/qw6MUBYRLA0xKS9LS7wbmhQK56eRDPXTOnv8/UhuL2DDmemMTEeNyOH/EYXsE4/j2T9z4N63yVS57ok11dMmi8a+gmcZyyspVfyetzxfAWhRuEUIYx20U5xcB7lDU2s+/YBiBnbVnbV/9bsmtkktVZq52ApCOU6F67DtaKIyuLtYg64LlN4jbNfCAo8Jf3qntNIQrA8mJsCB+BTMXZuLw9ccNGwLd804jnrx5n+LwTTRw/A8mFWjv9bEH8OYGEawICp0QXvKCsGKc5ekwaTkxTkHC52uStbjehpobxmRxPRon2MHB1OxmX+OR71+HC8tQDp+RFE+NpMcAiXU/jkpJmfr2NcLUVLtDxWFrlFPcbWd5q+7dk18i9RWfNdrJCkSW6V6uDFeMPQUuyCOH2yOP7Jt/oCbBIO1+oec8BiwOHhc9V/sJHvqoUthmMpfG4nlmD0tD/Ug3sLAg3tHkk+qdPHS3l+Sqt1dl8n/UdVbgTIoSTe5YJnVo7MO6ZohadWNC0/cSHBQ0MQZQGVaL3Uv1jhVCOhR3DGPneNMmTxnsvhLRNyhV/bBoYX8yTqqbAtXvppa7iyXAD3YmBU2bW8isZcrXEM9+vMjZl7BflZEA7pyNs/1bsGlVkdbbWTlbqNUvX43koOmgRS00WLTh6YWabLc11fCULp9VzeMGvEqjjcQ8nW94Vct+goSETZuNSH3yw4eLq2wXRtAMR5ccqO/8teA544CBMp3jV4+PBw1eySn6dfpsDAsk+X1Rbtl1t7iUcpXZHz/XA4itUqmMB4koPR1t8Bqn2JD1fDx4WPPCQUrbntAgZ+iEvj1VO1VOHguAJeJ5bZZ/zqS3Jk5SjJndlDV03NqXgpSH5XF718Fx81V7tGN7seQq0wqh2xtZEV3BZ/kOctbzwMLai/nI41K+ZX8OhPtjX7Dm5tZEqVOUUwo/Me97Cdxm6bF940M1N2HWLziSLZjvxssv6rlDfgs3aisdz1ToYJYtQZrm8aI32AyyI5suyfk8w+G0mfu7dm4WOgVUEt3s3QSk+372n4vPgI05+TXngqbO1hbWm6LNzslpbbw/VZy8dxUjETLE9ht9aPjW9Fn5beRIcyhPK+QJK2bcVFSsYHFKTkwlpeNw5umdfkENeA1kk+TVYjYnJhOCeW52lquuSk/U/0umFmqa5LXlvsmvk3aOzCt0mu+6he0r7EH8jdHAyWYjf7gV5jVxFhw359DIXecVpoQxx+bbVfjPEYXnhMr/jXvhSuUk/1n9LeidiBHaHpWd1tXaHZODHqem1sN7KE89DuOKYBX81w3WM+xoS5ejqxOBfKoMhrg1JumuRVOC5rom/3lXpkm2e8StZcHXE8xt2wXF4Eleo3CunBKqbrjqVXSPkHp3N7KRTUz10O0l1ddukg5UUR8hipB8osf9CjeHct3zq3ZsR43K8yEdzVc4YeXbMaZmXyuxK3cHs9mGruQhwlE9eBQBTazc8o9JT02vhu4UnwXA1Mn11x8uORYbrFHaWFpH3tPvzcOwAu17DV78FXRuTpzlk92g4t6YpflU324mqzKmMcQ2T01a+H2J/ybc49xmz10OXXfv+Xbadoms6UBtzqWjXau+iazROlYrPLh0Yfw9JFsGY2KhMc195yosbRmAUu/ym0YpT4cNnY/jE7LoY99tanp5LiiiDKj2vK7ZvZSTuX+Mnhj9FucST2jAWe6bIwjIZjvIsKqbcKY15Fkx1Uib6lOhy9fJKEX6g657TxDhOWRYPJX6ZBLTzPJ4UfheTQXWr5XTKMV4bLckzO7fVVtJXk10jj7U6q9Bttuu1dM+lO/HZq4MHJ4tQB94OsEH82GxDaHCq38UfeLzZNdHoj0zd3y+KsAs6nqNcHmQnryVr7R7NsOTU9FoY34sn4eU0WPwnrBb+HjrMIad9NLyXXcPtuXR2Lrq9GnqIOuiVRWu/kTr28ud9FffrjypzwFrzi32tbGfhZgtyFupoOCRwSOCQwCGBQwIPWAJagO12jq8+8ZLch1qcSz8HPFwax4I8XKQHwkMChwQOCRwSuDYJ+BMyj8n+UORFrtKLzrsM7/8B+MeZzFNjKX0AAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle (\\left(R \\left(\\operatorname{sin}\\left(q_{2}\\right) \\dot{q}_{1} + \\dot{q}_{3}\\right) - R \\operatorname{sin}\\left(q_{2}\\right) \\dot{q}_{1}\\right) \\operatorname{cos}\\left(q_{1}\\right) + u_{4})\\mathbf{\\hat{a}_x} + (\\left(R \\left(\\operatorname{sin}\\left(q_{2}\\right) \\dot{q}_{1} + \\dot{q}_{3}\\right) - R \\operatorname{sin}\\left(q_{2}\\right) \\dot{q}_{1}\\right) \\operatorname{sin}\\left(q_{1}\\right) + u_{5})\\mathbf{\\hat{a}_y}$" ], "text/plain": [ "((R⋅(sin(q₂)⋅q₁̇ + q₃̇) - R⋅sin(q₂)⋅q₁̇)⋅cos(q₁) + u₄) a_x + ((R⋅(sin(q₂)⋅q₁̇\n", "+ q₃̇) - R⋅sin(q₂)⋅q₁̇)⋅sin(q₁) + u₅) a_y" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A_v_Ch = Cs.vel(A) + me.cross(C.ang_vel_in(A), Ch.pos_from(Cs))\n", "A_v_Ch.express(A)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle (R \\left(- u_{2} \\operatorname{tan}\\left(q_{2}\\right) + u_{3}\\right) \\operatorname{cos}\\left(q_{1}\\right) + u_{4})\\mathbf{\\hat{a}_x} + (R \\left(- u_{2} \\operatorname{tan}\\left(q_{2}\\right) + u_{3}\\right) \\operatorname{sin}\\left(q_{1}\\right) + u_{5})\\mathbf{\\hat{a}_y}$" ], "text/plain": [ "(R⋅(-u₂⋅tan(q₂) + u₃)⋅cos(q₁) + u₄) a_x + (R⋅(-u₂⋅tan(q₂) + u₃)⋅sin(q₁) + u₅)\n", "a_y" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A_v_Ch.express(A).subs(qdots).simplify()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`v2pt_theory()` gives the same result:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAAWCAYAAADdAGoAAAAACXBIWXMAAA7EAAAOxAGVKw4bAAARu0lEQVR4Ae2di5EdNRaGscsBeE0E4AwMRIDJwNgRLGQARQSUyQDIADYDvBEYTwb2RgBMBt7/69HpUav17Ne9dyxVafQ6Om8dqft299x7//79Rz11DXQNdA10Ddxq4N69ew8VG69ve3qta6BroGuga+BSNLBFDL/vCyuEnyp/4/ftVT+S1l4ynAvevXQpvM/AfS5ybsnHJcvW7d3uCS32dj7/RiX5YTu1089ABuVDYjnSHk3v9Breh4O99Ci8PZbvY7JFWLud29XW4sPoVxRWx/B7dgdZCNkIflf7qxjrGifYMvbMjf/Hlf4GwvxfXH+yKNFKTuwDMw3srUvh/11Ev5dd382IX3jHJcrW7b3c6WrsLZinooDP4+/EtkfKn12S/5d8ROObxXLphsNxdu8ApqeyBvbWo/D3WF42w3CxJ7A3yux7xfNMBcoJSLfzRB1NjRofFsx2MVwO8BFZCYf41NqpUjAA/xGOM1f5H2UOyQPOVCmYKlqp+afuF/9PT82D0d9bl8LP5vfG6N2l8hJl6/bOx5acf5bs7caJb98ZHtVfKv9j7UsoxW9VfBXc6liOPmrpnaPuxHuP5YX9+hztFvIkO262TwnXE2Uc+2VIZ4u28Fatz6W0hH8zXSzlYa95Jdnc+GYxfHjEQidu7ij8KaGydwkFh+OQ/rgpbv+6ua/Uw085BncL4Gq1tGYTz6RD/ON8X58DO0foUna9lqyvROu7NTJrPn6xCsca+rG5W8kWw71HX7f3Oq2W7O3G/6XyJ6Ok+veqf2LtPcst1kitjwjOYvTiWI4uauntqbeluMV7j+ULlCe93elYrjV/pcyv66z9TdMR60V8f7B7tpN9sxj+wFkfR4g+WhF4B7euSfZ4xU3r9q8FXQyUSrW0UvNP3f/81Ax49I/S5Y+i+T/l8eDg8XDp1UuSrdt7vbdl7e0C7IRKrG8CcF6NWh/ZIpYjeS2989LSDTc9lp+jVZbzlF3by9FuOvOo9XIJuliq2KxssXgd66shfl9XNMNLWEKQvXvskHGIvo7BclWpMXC9io0zv5EWU84qORl/PgemjtSlc653ommb6jmoYBMeLkW2bu9NzM2jX1y8R31ZOn6pzIsdf7jyrcqflYcYuQ0H+2ExPlPxN6C8KpaDq5FeQP60TfHOftVj+WnNsCn13NpuIYRfKz8ht8wrwYIXmMr1WUKXHd9KF1kiJxrMySYdbxrDuYNMoODRiJrEAWl291hMgeNXxsR87vGDFlo1/ExgxAc/mfG4yGPlt+JlvOPpxrgL+olTsKr1SfPB+5mb8VRtC648jz3qRP3IaBvqx6r/FfDBokNXwPymDB47eH6h+msfXu1UKupSvEDjW+W3yuiGFw6Qg5+Qam0u8CEBj21b593MXvFXcuxmV8dWlWyOD55J5ZBFgq/Q/vT9oPyXMgkfAGbUm/DgA9ici9JHysx5IRjzLzVnqdtbKnE2WLyOnVZn9hZe9MsjQNwAGOzg7MTzgs9Vv4QX9Yo+4uSnWBvLwdFCD/jq5OzcY7nTmPTRY3md98zWdjjNreto/HV6tj2ZfX04z7g5a/ft4nrpdg6tlWzP7Czd7RLDeQbtG20KpRfr2NR5+Jk3YQlcbCbU6cOhnlTgqKJVwpMahw/GlHD+yYs1asOvhqdyqo8DD/zDGyXfP03qQuMcNgc6IZz6MRDj48uOwCrPXlx0cND0XwgiCCLAOD+kYW3BZHWp8UEHPi7VB3t5OKpl11xsvvhlPc0dnNdot5Sau9Su2HzQv8qkXTVWlE0w2IaXUJ8Z76qzJugb7OXaE/sDqzTaWXU7VE98TP1c0E36/LbDkVynGi/a2/ECz7OXbH1aDq6ok3CO3xaNQ+0d0M7KJ95msjl+MdbEDmpjO/qja96nu7YuGot1Bm2lbEww/gS3Opa30DO6LaV4XLrmeyy/iXmr4l3OVrLNYj9dYddNYrnoV8VfwXFhvOm+LXzZ9anxDzaGS3ZiEucTSvZaYnRuvzskhj9wzPytspQwHunfWjzXN9XxJQ3uUvJsTSkheA2tEp7ZuLvywqlJXPWFj4zwk+J4Fw8gzRkOiJJngFUbA/1XOXcnj6m59EiDLEJL4OQnWwLWqDf1QfNz9Y3PfsOH4JiHrkufl0nqElqaD93Y59mu1L9EduzmywWa3ZNkQc5Wu7JJcpgfdCgcdkgedR0wXiMb+nwnnOOvBWrDG8n0Agy/ooS+x9rgp3v8D//4HBsJzvcHeMyltfYm8LBOScb3TSv+t0Yn8ZkrepfY2yen+WzeFqv8Ib8+kw27ai7rPrSdtWt05tM4RT3pIwEzpp81sRyUtfQC8vnmEh/QnB7L6/exmf/nLbLN6EK7bh3LP5c0NfEXHcXSmn07uV6km5o9+y7HcPZFYjeZVHoaYebDe8TwB2IExvyNGuZiyZ5Zm8CKqV9kXJz4B+XSITlLyzkJB9SWRJC/0oS/4cVNfK6SB7n9xMII+zCGfzBhnIMMdwRtY/RxZOuaw+GJjZbnl7ji/VgZxyfFZE/RsDk3M+N/Y/gMks2CA5jpw/r9g3er7PBaPCRIbmjbBmx0KZHpkcZf+J2uzsFz+CkrMrbErqDhMRtLHLC54kylrGziGd6fKE/0afYGqWAYRz+vaftJcFcap4vHKL5XncX9j0oOzNxVIBiMjwOpHUur7A0PQvqtaGKbmH1CmlmdGLDwnYu97fGLL4y3TJmSjX4enwIH9rx2pYph/VKuTjvozHjK+YjBUG4Ry8GTpCcZWTM9lt/Gf/SVSkk9akKP5RvGcsVBvsi0JP76tiNOxBI+n0ur7PwBxHC7scl5gNibS4fE8Ac5DoIxNlX/7tkwLGezQ5OVwbT6plPKoru3plDxA5846niYUd8T1ze5g+w4g29zeDOK3+fAyoXoQJdNgQX4rXjijjC0U4cz4PZIXCBMZBUfyAR/HMgs+XKukt0QSuboRZLocyDnwqN0EDRUQ7nErppjd0oNFz410YcNVJboifT2poj+NRjTYwwIXyDBDxeU+CobIC8W/BLhW0NVqdbeVchagMTzye3t8cs64yKXi9Om5PyTXwBIyPQ1vqd+LqBT6xfY5rS1zpoZuPG7HsszipPdeyw/g7UdiYlrYzlWXxt/99i3ewy/+YX2KrMss0N7xPD7ooixCQbJJMK2sfuHK4O3sRqnKdIypCtK7o6EVyAcRK612CbKV/uxsn9wMln+rKUv3fibMRssd26/UrZD94jKBd2xvbIS1aWjgT1DW6EDnnEd5FXZKvsjTZ/JBM6DUrVdfX6cPgg+0YOcgy3JZnL7d6V9MtQNJreWuGAaDtLSP4+/8OIXt5Y50H+jscFGIIukVfaO4Ct1lXRSmr92vMne0h1rN1z3KR4msjkfscMxF7Y/KV+nJgue78DyhYv3Lg82V51fBehjLOcHKdRr+6M+4iMVX+iJFMYH+mwMPDWpSK8GSQam2gdkr9Z4NiMr3fRYPtPKLh3VdvWpuzW1KpYLx9L467OytB5dL04u4kW4Jid79gKikzi3YP7aKa125hfO71zm60G5GDqRzcG2xHD2W4vXlBbD+fWfGE7fUw7IbOwQyyXbuGMHR/tJc7y7ZsQiCGtoRaY1dRHkr4IZGGrgXbyhmJTiuZvHweU6mO83GfP15R+a0FN4Z2ZYkA4Bzz7B3xappEs7sBktfr4I9WJjlCXZkSOnFx/XHvVmu0rXbHjc0f9RNs3JnpXN+QPzeUxnlkSHF/cYRz/42iR5NmcBQ2tyR1Jz+bUDv/F9Rc1J2treE+SRRlYnEfitu1rtzeMr4dpL8RTK5tvVv2Bm/swm0FFm3Rss69rguOjhsHaKtVLyEeTZKpaDq4YecEtTqw/4dErxDNgey32NHVdvtutWsVwisk6XxN8ttFNaL4z7qbRn+7CxehjnYjB79rXYGdl5KZKbE/zKPLwkmWEulK01hrPn8ksCabyxItq2j/O1s1f3NUiHAQIcSy/odJPD8dd+h9soLAj7Q9RraIVzWtsTJxM/8ILyrD+6eQmOgMo3nEuPAHDQxjixRMDFKfxkFxAP1ck848OHWVKP6lL8wwNjI4+SjYCAHmxDV/U2Vcq+xU9bt0TbaxO91dgVWyrD92PBh1fnPgc1shGs+D7mJLg63aFv0pfKfBIs9IFf1Q8vpv8fBIM/+Im2jfv9Vt/M3oawUNbopIBi1XC1vZ1N/HcJSoQnsjm7sG5Iz26K8blyaz4UnXFN0al5wx0SVfEtsr0PoepJUtRHAk62iuWgraEXkG9qVvuAj1V26rE8v49N/N/X3UH1ZrtqrW0Zy2vjbxij16onul4kG7GHsTG+uJiW3LMrGbkYO0sHHFL9/Y9zFu+DjDoJZJ7I5uY2xXBoCic3VbhrPJxZnd5/05jhGg5Ok08baXD43JQmsulwkucbQmTugM0+vaE+AhIbBHfsxs+WGR4rNQYTUVoGs7YUfpwaPgdeVLLhoWTrm32OTmMceqo/4+RwgQ+5x0+yUXdj6A36jMMPdXtRjMMTc32d0gef6JB+Ph02+8SMrxuNJ3WpsZgOwPvUx0FdqUp2wcH/THchvlRbc5Ev6RupedavuTGZTN/oN8mbxoBD2PETbYaXUqlKNsEZD759R/s7XNBiHNuTqY96p+760Tt8UwI3wvi8WZ1x5ejaUb/xBT4yuk7ZO4nHaDk5qnTiz/Hrjofd7S06yD6hg+w+L2Fd4zPZ1Ge+xNqzA+9L5ro2FXJIy3yLeTxeNcTOJaXmr10jSdsKN36I3CYHMWhxLHd6SdJbIn84R/zF/NrsFF3zyKTcY3nGD6Wfmf+Hus+1NX+tnzbb1fgRbVtvi2K55uOzxNto/FV/bH+G31h/074tHMn1orGYTlirs30hh8f0RKl0MXYWr8SnMX5SV47Kn5JN8BYbqmO4mwOd4RO2KnkSYtzT7SA86fSVvHU9ZGBr/K34xM+wYGyeaycPWwZ3DmWtLgVHMBDL083byTocAhhz7Zns6sdZo4ezEGeqrfmrgmoKb9jveGWBjHKobkE1diBYLVvIw15tyVG1TgUXtTd8KSWDtPEtmNU6EY6j7A2d8IIEQenb3d6iwWHaLnhPvkbES5WPmK3XlkfTy/ErXnosdzHe6WKMgaY39V/S2obXOxXLJU/V+hTcBxPD8U1n59uD6e2ePR6at/Rhw+Vo241J4vjkxqQdkDFG9VW3j7y1LjqH0SrxJl64AuQqi03WMsqaGaWE6xTj4rNKl4LD8JN/8qF2teyC5Yp7cuesVV7NJ9gdolfRmQQhtdFT9A6f+lfL1qqLpfBOjuI6FdzM3kZTY/h59iCn8dU6EY7D7G2yUSrZxVDU17aQzegJ1xhQVedwBgPZf1Jic2Ol5q7WmXBUxYQY/SV9R9NL8Sg+quNZCscp+2v1KLjZ2m6RXbAXtbbF752K5ZKnan0KbmZn80+N3bkYLpnwyzFmu3Z0r3Njq84jpktKJWIHFfJ4SB/GDFADHAwngza2dXkkrRzv4oNDkylmLHNzzm2sRpdOzvFOMTK4vlFmtYd6KJ/62bQnh+sQ5tza4heHHzYCVxJsZr6tvkuUrbhOJRd+HdqbgyN3VdlwsDU6mQUZ9V2cTsz/xDubj383YPIz7FayOToWO0Ydqt/WEzqe0DYejyhFu+gjW/JxNL0Y7+LB7GE2iMaz2Nxz6avRo5MzXNtVsmvuxa1t8XznYvkKO9/pGC69sGeTh18EY+tSY7v4sPASM2c3N8bn5RzhGUCMybV9R9Jay+u5z8/pUmM4mz13yKYdvSLLyag5h262OV62HrtE2cQzASK6TtXf7a2Lv5SfXKK9U7Lk+nM+kpu3dOxoekv5PPd5OT1qrK/tO7K2u53TMbq0RqW7Tc4jwsPFhn9zI/q89j0YsuTeGOSh8PGfbNjY1uWRtLbm/dzw7aVL90YnX/aYvHV8bvIv4eeSZev2brf4Jdu7XdrhCxxsAIfEcvjbyyeXyH7Jc/bS4132/0uUrdu5fZVuaWfh4oKTF335GgaPx32hcw5fqpqkyQF5MtIbXQNdA10DXQNdA10DXQNdA10Dd0gD7gKFxwz/Vr7S4Tj6j8T+D0aNVrO4CGGtAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle (R \\left(- u_{2} \\operatorname{tan}\\left(q_{2}\\right) + u_{3}\\right) \\operatorname{cos}\\left(q_{1}\\right) + u_{4})\\mathbf{\\hat{a}_x} + (R \\left(- u_{2} \\operatorname{tan}\\left(q_{2}\\right) + u_{3}\\right) \\operatorname{sin}\\left(q_{1}\\right) + u_{5})\\mathbf{\\hat{a}_y}$" ], "text/plain": [ "(R⋅(-u₂⋅tan(q₂) + u₃)⋅cos(q₁) + u₄) a_x + (R⋅(-u₂⋅tan(q₂) + u₃)⋅sin(q₁) + u₅)\n", "a_y" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ch.v2pt_theory(Cs, A, C).express(A).subs(qdots).simplify()" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle (R \\left(- \\left(\\operatorname{tan}^{2}\\left(q_{2}\\right) + 1\\right) u_{2} \\dot{q}_{2} - \\operatorname{tan}\\left(q_{2}\\right) \\dot{u}_{2} + \\dot{u}_{3}\\right) + \\operatorname{sin}\\left(q_{1}\\right) \\dot{u}_{5} + \\operatorname{cos}\\left(q_{1}\\right) \\dot{u}_{4})\\mathbf{\\hat{b}_x} + (- R u^{2}_{2} \\operatorname{tan}^{2}\\left(q_{2}\\right) + R u^{2}_{3} - \\operatorname{sin}\\left(q_{1}\\right) \\operatorname{sin}\\left(q_{2}\\right) \\dot{u}_{4} + \\operatorname{sin}\\left(q_{2}\\right) \\operatorname{cos}\\left(q_{1}\\right) \\dot{u}_{5})\\mathbf{\\hat{b}_y} + (2 R u^{2}_{2} \\operatorname{tan}\\left(q_{2}\\right) - 2 R u_{2} u_{3} + \\operatorname{sin}\\left(q_{1}\\right) \\operatorname{cos}\\left(q_{2}\\right) \\dot{u}_{4} - \\operatorname{cos}\\left(q_{1}\\right) \\operatorname{cos}\\left(q_{2}\\right) \\dot{u}_{5})\\mathbf{\\hat{b}_z}$" ], "text/plain": [ "⎛ d ⎞ ⎛ 2 2\n", "⎜R⋅──(-u₂⋅tan(q₂) + u₃) + sin(q₁)⋅u₅̇ + cos(q₁)⋅u₄̇⎟ b_x + ⎝- R⋅u₂ ⋅tan (q₂) +\n", "⎝ dt ⎠\n", "\n", " 2 ⎞ ⎛ 2\n", " R⋅u₃ - sin(q₁)⋅sin(q₂)⋅u₄̇ + sin(q₂)⋅cos(q₁)⋅u₅̇⎠ b_y + ⎝2⋅R⋅u₂ ⋅tan(q₂) - 2\n", "\n", "\n", " ⎞\n", "⋅R⋅u₂⋅u₃ + sin(q₁)⋅cos(q₂)⋅u₄̇ - cos(q₁)⋅cos(q₂)⋅u₅̇⎠ b_z\n" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A_a_Ch = (Cs.acc(A) + me.cross(C.ang_acc_in(A), Ch.pos_from(Cs)) + \n", " me.cross(C.ang_vel_in(A), me.cross(C.ang_vel_in(A), Ch.pos_from(Cs))))\n", "A_a_Ch.express(B).subs(qdots).simplify()" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle (R \\left(- \\left(\\operatorname{tan}^{2}\\left(q_{2}\\right) + 1\\right) u_{2} \\dot{q}_{2} - \\operatorname{tan}\\left(q_{2}\\right) \\dot{u}_{2} + \\dot{u}_{3}\\right) + \\operatorname{sin}\\left(q_{1}\\right) \\dot{u}_{5} + \\operatorname{cos}\\left(q_{1}\\right) \\dot{u}_{4})\\mathbf{\\hat{b}_x} + (- R u^{2}_{2} \\operatorname{tan}^{2}\\left(q_{2}\\right) + R u^{2}_{3} - \\operatorname{sin}\\left(q_{1}\\right) \\operatorname{sin}\\left(q_{2}\\right) \\dot{u}_{4} + \\operatorname{sin}\\left(q_{2}\\right) \\operatorname{cos}\\left(q_{1}\\right) \\dot{u}_{5})\\mathbf{\\hat{b}_y} + (2 R u^{2}_{2} \\operatorname{tan}\\left(q_{2}\\right) - 2 R u_{2} u_{3} + \\operatorname{sin}\\left(q_{1}\\right) \\operatorname{cos}\\left(q_{2}\\right) \\dot{u}_{4} - \\operatorname{cos}\\left(q_{1}\\right) \\operatorname{cos}\\left(q_{2}\\right) \\dot{u}_{5})\\mathbf{\\hat{b}_z}$" ], "text/plain": [ "⎛ d ⎞ ⎛ 2 2\n", "⎜R⋅──(-u₂⋅tan(q₂) + u₃) + sin(q₁)⋅u₅̇ + cos(q₁)⋅u₄̇⎟ b_x + ⎝- R⋅u₂ ⋅tan (q₂) +\n", "⎝ dt ⎠\n", "\n", " 2 ⎞ ⎛ 2\n", " R⋅u₃ - sin(q₁)⋅sin(q₂)⋅u₄̇ + sin(q₂)⋅cos(q₁)⋅u₅̇⎠ b_y + ⎝2⋅R⋅u₂ ⋅tan(q₂) - 2\n", "\n", "\n", " ⎞\n", "⋅R⋅u₂⋅u₃ + sin(q₁)⋅cos(q₂)⋅u₄̇ - cos(q₁)⋅cos(q₂)⋅u₅̇⎠ b_z\n" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ch.a2pt_theory(Cs, A, C).express(B).subs(qdots).simplify()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Problem 3.10" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Key things to note:\n", "\n", "- ${}^R\\mathbf{v}^A = 0$ for pure rolling on the vertical surface, where A is the contact point on the vertical surface\n", "- ${}^R\\mathbf{v}^B = 0$ for pure rolling on the horizontal surface, where B is the contact point on the horizontal surface\n", "- ${}^R\\mathbf{v}^{P_c} = {}^R\\mathbf{v}^{P_s}$ for pure rolling between cone and sphere where $P_c$ and $P_s$ are the points at P in C and S respectively\n", "- ${}^S\\omega^C \\cdot \\hat{n} = 0$ ensures that the angular velocity of the cone C in the sphere S is parallel to the cone surface if $\\hat{\\mathbf{n}}$ is normal to the tangent line at the contact between cone and sphere. **Note that this is C and S!**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These are constant with respect to time:" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "theta, b, r = sm.symbols('theta, b, r')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These three reference frames are needed." ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "R, S, C = sm.symbols('R, S, C', cls=me.ReferenceFrame)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create some measure numbers for the angular velocities that we will eventually solve for." ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "wc, ws1, ws2, ws3 = me.dynamicsymbols('omega_c, omega_{s1}, omega_{s2}, omega_{s3}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The cone spins about the vertical axis. **Note that all velocities will be define using the C unit vectors.**" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "C.set_ang_vel(R, wc*C.y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The angular velocity of the sphere can be anything if the sphere slips and rolls on the surfaces (the general case)." ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "S.set_ang_vel(R, ws1*C.x + ws2*C.y + ws3*C.z)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create some points that are needed and defined above." ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "Pc, Ps, Ss, A, B, O = sm.symbols('P_c, P_s, S^*, A, B, O', cls=me.Point)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, the positions of A and B can be set relative to $S^*$, the sphere's center. This will allow us to use the two point theorem to calculate velocities since $S^*,A,B$ all all fixed in S." ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "A.set_pos(Ss, r*C.x)\n", "B.set_pos(Ss, -r*C.y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We know that:\n", "\n", "$$\n", "{}^R\\mathbf{v}^A = 0 = {}^R\\mathbf{v}^{S^*} + {}^R\\omega^S \\times \\mathbf{r}^{A/S^*} \\\\\n", "{}^R\\mathbf{v}^B = 0 = {}^R\\mathbf{v}^{S^*} + {}^R\\omega^S \\times \\mathbf{r}^{B/S^*}\n", "$$\n", "\n", "thus also:\n", "\n", "$$\n", " {}^R\\mathbf{v}^{S^*} = {}^R\\mathbf{v}^A - {}^R\\omega^S \\times \\mathbf{r}^{A/S^*} \\\\\n", " {}^R\\mathbf{v}^{S^*} = {}^R\\mathbf{v}^B - {}^R\\omega^S \\times \\mathbf{r}^{B/S^*}\n", "$$\n" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKEAAAAXCAYAAABjwi/eAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFTElEQVRoBe2ai1EbMRCGccYFMKQD0wG0AB3ApIKQDmCogCEdkBZIByQVJNABpAIeHZD/U7Qanaw7n5GPu9inmR29V7v/rlY62ZPX19etTUmTyWRb+r5sir7vredb8f3w3oL2tZ4AmmntW+XQdl9yrOu6JfhuhBMKoAMcUEQUxAH/eNBUHFMpAqX4rr0TCiCc7kZ0oaN4X7Sr8jcRTjmmQgRWge9kE+6EAJXeBXNthfaona61jtQ5kwxfawf9xx05LHNtdSqufSRE8dQB69rqQBrbmxEoxXfazH59erUzT6TNsWgn0uq3ymc5EKMxY3EBAqXYFkdCCXAgOhVdi7ajOm2nsfyMietpWf0z0b2ID4mVJfHj/nclupHDcS/cV5m7Io4JDTKBg2jtsS12QlnvUEblroNRf5L7+qHK5yKXBCbGxhGa0pM6Z6K9pkHL9GndS8/vzstl0198wXJrH1K+EdgWHccyMM7yy1sN58HQ330d4+NUlohAfJXWJvW/iCcO/VA7KOnwTvaoZr56OWo/wycaZtH4R9TGPXEf+ZXfxe1DKQ8IW4ILtsUm6dVlJdhOpSyLEMGWSRga4z2Qex4I+sWYqD0YXf0cr3NHsdpvNY6jMU73qrRyDM0nssLDObevsw5ReEt1ZLKEo1YSslcaCitaj42Xu0qA8Y76P2WWAEPuqmnqG1t0uZJsLiBIdnDFT5y9VontVIsQNVJHUNPi5Ocy0AGvenC8ZDYRp/I8ISWIonwYpGlXYxsjZjKBCGiJu19vdzzJfWaCxLl0XfqJRrywC6kvbJE5vj5dqM6vTTw1tT6pUGBRmi4a0LKfyNMUVWJHMZaAyyNySMnuCu11BYERIq8fw2YKGwGwxNOm52SwviHnvWDrAbFjmKptCte2UmzFjPtREUnAZ9FlHR/14WxEQ7cOZRH/nCDch7VVJ5Kx00IbZSWOBu4f0FHa78dw5CFHWMe3s5thcp/OY6yI41yZi6DMp0LOB5ayICttBymPNnXNI6qcthmbjtE81u0VW2RSQgcKDhff1gpbP5a5EDbGH6x+VDF2CkCbupixM2BYMX48V304kQNTOYJTNqWoW/9JPI+y73PGVxmn4ZmlIrfacE6Uyxra98Hs2uaqjNzMCY7l2xjnHDMai7wBfGtvm2vum5wwkqc3bE1HycJdfQ5ftYFhI7bqJ0AwxgUY5diburNlxZi24DK5GHGszkWZmIf6EcK8H6FNGJwHA0NzCsJDiXkQhoRPrTOoD4eec1LPxxyVtQAUnnPGVRsXcBY2x3dPS7E+y5bF661OOAhsJT9OUzm1YgzU14it+rGbm6/cgg82+HfaxMyGWJagRCxzjLCbcrL6sYzJHtm5OWlbxMOOacCauyKk85rqyCPKbrKmeV33eV0bsdWY4k1oevj1sI+zo3IXVD6oMNjkvyqJ1scivjB4g8SgPL/w68yziCM6TTtpQ9u61uHLj4+bPfHGQLx9ln4Nwm+ZL34N7zZJN4djDltbWWOIxLxWuA9A6qIc3jalNtc8Ow0Zgz3B9Fx0Unwci1lnPCQgUSgcmSpz3Mb1SpRSH7u26P6GPqwhCju2Sx374i39FmELBlydcFYjrjC116EmXTSPuWDqPrLgI0KGo0H/lUu7B+UtqiE0USk8wfhdyQPwo+ijiKObV/3SyEWkBTQ2mHv4prxOqQW2bjOnOguP8OaV9tXVtVb8HGdPeRZRDwfthHVKddEuoHBg7pLuUV11ooD9MtTFkiNPj8B0RCIgwL2Hf6wQadm57mez0DsWOkNgjIQeWh8J+RB5EnHsZ3+C68wSG8z4L0WH0ufsPddpAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle - r \\omega_{{s3}}\\mathbf{\\hat{c}_y} + r \\omega_{{s2}}\\mathbf{\\hat{c}_z}$" ], "text/plain": [ "-r⋅ω_{s3} c_y + r⋅ω_{s2} c_z" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R_v_Ss__A = -S.ang_vel_in(R).cross(A.pos_from(Ss))\n", "R_v_Ss__A" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKEAAAAVCAYAAAAuCo7VAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAE+ElEQVRoBe2ajVEbMRCFMeMCPKQD00FoATqASQWBDmCoIAMdkBICHUAqINABTgWAOyDv02gvOll3PlsHd9jemUX/q9Xb1UonM3h7e9taFxoMBiOtd7ou6/3IdeZgu/2RinY5l0Aaa/4HpfCoS11Wbe5cbNfCCQXSPg4oJgrigH89cMpuKAeBNrBdeScUSDjdrfiHjuI98a7yP8U45YYyEGgL28E63AkBK74Lpuoy7FE5VPMcqnGs+S8rO33ihhSOqbq6Ja58JGTxsQNW1dUBtWlLI9AGtsO06NWr1e481qqOxDvB6v4of5YCMuizyc5BIBfb7EgoBfbFp+Jr8SgoU3ca6k+fsBzn1T4WP4n5kGiNJI/735X4Vg7HvXBPee6KOCbcSwIH8cpjm+2Est6BjMp9B6P+JvXlA+XPxY4EJsbGEeroRY1j8de6Tou0ad4LL+/R62XDpz5jqdX3KV0LbLOOYxkYZ7n3VsN5MPSNL2N8nMqICMRXaSWpfSqZOPSkslPU4J3sWdV89XLUfkdO0M2i8V1Qxz1xD/2VPob1fcn3AVuw8HpcCCeCSkytYDvUJBbB4gnqyhga401IvQyc8MQGqb4wuto5XmeOYtU/qB9HY0hPKjRyDI0nsiLDObcvM48DTGV0MsJRS4TupYqMguZi06WuEeC7o/ZvCfHgxz01RV1jS4Axe4Y4Ol3bxHYoEIgasSOkQJmp82Opd+CrXDhe1JmIU3qi0CJYJB8GMe2qb23EjAYQAY24+3Vyx5POZ6ZEmGqdSz3RSJ5F806w1fxs0BPpz/ypzRUuMys/zBr9fzCRpy6qhI5io1gYj8gFRburqK/KCCjbqdaFzVRsBLVPJNPaUjpYW5/TTrCdB0ir2EoY96MslsKvYu4NSTlqw9mIhq6dvJj/nLiyOlIRkYyH3ZIc1XHUcf+AD+N2P5ZjDz2KeXw9RzbCn+Jx9BVznCvZImJxFaAA84GlxMkkQ5uri+XUlTUGuad1feraNLZTbDU/wWIGO3QWNcLW92UAjI3xBysfloxdB0ZVm4RxX0Bgyfhhf7XhRA5MpShOHuMwjrK1H4fjyPu2fZ/HaXhmKemtOpyTxSWN7dsQdm1jlUdvxjjZQb0BBPj0mXFs69sk1filndDP3zW2lU7I+kVgWIut2gkQ9HEBRin2puxsWTJmE1DjPhJUq6RXFCXMuChtyuA8GBmuciDGwRgTOZXRSG049IyTeh3MUZmLqIbM5Mbx7YBEv2TkjXGoKjNenFxb1Rir17jOsW2oQy22koHd3Kmn1IJPcbJkO6EB9l6plCYa8cWLUxS7KTWf70ufXMex6I7DVjp9Soe4Dl3ESzlhLKvtsvSai636zN0ITfXy8xV2VNkFlW1lekv+y5KNciTmC4M3SIzK+xW/zryKOaJj2okrFiwTUZkLkIjcOcSH0iJf+zlzNR5bh21jIQt0xF7qzukDYU/egs/Fx712QinI3QHljV6UcV+/WsRUecqkRuxayr+sYtFUYBF1pzi+Ur5M+SnRwFtUHBsIWaGOC8t4pwGV2EbzjaLyskVwJfJeCo8b75QElEmv/5VLiqKkRTXA4BeZ4glG7URBHoGfxV/ELJJ/SGj8i4v6O5Is3hfNMMhw75qq5/iAkEm9/SLkKj/rnwbYOiy1PjY2edZ9b7go35g0FzJsI9tTnp1gB712wsar3HT81Aj8A4rNOqxf7tqxAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle - r \\omega_{{s3}}\\mathbf{\\hat{c}_x} + r \\omega_{{s1}}\\mathbf{\\hat{c}_z}$" ], "text/plain": [ "-r⋅ω_{s3} c_x + r⋅ω_{s1} c_z" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R_v_Ss__B = -S.ang_vel_in(R).cross(B.pos_from(Ss))\n", "R_v_Ss__B" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These are two expressions for the velocity of $S^*$ in R and thus they should equate. We can use that fact to solve for the measure numbers." ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}- r \\omega_{{s3}}\\\\r \\omega_{{s3}}\\\\r \\omega_{{s1}} - r \\omega_{{s2}}\\end{matrix}\\right]$" ], "text/plain": [ "⎡ -r⋅ω_{s3} ⎤\n", "⎢ ⎥\n", "⎢ r⋅ω_{s3} ⎥\n", "⎢ ⎥\n", "⎣r⋅ω_{s1} - r⋅ω_{s2}⎦" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(R_v_Ss__B - R_v_Ss__A).to_matrix(C)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKkAAAAVCAYAAAA93c4hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFXklEQVRoBe2b/VUUMRTFXQ4FoHYAHQBWAHQAdiB0sJbAgQ6gA8UOgAoQOoAOFDrA+xvzQpLJzM7Mzqz+kZwTk7y8vNy83HxMFmevr6/v0jCbzY4l21G8V/1lWl/KxQNjekB825a9E8VHxUtx7iW0PwtJKuUNVd4q3kj+NVQs+eKBqT0g/u2rjyvFPfHvwfpLScoOeiGFmSmUtHhgWQ+IfGey8UuRHXJL8VtIQpV9kO6FCruq5ySvwrplXIqBp0RWisUDgz0g0t2r8alI9wMjKnNa3ys9kCzHNYiMjg9rPlcyxQMje0BE5GTeNIJiXnlICGE51juFQtJObipKAz1wpHY3mbZ3km27XTVTHYsKSWN/lNK4HuBDKBfYTQlN9X9r3b+9SCrmt27Rqt9UfFTs1HmEZEDB9dWKKTQr/VZd1a8Uf4itLf+/4e7id+nYvfJ3y9g2G+o+hPKUpDQylod6XHirL/9IWC8ACBu8e3UKsnumeKF47VIbXGt76aLHYJoGGrWX/iT46US2Obquow5HKkyFW3bx+1wR318pju13I1qOT23E5a00wuJJKpCHqmQH/NLg3x1denP3C6/uLsXnEuS+2ryeZdQnTxM8eZ0oHijPwHinXRjoS/G9on+qWNBoCvyQkycTHqI7LZYFGHPVU+AG86N8d64IdkjTesoYMOn39XtEOLPj0o9JmQ8rfjx6cH6tqtdUsF0AwuCQh7ShdCBvbRCS87yQBlZCzUaq5MosjDCcqgCeUSd8Kvz4SpFJrvkmHNTQ/FS4HR6eGy0wj2Nf0dp2S9tleTutBfmUjeeDxs/Vcb7mHM0uhrN5v9qutRJxpBftok7vZ0Z3S7qddlLXNiSkHQ2hLNNFb9GU+HuD6dFgEtyaH06u8BdFSBHNbw+MWVXZt7k0QoZ6trtmeSJuVZufbMCl83VrqcKNKgHKjgppwxCuOpOz8qJ7mNpnySW5/eJA2yf1VT3sAsKMudQWSI78iWqvYtoPjZfG3wvBMOXJcWtuIMxnxb1hEFtbwScjZKhoxK0tDOHh24HF+XaNU4F7QBVVCZm4q3gZeQXISEPTg0xUcJ/0uiqzAni8DWXY3Hd2aHcd1od51XFVmIeyMfL0qTgZftmG8DW/LYt9Bbjn6oM5G93njF0Bwj2nfpAMTvDHS54nlnd1UZtIySnUnG0NXcql+1mR+2RFVCdHdmydWSoZBCGiz6rasLowlRzgEenD+jTvbNFndrChvrONbtWH0lHxy14jSVXHmPHTQpwhZvIK4J0Mt/WnPpjTxs3D9BwmxtPJ706fjefQbChv7f2mYXVOnzFHHOxKUgxDtMrZSqvdUikrEcDE7GqUnCsAHxa0JUY7rQNWPQ+FYLvkZQsHXC3Slc7U+BtJ6sYHTmJ2gTbhnxq39at+mCPmxpPJ6nKp9Dr5nbYK+B7iwRUiXMgS1OkPI2kOaBeZwLB7elI6gBGZJWOCz8yeKzcOwvRWkQrLQvzgcJij1Z/ic7Z6kTS10bXchlt1tZ1MMiNp7STs2udYesJSI+mahGmwS20qH1KmQ5xigWcJf1nWJZk7Kjp3yh8SleerM/vVJ/mqQyv+AEw4xkAcZT9pIl8iyXSFRtwOA/MQYmGjoPx9OkjDLa8nTasjKZEtU4RwuyLfrlImkqM5fEO9NblSH1Y4mb7Phkwrfo2LHQgdJpmfVDnK7oSfHzR8kJyxZ98EvdK4mVbc6oo//DgRLjDxoM44eCMPiSvRPwn4KsIR/dEzkAScr73yl/k4Y6Qgn3KMlv+Gs8Cf8hOLnYV+JH+9nbgq1JpKmWOXt9Lyf5xq3imCsT0gvnHt48ckTvLa/3H6A0cAWsjiGDOyAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left\\{ \\omega_{{s2}} : \\omega_{{s1}}, \\ \\omega_{{s3}} : 0\\right\\}$" ], "text/plain": [ "{ω_{s2}: ω_{s1}, ω_{s3}: 0}" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sol = sm.solve((R_v_Ss__A - R_v_Ss__B).to_matrix(C), ws2, ws3)\n", "sol" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now substitute these measure numbers into the velocities we need." ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAXCAYAAADDXUcwAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEDElEQVRoBe2ZgXXbIBCGozwPkOcRnA3cFdINnNcJ6mzgzJBu0K6QbpBu0CYbOJ2gtTdw/4+CHshYlYgkY9W8d09wwN3x33FgXOx2u4scSlEUV7Jlm4Mtp2JDF5hd5rBYLWQmO571ha5ysCl3G7rC7OgBoIXc4HwRux/n/7SLU/VcYgh0ihlHwLFIi8PhnEErZ4PqD6KNa5+/oX+ETaeYFQB8zKJo3jv7Y7w+bJSeheTOhMGnPuT3JTOGT4zXRP/RjwCBT+oPSowXDPjPGzF8YrwmME2aDOp7jKJ3KR23oqmn64fq96kL8+SMstoVZmUGkMDHOqTUPxOtRVzaOiuSxwXws+hJzn4Hqc45R1BA2RbZfvKYmQDQQgAaJ9SV3+qcieZ1g9r0SS8XPuS9yPH+OeyOBfdtI3aQsWPBzGUAdt63OuTUjzNw0mvduGqfgJqLnqp8217Zb6DbZgFs+nJgXg7sUWA2kXNI6XupTPxn6wgf7LUaLz7jUB3Hq+/O9pM5gqJ+n/cr6FRDuhvpqc6LtaWLTBM7ujhqpur/EJn3Khu4l+wVjR8NZhOtbq6F+un3QgvEeVzCquVaYxvtSuvAOwtWDPyq7N7asuU+Jly2pf4MHA1mHAHXEXBwWJC2BZa/YyNT2rHkFP8oidnQTuCwo2P2niRmBAC3+/JiZ+ukzPcVTDkm9i6KGv8gWlliR7UpLpvsZQjsEPELgYy0EPELZGeJ1A1/Y9v0GR78AcopYLb08AEnhxm4giM8g7t5ehVofHHwRoQjeSKk7fqX2rXBs7Htu4GvQhDxU646BiXrKt+11YeTEfDo8cg28I1sj09WYiwyGYOtpONAZ9O25rLO8hm6xTyHSdaYaW1gBF7c50qM1AY3XmD1+fub2wEL6DyNwueGzkAoCpL4zIMAkggzQivKagPA04VudHHRRGbUsbYfAxm38HW1rTNfFF1bnSzNYa0ngZnsJHODl9uo5ie/W18ZFY7R5iuhRJhTgBITPL4MFIsOZgB/bJM6OkToKqO4ybzYGMlICoCYrKY8a/9gmFl94GWygL5snNJPl2okFZ0fgEcA3YoKVb+KDA9+j4VjCV3sQrLGWwrvD+4e8hY5jeYeAzP5hss26+TsJ/B4dCsv4MkBIEGcf+ZioS+Fl8LgQcdwwzGWlfaxC9gSdJLAJZXLGKk4qUgOsrZJk9MmDY6ZNdP9DGaDurrpSv472Ebz1CogEIisMgDUT6pGmbuwsWu/a0zw5iDeP4tkcW458PiDyMgQn9RGIaLhoyPbMiRmVRCk22wUYRT8uksOgKqCczsvBORwNiCXZLdZOC4/qh28sE7yMvtsTYcI8AzP+wxZmSzM03bgfHSdMwAojLDYDMClj7sZx3Nw9rsl/wGzQwBWVJPowgAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\omega_{{s1}}\\mathbf{\\hat{c}_x} + \\omega_{{s1}}\\mathbf{\\hat{c}_y}$" ], "text/plain": [ "ω_{s1} c_x + ω_{s1} c_y" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S.ang_vel_in(R).subs(sol)" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAXCAYAAADDXUcwAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEDElEQVRoBe2ZgXXbIBCGozwPkOcRnA3cFdINnNcJ6mzgzJBu0K6QbpBu0CYbOJ2gtTdw/4+CHshYlYgkY9W8d09wwN3x33FgXOx2u4scSlEUV7Jlm4Mtp2JDF5hd5rBYLWQmO571ha5ysCl3G7rC7OgBoIXc4HwRux/n/7SLU/VcYgh0ihlHwLFIi8PhnEErZ4PqD6KNa5+/oX+ETaeYFQB8zKJo3jv7Y7w+bJSeheTOhMGnPuT3JTOGT4zXRP/RjwCBT+oPSowXDPjPGzF8YrwmME2aDOp7jKJ3KR23oqmn64fq96kL8+SMstoVZmUGkMDHOqTUPxOtRVzaOiuSxwXws+hJzn4Hqc45R1BA2RbZfvKYmQDQQgAaJ9SV3+qcieZ1g9r0SS8XPuS9yPH+OeyOBfdtI3aQsWPBzGUAdt63OuTUjzNw0mvduGqfgJqLnqp8217Zb6DbZgFs+nJgXg7sUWA2kXNI6XupTPxn6wgf7LUaLz7jUB3Hq+/O9pM5gqJ+n/cr6FRDuhvpqc6LtaWLTBM7ujhqpur/EJn3Khu4l+wVjR8NZhOtbq6F+un3QgvEeVzCquVaYxvtSuvAOwtWDPyq7N7asuU+Jly2pf4MHA1mHAHXEXBwWJC2BZa/YyNT2rHkFP8oidnQTuCwo2P2niRmBAC3+/JiZ+ukzPcVTDkm9i6KGv8gWlliR7UpLpvsZQjsEPELgYy0EPELZGeJ1A1/Y9v0GR78AcopYLb08AEnhxm4giM8g7t5ehVofHHwRoQjeSKk7fqX2rXBs7Htu4GvQhDxU646BiXrKt+11YeTEfDo8cg28I1sj09WYiwyGYOtpONAZ9O25rLO8hm6xTyHSdaYaW1gBF7c50qM1AY3XmD1+fub2wEL6DyNwueGzkAoCpL4zIMAkggzQivKagPA04VudHHRRGbUsbYfAxm38HW1rTNfFF1bnSzNYa0ngZnsJHODl9uo5ie/W18ZFY7R5iuhRJhTgBITPL4MFIsOZgB/bJM6OkToKqO4ybzYGMlICoCYrKY8a/9gmFl94GWygL5snNJPl2okFZ0fgEcA3YoKVb+KDA9+j4VjCV3sQrLGWwrvD+4e8hY5jeYeAzP5hss26+TsJ/B4dCsv4MkBIEGcf+ZioS+Fl8LgQcdwwzGWlfaxC9gSdJLAJZXLGKk4qUgOsrZJk9MmDY6ZNdP9DGaDurrpSv472Ebz1CogEIisMgDUT6pGmbuwsWu/a0zw5iDeP4tkcW458PiDyMgQn9RGIaLhoyPbMiRmVRCk22wUYRT8uksOgKqCczsvBORwNiCXZLdZOC4/qh28sE7yMvtsTYcI8AzP+wxZmSzM03bgfHSdMwAojLDYDMClj7sZx3Nw9rsl/wGzQwBWVJPowgAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\omega_{{s1}}\\mathbf{\\hat{c}_x} + \\omega_{{s1}}\\mathbf{\\hat{c}_y}$" ], "text/plain": [ "ω_{s1} c_x + ω_{s1} c_y" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S.set_ang_vel(R, S.ang_vel_in(R).subs(sol))\n", "S.ang_vel_in(R)" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADsAAAAUCAYAAAAz30VQAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC3UlEQVRYCdWXi1EbMRCGOU8KYCgBOiAthA5MC04HMCkBOqAG6IB0kOAOcCpISAfO9ylaRffw5ezgId6ZHa1+rfYlac9u1uv10SFR0zTHxPxzl5hnu2x6qz0keorvJ0b5eNs4DiZZkvtgorCnaqLfcvKIE8lr/L8zqZic7+0qYkW+gV9iPmVsVDoE8toSq6daaAgriwPCwSQ7EPvW0Lutd7zhBk5ygftL+KQK4yvydffUq/U/Yr7GPv4r+B72fcRcrLyTrHvvuInRt2M+a2OTzi449mxO3XernxY2ZjsFzYYblaBHWKPzal6aALiVHU2C9V4zGQtgyho2bUYG+FTrO8/4osY3yegencORnJUqJ4fsCZ/HZuS7kMdG9Awu2RzTq9f0Az/WWMjgJiqnQwncESrx1fiQ7JtdsbC0syF7BT/CicA/h8y6iXvNWwRutd+3wN/XeNnBBqfsN8nwqf8WsV5j31uLTIy9i22az1COdm4ybi4JdjZZwdZaDtQG0aUzdFddcGiO3hI22V4hh/T/BZtVmy+Qx6p0VumGaIF854U6J1HwXYVO0YZimG4aY9GkXtjVexPVukmV96EM+2ha75i5TeM09sUI5jtO3Z2x957BLNxz6Ncj+B2sr946mHGUxpX11DUOY1aW55Go70KgJFM7U4bSz7M86tzizGEXncd6rzPmtdTFkQcbEfjGZLP/6Lx1AzVu8bAdX4JUbHBjMr7U+CLZUUfZmYaiUuX0wDwtE5db3+QoGLj7ZIujHX/6Jd8xgk2JQV/61pdfDm2WA0LWdrppjHEQ6iV/LYfh+LVHnHkCNiCrLA9d878mOzUu7de+kFOBZwh7JRqWFbaol3CD+AAnTPy1CX9xAzWtT78Kn+DF3pPFie/GAIJ+ILQ+YXmh1gndXUZvkCd7S6IPOXmLu9r7v558sic5ahPyu1qSZd3ArmGvsbIn/wWdW8atCFva8B1L8Rm1IUoXvwD0ioIaCsC4jgAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle r \\omega_{{s1}}\\mathbf{\\hat{c}_z}$" ], "text/plain": [ "r⋅ω_{s1} c_z" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R_v_Ss__A.subs(sol)" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADsAAAAUCAYAAAAz30VQAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC3UlEQVRYCdWXi1EbMRCGOU8KYCgBOiAthA5MC04HMCkBOqAG6IB0kOAOcCpISAfO9ylaRffw5ezgId6ZHa1+rfYlac9u1uv10SFR0zTHxPxzl5hnu2x6qz0keorvJ0b5eNs4DiZZkvtgorCnaqLfcvKIE8lr/L8zqZic7+0qYkW+gV9iPmVsVDoE8toSq6daaAgriwPCwSQ7EPvW0Lutd7zhBk5ygftL+KQK4yvydffUq/U/Yr7GPv4r+B72fcRcrLyTrHvvuInRt2M+a2OTzi449mxO3XernxY2ZjsFzYYblaBHWKPzal6aALiVHU2C9V4zGQtgyho2bUYG+FTrO8/4osY3yegencORnJUqJ4fsCZ/HZuS7kMdG9Awu2RzTq9f0Az/WWMjgJiqnQwncESrx1fiQ7JtdsbC0syF7BT/CicA/h8y6iXvNWwRutd+3wN/XeNnBBqfsN8nwqf8WsV5j31uLTIy9i22az1COdm4ybi4JdjZZwdZaDtQG0aUzdFddcGiO3hI22V4hh/T/BZtVmy+Qx6p0VumGaIF854U6J1HwXYVO0YZimG4aY9GkXtjVexPVukmV96EM+2ha75i5TeM09sUI5jtO3Z2x957BLNxz6Ncj+B2sr946mHGUxpX11DUOY1aW55Go70KgJFM7U4bSz7M86tzizGEXncd6rzPmtdTFkQcbEfjGZLP/6Lx1AzVu8bAdX4JUbHBjMr7U+CLZUUfZmYaiUuX0wDwtE5db3+QoGLj7ZIujHX/6Jd8xgk2JQV/61pdfDm2WA0LWdrppjHEQ6iV/LYfh+LVHnHkCNiCrLA9d878mOzUu7de+kFOBZwh7JRqWFbaol3CD+AAnTPy1CX9xAzWtT78Kn+DF3pPFie/GAIJ+ILQ+YXmh1gndXUZvkCd7S6IPOXmLu9r7v558sic5ahPyu1qSZd3ArmGvsbIn/wWdW8atCFva8B1L8Rm1IUoXvwD0ioIaCsC4jgAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle r \\omega_{{s1}}\\mathbf{\\hat{c}_z}$" ], "text/plain": [ "r⋅ω_{s1} c_z" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ss.set_vel(R, R_v_Ss__A.subs(sol))\n", "Ss.vel(R)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\hat{\\mathbf{n}}$ is the vector normal to the cone's surface pointing from $S^*$ towards the cone's spin axis." ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [], "source": [ "n = -sm.cos(theta)*C.x + sm.sin(theta)*C.y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now the velocity of the point P on S can be found." ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [], "source": [ "Ps.set_pos(Ss, r*n)" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUQAAAAVCAYAAAA+T5cgAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAJO0lEQVR4Ae2cj3EVNxDGYw8FOE4FgQ6AVBDoAJIKAh3AUEEGOjBUEHAHmAoMdICpAHAH5PuJXUW6k+7uvTv/0ctpRtZptZJW+2n3VroHe9+/f/9pTasGVg2sGtgVDezt7R3Ir51vs579tJMGuqn8KKWtz9M1MEV/gIWOlR+kI1NXvpnS1ud2NAB2ylXbUduK+ww4pb9J9gEOmuaDSvLBplNGh2idj+RZX246SCv8KEv5m3J14267lin6E889jf9G+TXzqH5ESZLej1U8F211ikEj7fwZw37FfT6WU+zD9PxBsxEd4gw/b2xPmghjRGIGuun1XSy1vtvKLPb50uvTmIP6s7m/qSScd50jS1oHxA/evpY/9HTd9QBmykXbEZ09t+Jue34OltJj1T6sDXt64nPo+bnyN69PKUOEKC9KxPReHc5U7mzS+j4q7yk/XXKRE/VHZPhUc/P2ShNRY0jWdqLxnjhtm1L9OV7MGmObef+PfSZgv+K+0MYYsg9r+1nlC59Oz9j5r16fUt4wJjren9Jh5SlqYFB/ZjSHAqh0HXHYGfFv1T8rR2A77Wv1emmgiv2K+4UAVbUPc4rZpCVaxtCp7Au0cGeljjsdHbJu1qp8m9zRw9bVifrDaMK9oU+UyPDVaZQG4JnaY+SYtq/P10cDE7BfcV8YrjH7ECZ8sHyr7B9WKI+UOW6PJiJEvnaelDg1CEaJ8/hN+S/lu1ZXEYw3RjHifSNhH4aGwh+143jfKj8WX3G+QreNSJoDWZEZ507khRL+1Hx3bH4+YtDOB4wgq/V5pTry4bScR49h3afqH9cJsZOq+oNP4zMfY3N0ShN0UvcIDQ39IN+F6IkJSslkbQZv1iCZwZi7Itcj9bfCDIxDMp5nqnwx0i8q4Yn6FU9171ifUlHF3nTZBO4szORtBfuifWgN3OWyBq6mgs2K9kl1rgQph+xYzT8STuqRBggX/Wkpevj4oBIeJntAu9XjZaXqTHgv7dt9VjsbNbv07PKU6urDAtm8PflSmo3f4xP9U4ePdeC8s/HgU2ad6aUsGxqZixfmjKFU1Z+14whhpEwzF+1iyeWwPuhz648r6ouhxnWU5ijR1KcZvE1P4IMew740GvsFWsBMJXWwzTBUPWKtZ3eivT1R0pPTbIya7TSDu+mtGeyl9559iMZLETvL7Ia60Ys4OZZe3hAzmyo7tqnOG4ONdMqzEjx8kPC3LpOnfe6orXQ/Rt+Q1H6uMfHQk47mNv9j6878Y4no9a76dX+UGX/aYgOkcqdjItddyRnvUvXM0RUeorna+or6o5Ml9IjusuhZ4wLeR2fqlMiIkV5aMn23hDe6wemcSbe+L6H5XnH9wXMMljQmieMsxymijUPlKXsn6R4eh7BvAndW0SD2Jfvwj4gx6mdtwp3T4W2VNVuDLUu8TXvRnWjh5yCUyhhvj0eTiBycRa9N9MxTGy+ePXtTQx/KNn4W5dX4xUskgFDh7a+yN5e1lSJE+pRkZrxqtKW2ov5cRrXTP/uZj+oYC/QY2Tg/pbentNKz+Hgx8QbsZvSAXF069d7abc6m8NY6fF/y29niHhLPmJ4jNuId3TvdedSnir3a4tjeb4I8QV7nr5UaZzHcmUOpNewzPUl+XkwshFy11Zo+UzoRYjGJ6dwawl2X6pnnTTrhfbOzub1x3ic8/nhLvLVIy3nmlHfUmbsiZGbT8EPnl5rTI02RBhNvnsWS5vYoxSMvHxt5ziVXGtl42+RS/YlyeknzcmTmZZDh0mNMCOJtDW+PBHFkteQ8vrYSH8ZFmrt3foyivy3hjtANYh91vfQDDrEUfqbzcIQcCjdvpcz2jEMi4opJm8Q3Z6TxIDqO64sRu8cfI48XNv7X1EmIRkTKFyaioppDHx98mGNMf/TuGiRyFZ2ZTXWosnvEs6YLL5rAO9FPaf+5klyH/mJyelpyLcLe3GbvjGHfEu7opBXsM/uQbfvVFmsY2g+043NCWKxH/BoYhqBP5cN9/WHTMEEt/aGGIWcSfsrinTUZb1ycXLyLszbucrL7PPHCx4cQIhnmmBrJibWX2NQ4mpg0LtEoUVjRGUfGeQ9V/Wl+DCIzCq2Zuw4c/1D0hrxZv3kibtS7CbxNt2xo7o57SXrmOoJ29Njdi35vRj/25bZ7p4h9o7ijiyawN7y69uEnT3durCckfJIy10Vp9M5plVMBe4R0ovoxESIEGnpJg7BRDpT/6TX+R6D/O/EiELwolQ8Ib0RTETZkiIg0ob+xoZNwnghLPxxi9uFB9U3TM+SwDel9fWyvU0JbKlX1ZxO8Vsk6+Rco6BOn3zNQ0dIEHkMvoZR3sWeTD920gjf7hQ8jfEF0g/BTh798fxcP+5O7Rt/86OyV8gvRwAUjmrp36OtpCPtmcGcxjWHfsw/h+Fhr4OWIP+FEGHyJrQus0xMZPoKokqulEKCojL6HzVD8aCF6tU0Dhots8WBAHI8JQ/HC4UOGSibi0plcvOgUHQfBG9ovREsfQUZlQBYl+Ig4cb7MTUk9fPBRiVNK5+IZ2Ut0aCjL18Uaah8jBuVTP+bAOJGJMlxgu/5KpXjQI3ezxY8FY3T1DUCP8XXb1W9wLfArXQu8XXaTByxdx2Ce7SPq1k4bGd74IZBnoxf3js/VLa1fzXaawd1wbQZ76b1qH2rDzmjHZrlfxoZ7tiQaeyL6HT2D14E7NTpmm6gL/tJ1zYfRxjn1zKbuOU7RRoFaWrZNx5OMi+lPYwFM0cimyqX+WznEqeNvw2cy7QTe6frBSjmuK23b5Flj7CTu6EBpMVtfSE9B1xoL4cIvPVTyonyyrz8kKmlIGYgX/Ic5EczTVz2Ujokpj/Net3JJ/T3T4ohg5iT0GI+QcwZasO8u4Z2qZSnsdxV3dLUk9kvoieCLCJErk2MdnfExOO0z/ucXleEOgdCSf1bXvecL7Uv/sfP7oY2LQPx4OTpEO/vjpIkQEZ6PI6fiGfoYIZarSZJ3tv4MmHdaY/FO92pWtsysu4Z3qpW52O8y7uhpKeyX0JPGwJ9gqyS/U+aKjHQ/dYg4Je7Jxi78Q8/1T64BA2uW/jTGbKeaS7XWLkMDc7FfcZ+G0mXoKTpERNKERGJcNl+349Y0jV0x1xz9qS8X+nz6v5QI/YpVtXPTb4v9ivu0rXBZevoXPUpIYKsu9gwAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle (r \\omega_{{s1}} \\operatorname{sin}\\left(\\theta\\right) + r \\omega_{{s1}} \\operatorname{cos}\\left(\\theta\\right) + r \\omega_{{s1}})\\mathbf{\\hat{c}_z}$" ], "text/plain": [ "(r⋅ω_{s1}⋅sin(θ) + r⋅ω_{s1}⋅cos(θ) + r⋅ω_{s1}) c_z" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ps.v2pt_theory(Ss, R, S)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The position to $P_c$ takes a bit of geometry to locate relative to O:" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "Pc.set_pos(O, (r+r*sm.sin(theta))*C.y + (b-r*sm.cos(theta))*C.x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, both O and $P_c$ are fixed in C, so the two point theorem can be used." ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "O.set_vel(R, 0)" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - \\left(b - r \\operatorname{cos}\\left(\\theta\\right)\\right) \\omega_{c}\\mathbf{\\hat{c}_z}$" ], "text/plain": [ "-(b - r⋅cos(θ))⋅ω_c c_z" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Pc.v2pt_theory(O, R, C)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Recall ${}^R\\mathbf{v}^{P_c} = {}^R\\mathbf{v}^{P_s}$. We can form the expression on the left side of: $\\left({}^R\\mathbf{v}^{P_c} - {}^R\\mathbf{v}^{P_s}\\right)\\cdot\\hat{\\mathbf{c}}_z = 0$ (there is only a $\\hat{\\mathbf{c}}_z$ component)." ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}0\\\\0\\\\r \\omega_{{s1}} \\operatorname{sin}\\left(\\theta\\right) + r \\omega_{{s1}} \\operatorname{cos}\\left(\\theta\\right) + r \\omega_{{s1}} + \\left(b - r \\operatorname{cos}\\left(\\theta\\right)\\right) \\omega_{c}\\end{matrix}\\right]$" ], "text/plain": [ "⎡ 0 ⎤\n", "⎢ ⎥\n", "⎢ 0 ⎥\n", "⎢ ⎥\n", "⎣r⋅ω_{s1}⋅sin(θ) + r⋅ω_{s1}⋅cos(θ) + r⋅ω_{s1} + (b - r⋅cos(θ))⋅ω_c⎦" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(Ps.vel(R) - Pc.vel(R)).to_matrix(C)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use this one equation to solve for the last measure number." ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left\\{ \\omega_{{s1}} : \\frac{\\left(- b + r \\operatorname{cos}\\left(\\theta\\right)\\right) \\omega_{c}}{r \\left(\\sqrt{2} \\operatorname{sin}\\left(\\theta + \\frac{\\pi}{4}\\right) + 1\\right)}\\right\\}$" ], "text/plain": [ "⎧ (-b + r⋅cos(θ))⋅ω_c ⎫\n", "⎪ω_{s1}: ─────────────────────⎪\n", "⎨ ⎛ ⎛ π⎞ ⎞⎬\n", "⎪ r⋅⎜√2⋅sin⎜θ + ─⎟ + 1⎟⎪\n", "⎩ ⎝ ⎝ 4⎠ ⎠⎭" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sol = sm.solve((Ps.vel(R) - Pc.vel(R)).to_matrix(C), ws1)\n", "sol" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Also recall that ${}^S\\omega^C \\cdot \\hat{n} = 0$ and we can form the necessary angular velocity using the addition theorem:" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - \\omega_{{s1}}\\mathbf{\\hat{c}_x} + (\\omega_{c} - \\omega_{{s1}})\\mathbf{\\hat{c}_y}$" ], "text/plain": [ "-ω_{s1} c_x + (ω_c - ω_{s1}) c_y" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S_w_C = C.ang_vel_in(R) - S.ang_vel_in(R)\n", "S_w_C" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, solve this expression for $b$:" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAA/CAYAAAD9j/y7AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAd2UlEQVR4Ae2dj7XctBLGyT0pIMmrgEcHcKkA0kFIKgh0QE4quAc6yEsFBDqAW0EgHYRXwUtuB7zvp5UcWyvJ8r+1vTs6x7u2NBqNPkmj8Ui27/3zzz+f1YR79+59L7oHov+5ht5oDAFDYL8IaLx/K+m/03j/Yb+1MMkNAUPAEJgXgXs1RpMU6BMV+5Nov5i3eONmCBgCW0VA4/53yfa73ShttYVMLkPAEDg1Ar1GkxTnvyXUXzq+kfJ8d2oBrTxDwBBYBwGN/Qcq+b868Dj9sY4UVqohYAgYAttB4KpCFO42b8xgqkDKSAyBM0JAY/5O1flOx6/+5umMamdVMQQMAUNgOAJFT5MU5U9i+a2U51fDWVsOQ8AQOAcEpAdeqR7XpgfOoTWtDoaAITAFgazR5O8s34v5YylLc81PQdnyGgI7RkC6gGW6jzpYpvttx1Ux0Q0BQ8AQmIRAyWhiWe4zKcnHk0qwzIaAIbB7BLzX+Xvpg4e7r4xVwBAwBAyBkQgk9zRJQfK0HI8c2+PGA4HFQ6eD1zNY2CACfe2j9Ae0nw7GQBO41sFDEcnQl57MtK/IG4kLNj/uS+zLkJa+qcP0zkabu699lG56Z4G2WwR33TniTeockp2n5XjUuBNv12U8hBnLGLPjFvjqnyWS99YO5XbI4RNwLKRzo4CHlXbEaHrVptX1rzr+3Y5rn/elt2n3eK76sceRF7vxvjbTDRvBgPbQYXpnI+0Rj42+9lG66Z0F2m4p3I+W52SZfanCMJp+UOP/R/8WKhEQduDGvo+/K7MMIvP8/xR/8wAOQu5AXGof3+9vRfm58L0jh+IwEB62rpmcbnWdfDBC9MV0eO45qH542tjnaLphQw2pdjG9s6H2iEUptY/SmG9N78SgzXC9FO6p5bmXyKuJwQymAQ2nBsI1jkGziMHkRWGAub1mA0TrkEpOlpkubomlon3wIr0IBlILNO4CXfBpf+Tw60sPfPb67/s272ozo30jjVjRr+eQ1PTOSBQr2sf0zkhsS9kWxV2KsHGzSwjulLm7/rUdb+efMMphIcy4A88u3eTy1caLN5P35KUR8WDZ6cfacs+FTnXOto/SMHg/xnVVHHiz+TkeI0e0gUb0jKFseqDb67/qhsENLov19b1is4bcaodsv55DHvE3vdMa/0MxLbWP0kzvTMC21BZL4h57mp6qMALvZbFQiYCsWrdBWI24pJeJpxj/Vhl3lWIZmUegon1eiPRNGzDl4e6a8OHwd/j1+P+t9MYDNSS9TbvT8+CBNm/Tyg1Y0a/nkND0zkgUK9rH9M5IbEvZlsb9flQ4b//lrtreyxQB03OJ92ZpzJik36lDhKU1vgPI5s+TvTdHZSMDxsTXOp7ruPbX+nP9JvkxZ+XD+8Im4mDwcd2R3dOwNPw/HYR/6YCmwVU0lI0MGKePdMDnmWiSe4yUFkK2fXydMHpxk7cD5RCCzIerwy8yMVYa2dqJPr6U7shVNh5dN+ai/CEduViOZQ9RrqxU1sXiJMed5GaJjrtklL6F9RDI9usZRTK9Y3pnUHeSfkAvn6++lxJsLz3gdp/9KYx2Ged4DmY6Oss4c9ZTvOmEtA0bPt2TS624QcskyoeiHbU8p3x8tFl/rr7I8qR1nVySEg0TP0/9OVpPj/FDnJNd/1wfLTMoDlydrPoHg6O+qbjepwnJpyPZPorHWKJS/LcP5JO4n8ZHOFc8BsNf4Tr+70uH3tPwtv1m/MXnogntPqq9Yn5zXUuu8BTdl3PxND75fpDDRu2Q7de5PEPiW/3P9E40ToWN6Z0IE/qWwtnr+/vUkuDvuDm1j/KCwrBAR+ks4wzL3ksdvB58NPkOav7VZpxiBCU9PCTOFVQWhs1bz4/6vpMMwcvFJJqrP4YIy4qBFhbkJ2AUEKD5TTTx8iaejL9UNl4WPEvXOsdodBjomlCzlFxqH+pFXToeH5WDBsiNBeoaZNfpUehLJ8NXKjMsdR0xIIJ6Sg7aNsYlSX/CSGfMqjznhThhuVZUF4FSv+5SjrsyvWN6Z2jPOXt93xhNQia8+RuFaGEYAkzo7Ym8k5uJXhG3ncj+i+eaNMOkTdswsTdleJ5wYRnrKCgdQyYovXY6sjxS+rN2pD/HuOkYDy0a0lgeJD/KutnTovjk0pGnxSjpGAeix4ByRpRoSIdfMMh0egi+PC5YgnshWoyRj/qnPPophlaNwVhqH8ru8PAyKfqzG34SASOGfLlQTBd/2gXl0gmKx3sVLzXigQv9oEO/4sWfvmz6ZQe7FWW6xKJL/ZobYdM7rV6hsWV6Z0G94/vb2ev7ttEUJtigEFvdzU6nIKDBirETT4ZDWF6LOG4X4ghHxgaRKjO530QdG88Uy2KDJjtfB1i7fqLrpKEEQSsEw4KJPxcCDRjlAgORAIbse0IGjMKfVJ//SJbGgFNcdfCDHPoYQ/jdiS9KdonAslYHf8lCHeM2puwvRNsxOpcQaAhPyYMHDMMw9MEh2Y32RAjQTirK9E4ab9M7wmVmvRMwPWt93zaaUNr2dFZ6gPXF1izH9PEopdM28TJU8AjVGC8l3kPTnNerMlNYVmLTei4EGu6Kc4Gn1RiQHzQRNMag4thb9Er/bKgu4dDXPrHB1rfJ+ZHKDXKnZO5LT+GBIdjx8vo6H/FXPAZj2DCPgdwxwI4yLBOB98t9Wkbll7BYpnTjCgJ9/XoqSqZ3TO80fahC7wQ9kNJvgU+g2a2+v6ImLeUcKhQqaP91CIAbE+WSoWkbtRcdjtdD8FRVPOEvKQO8KbdkoDTle9mYXJMeCdWDzeGkU4ewPNzkVzpKm8BSFkYTxkwTlBcPDN6gcIfTpEUnyfbx8nXwU5k8ncjNQ8kQobxOvqi83vRW3cLdHoZQjAH17hjLysddHBvikY92wPO2RgjeOed5XEMAK7N5inRJKEzvmN5BR/XqHa9Pz17fX/nRFianZoAsOQrPkDcdZYobvA+S2DBgMn2jTnrSZRsNHIyBBzp+6RO4lY5H7OhjouKFkQBuhG90PFVc6IcuUj+vdfysegYj7aVoKL8duA7p7fj2eal93ojQlevrx9JcbLy0eXFOW5fK7EtHnlsw0IFRdKsDnPhQMJ4z4nl6j2/fNWPS02LQubL1Dx+wWyMEo7F0V7mGXJdUZqlfz4GD6Z0DiqZ3DjeSNXrn7PV9WJ5jMiSU1iIPFPabQoBllY5HIEU0Ie658jKR4gX5lw6Wo05qMHnZ6SduQ7i/7v1j0pfcn4vwtf4xJuhj1KExCJj8fRqbvcNkjDHEZ03axgl1xrgiDTombF6D0BgWuk6FUvuw3BewhR9PtQUZUryIw3NGm+RCXzobzDHUaE838VEH1QtZgufoRnFxG+Pl65QrGvKvEQLmQXesIcPgMoUx8vKqhxhbx8v3LXBmKRijoQlKe6ILHsgIdW/SVjop9es5RDK9c0DR9E6l3mFsaJyct75XJekWTPicNO/SId6OegyEHcbAoHcmrYEvbaxjU+/9OQUOc7WP+GCwZd/R0pc+pa7izRjdRB9DDi9P9n1VQ+vqeeJhS75Tayi/mF58abujd30FOqWFfWXQMU4w7Dt6UHFuqTiOX+ta8pjeidporbZIlTtX+4iP6Z0B7bwk7ldiTnh0+Cvu0/Ak9pdBgOWmZpNyhmYL0XhuknfZWxBuQRnmah88QSWvYl/6lCriVep4dnRXV5JlSlnFvJoggrelI08xU38iEwPHUkt+t+KdfNJSOOL5wyD6TnULT06yXIo87YD3BbqthLn69dL1Mb0zDeE+vdKXPqX0zeidAZWYa1wc4XoP61iKgTe+ojR4vDkowwHyGSkICEfc5WzONgw32CWmto+fQG/VviwzHoW+9KMMAyPEHwMFwxzvwp0OJnReucD5yYPkwSvEy0bdW1ZPLsCAAiUrDxGw9JozmsCUpd7mhkJ58OxhRMXLdCjk/ym+9LCASNJBfPFiDX7tR5qb6Z0cLluJV3tPmheUn3Fuemdggy6FezCanPKTTA+lCFZRwAPx2CS579zsN3q8SQEvXKip7dM3CPvSzw1+1Xc3ekOyYhQ91tg8uqFRGgYVBtPDdhspHqOJm6DGkCJd8Uxi/43pSasJyj+30YQ8pndqwF+BxveX0e2j/EWjqy99hSpvosilcA/Lcww61u7NYJrQ3B6/H9RYnUfjJ7C0rDMiMKV9fJtmvYh96TNWY0usPnhhwvL+JNmEIU9ZfskxiVGUGb5Eqf2PDCZPiveOpyib0JIh1LFJ8/2IDa+beN3ClH7dVMpOFkNgSvuojzGXmN4Z0TpL4R48TdxRoVSq3exqTCzn8ILFoyopHUUVLOT2E1BHtBZhCBgC+0NAYxzvDeO8allf9BhDGBoYLxha3KzxiZyvvL5gfxbpfB7H6Raf57XiKAfDJtDo9LOvdbwVbXGZTDx4ShEZj5bmlBY2f+OFavSUz8MyXCde1y4onTSWJo94epLsn/LO6mnKFmQJhoAhMDsC98dw1KDH+kV5lQJ3aCg6FGWjjEoZLM0QMAR2hUDwTDtPdUly6QxoWALrLF0r3hkdiseQeqxr9lc2QfFsQsWoCgYarwtwRpLi0C/v9Z/62HPDQyeUmdu8HYwePMThnLwYU9xI5nQX8rTpIbdgCBgCZ47AKKNJmOz5C+1n3qRWPUPgZAgcLV0VSr5W2rUME7wzwdiCPL75yvHEqLpW3sbo0jlLZPDAwOnsOyKyFTCucny5qePdSx2vufjifcdgywX49RqLucwWbwgYAvtE4D5KzIveVmTZ2ogeBXV016b42b/Q7mW7zQqTTnguBVhSdulcFmsIGAJjEWCprRg0Jv/QeMbQ+Kh/vDcs3eMhKi6tRUxze5KCDovIm0vky+k3DKqODJIPQ4pwc/hL/iILebNBfFjCcx6riAh5Hyn9WRTPJS+P7RhwCRqLMgQMgZUQGONpOtkX2qU8UHTJx7un4iWF5fZxTeVj+Q2Bc0NA4656b+PAujOWX+rAkMCg4E3svDKhdpkLo2u2oLKDsfU2Yoo84V1NUVL9peqVfG+byp20p8l0V30bGKUhMDcCbaMpKJC+MlIvnkMJcufYBA3s5F2Y4lGWa3+hfdCm96ZSdmIIGAKjEPD6gE+TNIaE4tzeSP3zUElu79Co8qJMfUtp3Jy1A3I1crYTWud4r3KerxbZ/KfCaimjdn5hjaMhcGYIXGkAxgqjr4ruseBAJIWHKxtDqNlr4NNYwuvsVxAtmye38IV2L6L9GQKGwAQEMBwINR4gbqIwRpog3cM+pPijsE36jCcYN0HWhq3XfR39Jx3Fk3YskXWW7JpMn06oTyfvpyQ7MwQMgXNFoO1pqq3jOxHyhXYU3gMdfNySNfhfFac/p0jcnZoUT3MnpjQMqM4X2hX3DRksGAKGwEUgwNfi4zeYo0NiLxNxcwZ0Vm6Z/43SuPFjzxWGEEtz8Q2goo4C/GK5j4gswhAwBM4LgasR1WFz5J86uCPjiRiepONuEXc2BhQG043i4qdZSOt4nkSDMjuLIIXLS/lYppwcUN46/qk9Jhe4IAPVYTZcFhRzMGvVi/6/q7CAzEONG3TCU+TQwXfd3L4mbq50Tj/BO80Y+pZzHQ8y8dA+0RG2BGCMHT2c0moc6HJjE731hfLTnpyjz5qbPV3nArrvl1ziJcQLs1nGtviYvttBh/FjZAeSfhJxCZnDyy0X/xyChGfjddVL8D5VeR9nqht3qi+lbGd56kX83NKm+O36TnZuXLbUG1Q3JmHe1DtLm5+ibnPLLH7h3UmbH9de1uRnVIZiL14YizwtnNrf2ctO+SdtBO8t4AQEqsNsOk+8TN+doM2mFqF2unidB4bB01SzJ2Eq5niVcH83QY3Q8Tw1Cfs7eS2Rn88htjABIz7muWuDyWMxGy5zYDsnD98+eEg6+3TmLGNuXgvI7PYJiW+NZ2bu6gzlh1erb3N3Lc+XIpyiuxjbsSe+tuyt0M0ytk3fbaU5++VYQH/0FzqRYgmZg6cpuK9xTS+yZOYHB0qLu9M7HdytxfsbFLWvoHqhPN8Lt76No1UV8/zYLN/5snpV5g0R1eAiGvoAy7Y8VbVafSUHhip3u9w9p0J2XCgv/Zl0+vQuwlwyi8/gzy+tCZDkRc9lv+NVI5t40GezX5yv4bF3GmEwm87zvC5C39Huvv+YzjvxIBDu8+lpKXvEZxBw8oRrO+owEF5MtuDGW44n4wYfHRhgDS8fR/twoPQ5eFdWQzP0XPmRmyXZ74fmraH3/Iu4iAZXL3WhzixXvKrhvQQNZevAYOJgbwsyEcd/sW2VDv1qso/BYw6ZwUUHbdzpr2PkOVUeLzMT9JSxQ5/FEzyax57zUncdxbFdWz/fHp3+4+POTt+BiYLpvJXGjbCfTU+7ge8Z0qqLTKK1g2hvdMILl/9sE6bn1xiuumZi4h02jYL2NLQV3+Bq4oecKy/GATz4FtgoHqV88NWRxUVplO/20QU+ukaeooESaOf8b5epcwaWmxD1n5W/XT70OhQ1P45jeEoWDNAOtjGfOWQWj9CHJhkhsWxLX/u6j9JzystS7MUaTLSNQnFsD2k/z+vs9Z3HzXTeQjpS/egkOi/0bTdh+kIXm0RDYef2L9yYnJpBP6V+4oOBFN91OW9HzNeX+zGO38q1ly+LC/XU0Zm4dE3/y+bJ1Y08On7MpQ+JFx9nAOgfQ6jKaIK/AvUZLHtbNvLrGFUP5XPGtf6Z0FhmRKiiAar0STIrP/JSTjVO7fra+TaM7KHtoPaeReeJz8XoOzBWMJ0XGU3CZFc6L4yVK1pTIWzkZLKwUIGA1kjBioE/14btl+LFpNcOT3XR+eq7T6RMHsfeXHv14aJ07tYfqQOmNsI+8vU7+V+EJbgOkYX2qP0UyOx1E5Z3Or7TwZ5Blo9qwlSZQ99L9c+a8o1mZwj0je2B1bkIfQcmpvMG9owK8pV0npPsil8JEDZ/B0VYIfbFk7A+zWR1NxUJDSqMLzwVsSGBMcs7TEhPhVx8iraJQ/np4B0ruIznDn24MLHzQsEmtOQ4xVOcTbnRCXLhpSEgB/WoDdxFXtcSb4RuqszhcXve2WbhMhDoG9tVKGi8X5K+AxPTeVU9Y3GiqTrPCXi/JSYT9BKTaKuIbZ1q8KIEqPPXOnhlABNfg4GMmNITcbwROHjodDop4H2JvUwYs7m3GAcZk+V7I4S6kf5IB0rqGfyUhmHMsh/pPLHm3jPk87zWNekYNYFGpw6ftz14QEfI4uLxhn8wTlwG/SAL4e7wt8ovMqDc3E2EZP2ggyWuGpm46cDzV0tPMWuHqTI7I1H4wMfCDhDw42+svqOG2bE9sPoXoe/AxGNuOm9gB1mIfKrOc2LdbwmHu5639PJk1qUoQl5290J1ZknjVgdvMv/ZXzMplIwmBsIHHcXgBw0TMfjmAo9Bhzv3HI2L9/wo+2flOZrQlY6BxAbvzqcgFO+WjxSPIfVY151lFcXT5hhVWOPwZ6O5q7/iuH6v/998fl1mQwmXsIT1g3iFcxg5o0m8SxhlC5wjQWV38I+ve8oI/YC672XsTJWZyTdptPdgZcnrITBF3yF1aWy7Wmlc14zlS9F3YBL0nOk810NW/Zmq85zwbaMJw4E7AIyFvSh+V4kxPxrcKP23Pq+b7DRRhncF4fUJAOfY48EpThoqg6exWLuHLuk18jR4dWoDtBgvziuSyET7XYtv7PWIy8jVD1mvxb8xunTOSxwpCoUYLyES3w4lXMD8nfh13qIt3uyU3HOfC8Yrdd9LGC2z2ot2JKxm5B6Kt99aBHybTdF3FFUa23hVTN8dN4jpvGNM1ooZrfPaAreNpqAAmSz7JsY2j72e8/HgdxroeGYwmsIdQZ9XKNSXfDnDAwUCz4DjT7rGcxMwDjz4H3LXheHzh/g0srYZcU4ZKgu5Puqf8jCGMbJKXjORdELOGKTOfaGEC5h05JCMYQK+KTEWHYasu4uN6CjvkdKfRfFc0sYdAy2mUT73aEscn7oWL2c5JtKy/SCmXaoecTkV19UyJ3iFdqBvWdgHAlP1HbXMjm31a9N36X5gOm8h3Z2Guxg7Rec1jBujSRPCnTo+k2WYxBqiczyhvr5ebgLQdcqgKVU95E/SiJ8zPIQphhMTPp6hThlKw7MXe4AUdRxEy10cRlHWYGrlwqv1Ugd1o2yMNt6+XpNX5HljkMSekMRF5aNwCeFu93B1MFbZUB+8fCG+86/0pGdNfJ+IkHfndIyxTubChfLlDKFCrqMk7sCrwlL1qCq8S1Qtczebu2IPIH2x2GaJfBa1EgJqqzAux+o7JA88jmoh/qbvIlRM5x0AOROd17TuVXN2OEEJ8mQV1vGlBDxr70ZUFqu1d+LxygrDiS+3x7hiCARvVFYEbxjwUdTG6IFXgl/wcDGhvdDB5z0wCsjHfjWnMLMFzZPQh0useDEcb+Ypej4uwmqIFyUYhDkP3XyCzcdpisz0o84NwHxiGaeFERir7xCrb2yjdxjfpu+6jWg6r4vHWldTdF4jc2w0Ba8Hd++XEngX0pgJgIEQGqEPK7w9hMZbokkZY4Fls3hAOcLwIzo8f1+LrjGYfFqujTDM4N0E5UWJOYO4iVzuJImLr2enrqob3jOWDUZ5iZaqguQC2yEGZjCemVT2EkbJLGzAhX4fPwG5l3pfupxj9R24Jcd2AtCL13dgYjov0TPWjRql82KRO0aTGpk75Xc64gk6zncW15oAMDCYAH4ZUSGWma5r8nlcMVrw9lAeAQOq6GHx8rnJSecssXG80kEce6Fyno2XognlUBaB69g4jGkc4cSfEi5vxBsjMHjE6GfNhnPi1w4eN7f8NEAW+hFLjHcD8ixFWtumY2UOuoG2tLAjBNS3p+g7aloa2w0Spu8aKDgxndeBY5GLpXVeR+j7navDBd4mJuZLePUASsRtkEzg0BeFcTnk3TwYSHgwMGhQPmzo7ptkMY6Q0e1n0n875AwmaPAsPfUGAGXwOD2vIeApOIyWsN8J44UynuugnDgemYkPEyWy4/Uqba4u4YKhiOFHfZCJ5cM+DER20hCWC1OY5wRhD9mfucRTxAtTxi13UsFDdqs4ZPpLGKeWgMfKTB9mf9zW2k1iWehBYIq+g3VpbMdFm747IGI6L+4ZM12fUOd1JL4n5deJ4ELCEMl7gJrlpCMiiwAnvsPE5ytiD04SHdHzbiSnuPT/zblOPENxSYJVGamymMRHbwRvFyNeGJTw+k3n+qvbJC5a2vUX0Y9eZpyzHu065c7HyKw8GJQYZxi7TKAWLgwB9YFqnef7mOm7mfuIcDWdNwJT3x8n6WmKzRlNrEmjID+XcrQ7SpBKBDUCEwjLMlXGpe/seHaGPMmWKHnbUUNxmVIblfWA/HP0U/HCG+faUuc67TeafPlMJA+nyDBnPfrwHCuz8rkXoqqeyXeO9ZVr6ftHQH2gWueJlsnd9N3Mze7Hr+m8Abh6zCbraYpMGk0u4XBHweReZRAMkP9sSNUQeCZuhdHD2kopD09llfYj1bLaLN0YXNaujGTmJoElU7fsqWudVhlN5ONNy6Uly7Wr1ynf13WQzMrDsh9917xMHTQv60L9YJDOE73pu412Ea8HTOcNbJ+rAj3G0o8C1t3JF+guNkkTJUsUvEySO6qqoDxMVqX9SFV8tkw0Bpc16+P7OG9QH9MujBP2b+wpjJEZ7zM3UbYst6eWnlnWoWNb9KbvZm6DOdiZzhuPYtbTBEsBizseS9S8TRmMfefD22RLFi2M9oSLZMXo5Sm+sBTNjQIeJDZQ5zZSMz6g4f1ZuxkfY2T2+LxWXT9XXQNGurRwiQioPzA+TOe1Gn9vmPgxbTqv1Ya1p31GE65YDCcmhjF34bVy7JoudEBhFJ4y23V95hJ+r7hIbjav8uHi7D4lT/NKbb6pVyaU2m6szMrHXgBelpp6Cq9UpKWdKQLqE+5Gw3TepwbeMyZeN5jO+9Sc2bPS8hwbzXDFYwiwLm0hg4Bw4h1Mv6vjhce9M5SXFb1HXNSGeI/Y7Ep47RXh4ar7i3dpN/uYvOiDZVb92ciLt9kMpm77X/TVHsf20g22V0xM5w3rGUVPU2DlFecHdQrzpARQ7N8QOHMEvDLFw8Q7tSwYAoaAIXDxCFQZTaAkBcoy3Y23pi8eOAPAEDhnBDTeWaJkzPO0nC3Nn3NjW90MAUOgGoEhRhOb/3jxnz09Uw2vERoC+0TAG00s0ZvBtM8mNKkNAUNgAQT+DzFUdgOyAnD4AAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left(\\omega_{c} - \\frac{\\left(- b + r \\operatorname{cos}\\left(\\theta\\right)\\right) \\omega_{c}}{r \\left(\\sqrt{2} \\operatorname{sin}\\left(\\theta + \\frac{\\pi}{4}\\right) + 1\\right)}\\right) \\operatorname{sin}\\left(\\theta\\right) + \\frac{\\left(- b + r \\operatorname{cos}\\left(\\theta\\right)\\right) \\omega_{c} \\operatorname{cos}\\left(\\theta\\right)}{r \\left(\\sqrt{2} \\operatorname{sin}\\left(\\theta + \\frac{\\pi}{4}\\right) + 1\\right)}$" ], "text/plain": [ "⎛ (-b + r⋅cos(θ))⋅ω_c ⎞ (-b + r⋅cos(θ))⋅ω_c⋅cos(θ)\n", "⎜ω_c - ─────────────────────⎟⋅sin(θ) + ──────────────────────────\n", "⎜ ⎛ ⎛ π⎞ ⎞⎟ ⎛ ⎛ π⎞ ⎞ \n", "⎜ r⋅⎜√2⋅sin⎜θ + ─⎟ + 1⎟⎟ r⋅⎜√2⋅sin⎜θ + ─⎟ + 1⎟ \n", "⎝ ⎝ ⎝ 4⎠ ⎠⎠ ⎝ ⎝ 4⎠ ⎠ " ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "zero = S_w_C.dot(n).subs(sol)\n", "zero" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\frac{\\sqrt{2} r \\left(\\operatorname{sin}\\left(\\theta\\right) + 1\\right)}{2 \\operatorname{cos}\\left(\\theta + \\frac{\\pi}{4}\\right)}$" ], "text/plain": [ "√2⋅r⋅(sin(θ) + 1)\n", "─────────────────\n", " ⎛ π⎞ \n", " 2⋅cos⎜θ + ─⎟ \n", " ⎝ 4⎠ " ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b_sol = sm.solve(zero, b)[0]\n", "b_sol" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "SymPy simplies this into a seemingly less simple solution. You can check that this is the correct solution by seeing if you solution minus the expected solution result in zero when simplified." ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\frac{r \\left(\\operatorname{sin}\\left(\\theta\\right) + 1\\right)}{- \\operatorname{sin}\\left(\\theta\\right) + \\operatorname{cos}\\left(\\theta\\right)}$" ], "text/plain": [ " r⋅(sin(θ) + 1) \n", "────────────────\n", "-sin(θ) + cos(θ)" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b_expected = r*(1+sm.sin(theta))/(sm.cos(theta)-sm.sin(theta))\n", "b_expected" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOCAYAAAAWo42rAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAzklEQVQoFW1SiRGCMBAkGQtgtAPswKcCKYEa7MESLMWhBGkBOtAOEDuA3XDL3Cg3c9lkby+bEMI4jpkihHDHvEd+kXvkA/UOmGUUmrjFsnLrHOsXskh1E11BDBIJwdGh9cIniFoCIbgKybPlEQOjnOFv5FkZZcQFeBbGZ4bVseCOWyup2yuXZlmzqJ29UPMdhUuXWIdy6yNuKEuRTre4vGXdoLpmreZGwhrCk9/K5nzGLrm6j8vn+n3CAdyBmo11Eo7IG75rYdwZeIEo/RQTNRRqzYwqZmYAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sm.trigsimp((b_sol - b_expected))" ] } ], "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.6.7" } }, "nbformat": 4, "nbformat_minor": 4 }