{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "[](https://drivetrainhub.com)\n", "\n", "
Symbol | \n", "Description | \n", "
---|---|
$X$ | \n", "Cartesian global x-coordinate | \n", "
$Y$ | \n", "Cartesian global y-coordinate | \n", "
$Z$ | \n", "Cartesian global z-coordinate | \n", "
$x$ | \n", "Cartesian x-coordinate | \n", "
$y$ | \n", "Cartesian y-coordinate | \n", "
$z$ | \n", "Cartesian z-coordinate | \n", "
$\\x$ | \n", "Cartesian x-axis unit vector | \n", "
$\\y$ | \n", "Cartesian y-axis unit vector | \n", "
$\\z$ | \n", "Cartesian z-axis unit vector | \n", "
$i$ | \n", "Transmission ratio | \n", "
$z$ | \n", "Number of teeth | \n", "
$r$ | \n", "Pitch radius | \n", "
$\\theta$ | \n", "Angle of rotation | \n", "
$v$ | \n", "Linear velocity | \n", "
$\\omega$ | \n", "Angular velocity | \n", "
$\\Omega$ | \n", "Constant angular velocity | \n", "
Axis of rotation in three-dimensional space
\n", "\n", "These assumptions allow analysis of a three-dimensional system of arbitrarily oriented bodies to be simplified to the analysis of a single degree-of-freedom (DOF) for each body. Without this simplification, each body would have 3-DOF that require solving, i.e. rotation about three orthogonal axes. Specifically, kinematics is interested in the rate of change for the DOF, $\\theta$, about the axis of rotation:\n", "\n", "$$\\vec{\\omega} = \\frac{\\rm{d}\\vec{\\theta}}{\\rm{d}t}$$\n", "\n", "Since kinematics is only concerned about the steady state motion of rigid bodies, it is unecessary to model mass, inertia, forces, or moments. The field of *kinetics*, sometimes generally referred to as *dynamics*, is concerned with those quantities. Kinetics is outside the scope of this notebook.\n", "\n", "Kinematics diagram of parallel gear pair
\n", "\n", "The gear pair is rotationally coupled by meshing gear teeth. Since each gear body is modeled with a single DOF, $\\theta$, two variables exist for the kinematics of this system: $\\omega_1, \\omega_2$. To create a solvable system of equations for the kinematics, we must formulate equations as a function of these variables. As explained in our notebooks on gear geometry, the transmission ratio of the gear pair is easily calculated as the ratio of gear teeth:\n", "\n", "$$i = \\frac{z_2}{z_1} = \\frac{\\|\\vec{\\omega_1}\\|}{\\|\\vec{\\omega_2}\\|}$$\n", "\n", "where the magnitude of angular velocities are related by this ratio. By knowing that gears in an external gear mesh rotate in opposite directions and that a single component of each angular velocity vector is non-zero, the classical form of a linear equation can be written as:\n", "\n", "$$\\omega_1 + i \\omega_2 = 0$$\n", "\n", "If this were not a 1-DOF formulation, $\\omega_1$ would be expressed as $\\omega_{1z}$ if the local z-axis were the axis of rotation. For brevity, the notation has been simplified. For the kinematics to be fully defined, we must impose a speed constraint on the system. If we arbitrarily choose to specify a constant input speed, $\\Omega_1$, a second equation is written as:\n", "\n", "$$\\omega_1 = \\Omega_1$$\n", "\n", "Finally, the system of equations for kinematics of a single parallel gear pair is assembled in matrix form as:\n", "\n", "$$\n", "\\begin{bmatrix} 1 & 0 \\\\ 1 & i \\end{bmatrix} \n", "\\begin{bmatrix} \\omega_1 \\\\ \\omega_2 \\end{bmatrix}\n", "= \n", "\\begin{bmatrix} \\Omega_1 \\\\ 0 \\end{bmatrix}\n", "$$\n", "\n", "and numerical solvers can be used to solve the linear system." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Description | \n", "Symbol | \n", "Gear 1 | \n", "Gear 2 | \n", "Units | \n", "
---|---|---|---|---|
Number of teeth | \n", "$z$ | \n", "20.000 | \n", "40.000 | \n", "- | \n", "
Angular velocities | \n", "$\\omega$ | \n", "1.000 | \n", "-0.500 | \n", "$\\text{rad/s}$ | \n", "
Revolutions per minute | \n", "RPM | \n", "9.549 | \n", "-4.775 | \n", "$\\text{rpm}$ | \n", "
Kinematics diagram of idler gear set
\n", "\n", "The gear set consists of two gear pairs, each rotationally coupled by meshing gear teeth. Since each gear body is modeled with a single DOF, $\\theta$, three variables exist for the kinematics of this system: $\\omega_1, \\omega_2, \\omega_3$. To create a solvable system of equations for the kinematics, we must formulate equations as a function of these variables. The transmission ratio of the input-idler gear pair is calculated as:\n", "\n", "$$i_{12} = \\frac{z_2}{z_1} = \\frac{\\|\\vec{\\omega_1}\\|}{\\|\\vec{\\omega_2}\\|}$$\n", "\n", "and similarly for the idler-output gear pair:\n", "\n", "$$i_{23} = \\frac{z_3}{z_2} = \\frac{\\|\\vec{\\omega_2}\\|}{\\|\\vec{\\omega_3}\\|}$$\n", "\n", "By formulating equations in terms of the angular velocity components, the linear equations are written as:\n", "\n", "$$\\omega_1 + i_{12} \\omega_2 = 0$$\n", "\n", "$$\\omega_2 + i_{23} \\omega_3 = 0$$\n", "\n", "For the kinematics to be fully defined, we must impose a speed constraint on the system. If we arbitrarily choose to specify a constant input speed, $\\Omega_1$, a third equation is written as:\n", "\n", "$$\\omega_1 = \\Omega_1$$\n", "\n", "Finally, the system of equations for kinematics of a parallel idler gear set is assembled in matrix form as:\n", "\n", "$$\n", "\\begin{bmatrix} 1 & 0 & 0 \\\\ 1 & i_{12} & 0 \\\\ 0 & 1 & i_{23} \\end{bmatrix} \n", "\\begin{bmatrix} \\omega_1 \\\\ \\omega_2 \\\\ \\omega_3 \\end{bmatrix}\n", "= \n", "\\begin{bmatrix} \\Omega_1 \\\\ 0 \\\\ 0 \\end{bmatrix}\n", "$$\n", "\n", "and numerical solvers can be used to solve the linear system." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Description | \n", "Symbol | \n", "Gear 1 | \n", "Gear 2 | \n", "Gear 3 | \n", "Units | \n", "
---|---|---|---|---|---|
Number of teeth | \n", "$z$ | \n", "20.000 | \n", "40.000 | \n", "21.000 | \n", "- | \n", "
Angular velocities | \n", "$\\omega$ | \n", "1.000 | \n", "-0.500 | \n", "0.952 | \n", "$\\text{rad/s}$ | \n", "
Revolutions per minute | \n", "RPM | \n", "9.549 | \n", "-4.775 | \n", "9.095 | \n", "$\\text{rpm}$ | \n", "
Kinematics diagram of compound parallel gear set
\n", "\n", "The gear set consists of three gear pairs, each rotationally coupled by meshing gear teeth. Since each gear body is modeled with a single DOF, $\\theta$, five variables exist for the kinematics of this system: $\\omega_1, \\omega_2, \\omega_3, \\omega_4, \\omega_5$. To create a solvable system of equations for the kinematics, we must formulate equations as a function of these variables.\n", "\n", "In addition to the transmission ratio equations of the previous section for the idler gear set, this gear set has an additional equation for the transmission ratio of the final gear pair:\n", "\n", "$$i_{45} = \\frac{z_5}{z_4} = \\frac{\\|\\vec{\\omega_4}\\|}{\\|\\vec{\\omega_5}\\|}$$\n", "\n", "By formulating equations in terms of the angular velocity components, the linear equation is written as:\n", "\n", "$$\\omega_4 + i_{45} \\omega_5 = 0$$\n", "\n", "The compound gear set has a feature that did not exist in the previous gear sets, namely gears 3 and 4 are constrained to rotate together. In a physical system, this feature is commonly encountered as a single shaft with two gears machined into it, or the thin shaft is machined with one gear and is press fit with a larger gear blank. Regardless, the kinematics equation to define this condition is:\n", "\n", "$$\\omega_3 - \\omega_4 = 0$$\n", "\n", "For the kinematics to be fully defined, we must impose a speed constraint on the system. If we arbitrarily choose to specify a constant input speed, $\\Omega_1$, another equation is written as:\n", "\n", "$$\\omega_1 = \\Omega_1$$\n", "\n", "Finally, the system of equations for kinematics of a parallel compound gear set is assembled in matrix form as:\n", "\n", "$$\n", "\\begin{bmatrix} \n", "1 & 0 & 0 & 0 & 0 \\\\ \n", "1 & i_{12} & 0 & 0 & 0 \\\\ \n", "0 & 1 & i_{23} & 0 & 0 \\\\\n", "0 & 0 & 1 & -1 & 0 \\\\\n", "0 & 0 & 0 & 1 & i_{45} \\\\\n", "\\end{bmatrix} \n", "\\begin{bmatrix} \\omega_1 \\\\ \\omega_2 \\\\ \\omega_3 \\\\ \\omega_4 \\\\ \\omega_5 \\end{bmatrix}\n", "= \n", "\\begin{bmatrix} \\Omega_1 \\\\ 0 \\\\ 0 \\\\ 0 \\\\ 0 \\end{bmatrix}\n", "$$\n", "\n", "and numerical solvers can be used to solve the linear system." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Description | \n", "Symbol | \n", "Gear 1 | \n", "Gear 2 | \n", "Gear 3 | \n", "Gear 4 | \n", "Gear 5 | \n", "Units | \n", "
---|---|---|---|---|---|---|---|
Number of teeth | \n", "$z$ | \n", "20.000 | \n", "40.000 | \n", "30.000 | \n", "25.000 | \n", "50.000 | \n", "- | \n", "
Angular velocities | \n", "$\\omega$ | \n", "1.000 | \n", "-0.500 | \n", "0.667 | \n", "0.667 | \n", "-0.333 | \n", "$\\text{rad/s}$ | \n", "
Revolutions per minute | \n", "RPM | \n", "9.549 | \n", "-4.775 | \n", "6.366 | \n", "6.366 | \n", "-3.183 | \n", "$\\text{rpm}$ | \n", "
Kinematics diagram of planetary gear set with 1 planet
\n", "\n", "A planetary gear set with a single planet is a 4-DOF system. Namely, rotation of the sun gear, planet gear, carrier, and ring gear. It may not be obvious yet, but the kinematics of the planetary gear set are unique in several ways. It will be shown that more than a single constraint must be imposed to create a solvable system, unlike the parallel gearing architectures considered previously.\n", "\n", "Planetary gear mesh pitch point velocities
\n", "\n", "##### Sun-Planet Mesh\n", "\n", "For the sun-planet gear mesh, the constraint equation for linear velocity at the pitch point is written as:\n", "\n", "$$\\vec{v}_s = \\vec{v}_{ps}$$\n", "\n", "where $\\vec{v}_{ps}$ is the linear *ground* velocity of the planet gear at the sun-planet mesh pitch point. From the figure, we can see how to write these linear velocity vectors as a function of angular velocities, which is what we are interested in solving:\n", "\n", "$$\\vec{\\omega}_s \\times \\vec{r}_s = \\vec{\\omega}_p \\times \\vec{r}_p + \\vec{\\omega}_c \\times \\vec{r}_s$$\n", "\n", "where $r$ is pitch radius. Notice how the carrier angular velocity, $\\vec{\\omega}_c$, contributes to the linear ground velocity of the planet. By enforcing a consistent sign convention, the vector equation can be expressed in terms of its angular velocity components as:\n", "\n", "$$\\omega_s r_s = -\\omega_p r_p + \\omega_c r_s$$\n", "\n", "By defining a ratio analogous to a parallel gear mesh as:\n", "\n", "$$i_{sp} = \\frac{z_p}{z_s} = \\frac{r_p}{r_s}$$\n", "\n", "The linear equation in its desired form is written as:\n", "\n", "$$\\omega_s + i_{sp} \\omega_p - \\omega_c = 0$$\n", "\n", "where it is obvious the gear mesh behaves as a parallel gear set when the carrier is stationary, $\\omega_c = 0$.\n", "\n", "##### Planet-Ring Mesh\n", "\n", "For the planet-ring gear mesh, the constraint equation for linear velocity at the pitch point is written as:\n", "\n", "$$\\vec{v}_r = \\vec{v}_{pr}$$\n", "\n", "where $\\vec{v}_{pr}$ is the linear *ground* velocity of the planet gear at the planet-ring mesh pitch point. From the figure, we can see how to write these linear velocity vectors as a function of angular velocities, which is what we are interested in solving:\n", "\n", "$$\\vec{\\omega}_r \\times \\vec{r}_r = \\vec{\\omega}_p \\times \\vec{r}_p + \\vec{\\omega}_c \\times \\vec{r}_r$$\n", "\n", "where $r$ is pitch radius. Notice how the carrier angular velocity, $\\vec{\\omega}_c$, contributes to the linear ground velocity of the planet. By enforcing a consistent sign convention, the vector equation can be expressed in terms of its angular velocity components as:\n", "\n", "$$\\omega_r r_r = \\omega_p r_p + \\omega_c r_r$$\n", "\n", "By defining a ratio analogous to a parallel gear mesh as:\n", "\n", "$$i_{pr} = -\\frac{z_r}{z_p} = -\\frac{r_r}{r_p}$$\n", "\n", "where negative $(-)$ is used as the convention for an internal gear mesh. The linear equation in its desired form is written as:\n", "\n", "$$\\omega_p - i_{pr}\\omega_c + i_{pr}\\omega_r = 0$$\n", "\n", "where it is obvious the gear mesh behaves as a parallel gear set when the carrier is stationary, $\\omega_c = 0$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### System of Equations\n", "\n", "Two equations have been derived for the two gear meshes in the planetary gear set. However, it is a 4-DOF system and therefore cannot be solved yet. For the kinematics to be fully defined, we must impose *two* speed constraints on the system, independent of each other. Which speed constraints to apply depends on the application and how the planetary gear set is integrated within a drivetrain system.\n", "\n", "If we arbitrarily choose to specify constant speeds for the sun and ring gears, two additional equations are written as:\n", "\n", "$$\\omega_s = \\Omega_s$$\n", "\n", "$$\\omega_r = \\Omega_r$$\n", "\n", "Note that speed constraints can be imposed on *any* of the components to create a solvable system of equations. Finally, the system of equations for kinematics of a planetary gear set is assembled in matrix form as:\n", "\n", "$$\n", "\\begin{bmatrix} \n", "1 & 0 & 0 & 0 \\\\ \n", "1 & i_{sp} & -1 & 0 \\\\ \n", "0 & 1 & -i_{pr} & i_{pr} \\\\\n", "0 & 0 & 0 & 1 \\\\\n", "\\end{bmatrix} \n", "\\begin{bmatrix} \\omega_s \\\\ \\omega_p \\\\ \\omega_c \\\\ \\omega_r \\end{bmatrix}\n", "= \n", "\\begin{bmatrix} \\Omega_s \\\\ 0 \\\\ 0 \\\\ \\Omega_r \\end{bmatrix}\n", "$$\n", "\n", "and numerical solvers can be used to solve the linear system.\n", "\n", "Description | \n", "Symbol | \n", "Sun | \n", "Planet | \n", "Carrier | \n", "Ring | \n", "Units | \n", "
---|---|---|---|---|---|---|
Number of teeth | \n", "$z$ | \n", "36.000 | \n", "42.000 | \n", "NaN | \n", "72.0 | \n", "- | \n", "
Angular velocities | \n", "$\\omega$ | \n", "1.000 | \n", "-0.571 | \n", "0.333 | \n", "0.0 | \n", "$\\text{rad/s}$ | \n", "
Revolutions per minute | \n", "RPM | \n", "9.549 | \n", "-5.457 | \n", "3.183 | \n", "0.0 | \n", "$\\text{rpm}$ | \n", "
Kinematics diagram of planetary gear set with 3 planets
\n", "\n", "A planetary gear set with three planets is a 6-DOF system. Namely, rotation of the sun gear, three planet gears, carrier, and ring gear. The same concepts apply the three-planet system as were revied for the single-planet system. Deriving the equations for kinematics is analogous, but now the angular velocities of a second and third planet, $\\omega_{p2}$ and $\\omega_{p3}$, must be considered.\n", "\n", "Before proceeding with the kinematics formulation, it must be known that each planet is required to have the same number of teeth for a valid planetary gear set.\n", "\n", "$$z_{p1} = z_{p2} = z_{p3}$$\n", "\n", "Since the relationship of number of teeth and pitch radius is linearly proportional for cylindrical involute gearing, the pitch radii are also equal.\n", "\n", "$$r_{p1} = r_{p2} = r_{p3}$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Sun-Planet Meshes\n", "\n", "The sun-planet gear mesh equations derived for a single planet system remain valid, so we will apply those equations to the three-planet system as:\n", "\n", "$$\\omega_s + i_{sp} \\omega_{p1} - \\omega_c = 0$$\n", "\n", "$$\\omega_s + i_{sp} \\omega_{p2} - \\omega_c = 0$$\n", "\n", "$$\\omega_s + i_{sp} \\omega_{p3} - \\omega_c = 0$$\n", "\n", "where the same coefficient, $i_{sp}$, is used for each equation by acknowledging the relationship of pitch radii:\n", "\n", "$$i_{sp} = \\frac{r_{p1}}{r_s} = \\frac{r_{p2}}{r_s} = \\frac{r_{p3}}{r_s}$$\n", "\n", "Although we will continue with the use of these equations to fully define a solvable linear system, it is obvious that each planet must have the same angular velocity to satisfy these equations.\n", "\n", "##### Planet-Ring Meshes\n", "\n", "\n", "$$\\omega_{p1} - i_{pr}\\omega_c + i_{pr}\\omega_r = 0$$\n", "\n", "$$\\omega_{p2} - i_{pr}\\omega_c + i_{pr}\\omega_r = 0$$\n", "\n", "$$\\omega_{p3} - i_{pr}\\omega_c + i_{pr}\\omega_r = 0$$\n", "\n", "where the same coefficient, $i_{pr}$, is used for each equation by acknowledging the relationship of pitch radii:\n", "\n", "$$i_{pr} = -\\frac{r_r}{r_{p1}} = -\\frac{r_r}{r_{p2}} = -\\frac{r_r}{r_{p3}}$$\n", "\n", "where negative $(-)$ is used as the convention for an internal gear mesh. Again, it is obvious that each planet must have the same angular velocity to satisfy these equations, thus agreeing with the sun-planet equations." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### System of Equations\n", "\n", "Six equations have been derived for the six gear meshes in the planetary gear set. Despite being a 6-DOF system, we are *not* ready to solve it. You can try but will find that it is not solvable. This can be proved by calculating the rank of the coefficient matrix for the current system of equations:\n", "\n", "$$\n", "\\begin{bmatrix} \n", "1 & i_{sp} & 0 & 0 & -1 & 0 \\\\ \n", "1 & 0 & i_{sp} & 0 & -1 & 0 \\\\ \n", "1 & 0 & 0 & i_{sp} & -1 & 0 \\\\ \n", "0 & 1 & 0 & 0 & -i_{pr} & i_{pr} \\\\\n", "0 & 0 & 1 & 0 & -i_{pr} & i_{pr} \\\\\n", "0 & 0 & 0 & 1 & -i_{pr} & i_{pr} \\\\\n", "\\end{bmatrix} \n", "\\begin{bmatrix} \\omega_s \\\\ \\omega_{p1} \\\\ \\omega_{p2} \\\\ \\omega_{p3} \\\\ \\omega_c \\\\ \\omega_r \\end{bmatrix}\n", "= \n", "\\begin{bmatrix} 0 \\\\ 0 \\\\ 0 \\\\ 0 \\\\ 0 \\\\ 0 \\end{bmatrix}\n", "$$\n", "\n", "Since the rank evaluates to four (4), which is less than the number of variables (6), the system of equations is linearly dependent. For the kinematics to be fully defined, two more equations are needed that independently define angular velocities in the system.\n", "\n", "All mesh equations have been derived, therefore we must impose *two* speed constraints on the system that are *independent* of each other. Defining the speeds for two planets will not be sufficient, since they are *dependent*. Which speed constraints to apply depends on the application and how the planetary gear set is integrated within a drivetrain system.\n", "\n", "If we arbitrarily choose to specify constant speeds for the sun and ring gears, two additional equations are written as:\n", "\n", "$$\\omega_s = \\Omega_s$$\n", "\n", "$$\\omega_r = \\Omega_r$$\n", "\n", "Note that speed constraints can be imposed on *any* of the components to create a solvable system of equations. Finally, the system of equations for kinematics of a planetary gear set is assembled in matrix form as:\n", "\n", "$$\n", "\\begin{bmatrix} \n", "1 & 0 & 0 & 0 & 0 & 0 \\\\\n", "1 & i_{sp} & 0 & 0 & -1 & 0 \\\\ \n", "1 & 0 & i_{sp} & 0 & -1 & 0 \\\\ \n", "1 & 0 & 0 & i_{sp} & -1 & 0 \\\\ \n", "0 & 1 & 0 & 0 & -i_{pr} & i_{pr} \\\\\n", "0 & 0 & 1 & 0 & -i_{pr} & i_{pr} \\\\\n", "0 & 0 & 0 & 1 & -i_{pr} & i_{pr} \\\\\n", "0 & 0 & 0 & 0 & 0 & 1 \\\\\n", "\\end{bmatrix} \n", "\\begin{bmatrix} \\omega_s \\\\ \\omega_{p1} \\\\ \\omega_{p2} \\\\ \\omega_{p3} \\\\ \\omega_c \\\\ \\omega_r \\end{bmatrix}\n", "= \n", "\\begin{bmatrix} \\Omega_s \\\\ 0 \\\\ 0 \\\\ 0 \\\\ 0 \\\\ 0 \\\\ 0 \\\\ \\Omega_r \\end{bmatrix}\n", "$$\n", "\n", "Despite creating a fully defined system, the linearly dependent equations have not been removed. This is why the coefficient matrix does not have $n \\times n$ dimensions, where $n$ is the number of variables. There are two suggested approaches to solving a system of this type:\n", "\n", "1. Remove the linearly dependent equations by using Gaussian elimination, then calculate the exact solution.\n", "2. Use a least-squares solver to minimize any errors in the solution.\n", "\n", "In the example below, the least-squares solution is used for its ease-of-use with existing solvers.\n", "\n", "Description | \n", "Symbol | \n", "Sun | \n", "Planet 1 | \n", "Planet 2 | \n", "Planet 3 | \n", "Carrier | \n", "Ring | \n", "Units | \n", "
---|---|---|---|---|---|---|---|---|
Number of teeth | \n", "$z$ | \n", "36.000 | \n", "42.000 | \n", "42.000 | \n", "42.000 | \n", "NaN | \n", "72.0 | \n", "- | \n", "
Angular velocities | \n", "$\\omega$ | \n", "1.000 | \n", "-0.571 | \n", "-0.571 | \n", "-0.571 | \n", "0.333 | \n", "-0.0 | \n", "$\\text{rad/s}$ | \n", "
Revolutions per minute | \n", "RPM | \n", "9.549 | \n", "-5.457 | \n", "-5.457 | \n", "-5.457 | \n", "3.183 | \n", "-0.0 | \n", "$\\text{rpm}$ | \n", "