{ "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", "
$r$ | \n", "Radius | \n", "
$\\theta$ | \n", "Angle of rotation | \n", "
$v$ | \n", "Linear velocity | \n", "
$\\omega$ | \n", "Angular velocity | \n", "
$M$ | \n", "Moment | \n", "
$\\tau$ | \n", "Torque | \n", "
$i$ | \n", "Imaginary number | \n", "
$a_{ij}$ | \n", "Linear equation coefficient | \n", "
$x$ | \n", "Linear equation variable | \n", "
$b$ | \n", "Linear equation constant | \n", "
$A$ | \n", "Coefficients matrix | \n", "
$R$ | \n", "Rotation matrix | \n", "
$\\alpha$ | \n", "Euler angle about $z$ axis | \n", "
$\\beta$ | \n", "Euler angle about $x'$ axis | \n", "
$\\gamma$ | \n", "Euler angle about $z''$ axis | \n", "
Point positioned in three-dimensional space with Cartesian coordinates
\n", "\n", "Description | \n", "Symbol | \n", "Value | \n", "
---|---|---|
Point 1 coordinates | \n", "$\\rm{P}_1$ | \n", "[0, 1, 0] | \n", "
Point 2 coordinates | \n", "$\\rm{P}_2$ | \n", "[1, 0, 0] | \n", "
x-distance | \n", "$l_x$ | \n", "1 | \n", "
y-distance | \n", "$l_y$ | \n", "-1 | \n", "
z-distance | \n", "$l_z$ | \n", "0 | \n", "
Total distance | \n", "$l$ | \n", "1.41421 | \n", "
Vector of magnitude and direction
\n", "\n", "The magnitude of a time-invariant vector can be defined with a single scalar value. The direction of a time-invariant vector can be defined in different ways, depending on the domain. Since rotational mechanics pertains to the study of physical systems in three-dimensional space, the vector direction is commonly defined with components of Cartesian coordinates.\n", "\n", "$$\\vec{a} = a_x\\x + a_y\\y + a_z\\z$$\n", "\n", "where $\\x, \\y, \\z$ are unit vectors corresponding to the Cartesian axes. A vector in three-dimensions can be visualized relative to Cartesian axes as:\n", "\n", "\n", "Vector in a Cartesian coordinate system
\n", "\n", "A *unit vector* is a vector of unit (1.0) amplitude, expressed for $\\vec{a}$ as:\n", "\n", "$$\\hat{a} = \\frac{\\vec{a}}{\\|\\vec{a}\\|} = \\frac{a_x}{a}\\x + \\frac{a_y}{a}\\y + \\frac{a_z}{a}\\z$$\n", "\n", "where $\\|\\vec{a}\\|$, also notated as $a$, is the magnitude of $\\vec{a}$ and calculated as:\n", "\n", "$$\\|\\vec{a}\\| = \\sqrt{a_x^2 + a_y^2 + a_z^2}$$\n", "\n", "For computations, a vector is often represented in array form:\n", "\n", "$$\\vec{a} = \\left[ a_x, a_y, a_z \\right]$$\n", "\n", "where $a_x, a_y, a_z$ are called *elements* of the array." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Addition\n", "\n", "Vectors can be added and subtracted by applying the math operation *element-wise*. Element-wise means performing the math operation on the respective elements of each vector. This becomes apparent when considering vector addition of $\\vec{a}$ and $\\vec{b}$:\n", "\n", "$$\\vec{a} + \\vec{b} = (a_x + b_x)\\x + (a_y + b_y)\\y + (a_z + b_z)\\z$$\n", "\n", "Vector subtraction is performed similarly:\n", "\n", "$$\\vec{a} - \\vec{b} = (a_x - b_x)\\x + (a_y - b_y)\\y + (a_z - b_z)\\z$$\n", "\n", "The addition and subtraction of vectors is visualized as:\n", "\n", "\n", "Adding and subtracting vectors
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Dot Product\n", "\n", "The dot product is a scalar resulting from the product of the magnitude of two vectors and the cosine of the angle, $\\theta$, between the vectors. It is also referred to as the *scalar product* and *inner product*. Its geometric definition results in the equation:\n", "\n", "$$\\vec{a} \\cdot \\vec{b} = a b \\cos\\theta$$\n", "\n", "where $\\cdot$ denotes the dot product. The geometric relationship of a dot product is illustrated below, noting that any two vectors in three-dimensional space lie within an arbitrary plane intersecting both vectors. \n", "\n", "\n", "Dot product geometric relationship
\n", "\n", "In the case of a dot product with a unit vector, the component of a vector in a given direction, per the unit vector, can be calculated.\n", "\n", "$$\\vec{a} \\cdot \\hat{b} = a \\cos\\theta$$\n", "\n", "This *vector projection* calculation is made clear in the figure below.\n", "\n", "\n", "Vector projection from a dot product
\n", "\n", "The dot product can also be calculated algebraically in Cartesian component form as the sum of element-wise products:\n", "\n", "$$\\vec{a} \\cdot \\vec{b} = a_x b_x + a_y b_y + a_z b_z$$\n", "\n", "Common applications of the dot product include:\n", "\n", "1. Calculate the component of geometry or velocity in a certain direction.\n", "1. Calculate the angle between two vectors.\n", "1. Calculate if two spatial objects are parallel or perpendicular.\n", "\n", "Cross product of two vectors
\n", "\n", "where $\\vec{a} \\times \\vec{b}$ is the cross product. Direction of the cross product is determined by the right-hand rule, and its magnitude is calculated as:\n", "\n", "$$\\|\\vec{c}\\| = \\|\\vec{a}\\| \\|\\vec{b}\\| \\sin\\theta$$\n", "\n", "The cross product can also be calculated algebraically in Cartesian component form as:\n", "\n", "$$\\vec{c} = \\vec{a} \\times \\vec{b} = (a_y b_z - a_z b_y)\\x - (a_x b_z - a_z b_x)\\y + (a_x b_y - a_y b_x)\\z$$\n", "\n", "Common applications of the cross product include:\n", "\n", "1. Calculate linear velocity of a point in 3-dimensional space on a rotating body: $\\vec{v} = \\vec{\\omega} \\times \\vec{r}$\n", "2. Calculate moment about a point in 3-dimensional space due to a force at a distance: $\\vec{M} = \\vec{r} \\times \\vec{F}$\n", "\n", "Description | \n", "Symbol | \n", "Value | \n", "
---|---|---|
Vector $a$ | \n", "$\\vec{a}$ | \n", "[2, 0, 0] | \n", "
Vector $b$ | \n", "$\\vec{b}$ | \n", "[0, 1, 0] | \n", "
Addition | \n", "$\\vec{a} + \\vec{b}$ | \n", "[2, 1, 0] | \n", "
Subtraction | \n", "$\\vec{a} - \\vec{b}$ | \n", "[2, -1, 0] | \n", "
Dot product | \n", "$\\vec{a} \\cdot \\vec{b}$ | \n", "0 | \n", "
Cross product | \n", "$\\vec{a} \\times \\vec{b}$ | \n", "[0, 0, 2] | \n", "
Angle | \n", "$\\theta$ | \n", "90.0$\\deg$ | \n", "
Is parallel? | \n", "$\\parallel$ | \n", "False | \n", "
Is perpendicular? | \n", "$\\bot$ | \n", "True | \n", "
Periodic motion of a rotating shaft
\n", "\n", "From the figure, it is obvious that a *period* is one rotation of the shaft, $2\\pi$ radians. As a function of time, the period depends on angular velocity:\n", "\n", "$$T = \\frac{2\\pi}{\\omega}$$\n", "\n", "where units are seconds. Therefore, the frequency in cycles per second (Hz) is calculated as the inverse of period:\n", "\n", "$$f = \\frac{1}{T} = \\frac{\\omega}{2\\pi}$$\n", "\n", "Sinusoidal waveform
\n", "\n", "Mathematically, the waveform above can be defined by a sine function:\n", "\n", "$$y(x) = a \\sin(\\omega x + \\phi)$$\n", "\n", "where independent variable, $x$, is usually time. The cosine function can also be used since it is equal to the sine function with a phase shift:\n", "\n", "$$\\cos(x) = \\sin(x + \\pi / 2)$$\n", "\n", "Graphically, sine and cosine functions are compared below for $\\omega=1$.\n", "\n", "\n", "Comparison of sine and cosine functions
\n", "\n", "Notice the phase shift results in sine *lagging* cosine by $\\pi/2$, or cosine *leading* sine by $\\pi/2$.\n", "\n", "Euler formula in complex plane
\n", "\n", "where it can be seen how a complex number relates to Euler's formula as:\n", "\n", "$$x + iy = r \\left( \\cos\\phi + i\\sin\\phi \\right) = r e^{i\\phi}$$\n", "\n", "where $r=1$ in the figure above, calculated as $r = \\sqrt{x^2 + y^2}$. A more useful form of Euler's formula for our purpose is to express it as a function of time as:\n", "\n", "$$r e^{i (\\omega t + \\phi)} = r \\left( \\cos(\\omega t + \\phi) + i\\sin(\\omega t + \\phi) \\right)$$\n", "\n", "where $r$ is the complex vector *magnitude*, $\\omega$ is *angular frequency*, and $\\phi$ is *phase angle*. This formula allows a *rotating vector* to be expressed with simple mathematical notation. This means Euler's formula can be used to represent periodic signals. The relationship between a rotating complex vector and a time-series waveform is illustrated below. Note the complex plane axes are rotated for illustration purposes.\n", "\n", "\n", "Rotating complex vector and its waveform signal
\n", "\n", "where the real part of the rotating complex vector equals the cosine function and hence represents the time-series waveform of a physical signal." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Math Operations\n", "\n", "Euler's formula is particularly useful for performing mathematical operations of periodic signals. For example, $N$ periodic signals of the same frequency can be represented in time-independent form to easily calculate their summation as:\n", "\n", "$$r e^{i\\phi} = \\sum_{n=1}^N r_n e^{i \\phi_n}$$\n", "\n", "where the magnitude and phase of the summed signal is easily calculated from the resulting complex number, $x + iy$:\n", "\n", "$$r = \\sqrt{x^2 + y^2}$$\n", "\n", "$$\\phi = \\tan^{-1}\\left(\\frac{y}{x}\\right)$$\n", "\n", "Similarly, two periodic signals in Euler form can be multiplied to produce a modulated signal:\n", "\n", "$$r_1 e^{i (\\omega_1 t + \\phi_1)} r_2 e^{i (\\omega_2 t + \\phi_2)} = r_1 r_2 e^{i ((\\omega_1 + \\omega_2)t + \\phi_1 + \\phi_2)}$$\n", "\n", "where the resulting signal amplitude is $r_1 r_2$, angular frequency is $\\omega_1 + \\omega_2$, and phase angle is $\\phi_1 + \\phi_2$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Harmonic Analysis\n", "\n", "Harmonic analysis is a vast topic, applicable to a broad range of mathematics and engineering. The narrow scope reviewed here is:\n", "\n", "1. Define periodic signals as a sequence of sinusoidal functions.\n", "2. Determine the frequency content of a time-series signal.\n", "\n", "A *harmonic* is a positive integer multiple of a fundamental frequency. In physical terms, the fundamental frequency is the first natural frequency of vibration for an elastic object. Therefore, the first harmonic is the fundamental frequency, the second harmonic is twice the fundamental frequency, and so on.\n", "\n", "Harmonics refer to sinusoidal signals with amplitude, frequency, and phase angle. The frequency of the $n^\\rm{th}$ harmonic is calculated as:\n", "\n", "$$f_n = n f_0$$\n", "\n", "where $f_0$ is the fundamental frequency." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Fourier Series\n", "\n", "Fourier series can be used to construct a function, $s(x)$, from a series of weighted harmonics. It is mathematically defined as:\n", "\n", "$$s_N(x) = \\frac{a_0}{2} + \\sum_{n=1}^{N} \\left( a_n \\cos\\left(\\frac{2 \\pi n x}{P}\\right) + b_n \\sin\\left(\\frac{2\\pi n x}{P}\\right) \\right)$$\n", "\n", "where $N$ is the number of *harmonics*, $P$ is the period of the Fourier series, and coefficients are calculated as:\n", "\n", "$$a_n = \\frac{2}{P} \\int_P s(x) \\cos\\left(\\frac{2 \\pi n x}{P}\\right) \\diff x$$\n", "\n", "$$b_n = \\frac{2}{P} \\int_P s(x) \\sin\\left(\\frac{2 \\pi n x}{P}\\right) \\diff x$$\n", "\n", "where $s(x)$ must be integrable over $P$, and $a_0$ evaluates as:\n", "\n", "$$a_0 = \\frac{2}{P} \\int_P s(x) \\diff x$$\n", "\n", "Harmonic and period are related in that the $n^\\rm{th}$ harmonic has $n$ cycles over the period $P$. \n", "\n", "##### Square Wave\n", "\n", "As an example of how the Fourier series works, consider the square wave. A square wave function is written as:\n", "\n", "$$s(x) = \n", "\\begin{cases}\n", " A & \\text{for } 0 \\leq x \\lt d T\\\\\n", " 0 & \\text{for } d T \\leq x \\lt T \n", "\\end{cases}$$\n", "\n", "where $A$ is amplitude, $T$ is period, and $d$ is the fraction of the period spent at the amplitude. The Fourier series coefficients of a square wave evaluate to:\n", "\n", "$$a_0 = 2 A d$$\n", "\n", "$$a_n = \\frac{A \\sin(2 \\pi n d)}{\\pi n}$$\n", "\n", "$$b_n = \\frac{2 A \\sin^2(\\pi n d)}{\\pi n}$$\n", "\n", "Below is a plot comparing the square wave Fourier series with different harmonics. Notice the even numbered harmonics ($n = 2, 4, 6, \\dots$) do not contribute to the Fourier series of a square wave. That is why the plots of $N=3$ and $N=4$ are identical." ] }, { "cell_type": "code", "execution_count": 157, "metadata": { "tags": [ "hide_input" ] }, "outputs": [ { "data": { "image/png": "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V69eTJgwIbz+gAED+Pjjj2nTpk1S427Xrh0nnngi4N3MferUqUk9vlRNStJERATwEp/58+eH5wcPHuxLHFdddRVTp04tlGj961//omvXrtSpU4fu3bvTrl07rrvuOr766qvwOhdccAHTpk2jcePGfoRdrUZ5SnIoSRMREcC7j2bBPS6POeaYMnXaj7dzzz2XlStXFro8B3iXM/j6668LXfW9Xr16/PnPf+att95K6inOaJFJ2gcffEBWVpZvsUjVoCRNREQA/091RmvatCkTJ05k8uTJDBo0iNatWxd6vlu3bjz++ONs2bKF++67z8LRtS0AACAASURBVPcLHnfv3p0uXboAkJmZWeHrvYn4de9OEREJmMgkbciQIT5GUtjw4cMZPnw44N1X8ttvvyUlJYVevXoF6jpdZsagQYNYt24dAB9//DGnnXaaz1FJZaaWNBERYcOGDaxduxaAOnXqcMopp/gcUWz169fnmGOOoXfv3oFK0Aqcfvrp4ccff/yxj5FIVaAkTUREmDFjRvjxwIEDqVWrlo/RVF6RSdr8+fPJzs72MRqp7JSkiYhI4PqjVVbt27enU6dOABw8eJDFixf7HJFUZkrSRESqudzcXGbOnBmeV5JWMTrlKfGiJE1EpJpbvHgxe/bsAbyLsh511FE+R1S5KUmTeFGSJiJSzX366afhx2eeeWYgO+RXJpFJ2rx588LXnhMpKyVpIiLVXORdBgYMGOBjJFVDeno67du3B7xLhixdutTniKSyUpImIlKNOecKJWknnXSSj9FUDWZWqDXtk08+8TEaqcyUpImIVGMbN25k+/btADRs2JAePXr4HFHVoH5pEg9K0kREqrHoVrSUFP0sxENkkjZ37lzy8vJ8jEYqK30bRUSqscgk7eSTT/Yxkqqla9eutGnTBoC9e/eyYsUKnyOSykhJmohINab+aIkR3S9NpzylPJSkiYhUU/v37w+38JgZ/fr18zmiqiX6lKdIWSlJExGpphYuXEh+fj4AvXr1omHDhj5HVLVE3qR+4cKFPkYilZWSNBGRakr90RKrR48e1KtXD4DNmzezdetWnyOSykZJmohINaX+aImVmppK3759w/OLFi3yMRqpjJSkiYhUQ/n5+Xz22WfhebWkJcaJJ54YfqxTnlJWStJERKqhr7/+mt27dwPQokULunTp4nNEVZOSNKkIJWkiItVQdH803VQ9MSKTtEWLFoUHaoiURtKSNDMbaWZzzWyfmeWWsG66mTkzyzSz/aFpc7JiFRGJVBXrL/VHS44OHTrQokULwLuo7dq1a32OSCqTZLak7QaeBm4qwzbdnHP1Q9MRCYpLRKQkVa7+WrBgQfix+qMljpnplKeUW9KSNOfcNOfcJGB9so4pIhIPVa3+ysjIYM2aNcDhIxAl/pSkSXnV8DuAEnxuZjWBr4C7nHNzYq1kZtcA1wC0atWKOXNirlZhidpvZbZ///7AlUsQ4gliuQRBNSuXQNRfscp8+fLlOOcA6NixY7VNHJL1eaxdu3b48UcffRT470A1+56WSdLLxjmX1AkYCOSWsE59oD9QE6gH/A9wEOhd0v779u3r4gkIT3K42bNn+x2Ccy5471NQyiVoElUuwGKn+iumWGX+8MMPh78vY8aMifsxK4tkfU937twZLu+aNWu6rKyspBy3vFR/FS0RZVNc/RXI0Z3Ouf3Ouc+cc9nOuUzn3BPAp8AIv2MTESlOZai/lixZEn6sU52J16xZs/AlTrKzs8P3SxUpSSCTtCLkAxojLiKVUaDqLyVpyad+aVIeybwER6qZ1cY7BYCZ1Q5Nh1VcZtbfzHqaWY3QOtcApwNvJyteEZECVan+ysjI4Ouvvwa8QQN9+vTxOaLqQUmalEcyW9JG4/XLmAakhh4fBDqa2amhawl1CK3bCZgC7AW2hLYd6pxbcvhuRUQSrsrUX8uWLQsPGujRowd169b1OaLqQUmalEfSRnc65/4J/LOIpzfidbYtWHcSMCnhQYmIlEJVqr90qtMfxx57LKmpqeTl5bFmzRr27t1Lo0aN/A5LAq4y9UkTEZEKUpLmjzp16tC7d+/w/OLFi32MRioLJWkiItVIZHJw/PHH+xhJ9ROZFC9btszHSKSyUJImIlJNZGRk8M033wAaNOCHY489NvxYSZqUhpI0EZFqInrQQJ06dXyOqHo57rjjwo+VpElpKEkTEakm1B/NX7179yYlxfvZXbNmDZmZmT5HJEGnJE1EpJpQfzR/1a1bl27dugHeLRl15wEpiZI0EZFqQi1p/tMpTykLJWkiItWABg0EQ+TggaVLl/oYiVQGStJERKoBDRoIBrWkSVkoSRMRqQZ0qjMYjjnmmPDjL7/8kuzsbB+jkaBTkiYiUg1EttpEtuZIcjVp0oT09HQAcnJyWLVqlb8BSaApSRMRqQa++OKL8OPIflGSfDrlKaWlJE1EpIrLyspi9erV4fnIe0hK8mnwgJSWkjQRkSruq6++Ijc3F4CuXbvSsGFDnyOq3nR7KCktJWkiIlVc5KnOyI7r4o/I051ffPEF+fn5PkYjQaYkTUSkilN/tGBp06YNrVq1AiAzM5O1a9f6HJEElZI0EZEqLvKUmlrSgkGDB6Q0lKSJiFRh+fn5LF++PDyvJC0Y1C9NSkNJmohIFfbDDz+wf/9+AFq2bEmbNm18jkhAIzyldJSkiYhUYZH9nY455hjMzMdopED04IGCW3aJRFKSJiJShX377bfhxzrVGRzp6enhS6Hs3LmTrVu3+hyRBJGSNBGRKiwySdPIzuBISUmhT58+4fnIEbgiBZSkiYhUYWpJC67I90NJmsSiJE1EpIravn07u3btAqBu3boceeSRPkckkZSkSUmUpImIVFGRl97o3bs3qampPkYj0ZSkSUmUpImIVFG6iG2w9ejRgxo1agDeaemMjAyfI5KgSVqSZmYjzWyume0zs9xSrH+8mS00swNmts7MRiUjThGRaJW1/tI9O4Otdu3aHHXUUeH5yJZPEShDkmZm7St4rN3A08BNpThWI+ADYDLQBPgt8KyZnVTBGESkGqqu9Zfu2Rl8OuVZOdx3330cffTR3HvvvcycOTNpxy1LS9p6M5tqZsPMrMwdG5xz05xzk4D1pVh9OHAQuN85d8g5NwN4G7imrMcVkWAwMwYNGuTXxVSrXf2VmZnJ119/DXiXe+jZs2cyDy+lpCStcli8eDGrVq3io48+YuPGjUk7bo0yrNsd+DXwJPCMmf0TeME5ty4BcfUBlrrCl2BeCoyOtbKZXUOoAmzVqhVz5sxJQEgkbL+V2f79+wNXLkGIJ4jlEiQ+lE21q79Wr14dvop9+/btWbhwYVz2W5UE7Xs6d+7cQMQTtHIJggULFoQf5+bmJq18rKy3ojCzFOB8YCxwLvAp8Dww2TlXmr4aA4GPnHNFJohm9iJQwzn3q4hlVwJ/cc51LW7/xx9/vFu8eHFpXkqpRP7Xr9t2HG7OnDkMHDjQ7zAC9z4FpVyCJJHvkZktcc4dX4r1qk395Zzjhx9+4JVXXqF79+4MGzYsLvutSoLwPd21axfNmzcHoFatWmRkZJCWluZrTEEolyDZt28fjRo1ArxW6czMTGrXrh23/RdXf5V54IBzLh8oaL7/GjgRmABsMLMhFQk0QgbQKGpZY2BfnPZfas45Zs+eHYgffhGpmOpUf5kZbdu2pX///krQAqxZs2a0b+91mTx06FD4FLUEx4oVK8KP09PT45qglaRMSZqZ9TWzZ4AfgBvwOtK2dc51Bm4DXopTXMuB6F6ux4aWi4iUmeovCSr1Swu2yPekS5cuST12WUZ3fgHMxuvHdpZz7njn3D+cc/sBnHOvAUW20ZpZqpnVBmqG5muHpli9iN8G6prZn8ysppmdidcZ97lSvzIRkRDVXxJkStKCLfJ6g8m+a0dZWtKeBdo55652zsXsNOGca1nM9qPxRjxNA1JDjw8CHc3sVDPbb2YdQvvZA5wHjAD24vUZ+a1zbkHMPYuIFE/1lwSWkrRgi3xPunYttltp3JV6dKdz7tmKHMg590/gn0U8vRGoH7X+Irz+IiIiFaL6S4IsOklzzvl1qRqJkpOTw8qVK8PzgT3dKSIiIvGXnp5Ow4YNAW+055YtW3yOSAqsXr2a7OxsADp27Bh+n5JFSZqIiIiPUlJS6NOnT3hepzyDw+9bqylJExER8VlkArB06VIfI5FIkYMGlKSJiIhUQ5H3Vo1MDMRfft//VkmaiIiIz4477rjwYyVpweCc0+lOERGR6q5Hjx7UrFkTgO+++46ffvrJ54jku+++Y8+ePQA0adKEDh06JD0GJWkiIiI+S0tLo1evXuF5tab5L7oVzY/LoihJExERCQD1SwsWv091gpI0ERGRQFCSFiyR74EfgwZASZqIiEggRA4e0GU4/KeWNBEREQGgd+/epKR4P8tff/01mZmZPkdUfe3atYtNmzYBUKtWLbp37+5LHErSREREAqBu3brhZMA5x/Lly32OqPqKbEXr2bMnaWlpvsShJE1ERCQg1C8tGJYsWRJ+7Fd/NFCSJiIiEhhK0oIhMknr27evb3EoSRMREQkIDR4Ihsgk7fjjj/ctDiVpIiIiARE5inDlypVkZ2f7GE31tGfPHtatWwccfpHhZFOSJiIiEhBNmjShU6dOAOTk5PDVV1/5HFH1E9mC2bNnT2rVquVbLErSREREAkT90vy1ePHi8GM/+6OBkjQREZFAUZLmr6AMGgAlaSIiIoGiwQP+CsqgAVCSJiIiEiiRLWnLly8nLy/Px2iql927dwdm0AAoSRMREQmUNm3a0KZNGwAyMzNZs2aNzxFVH0EaNABK0kRERALnxBNPDD9euHChj5FUL0HqjwZK0kRERAJHSZo/lKSJiIhIsZSk+SNIgwYgiUmamaWa2QNm9qOZZZjZZDNrXsS6A83Mmdn+iGl+smIVEYmmOkySKTJBWLFiBQcPHvQxmuohaIMGILktabcCFwL9gCNCy14tZv0851z9iOnkhEcoIlI01WGSNI0bN6Zbt24A5Obm8sUXX/gcUdUXtEEDkNwk7RrgPufceufcXuDPwDlmlp7EGEREykt1mCSVTnkmV9D6owHUSMZBzKwR0AEIl4Bzbp2Z7QN6AxtjbJZqZt8DaaHtxjnnlhex/2vwKlBatWrFnDlz4hr//v37477PqiKIZROEeIJYLkFS2comkXWY6i//BL1smjRpEn783nvv0adPn6QcN+jlkigffPBB+HGDBg1ilkHSy8Y5l/AJaA84oFPU8u+AUTHWbw30wUsiGwMTgF1A25KO1bdvXxdvs2fPjvs+q4qglE3o8+W8j7T/glIuQZLI9whY7KpAHab6K7mCXjaff/55+DvTtWvXpB036OWSKJ06dQqX98KFC2Ouk4iyKa7+StbpzozQ30ZRyxsD+6JXds5tc84td87lOuf2OOduA34Czk1wnCIisagOk6Tr06cPaWlpAHz77bf89NNPPkdUdW3bto0NGzYAUKtWraS1WpYkKUmac24PsAkI35DMzDoDDYEVpdxNPmDxj05EpHiqw8QPtWrV4phjjgnPL1q0yMdoqrYFCxaEH59wwgnUrFnTx2j+K5kDB54DbjGzTmbWELgPmOac2xi9opmdYWZdzSzFzOqb2V1AK2BaEuMVEYmkOkySToMHkmP+/P9eIeekk07yMZLCkpmk/R14D1gEbAFSgVEAZna5me2PWLcPMBPvFMN6oD9wlnPu+yTGKyISSXWYJJ2StOSIbEk7+eTgXC0nKaM7AZxzecAfQ1P0cxOBiRHzjwCPJCs2EZGSqA4TP0Qnac45zHTWPJ4OHTrE4sWLw/PVtSVNREREyuBnP/sZDRs2BGDHjh1s2rTJ54iqnmXLlnHo0CEAunTpQqtWrXyO6L+UpImIiARUSkpKoVtEafBA/AW1PxooSRMREQm0yFOen332mY+RVE1B7Y8GStJEREQCLbJ155NPPvExkqrHOVeoJU1JmoiIiJTagAEDwoMFli5dSkZGRglbSGlt2rSJrVu3AlC/fn169uzpc0SFKUkTEREJsKZNm9KrVy8A8vLymDdvns8RVR2RrWj9+vUjNTXVx2gOpyRNREQk4E4//fTw448//tjHSKqWIPdHAyVpIiIigTdw4MDwYyVp8RPk/migJE1ERCTwTjvttPDjRYsWkZmZ6WM0VUNmZiZffPFFeL5fv34+RhObkjQREZGAa968OUcffTQAubm5hU7TSfksXryYvLw8AHr06EGTJk18juhwStJEREQqAfVLi6/IMgzaRWwLKEkTERGpBJSkxdf06dPDj88880wfIymakjQREZFKILJf2ueff87Bgwd9jKZy27t3b6G7NwwePNjHaIqmJE1ERKQSaN26Nd26dQMgOzubzz//3OeIKq/Zs2eH+6Mdd9xxtGjRwueIYlOSJiIiUknolGd8RJ7qPPvss32MpHhK0kRERCoJJWnxUVmStBp+ByAiIiKlE5mkLViwgEOHDlGrVi0fI/ov5xwLFizg5Zdf5ocffqBTp04ceeSRdO3aldNOO4369ev7HSIA69atY926dQDUrVs3kBexLaAkTUREpJJo164dXbp0Yd26dWRlZTF37lzfO71nZWXx2muv8dRTTxW6OGykFi1a8NxzzzFs2LAkR3e4GTNmhB8PHDgwMEluLDrdKSIiUomcd9554cfvvPOOj5HA1q1b6devH1dffXWRCRrAjz/+yEUXXcQVV1zB7t27kxjh4SJPdQ4ZMsTHSEqmJE1ERKQSiWyNmjJlCs45X+JYu3Ytp5xyCitWrAgvq127NmPHjmXSpEncd999XH311bRp0yb8/KuvvkqvXr18G5mam5vLzJkzw/NB7o8GOt0pIiJSqZx66qk0adKE3bt3s3nzZpYuXUrfvn2TGsOyZcs455xz2LFjBwCpqancfffd/Pa3v6Vp06aF1t29ezc33HADr732GgBbtmzh3HPPZd68eRx11FFJjXvhwoXs27cPgPbt24cvaRJUakkTERGpRNLS0rjgggvC81OmTEnq8RcuXMjpp58eTtDq1KnDO++8w7hx4w5L0ACaNGnCq6++yuTJk8PP7969m3POOYetW7cmNfboUZ1mltTjl5WSNBERkUom+pRnsmzfvp3hw4eTkZEBQOPGjZkxYwbnn39+idsOHz6cadOmUa9ePQA2bdrEueeey969exMac6TK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qpDCwsJUwZeTk2PVEd7VNm7ciMcee0wVeM2aNcOmTZvQsmXLYt8XEBCA//73v/jb3/6mnvvXv/6F2bNnuzRercTEROzevRuApQB96KGHdLs2UUXVokULVWN98uRJpKWlOeW8Y8aMsWpJGDx4MC5duoTvv/8e8fHx6Natm3pt8eLFeOGFF1zSzSIvLw9PPPEEfvrpJ/XcI488gmPHjiEpKQnx8fHo16+fem3u3Ll4//33nXLt+Ph4XL16FYCljG3UqJFTzussTNKowjKiyTM5ORmPP/64qq5v1KgR1qxZg1q1atn1fl9fX3z//fdWydHIkSOxYcMGV4R7m6VLl6rtHj16oGbNmrpcl6giq1y5slpsXUrplCbPlStX4vPPP1f7b775JubOnYvAwEAAQEREBFavXo1Ro0apY7744gs1Mt6Z3n33XSxatEjtv/TSS1iyZAkaN24MAKhTpw4WLlyIp59+2uo9K1ascPjahZs6zTRoAGCSRhWYtqlu5cqVLu9zkZOTg8cff1wt4lu7dm2sXbsWoaGhpTqPp6cnFixYoEZ85ebm4tFHHy1yZKgzaZs6+/bt6/LrEZGFthnO0SXtLly4gGHDhqn9v/71r5g4ceJtCYqXlxc+++wzDBgwQD03ZswYrF692qHra8XFxWHChAlq/8UXX8Qnn3xyWyxCCPznP/+xGvQ1atQopKenO3R9Mzd1AjomaUIITyHER0KIy0KIVCHEYiFEUDHH9xRCHBVCZAghjggh7tMrVqoY7r77bgQFWf4Ez58/7/LaqDfffBNbt24FYOn38f3336N+/fplOpe/vz/i4uLUfElXr17FoEGDkJeX57R4C7t48SK2bNkCwFJgPvLIIy67lhmxDCMjadcd3rhxo0Pnev3119UI7dDQUMycObPIGiQPDw988803qj+slBKDBg3ChQsXHIoBsEyBNHjwYLV/3333YerUqUXG4u3tjYULF6pyOzExEe+++65DMZh50ACgb03amwD+CuBuALdmiptv60AhRASAJQD+CaB6wb9LhRANXB4lVRienp5W3xDnz7f55+gUK1euxNSpU9X+xIkT8Ze//MWhc9atWxc//vij6quyadMmTJw40aFzFmfZsmWqP0pMTAxq167tsmuZFMswMow2Sdu6dStycnLKdJ5du3bh22+/Vftz5sxRSU9RKlWqhJ9++kkNKLh06ZLDXwpzcnIwYMAA/PnnnwCAevXqYcGCBfD09Cz2fYGBgVZNrp988kmZm3+zsrKsBmJU9CRtBIDJUsrTUso/AYwB0LOIQmsogL1Sym+llNlSyu8A7Ct4nshptN/iFi1ahJs3bzr9GpcuXcJTTz2l9h9++GGMGTPGKeeOiYnB+PHj1f57772nauucTdvU+eijj7rkGibHMowM06BBA1Xznp6ejr1795b6HFJKvPzyy2q/T58+uO8++yp4g4OD8e2336parrVr12LSpEmljuGW8ePHq6ZGLy8vLFq0SPWHK8ngwYPVl9y8vDy8/vrrZYrh0KFDqn9wREREicmqEXRJ0oQQ1QHUA6D+qqSU8QBuALA1pK2V9tgC+wqeJ3Ka9u3bo2nTpgAss/ovW7bMqeeXUmL48OGqH1poaChmz57t1M6pb731lmqKyMvLw6BBg5w+pcilS5esJpLs06ePU89vdizDyAwcbfL88ccfsX37dgCWpsOPPvqoVO+PjY3FP/7xD7U/fvx41QWiNP773/9i8uTJav+f//xnqSaRFUJgxowZqtZtzZo1Zeonpy3TzNgfDdBv7c5qBf/+Wej565rXtKoWcazNVU+FECNg+ZaL4OBgp/ctSktL0230XHnjDvcmOjpaLQ01bdo0hIWFOXzOW/dl5cqVWL58uXp+9OjROHz4sMPnL2zUqFHYv38/0tLScObMGfTv37/M3y5t+fbbb9WUIc2bN0d8fDzi4+NLfZ5y/PfisjKM5Zdxytu90c5ftnTp0lIlFrm5uXjllVfUft++fXH27FmbA46Kuy9/+ctfsHz5chw+fBj5+fno27cvvv76a7vXFL5w4QJGjhypuk60b98ebdu2LdPvoVevXmqE56hRo/DFF1+UanLt7777Tm3Xq1fPrhh0/5uRUrr8AaAGAAmgdaHn/wTwsI3jlwH4tNBz0wAsKela7dq1k862fv16p5/TXbjDvTlz5ows+PuUHh4eMjk52eFzrl+/Xp48eVJWqVJFnfuFF15wQrRFW7BggboWAPl///d/TjlvTk6ODA8PV+edP39+mc/lqr8XAHukG5RhLL/0Vd7uTXx8vPocVq1aVebk5Nj93i+++EK9t2bNmvLatWtFHlvSfUlMTJQBAQHqfF27dpVZWVklxpCRkSHbt2+v3hcWFiYvXLhg989QWFJSkqxcubI634IFC+x+b0pKivT09JQApBDC7jhc8TdTXPmlS3OnlPI6gEQAbW89V9CxthqAQzbeclB7bIE2Bc8TOVX9+vVVM0J+fr7Vt6uyysvLw+DBg9Xw8MjISKvqfVcYMGCA1YSPw4cPVyO4HLF8+XKcO3cOgGWtzscee8zhc5Y3LMPIDBo2bIjwcMuYldTUVLtXH8jIyLCa/PXNN99EjRo1yhxH3bp1MXfuXLW/ceNGDB8+vNiJbnNzczF48GDs2bMHgKUfmnYwQlmEhYVZ9bEbN26c3QMqfv31VzXwISoqyqE4XEnPgQNfAXhDCNFQCFENwGQAv0opz9g4dh6A9kKIAUIIbyHEAADtAMy1cSyRw4YMGaK2p02bhqysLIfO991332HHjh0ALIXRd999h8qVKzt0TnvMmDFDzbt26dIlDBs2zOEZwqdPn662hw8fbrVESwXDMowMJYSwWgVAO7l0caZPn47k5GQAln6xzz//vMOxPPjgg1YDB+bNm4dRo0bZTJJyc3MxaNAgqwlrp0yZgk6dOjkcx5gxY9Sk2vHx8Zg1a5Zd71u5cqXa1k5sbjpFVbE5+wHAE8DHAK4ASIVleHpQwWsDAaQVOr4ngKMAMgr+vc+e67C5QF/ucm/S09NlcHCwqjafMWNGmc+1a9cu6eHhoc714YcfOjHSkv3yyy9WzZ6fffZZmc919OhRq6bgxMREh2Irr82dUqcyjOWXvsrjvVm2bJn6TIaHh8u8vLQDmTkAAAvmSURBVLxij09JSZE1a9YsVdlm733Jz8+XTz/9tFV50717d3n69Gl1zOHDh2V0dLTVMS+99JLMz8+36xr2+Ne//qXOHRISItPT04s9Picnx6q5dt++fXZfS+/mTt2SNL0eLOT05U73ZsqUKepDW7duXZmZmVnqc6SkpMj69eur83Tq1KlU/Uac5eWXX1YxVKpUSR48eLBM5xkxYoQ6T9++fR2OqzwnaXo8WH7pqzzem6ysLBkYGKg+l2vXri32+Jdeekkd27hxY7v6jpXmvmRnZ8t+/fpZJWEAZIcOHWTLli1Vv69bj+eff96pCZqUUt68eVOGhYWpa0ycOLHY4zdv3mzVL6408bhlnzSi8uDZZ59VE7SePXsW33zzTanen5+fj8GDByMhIQEAUK1aNcyfPx9eXnoNov6fSZMmqQXks7Ky0L9/f9y4caNU59i3bx9mzpyp9rVr+BGRMXx8fPDEE0+ofW3fsMJOnDhh1V1h8uTJ8PHxcWo8t1YBKLzg+e7du3Ho0CHV78vLywvjx4/HZ5995vT1MStXrmy18sCHH35Y7DJ5c+bMUdsPPvig6dbr1GKSRlTAz88Pb7zxhtqfOHFiqfqm/fOf/7RaqH3OnDmIiIhwaoz2qlSpEhYuXAg/Pz8AwLFjx9C/f381jUZJ8vLy8Nxzz6n1TGNjYx1eIYGInEPbh3bx4sVIS0u77RgpJV577TX1mY+JiXHZ/IZCCIwbNw6rV69G7969b5sGo3v37jhw4ADee+89lyVEw4YNQ/Pmlhlu0tPT8dJLL9k8LjEx0SqxHThwoEvicRYmaUQahWvTtPMKFWfBggUYN26c2u/Xr5/hE75GRkbiyy+/VPurVq3C6NGj7XrvzJkz1WzgPj4+mD59uqm/bRJVJO3atcOdd94JwJKQzJs377ZjZs6cibi4OLU/ZcoUl3+GY2NjsXLlSpw7dw4rV67Erl27cPnyZaxdu1YlUK7i5eWFL774Qu0vXbrU6ue/5V//+pdV4tqlSxeXxuUoJmlEGn5+flbV5jNmzLCqGrflhx9+wODBg291FkeXLl0wfPhwF0Zpv0GDBuGtt95S+//+978xceJEFastZ8+exZtvvqn233zzTdxxxx0ujZOI7CeEwJNPPqn233jjDZw+fVrtHzt2zKom6dlnny3VjP6OCg0NRe/evdGhQwddl1qKjo7G008/rfafeeYZnDx5Uu2fP3/eqgvH22+/rVtsZcUkjaiQZ599Fo8//rjV/q25fbSklJgzZw4GDhyomgXvuusuLF68uMRFgvX0/vvvW/08b731Fp566imbTbnHjx9HdHQ0rl+/DgBo1KgRxo4dq1usRGSfUaNGqS9PaWlpGDJkCLKzs7F37148/PDDyMjIAAA0a9bMakFydzd58mSVGF66dAmxsbFISEjAxYsX8eijj6pyr0OHDrj33nuNDNUuTNKIChFCYNasWap6PisrCzExMRg3bhzS0tKQl5eHI0eOIDY2FsOGDVMdY5s1a4a1a9eabpFeDw8PzJkzx6paf86cOejatSuWLl2KrKwspKamYtmyZejcuTMSExMBWJoPvvrqK/j6+hoVOhEVoUqVKpg/f776Qrh161YEBASgY8eOOHXqFABL39Tvv/9e9U2tCAIDA7F06VI1L2ViYiIaNmyIxo0bq3VLAeDdd98tF104mKQR2eDv74+lS5eq9egyMzMxYcIEBAQEwMvLCy1atMC6devU8U2bNsXatWtVfzazqVy5Mv773/9aNZHs3LkTffv2RVBQEGrUqIE+ffrg6tWrACz/AaxYsQLdu3c3KGIiKklUVBTGjx+v9tPT01V/q1tJXIsWLYwKzzDR0dFYsmQJvL29AVhaPW4NrvDw8MAnn3yC3r17Gxmi3ZikERWhSZMmWLt2Ldq2/d/qPoVn0/bw8MBLL72EnTt3IiQkRO8QS6VSpUqYPXs2Pv74Y6vRV2lpaaq5FgCCgoKwbt063H///UaESUSl8NZbb2HixIlWI8mjo6Nx8ODBCrmE2y09e/bEypUr0aFDB1XeVatWDStWrLBaSsrsmKQRFaNdu3bYvXs35s6di3r16qnnq1evjp49e2Lfvn349NNPVY2b2Qkh8Oqrr+LYsWN466230LBhQ/V8q1at8OKLL2L37t2IiooyOFIisoenpyfGjh2L+Ph4nDp1Ctu3b8fGjRvRqFEjo0Mz3L333otdu3bh2rVr2Lx5M06dOoVevXoZHVap6D/LJlE54+HhgSFDhmDw4MH4888/UbVqVVMNDCiLO+64AxMmTMAHH3yAhIQE1KxZs9wkmkRkW6NGjZic2VCtWjVER0cbHUaZMEkjspMQAjVq1DA6DKcSQqBBgwZGh0FERDawuZOIiIjIhJikEREREZkQkzQiIiIiE2KSRkRERGRCTNKIiIiITIhJGhEREZEJMUkjIiIiMiEmaUREREQmxCSNiIiIyISYpBERERGZEJM0IiIiIhMSUkqjY3AqIcRlAAlOPm0QgCtOPqe74L2xjffFNlfdl/pSylouOK+uWH7pjvfGNt6Xorni3hRZfrldkuYKQog9Usr2RsdhRrw3tvG+2Mb7oj/e86Lx3tjG+1I0ve8NmzuJiIiITIhJGhEREZEJMUmzz1dGB2BivDe28b7YxvuiP97zovHe2Mb7UjRd7w37pBERERGZEGvSiIiIiEyISRoRERGRCTFJIyIiIjIhJmnFEEJ4CiE+EkJcFkKkCiEWCyGCjI7LaEKI/kKIzUKIG0KIXKPjMQshxGQhxNGC+5IshPhaCBFgdFxmIIT4UAjxR8G9uSSEWCSEqGd0XO6M5ZdtLL9sY/lVPKPKMCZpxXsTwF8B3A0gvOC5+caFYxrXAMwA8LLRgZhMHoBBAAIBtILlb+YbQyMyj/kAWkspqwFoACARwPeGRuT+WH7ZxvLLNpZfxTOkDOPozmIIIRIAvC+lnFWw3wjAKQANpZRnjIzNDIQQ3QCskVJ6GR2LGQkhHgCwQEpZ3ehYzEQIUQXAewCGSSkDjY7HXbH8Kh7Lr+Kx/CqanmUYa9KKIISoDqAegL23npNSxgO4AaClUXFRudIDwCGjgzALIcQTQog/AaQBeAnAu8ZG5L5YfpETsPwqxIgyjN8gilat4N8/Cz1/XfMakU1CiEcBDAfQ1ehYzEJKuQDAAiFECICnARw2OCR3xvKLyozll21GlGFM0oqWWvBv4areGrB8GyWySQjxGIAvATwspdxndDxmI6W8IIT4GsBpIUQ9KeVVo2NyQyy/qExYfpVMzzKMzZ1FkFJeh6VjYNtbzwkhImD5FsoqYLJJCDEMlgLuISnleqPjMTEvAFUAhBkdiDti+UVlwfKrVHQpw5ikFe8rAG8IIRoKIaoBmAzg14re6bZgaL8vAJ+Cfd+ChzA4NEMJIV4E8DGA+6WUW42OxyyEEB5CiOeFELUL9sMBTAdwBsBxI2Nzcyy/bGD5ZRvLr6IZWYYxSSveJABxAHYDSALgCcsQ5YpuMIAMAL/Cck8yCh71jQzKBKbBUlOxXgiRduthdFAm0RvAESFEOoCdAG4CiJVScp4q12H5ZRvLL9tYfhXPkDKMU3AQERERmRBr0oiIiIhMiEkaERERkQkxSSMiIiIyISZpRERERCbEJI2IiIjIhJikEREREZkQkzQiIiIiE2KSRkRERGRCTNKIiIiITIhJGpVbQogwIcRFIcQgzXOzhBDrhRCeRsZGRFQSlmFUEi+jAyAqKyllshBiIIAlQoi9ADoAeABAayllnrHREREVj2UYlYRrd1K5J4R4F8ATAEIAPCKlXGdsRERE9mMZRkVhkkblnhAiBEACgB1Syq5Gx0NEVBosw6go7JNG5ZoQwgPAXAArADQRQjxlcEhERHZjGUbFYZ80Ku/eBlAXlr4cHQAsF0LsklIeMTYsIiK7sAyjIrG5k8otIcRfAPwfgHuklEcLnnsbwEAA7aWU6UbGR0RUHJZhVBImaUREREQmxD5pRERERCbEJI2IiIjIhJikEREREZkQkzQiIiIiE2KSRkRERGRCTNKIiIiITIhJGhEREZEJMUkjIiIiMqH/B2hoLhoCMu7KAAAAAElFTkSuQmCC\n", "text/plain": [ "Rotating shaft with four cogs
\n", "\n", "In the illustration above, the shaft rotates at a certain speed and the four (4) cogs attached to it rotate at the same speed. However, if we consider frequency of the cogs from an observer watching the shaft rotate, they will see four cogs pass for each rotation of the shaft. Thus, the cog pass-frequency is 4x the shaft frequency. If the shaft is defined as the reference, then it has order 1.0 and the cogs have order 4.0. This is true regardless of rotational speed.\n", "\n", "Mathematically, we can define a signal's order as a function of its frequency relative to a *reference freqency*:\n", "\n", "$$\\text{order} = \\frac{f}{f_\\text{ref}}$$\n", "\n", "Despite looking similar to the definition of harmonics, orders are not required to be integer multiples and any frequency can be used as a reference frequency.\n", "\n", "Linear equation visualized as a line in two dimensions
\n", "\n", "where the coefficients are $a_1 = -m$ and $a_2 = 1$, and constant $b$ is the $x_2$-intercept, usually notated as the $y$-intercept in slope-intercept form. From the figure, it is obvious to visualize the linear relationship between the two variables, $x_1$ and $x_2$. For a linear equation of three variables, the geometric interpretation is a plane instead of line. Linear equations with more variables are difficult to visualize, but the same concepts apply mathematically. \n", "\n", "If multiple linear equations are considered together, it is called a *system of linear equations* and is of the form:\n", "\n", "$$a_{11}x_1 + a_{12}x_2 + \\dots + a_{1n}x_n = b_1$$\n", "\n", "$$a_{21}x_1 + a_{22}x_2 + \\dots + a_{2n}x_n = b_2$$\n", "\n", "$$\\vdots$$\n", "\n", "$$a_{m1}x_1 + a_{m2}x_2 + \\dots + a_{mn}x_n = b_m$$\n", "\n", "with $m$-equations and $n$-variables. By introducing another line in the previous figure, a system of two linear equations with two variables can be visualized as:\n", "\n", "\n", "System of linear equations visualized as lines in two dimensions
\n", "\n", "where it is easily observed that the *solution*, i.e. the value of each variable that satisfies all equations, is the intersection point of the two lines. Linear system solutions are discussed more in a later section.\n", "\n", "In matrix form, a linear system of $m$-equations and $n$-variables is written as:\n", "\n", "$$\n", "\\begin{bmatrix}\n", "a_{11} & a_{12} & \\dots & a_{1n} \\\\ \n", "a_{21} & a_{22} & \\dots & a_{2n} \\\\\n", "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n", "a_{m1} & a_{m2} & \\dots & a_{mn}\n", "\\end{bmatrix}\n", "\\begin{bmatrix}\n", "x_1 \\\\ x_2 \\\\ \\vdots \\\\ x_n\n", "\\end{bmatrix}\n", "=\n", "\\begin{bmatrix}\n", "b_1 \\\\ b_2 \\\\ \\vdots \\\\ b_m\n", "\\end{bmatrix}\n", "$$\n", "\n", "and written more concisely as:\n", "\n", "$$A \\pmb{x} = \\pmb{b}$$\n", "\n", "where $A$ is the coefficients matrix, $\\pmb{x}$ is the variables vector, and $\\pmb{b}$ is the contants vector." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Formulation\n", "\n", "Formulating a system of linear equations results from deriving equations that define a system or process. It may also result from the linearization of a nonlinear system of equations, but that is outside the scope of this notebook.\n", "\n", "System of linearly dependent equations visualized as lines in two dimensions
\n", "\n", "It is clear that any one of these lines can be discarded and the same solution is still obtained. This means that any of the equations can be derived algebraically from the other equations and are therefore linearly dependent.\n", "\n", "Description | \n", "Symbol | \n", "Value | \n", "
---|---|---|
Is full rank? | \n", "\n", " | True | \n", "
Variables | \n", "$x_1$ | \n", "-22 | \n", "
--- | \n", "$x_2$ | \n", "-13.8 | \n", "
--- | \n", "$x_3$ | \n", "16.2 | \n", "
Cartesian axes oriented in three-dimensional space
\n", "\n", "It is clear the rotation matrix in this context defines the orientation of one coordinate system *relative to* another. For two coordinate systems *oriented* identically, even if positioned differently, the rotation matrix is equal to the identity matrix:\n", "\n", "$$R = \\begin{bmatrix}1 & 0 & 0 \\\\ 0 & 1 & 0 \\\\ 0 & 0 & 1\\end{bmatrix}$$\n", "\n", "With rotations applied, each Cartesian vector must remain orthogonal to each other and of unit magnitude. As an example, Cartesian axes rotated about the y-axis by $90\\deg$ has a rotation matrix equal to:\n", "\n", "$$R = \\begin{bmatrix}0 & 0 & -1 \\\\ 0 & 1 & 0 \\\\ 1 & 0 & 0\\end{bmatrix}$$\n", "\n", "which can be visualized as:\n", "\n", "\n", "Cartesian axes rotated about y-axis
\n", "\n", "Planar coordinate transformation of axes
\n", "\n", "From the figure, equations can be derived to express the rotated coordinate system, $\\left(\\hat{x}', \\hat{y}' \\right)$, as a function of the original coordinate system, $\\left(\\hat{x}, \\hat{y} \\right)$:\n", "\n", "$$\\begin{bmatrix}\n", "\\hat{x}' \\\\ \\hat{y}'\n", "\\end{bmatrix} = \n", "\\begin{bmatrix}\n", "\\cos\\theta & \\sin\\theta \\\\\n", "-\\sin\\theta & \\cos\\theta\n", "\\end{bmatrix}\n", "\\begin{bmatrix}\n", "\\hat{x} \\\\ \\hat{y}\n", "\\end{bmatrix}\n", "$$\n", "\n", "where the coefficients define the rotation matrix of the coordinate transformation. This formulation corresponds to a *passive transformation*, whereas an *active transformation* can be derived by considering the rotation of a vector or point in a given coordinate system:\n", "\n", "\n", "Planar coordinate transformation of vector
\n", "\n", "For the sake of deriving equations, the figure illustrates two scenarios: rotating of unit vector $\\hat{a} = [1, 0]$ on left, and rotating of unit vector $\\hat{a} = [0, 1]$ on right. Equations can be derived to express the rotated vector components, $\\left(\\hat{a}'_x, \\hat{a}'_y \\right)$, as a function of the original vector components, $\\left(\\hat{a}_x, \\hat{a}_y \\right)$:\n", "\n", "$$\\begin{bmatrix}\n", "\\hat{a}'_x \\\\ \\hat{a}'_y\n", "\\end{bmatrix} = \n", "\\begin{bmatrix}\n", "\\cos\\theta & -\\sin\\theta \\\\\n", "\\sin\\theta & \\cos\\theta\n", "\\end{bmatrix}\n", "\\begin{bmatrix}\n", "\\hat{a}_x \\\\ \\hat{a}_y\n", "\\end{bmatrix}\n", "$$\n", "\n", "Notice the rotation matrix of the active transformation is the inverse of the passive transformation, which equals the matrix transpose since they are orthogonal.\n", "\n", "Rotation about an arbitrary axis
\n", "\n", "The rotation matrix for the passive transformation about an arbitrary axis of rotation, with magnitude $\\theta$ and direction $\\hat{\\theta} = u_x\\hat{x} + u_y\\hat{y} + u_z\\hat{z}$, is calculated as:\n", "\n", "$$R = \n", "\\begin{bmatrix}\n", "u_x u_x (1-\\cos\\theta) + \\cos\\theta & u_x u_y (1-\\cos\\theta) + u_z \\sin\\theta & u_x u_z (1-\\cos\\theta) - u_y \\sin\\theta \\\\\n", "u_y u_x (1-\\cos\\theta) - u_z \\sin\\theta & u_y u_y (1-\\cos\\theta) + \\cos\\theta & u_y u_z (1-\\cos\\theta) + u_x \\sin\\theta \\\\\n", "u_z u_x (1-\\cos\\theta) + u_y \\sin\\theta & u_z u_y (1-\\cos\\theta) - u_x \\sin\\theta & u_z u_z (1-\\cos\\theta) + \\cos\\theta\n", "\\end{bmatrix}\n", "$$\n", "\n", "Description | \n", "Symbol | \n", "Value | \n", "
---|---|---|
Initial position | \n", "$\\vec{r}$ | \n", "[10.0, 0.0, 0.0] | \n", "
Initial orientation | \n", "$A_x$ | \n", "[1.0, 0.0, 0.0] | \n", "
--- | \n", "$A_y$ | \n", "[0.0, 0.0, 1.0] | \n", "
--- | \n", "$A_z$ | \n", "[0.0, -1.0, 0.0] | \n", "
Local rotation vector | \n", "$\\vec{\\theta}$ | \n", "[0.0, 1.571, 0.0] | \n", "
Position after local rotation | \n", "$\\vec{r}'$ | \n", "[10.0, 0.0, 0.0] | \n", "
Orientation after local rotation | \n", "$A_x'$ | \n", "[0.0, 1.0, 0.0] | \n", "
--- | \n", "$A_y'$ | \n", "[0.0, 0.0, 1.0] | \n", "
--- | \n", "$A_z'$ | \n", "[1.0, -0.0, 0.0] | \n", "
Global rotation vector | \n", "$\\vec{\\Theta}$ | \n", "[0.0, 0.0, 1.571] | \n", "
Position after global rotation | \n", "$\\vec{r}''$ | \n", "[0.0, 10.0, 0.0] | \n", "
Orientation after global rotation | \n", "$A_x''$ | \n", "[-1.0, 0.0, 0.0] | \n", "
--- | \n", "$A_y''$ | \n", "[0.0, 0.0, 1.0] | \n", "
--- | \n", "$A_z''$ | \n", "[0.0, 1.0, 0.0] | \n", "