{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "g5HcQX4ZmX78", "outputId": "e5cce713-b95b-4b4b-a6d8-74585f3d5ed3" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Collecting opentorsion\n", " Downloading opentorsion-0.2.5-py3-none-any.whl (20 kB)\n", "Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from opentorsion) (3.7.1)\n", "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from opentorsion) (1.25.2)\n", "Requirement already satisfied: scipy in /usr/local/lib/python3.10/dist-packages (from opentorsion) (1.11.4)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->opentorsion) (1.2.1)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib->opentorsion) (0.12.1)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->opentorsion) (4.51.0)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->opentorsion) (1.4.5)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->opentorsion) (24.0)\n", "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->opentorsion) (9.4.0)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->opentorsion) (3.1.2)\n", "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib->opentorsion) (2.8.2)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib->opentorsion) (1.16.0)\n", "Installing collected packages: opentorsion\n", "Successfully installed opentorsion-0.2.5\n" ] } ], "source": [ "%pip install opentorsion\n", "import numpy as np\n", "import opentorsion as ot\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "source": [ "class TransientExcitations():\n", " \"\"\"\n", " This class is for creating transient excitations. The excitations\n", " currently availible are a step and an impulse.\n", "\n", " Attributes\n", " ----------\n", " ts : float\n", " Time step size\n", " t_excite : float\n", " Time instance for applying the excitation\n", " magnitude : float\n", " Excitation magnitude\n", " \"\"\"\n", "\n", " def __init__(self, ts, t_excite, magnitude):\n", " \"\"\"\n", " Parameters\n", " ----------\n", " ts : float\n", " Time step size\n", " t_excite : float\n", " Time instance for applying the excitation\n", " magnitude : float\n", " Excitation magnitude\n", " \"\"\"\n", "\n", " self.ts = ts\n", " self.excite = t_excite\n", " self.magnitude = magnitude\n", " self.impulse = 0\n", "\n", " def step_next(self, t):\n", " \"\"\"\n", " Calculates the next step excitation.\n", "\n", " Parameters\n", " ----------\n", " t : float\n", " Current time step\n", "\n", " Returns\n", " -------\n", " float\n", " Torque magnitude of the next step excitation\n", " \"\"\"\n", "\n", " if t >= self.excite:\n", " return self.magnitude\n", " return 0\n", "\n", " def impulse_next(self, t):\n", " \"\"\"\n", " Calculates the next impulse excitation.\n", "\n", " Parameters\n", " ----------\n", " t : float\n", " Current time step\n", "\n", " Returns\n", " -------\n", " float\n", " Torque magnitude of the next excitation\n", " \"\"\"\n", "\n", " width = 0.1\n", " if self.excite <= t <= self.excite + width:\n", " self.impulse += self.magnitude * (self.ts / width)\n", " elif self.excite + width <= t <= self.excite + 2 * width:\n", " self.impulse -= self.magnitude * (self.ts / width)\n", "\n", " return self.impulse\n" ], "metadata": { "id": "ydMK31VIm7rP" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "class PI():\n", " \"\"\"\n", " This class creates a discrete PI controller for a system.\n", "\n", " Attributes\n", " ----------\n", " Kp : float\n", " Proportional gain\n", " Ki : float\n", " Integral gain\n", " dt : float\n", " Time step\n", " setpoint : float\n", " Desired system output\n", " limit : float\n", " Output limit for integrator and controller\n", " \"\"\"\n", "\n", " def __init__(self, Kp, Ki, dt, setpoint, limit):\n", " \"\"\"\n", " Parameters\n", " ----------\n", " Kp : float\n", " Proportional gain\n", " Ki : float\n", " Integral gain\n", " dt : float\n", " Time step\n", " setpoint : float\n", " Desired output\n", " limit : float\n", " Output limit for integrator and controller\n", " \"\"\"\n", " self.Kp = Kp\n", " self.Ki = Ki\n", " self.dt = dt\n", " self.setpoint = setpoint\n", " self.limit = limit\n", " self.integral_error = 0\n", "\n", "\n", " def next_step(self, x):\n", " \"\"\"\n", " Calculates the next controller output, taking into account the controller gains and limit.\n", "\n", " Parameters\n", " ----------\n", " x : float\n", " Current system output\n", "\n", " Returns\n", " -------\n", " float\n", " Controller output\n", " \"\"\"\n", " error = self.setpoint - x\n", " self.integral_error += error*self.Ki*self.dt\n", " out = self.integral_error + error*self.Kp\n", "\n", " if self.integral_error > self.limit:\n", " self.integral_error = self.limit\n", "\n", " if out > self.limit:\n", " return self.limit\n", "\n", " return out" ], "metadata": { "id": "JT5_DvbLSAw4" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "# Simulating transient torque response" ], "metadata": { "id": "cclDxdP7nsvh" } }, { "cell_type": "markdown", "source": [ "## 1. Lumped element model\n", "\n", "![Lumped_mass_model.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAMAAAD4oy1kAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAEOUExURf///+bm5vX19d7e3hEREVBQUPf39x4eHgAAADo6OoiIiMPDwwsLC+rq6vv7+3l5eQYGBllZWWZmZkdHR6KiojIyMuLi4kBAQJKSkqenp52dnV1dXb29vWJiYtvb23Jycn9/f8nJyU1NTd/f3ygoKC0tLdTU1ExMTD8/P5eXl6+vr21tbcjIyENUchcsUXNzc2FhYYyMjNfX11RUVLi4uFpaWjMzM29vb7Kysmtra8zMzHt7e2dnZ0RERLq6utDQ0ChGfXOW07nK6Tlhp9Dc8KG44S1Pih00YOjt+CI+biY5XBgYGLOzs62trYODgyRAcRszW+Lp9tbg8sTT7Nzk9Ke848rX7kRyxO3y+QAAAHnZeMoAAABadFJOU///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ANHWim8AAAAJcEhZcwAADsMAAA7DAcdvqGQAACXbSURBVHhe7d3NiuvKfjfgBgssFgiDZn0JnuyJwQODTZJ3nYQz2pBweHP/V5KqkvzZkl1Lbcndrec5YbXcW1aV1apf/vr0GwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwG1X7s7Eo9u0UwM9TlNH2V/NqV5aXEbgoNu3U2ar8+DuA76goN3W9Dxn4Hl8dym36betjBVhty1JVCPwMyyKVfOs2Aa99qADD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)\n", "\n", "\n" ], "metadata": { "id": "cyEp0zw0zPpX" } }, { "cell_type": "markdown", "source": [ "We begin by creating an assembly of the lumped element model. The model consists of 5 lumped inertia elements and 3 shaft elements. In addition, 2 of the inertia elements are also gear elements. Since the disk elements are added to the smae nodes as the gear elements, ineria is added to the system through the disks. Therfore, inertia is not added separatey to the gear elements. The parameters used are presented in the tables below.\n", "\n", "Disk elements:\n", "\n", "| Component | Inertia $(I_i)$ | External damping $(d_i)$ |\n", "| --------- | --------------- | ------------------------ |\n", "| Disk 1 | 0.5 | - |\n", "| Disk 2 | 0.1 | - |\n", "| Disk 3 | 0.5 | 0.2 |\n", "| Disk 4 | 0.1 | 0.2 |\n", "| Disk 5 | 1.0 | 5.0 |\n", "\n", "Shaft elements:\n", "\n", "| Component | Stiffness $(k_i)$ | Internal damping $(c_i)$ |\n", "| --------- | ----------------- | ------------------------ |\n", "| Shaft 1 | 5000 | 10 |\n", "| Shaft 2 | 500 | 0.8 |\n", "| Shaft 3 | 500 | 0.2 |\n" ], "metadata": { "id": "7mWR65mlza4G" } }, { "cell_type": "markdown", "source": [ "### 1.1 Create model\n", "\n", "When creating the model, attention needs to be payed to defining the nodes. The nodes start from 0 and each disk is connected eiter via a shaft or a gear element. In the model below, nodes 2 and 3 are connected via gear elements, while the rest of the nodes are connected via shafts." ], "metadata": { "id": "URjospekEfuH" } }, { "cell_type": "code", "source": [ "\"\"\" Creating a model assembly \"\"\"\n", "\n", "# Model parameters\n", "I1, k1, c1 = 0.5, 5000, 10\n", "I2, k2, c2 = 0.1, 500, 0.8\n", "I3, k3, c3, d3 = 0.5, 500, 5, 0.2\n", "I4, d4 = 0.1, 0.2\n", "I5, d5 = 1, 5\n", "\n", "# Number of teeth in gear elements\n", "z1, z2 = 10, 80\n", "\n", "# Creating shaft elements\n", "# Syntax is: ot.Shaft(node 1, node 2, Length [mm], outer diameter [mm], stiffness [Nm/rad], damping)\n", "shaft1 = ot.Shaft(0, 1, L=None, odl=None, k=k1, c=c1)\n", "shaft2 = ot.Shaft(1, 2, L=None, odl=None, k=k2, c=c2)\n", "shaft3 = ot.Shaft(3, 4, L=None, odl=None, k=k3, c=c3)\n", "\n", "shafts = [shaft1, shaft2, shaft3]\n", "\n", "# Creating disk elements\n", "# Syntax is: ot.Disk(node, Inertia [kgm^2], damping)\n", "disk1 = ot.Disk(0, I=I1)\n", "disk2 = ot.Disk(1, I=I2)\n", "disk3 = ot.Disk(2, I=I3, c=d3)\n", "disk4 = ot.Disk(3, I=I4, c=d4)\n", "disk5 = ot.Disk(4, I=I5, c=d5)\n", "\n", "disks = [disk1, disk2, disk3, disk4, disk5]\n", "\n", "# Creating gear elements with a gear ratio of 80 / 10 = 8\n", "# Syntax is: ot.Gear(node, Inertia [kgm^2], radius/teeth, parent)\n", "gear1 = ot.Gear(2, 0, z1)\n", "gear2 = ot.Gear(3, 0, z2, parent=gear1)\n", "gears = [gear1, gear2]\n", "\n", "\n", "# Creating an assembly of the elements\n", "drivetrain = ot.Assembly(shafts, disks, gear_elements=gears)" ], "metadata": { "id": "ByxVkd5NzY_a" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "### 1.2 Visualize model\n", "\n", "The model can also be visualized in openTorsion using the Plots class and its method plot_assembly. This is demonstrated below.\n" ], "metadata": { "id": "k-FNqvIFETub" } }, { "cell_type": "code", "source": [ "# Create a plot_tool object for visualizations\n", "plot_tools = ot.Plots(drivetrain)\n", "\n", "# The assembly can be visualized using the plot_assembly method\n", "plot_tools.plot_assembly()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 407 }, "id": "_Vh-AuXuEnvP", "outputId": "2aac4ffb-7ecb-462e-b0b4-ca94c613923e" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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Vt15550qKSmx7vdfzL/+9S8tW7ZMkjR//vxzavXs2VO9evVScXGxJk2a5O9lAcA5COogSE1NVWRkpD788EOtX7/+oucmJyeroKBAN998s+65557zfj579mxFRERow4YN1ke3LmTKlCkqKChQt27d1KdPn/N+PmfOHNWoUUPvv/++Nm3a5N9FhYj09HSFhYXp3Xff1WeffXbRcydNmqSSkhL17t1bPXr0uGCtd955R59//vlFa02YMEElJSXq06ePunfvft7P586dK5fLpdWrV2vbtm1+XRMAnI2gDoKrrrpKI0aMkCSNHTv2ghtxfPXVV1qxYoWk06Mwl8t13jlNmzZVUlKSpNMruC9Ua/fu3XrjjTcknR4dllWrWbNmGj58uNWX1+v178JCQKtWrazbB2PHjr3gjMbnn3+uNWvWKCwsTHPnzi3znDZt2ujhhx+WJI0ZM+aCtT777DOtXbtWYWFhF1yl37ZtWw0ZMqTcWgBQHoI6SCZPnqzLLrtM+/bt0+uvv17mOWemxu+//37dcMMNF6w1ZcoU1apVS3v27NGbb7550VoDBgxQ586dL1grOTlZNWvW1JdffqlVq1b5d1EhYsaMGYqNjdXWrVvL3OjF5/NpzJgxkqSHH35Ybdq0uWCtmTNnyu12a8uWLVq7dm2ZtcaOHStJGjp0qFq1anXBWrNmzVJMTIw+++yzoGxTCqB6IqiDpHbt2tbK7ylTpsjj8Zzz840bN2r9+vWKiIiwFqBdSJ06dTR58mSr1q83z1i/fr02btyoyMjIcmslJCRY91wnT56sgoICv64rFDRo0MAK4okTJ563revatWu1ZcsWxcTElLtC/IorrtDTTz8t6fT0dnFx8Tk/f+edd7R161bFxsaWW6thw4Z66qmnJEnjx48/rxYAVARBHUQjRoxQkyZN9NNPP52zEYfX67VGYY8//rh++9vflltr5MiRatSokY4cOaJFixZZj5eWllq1RowYoauuuqrcWqNGjVLDhg11+PBhvfzyy/5eVkgYM2aMGjRooEOHDunFF1+0Hj97Y5mnn35aV155Zbm1xo4dq3r16ungwYNavny59XhRUZFVa8yYMbr88svLrTV+/HglJCTo22+/tW57AIA/COogioqKsjbPOHsjjjfffFN79uxRrVq1KvwZ6ejo6DI34njjjTe0d+9eXXbZZdaouzwxMTHW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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "## 2 Discrete-time state-space form\n" ], "metadata": { "id": "-BLtSqP7ED99" } }, { "cell_type": "markdown", "source": [ "### 2.1 State-space\n", "\n", "In order to simulate the transient response in the model, it needs to be expressed mathematically. State-space form is a common way to express the rate of change in systems. In this example we will only be needing the following state-space equation\n", "\n", "\\begin{equation}\n", "\\mathbf{\\dot{x}}(t) = \\mathbf{A} \\mathbf{x}(t) + \\mathbf{B}\\mathbf{u}(t),\n", "\\end{equation}\n", "\n", "where $\\mathbf{x}$ is the state vector and $\\mathbf{u}$ the input vector. Matrices $\\mathbf{A}$ and $\\mathbf{B}$ are commonly referred to as state and input matrix. The state vector is constructed as\n", "\n", "\\begin{equation}\n", "\\mathbf{x} =\n", "\\left(\n", "\\begin{array}{c}\n", " \\theta_1 \\\\\n", " \\theta_2 \\\\\n", " \\vdots \\\\\n", " \\theta_n \\\\\n", " \\dot{\\theta}_1 \\\\\n", " \\dot{\\theta}_2 \\\\\n", " \\vdots \\\\\n", " \\dot{\\theta}_n \\\\\n", "\\end{array}\n", "\\right),\n", "\\end{equation}\n", "\n", "where $\\theta$ is the angular displacement of a disk. Our rotating model can be derived into state-space form by representing inertia, stifness and damping in matrix form. The rate of change is then\n", "\n", "\\begin{equation}\n", "\\dot{\\mathbf{x}}(t) =\n", "\\underbrace{\n", "\\begin{bmatrix}\n", "\\boldsymbol{0} & \\mathbf{I} \\\\\n", "-\\mathbf{M}^{-1}\\mathbf{K} & -\\mathbf{M}^{-1}\\mathbf{C}\n", "\\end{bmatrix}}_\\mathbf{A}\n", "\\mathbf{x}(t)\n", "+\n", "\\underbrace{\n", "\\begin{bmatrix}\n", "\\boldsymbol{0} \\\\\n", "\\mathbf{M}^{-1}\n", "\\end{bmatrix}}_\\mathbf{B}\n", "\\mathbf{u}(t).\n", "\\end{equation}\n", "\n", "In rotor dynamics, matrices $\\mathbf{M}$, $\\mathbf{K}$, and $\\mathbf{C}$ are know as the mass, stiffness, and damping matrix. In openTorsion the state matrix $\\mathbf{A}$ and the input matrix $\\mathbf{B}$ can be calculated by calling the state_space method of the Assembly class. This is demonstrated below." ], "metadata": { "id": "cQ8cavsYFLXK" } }, { "cell_type": "code", "source": [ "\"\"\" Calculating the state and input matrices \"\"\"\n", "\n", "A, B = drivetrain.state_space()" ], "metadata": { "id": "dMNEM0sPMzPE" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "### 2.2 Discrete-time\n", "\n", "In order to calculate the states in the model, the model needs to be discretized into a finite number of steps. State-space form in discrete-time can be expressed as\n", "\n", "\\begin{equation}\n", "\\mathbf{x}(h+1) =\n", "\\mathbf{A_d}\\mathbf{x}(h)\n", "+\n", "\\mathbf{B_d}\\mathbf{u}(h),\n", "\\end{equation}\n", "\n", "where $\\mathbf{A_d}$ and $\\mathbf{B_d}$ is the discrete state and input matrix. They can be calculated using matrix exponential and a constant time step $\\Delta t$\n", "\n", "\\begin{equation}\n", "\\begin{bmatrix}\n", "\\mathbf{Ad} & \\mathbf{Bd} \\\\\n", "\\boldsymbol{0} & \\mathbf{I}\n", "\\end{bmatrix}\n", "= \\exp(\n", "\\begin{bmatrix}\n", "\\mathbf{A} & \\mathbf{B} \\\\\n", "\\boldsymbol{0} & \\boldsymbol{0}\n", "\\end{bmatrix}\n", "\\Delta t).\n", "\\end{equation}\n", "\n", "In openTorsion the discrete state and input matrices can be calculated by calling the continuous_2_discrete method of the Assembly class. This is demonstrated in the code block below." ], "metadata": { "id": "HOaXbJJjFggu" } }, { "cell_type": "code", "source": [ "\"\"\" Discretization of the state and input matrices \"\"\"\n", "\n", "ts = 0.001 # Time step\n", "# Syntax is: self.continuous_2_discrete(state matrix, input matrix, time step)\n", "Ad, Bd = drivetrain.continuous_2_discrete(A, B, ts=0.001)" ], "metadata": { "id": "_lM6SowlQiIQ" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "## 3 Simulation\n" ], "metadata": { "id": "j35y019JFq82" } }, { "cell_type": "markdown", "source": [ "### 3.1 Controlling the model\n", "\n", "![PI_block.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAMAAAD4oy1kAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAD5UExURf///3JycgAAAFBQUPf39x4eHgYGBsnJyZ2dnTIyMvX19ebm5pubm4yMjPv7+01NTaenp3l5eRERES0tLdTU1AsLC+rq6peXlzMzM11dXeLi4kdHRzo6Ora2tn9/fz8/P6+vr4iIiEBAQKKiosPDw1lZWWZmZmFhYaampp6enigoKN7e3tDQ0Li4uMHBwXNzc2JiYt/f39vb23t7e21tbZKSkufn57e3t4eHh7+/v8fHxxgYGO/v7yAgIEhISHBwcGBgYI+Pj2hoaAgICBAQEHh4eNfX15+fn8/Pz1hYWDAwMDg4OL29vYODg2tra+Xl5URERGdnZwAAAEstDFcAAABTdFJOU/////////////////////////////////////////////////////////////////////////////////////////////////////////////8AZol+WQAAAAlwSFlzAAAOwwAADsMBx2+oZAAANcdJREFUeF7t3bu2qjAXhuE9aGwsHFa2NjbegpYWjmHB/V/NnjMJCCqSEMMK4X3+w/aAyCF8axIO/gMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAO3qnaPfuNabdwjAMjcqbq7R7+xJwABLMXnCnBbXd2jUOEV4PTvAoAot48V4LY6uEcfXbZH9+jVZb8PD8Cv3wUAqQxVgIeLe/jBthruOJxSAX77LgBIxvUB1tVOsrCqrmd5IgFnmFzaXuXRXV8W51qeHPb3hzyuq83lUN3kkRnkoK/1+wDNSPfylvt0b0D9eF3ddvKKIgMBzM5VgHV1lGw7SBJJfu0OmloHU5jpq7U8NbG2kSg8nSrJNXGvdvK6BKD8f32Sj2oW9irAe7Wtq6uO1HygP6B8XN642e+q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)" ], "metadata": { "id": "oMJJRZBaRzd9" } }, { "cell_type": "markdown", "source": [ "The model can be controlled using a simple PI controller. The controller calculates the error, i.e. the diffrence between the desired model output and the current model output, commonly referred to as a negative feedback loop. This error is passed to the controller's proportional and intergal parts. Here, the signal is transalted into a more suitable input for the model. A class for such a controller is created below." ], "metadata": { "id": "MIlHAAGPVfaX" } }, { "cell_type": "code", "source": [ "class PI():\n", " \"\"\"\n", " This class creates a discrete PI controller for a system.\n", "\n", " Attributes\n", " ----------\n", " Kp : float\n", " Proportional gain\n", " Ki : float\n", " Integral gain\n", " dt : float\n", " Time step\n", " setpoint : float\n", " Desired system output\n", " limit : float\n", " Output limit for integrator and controller\n", " \"\"\"\n", "\n", " def __init__(self, Kp, Ki, dt, setpoint, limit):\n", " \"\"\"\n", " Parameters\n", " ----------\n", " Kp : float\n", " Proportional gain\n", " Ki : float\n", " Integral gain\n", " dt : float\n", " Time step\n", " setpoint : float\n", " Desired output\n", " limit : float\n", " Output limit for integrator and controller\n", " \"\"\"\n", " self.Kp = Kp\n", " self.Ki = Ki\n", " self.dt = dt\n", " self.setpoint = setpoint\n", " self.limit = limit\n", " self.integral_error = 0\n", "\n", "\n", " def next_step(self, x):\n", " \"\"\"\n", " Calculates the next controller output, taking into account the controller gains and limit.\n", "\n", " Parameters\n", " ----------\n", " x : float\n", " Current system output\n", "\n", " Returns\n", " -------\n", " float\n", " Controller output\n", " \"\"\"\n", " error = self.setpoint - x\n", " self.integral_error += error*self.Ki*self.dt\n", " out = self.integral_error + error*self.Kp\n", "\n", " if self.integral_error > self.limit:\n", " self.integral_error = self.limit\n", "\n", " if out > self.limit:\n", " return self.limit\n", "\n", " return out" ], "metadata": { "id": "kihANZyJSY3G" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "\"\"\" Creating controller \"\"\"\n", "\n", "# Parameters\n", "Kp = 3\n", "Ki = 3\n", "target = 200 # RPM\n", "limit = 20 # Torque (Nm)\n", "\n", "# Syntax is: ot.PI(Proportional gain, Integral gain, Time step [s], Target velocity [RPM], Limit [Nm])\n", "controller = PI(Kp, Ki, ts, target, limit)" ], "metadata": { "id": "5J7a4laJTf6C" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "### 3.2 Excitations for the model\n", "\n", "Excitations load the model with a torque, most often, acting in the opposite direction of rotating direction. OpenTorsion is equiped with a class for creting a transient step and impulse excitation. An excitation object is created in the code block below.\n" ], "metadata": { "id": "2K-CGE-6TgQq" } }, { "cell_type": "code", "source": [ "\"\"\" Creating a transient excitation object \"\"\"\n", "\n", "# Parameters\n", "t_excite = 3 # Time (s)\n", "magnitude = 30 # Torque (Nm)\n", "\n", "# Syntax is: ot.TransientExcitations(Time step [s], Time for applying excitation [s], Magnitude [Nm])\n", "excitations = TransientExcitations(ts, t_excite, magnitude)" ], "metadata": { "id": "n0A5hmNfTgXo" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "### 3.3 Simulating torque response\n", "\n", "Simulating the torque response begins with calculating all the states of the model for the simulated time. An initial state needs to be defined, after which the next state can be calculated by adding the product of the discrete state matrix $\\mathbf{A_d}$ and the previous state vector $\\mathbf{x}$ with the product of discrete input matrix $\\mathbf{B_d}$ and the input vector $\\mathbf{u}$. You might remember this from the first equation in section $2.2$.\n", "\n", "The shapes of vector $\\mathbf{x}$ and $\\mathbf{u}$ can be obtained from the shape of mass matrix $\\mathbf{M}$. Keep in mind that the state vector holds both the angular displacement and velocity, making it twice the size of the input vector. The controller and excitations object can be used to calculate the input vector $\\mathbf{u}$." ], "metadata": { "id": "gv3keH1yjaJ_" } }, { "cell_type": "code", "source": [ "\"\"\" Calculating the states of the model for a step excitation \"\"\"\n", "\n", "# Defining necessary variables\n", "t_end = 6 # Simulation time\n", "x0 = np.zeros(2 * drivetrain.M.shape[0]) # Initial state\n", "u0 = np.zeros(drivetrain.M.shape[0]) # Input vector\n", "iterations = np.linspace(0, t_end, int(t_end/0.001)) # Iterations based on simulation time and time step\n", "rpm = 60 / (2 * np.pi) # Conversion from rad/s to RPM\n", "states_step = []\n", "rpms = []\n", "\n", "# Calculating all the states\n", "for i in iterations:\n", " u0[0] = controller.next_step(x0[drivetrain.M.shape[0]] * rpm)\n", " u0[-1] = excitations.step_next(i)\n", " x0 = Ad @ x0 + Bd @ u0\n", " states_step.append(x0)\n", " rpms.append(x0[drivetrain.M.shape[0]] * rpm)\n", "states_step = np.array(states_step)\n", "rpms = np.array(rpms)" ], "metadata": { "id": "UM0qDcyGmX6C" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "The following function can be used to plot the velocity of the model compared to the target velocity. It takes a time and velocity vector as inputs as well as the target velocity." ], "metadata": { "id": "hUukqVy-Cn_H" } }, { "cell_type": "code", "source": [ "\"\"\" Plots the angular velocity of a model \"\"\"\n", "\n", "def plot_rpm(t, rpm, target):\n", " \"\"\"\n", " Parameters\n", " ----------\n", " t : array\n", " Time vector\n", " rpm : array\n", " Velocity vector\n", " target : float\n", " Target velocity\n", " \"\"\"\n", " plt.figure(figsize=(6, 4))\n", " plt.plot(t, rpm, label='Model velocity')\n", " plt.axhline(target, color='g', linestyle='--', label='Target velocity')\n", "\n", " plt.title('Angular velocity')\n", " plt.xlabel('Time (s)')\n", " plt.ylabel('Velocity (RPM)')\n", " plt.legend()\n", " plt.tight_layout()\n", " plt.show()" ], "metadata": { "id": "yXPXJnAoCUWR" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "\"\"\" Plotting the velocity of the model \"\"\"\n", "\n", "# Syntax is: plot_rmp(time vector, velocity vector, target velocity)\n", "plot_rpm(iterations, rpm, target)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 407 }, "id": "E5DRjjw9C_2n", "outputId": "4dbb688d-846b-41cb-a0ea-d210ac4dfff8" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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b76hbt26eHl50aVLF44dO5brmD/88AMdOnTAy8uL0NBQHn/8cVJSUhzK+9133+Hp6Zlr6O+JJ56ga9euN3yMEydOcNddd1G+fHl8fX257777OHv2rF2br776ilatWuHp6UnlypW5++67bduuHqoLDw8H4O6778ZkMhEeHs6xY8dwcXFhx44ddvt86623CAsLw2q1OvT6b1SJLpzGjBnD//73PxYuXIiPjw9xcXHExcXZqvmjR4/y0ksvsXPnTo4dO8aKFSsYMmQIHTt2pGnTpk5OXzC7T8ZjNaCqvxdVfD2dHUdEpEQwDIPUzOxifxiGcUN5hw8fzrx582zLH374IQ899FCuds888wxffPEFH330Ebt27aJ27dr07NmTS5cuAXDy5En69+9P3759iY6OZuTIkTz33HN2+zh69Ci9evViwIAB/PrrryxZsoQffviBsWPHOpS1W7du+Pv788UXX9jWWSwWlixZQlRU1A0dw2q1ctddd3Hp0iU2btzImjVr+P333xk4cKCtzddff83dd9/N7bffzi+//MK6deto3bp1nvu7UkzOmzeP2NhYtm/fTnh4ON27d7d7n6+0GTZsGC4uRVvalOjLEcyZMwfIucjl1a68Oe7u7qxdu5a33nqLlJQUQkNDGTBgAP/85z+dkPbvsQ3TqbdJRMQmLctCw0nfFvtx97/Yk3LuBf8V+cADDzBx4kSOHz8OwJYtW1i8eDEbNmywtUlJSWHOnDnMnz+f3r17A/D++++zZs0aPvjgA55++mnmzJlDrVq1eP311wGoV68ee/bs4eWXX7btZ/r06URFRfHkk08CUKdOHWbOnEmnTp2YM2cOnp7X/iPcbDYzaNAgFi5cyIgRIwBYt24d8fHxDBgw4IaOsW7dOvbs2UNMTIxt/vDHH39Mo0aN2L59O61ateLf//43gwYNYurUqbbnRURE5JkxICAA+POq31eMHDmSRx55hDfeeAMPDw927drFnj17+PLLL6/5mgtDiS6crlfxh4aG5rpqeGm164+J4c11xXARkVIrICCAPn36MH/+fAzDoE+fPlSuXNmuzdGjR8nKyqJ9+/a2dW5ubrRu3ZoDBw4AcODAAduc3SvatWtnt7x7925+/fVXFixYYFtnGAZWq5WYmBgaNGhw3bxRUVG0bduWM2fOEBISwoIFC+jTpw/+/v43dIwDBw4QGhpq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OixdupTo6Gh2797N/fffj9Vqve7zHnvsMb755hveeOMNDh8+zH/+8x9WrVpl93tk0qRJfPzxx0ydOpV9+/Zx4MABFi9ezD//+U9bm/DwcNatW0dcXByXL1/O93je3t7069ePF154gQMHDjB48GDbtrp16xIVFcWQIUNYunQpMTExbNu2jenTp/P111/nub+nn36a+fPnM2fOHA4fPswbb7zB0qVLmTBhAgCdOnWiY8eODBgwgDVr1hATE8OqVatYvXp1nvsLDw8nJiaG6OhoLly4QEZGhm3byJEj+eijjzhw4IBdoVZUykThtGTJEsaPH8/kyZPZtWsXERER9OzZk3Pn8u+uLS4HYpMAqB/k4+QkIiJS3N544w0qVKjALbfcQt++fenZsyfNmze/7vPat2/P3LlzeeONN4iIiGD16tWMGzfObgiuZ8+erFy5ku+++45WrVrRtm1b3nzzTcLCwmxtXn/9ddasWUNoaCiRkZHXPGZUVBS7d++mQ4cOdmf8AcybN48hQ4bw1FNPUa9ePfr168f27dtztbuiX79+vP3227z22ms0atSI//znP8ybN4/OnTvb2nzxxRe0atWKwYMH07BhQ5555pl8e8cGDBhAr1696NKlCwEBASxatMi2rXv37gQHB9OzZ09CQkKu+RoLg8kwDKPIj1LE2rRpQ6tWrXj33XcBsFqthIaG8thjj/Hcc89d9/mJiYn4+fmRkJCAr69voWa7e/YWfjkRzzuDI+kbUfT/oSIipVV6ejoxMTHUqFGjwHN0bgajRo3it99+Y/Pmzc6OUqIkJydTtWpV5s2bl+d8ryuu9f1VkDqg1M9xyszMZOfOnUycONG2zsXFhe7du7N169Y8n5ORkWHXzZeYmFgk2axWg4NxOT1ODYLV4yQiIo577bXXuO222/D29mbVqlV89NFHzJ4929mxSgyr1cqFCxd4/fXX8ff358477yyW45b6wunChQtYLBaqVKlit75KlSr89ttveT5n+vTpTJ06tcizXUzJJMjXk9iEdMIrFe0ERBERKVu2bdvGK6+8QlJSEjVr1mTmzJmMHDnS2bFKjBMnTlCjRg2qVavG/PnzcXUtnpKm1BdON2LixImMHz/etpyYmEhoaGihHyfAx4PvJ3QmI9uCq7lMTCcTEZFi8umnnzo7QokWHh6OM2YblfrCqXLlypjNZs6ePWu3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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "Now that the states are known, the shaft torque can be calculated. This can be done according to\n", "\n", "\\begin{equation}\n", "T_i = k_i(\\theta_i - \\theta_{i+1}).\n", "\\end{equation}\n", "\n", "In addition, possible gear ratios needs to be accounted for when calculating the shaft torque. In openTorsion both gear elements are merged into one rotating disk, where the rotation angle is affected by the gear ratio. Therfore, the rotation angle of the gear disk or the following disk needs to be eiter multiplied or divided with the gear ratio. In case the gear ratio is bigger than 1, the gear elemet is divided with the gear ratio. On the other hand, if the gear ratio is smaller than 1, the disk sequent to the gear element is multipied with the gear ratio. This is demonstrated in equation\n", "\n", "\n", "\\begin{equation}\n", "T_i = k_i(\\frac{\\theta_i}{i} - \\theta_{i+1}),\n", "\\end{equation}\n", "when $i > 1$ and\n", "\n", "\\begin{equation}\n", "T_i = k_i(\\theta_i - \\theta_{i+1} i),\n", "\\end{equation}\n", "when $i < 1$.\n", "\n", "We define a separate function for calculating the shaft torque in the model at all points of interest.\n" ], "metadata": { "id": "lWZOO02TGUzj" } }, { "cell_type": "code", "source": [ "\"\"\" Calculates the shaft torque between desired indices. Keep in mind that a\n", "gear ratio over 1 should be passed to the function at the index of the gear\n", "element, while a gear ratio under one should be passed to the index after the\n", "gear element. In addition, the indecies in the index list should correspond to\n", "the disk prior to the shaft. \"\"\"\n", "\n", "def shaft_torque(states, k_list, idx_list, ratio_list):\n", " \"\"\"\n", " Parameters\n", " ----------\n", " states : ndarray\n", " Matrix with the calculated states\n", " k_list : list\n", " List with stiffnesses\n", " idx_list : list\n", " List with indices\n", " ratio_list : list\n", " List with gear ratios\n", "\n", " Returns\n", " -------\n", " Calculated shaft torque\n", " \"\"\"\n", " torques = []\n", " for i, k in enumerate(k_list):\n", " if ratio_list[i] >= 1:\n", " T = k * (np.abs(states[:, idx_list[i]]) / ratio_list[i] - np.abs(states[:, idx_list[i] + 1]))\n", " else:\n", " T = k * (np.abs(states[:, idx_list[i]]) - np.abs(states[:, idx_list[i] + 1]) * ratio_list[i])\n", " torques.append(T)\n", "\n", " return torques" ], "metadata": { "id": "yrMDtxMcUNJ1" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "\"\"\" Calculating torque responses \"\"\"\n", "\n", "i = z2 / z1 # Gear ratio\n", "# Syntax is: shaft_torque(states matrix, stiffnesses list, indices list, ratios list)\n", "torques_step = shaft_torque(states_step, [k2, k3], [1, 2], [1, i])" ], "metadata": { "id": "M5B6lgGpVGrw" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "### 3.4 Visualizing torque response\n", "\n", "The torque responses can be plotted using the following function.\n" ], "metadata": { "id": "6Jp_XD5ZF3PS" } }, { "cell_type": "code", "source": [ "\"\"\" Plots the shaft torques in a model \"\"\"\n", "\n", "def plot_torque(t, torques):\n", " \"\"\"\n", " Parameters\n", " ----------\n", " t : array\n", " Time vector\n", " torques : array\n", " Torque vector\n", " \"\"\"\n", " plt.figure(figsize=(7,4))\n", " for i, torque in enumerate(torques):\n", " plt.plot(t, torque, label=f'Shaft {i+1}')\n", "\n", " plt.title('Simulated torque response')\n", " plt.xlabel(\"Time (s)\")\n", " plt.ylabel(\"Torque (Nm)\")\n", " plt.legend()\n", " plt.tight_layout()\n", " plt.show()" ], "metadata": { "id": "vRexbmIYgAr4" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "\"\"\" Plotting shaft torques \"\"\"\n", "\n", "# Syntax is: plot_torque(time vector, torque vector)\n", "plot_torque(iterations, torques_step)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 407 }, "id": "BW8zyW73F2j0", "outputId": "fd00e291-3699-49da-ce93-304ae02b6140" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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fPKJARhr166t9BrOvyMBAQHG0aNHXdtXr15tAMYDDzzg2tavXz8jOjraSEtLc23bvHmzYbVajd/+9reubc6/Y7feeqvbta655hojIiLC9fzFF180AOP48eOVxvevf/3LsFqtxk8//eS2ff78+QZgrFixotJjRcRzKi0QaeZGjx7NypUrufLKK9m8eTPPPvssY8eOpU2bNnz66acenWPq1KlurbEGDx6MYRhMnTrVtc1ms3Huueeyf//+eos9ICDA9TgzM5PU1FSGDx/O/v37yczMrPb4RYsWceGFF9KiRQtSU1Ndt1GjRlFSUsKPP/4IwJdffomPjw933XWX2/spOxGuNr777jsKCwu5//773SbRTZs2jdDQUL744gu3/f38/JgyZYrbtoaIbdGiRYSFhTF69Gi3z2XgwIEEBwezbNkyj85TNqaanNdZ5vL5559TVFRU5TWuvvpq2rRp43o+aNAgBg8ezJdffglAYmIimzZtYvLkybRs2dK1X58+fRg9erRrv7LuvPNOt+cXXnghaWlpZGVlucX3v//9r1wJStn32qNHD7p37+72XkeOHAng8WcoIlVTIisinHfeeXz88cecOHGCNWvWMHPmTLKzs7nuuuvYvn17tcfHxcW5PQ8LCwOgXbt25bZ7UmPpqRUrVjBq1ChX3WNUVJSrTtGTRHbPnj18/fXXREVFud1GjRoFnJrsdujQIVq1akVwcLDb8d26datT/IcOHarwPHa7nY4dO7ped2rTpg12u73cOeo7tj179pCZmUl0dHS5zyYnJ6fcJMCK+Pj40LZt21qdd/jw4UyYMIHZs2cTGRnJVVddxYIFCyqsLe3SpUu5bV27dnW1OqvsMwazvCM1NZXc3Fy37af/fW7RogWA6+/u9ddfz7Bhw7jtttuIiYnhhhtu4MMPP3RLavfs2cOvv/5a7n127doVKD+RUkRqRzWyIuJit9s577zzOO+88+jatStTpkxh0aJFPPHEE1UeZ7PZPN5ulJnsVdkCByUlJdXGum/fPi655BK6d+/OCy+8QLt27bDb7Xz55Ze8+OKLlY6UleVwOBg9ejSPPPJIha87k46zRdkR6NqwWCxun7/T6Z+3w+EgOjqad999t8LzREVFVXstPz+/cq3aPD2vxWLho48+YtWqVXz22WcsWbKEW2+9leeff55Vq1aVS9rrW2V/n52fXUBA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uGvBkiVL6NmzJ2vWrKFPnz706dOH1atX06tXL7799tuGiFFERKrirI8FJbIi0qzUeET20Ucf5YEHHuDpp58ut/33v/89o0ePrrfgRETEA876WJsdfOzejUVE5Ayq8Yjsjh07mDp1arntt956K9u3b6+XoEREpAZUHysizVSNE9moqCg2bdpUbvumTZuIjo6uj5hERKQmXK23Qrwbh4jIGeZxacGTTz7JQw89xLRp07j99tvZv38/559/PgArVqzgmWee4cEHH2ywQEVEpBKuRFYjsiLSvFgMwzA82dFms5GYmEhUVBQvvfQSzz//PAkJCQC0bt2ahx9+mHvvvReLxdKgAddUVlYWYWFhZGZmEhoa6u1wRETq347P4YOboO15cNt33o5GRKROapK7eVxa4Mx3LRYLDzzwAEePHiUzM5PMzEyOHj3KfffdV+Mkds6cOZx33nmEhIQQHR3N1Vdfza5du9z2yc/PZ/r06URERBAcHMyECRNITk6u0XVERJo01ciKSDNVoxrZ0xPVkJAQQkJqX5O1fPlypk+fzqpVq/j2228pKipizJgx5ObmuvZ54IEH+Oyzz1i0aBHLly8nISGBa6+9ttbXFBFpcgqzzXu13hKRZqZG7be6du1a7ahrenq6x+f7+uuv3Z4vXLiQ6Oho1q9fz0UXXURmZiZvvfUW7733HiNHjgRgwYIF9OjRg1WrVjFkyJCahC8i0jS5RmSVyIpI81KjRHb27NmEhYU1VCxkZmYC0LJlSwDWr19PUVERo0aNcu3TvXt34uLiWLlypRJZERE41UfWT4msiDQvNUpkb7jhhgZrseVwOLj//vsZNmwYvXv3BiApKQm73U54eLjbvjExMSQlJVV4noKCAgoKClzPs7KyGiReEZGzhmpkRaSZ8rhGtqG7EUyfPp1t27bx/vvv1+k8c+bMISwszHVr165dPUUoInKWctXIqo+siDQvNe5a0BDuuecePv/8c5YtW0bbtm1d22NjYyksLCQjI8Nt/+TkZGJjYys818yZM13dFDIzMzly5EiDxS0iclbQiKyINFMeJ7IOh6PeywoMw+Cee+7hk08+4fvvv6dDhw5urw8cOBBfX1+WLl3q2rZr1y4OHz7M0KFDKzynn58foaGhbjcRkSZNNbIi0kzVqEa2vk2fPp333nuP//3vf4SEhLjqXsPCwggICCAsLIyp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5+dHaGio2+1MahFkVxIrIiIicgac1SOyAA8++CCTJk3i3HPPZdCgQbz00kvk5uYyZcoUb4cmIiIiIl501iey119/PcePH+fxxx8nKSmJfv368fXXX5ebACYiIiIizYvFMAzD20E0pKysLMLCwsjMzDzjZQYiIiIiUjM1yd1UzCkiIiIijZISWRERERFplJTIioiIiEijpERWRERERBolJbIiIiIi0igpkRURERGRRkmJrIiIiIg0Smf9ggh15WyTm5WV5eVIRERERKQ6zpzNk6UOmnwim52dDUC7du28HImIiIiIeCo7O5uwsLAq92nyK3s5HA4SEhIICQnBYrE0+PWysrJo164dR44c0UpiZ5g+e+/Q5+4d+ty9R5+9d+hz954z/dkbhkF2djatW7fGaq26CrbJj8harVbatm17xq8bGhqqf2heos/eO/S5e4c+d+/RZ+8d+ty950x+9tWNxDppspeIiIiINEpKZEVERESkUVIiW8/8/Px44okn8PPz83YozY4+e+/Q5+4d+ty9R5+9d+hz956z+bNv8pO9RERERKRp0oisiIiIiDRKSmRFREREpFFSIisiIiIijZIS2Xo2d+5c2rdvj7+/P4MHD2bNmjXeDqnJ+/HHHxk/fjytW7fGYrGwePFib4fULMyZM4fzzjuPkJAQoqOjufrqq9m1a5e3w2ryXn/9dfr06ePq5zh06FC++uorb4fV7Dz99NNYLBbuv/9+b4fS5M2aNQuLxeJ26969u7fDahaOHTvGzTffTEREBAEBAZxzzjmsW7fO22G5USJbjz744AMefPBBnnjiCTZs2EDfvn0ZO3YsKSkp3g6tScvNzaVv377MnTvX26E0K8uXL2f69OmsWrWKb7/9lqKiIsaMGUNubq63Q2vS2rZty9NPP8369etZt24dI0eO5KqrruLXX3/1dmjNxtq1a/n73/9Onz59vB1Ks9GrVy8SExNdt59//tnbITV5J06cYNiwYfj6+vLVV1+xfft2nn/+eVq0aOHt0Nyoa0E9Gjx4MOeddx6vvfYaYC6P265dO2bMmMGjjz7q5eiaB4vFwieffMLVV1/t7VCanePHjxMdHc3y5cu56KKLvB1Os9KyZUuee+45pk6d6u1QmrycnBwGDBjAvHnz+Mtf/kK/fv146aWXvB1WkzZr1iwWL17Mpk2bvB1Ks/Loo4+yYsUKfvrpJ2+HUiWNyNaTwsJC1q9fz6hRo1zbrFYro0aNYuXKlV6MTOTMyMzMBMykSs6MkpIS3n//fXJzcxk6dKi3w2kWpk+fzuWXX+72f700vD179tC6dWs6duzITTfdxOHDh70dUpP36aefcu655/Kb3/yG6Oho+vfvz5tvvuntsMpRIltPUlNTKSkpISYmxm17TEwMSUlJXopK5MxwOBzcf//9DBs2jN69e3s7nCZv69atBAcH4+fnx5133sknn3xCz549vR1Wk/f++++zYcMG5syZ4+1QmpXBgwezcOFCvv76a15//XUOHDjAhRdeSHZ2trdDa9L279/P66+/TpcuXViyZAl33XUX9957L++88463Q3Pj4+0ARKTxmz59Otu2bVPd2hnSrVs3Nm3aRGZmJh999BGTJk1i+fLlSmYb0JEjR7jvvvv49ttv8ff393Y4zcq4ceNcj/v06cPgwYOJj4/nww8/VDlNA3I4HJx77rk89dRTAPTv359t27Yxf/58Jk2a5OXoTtGIbD2JjIzEZrORnJzstj05OZnY2FgvRSXS8O655x4+//xzli1bRtu2bb0dTrNgt9vp3LkzAwcOZM6cOfTt25eXX37Z22E1aevXryclJYUBAwbg4+ODj48Py5cv55VXXsHHx4eSkhJvh9hshIeH07VrV/bu3evtUJq0Vq1alfvluEePHmddWYcS2Xpit9sZOHAgS5cudW1zOBwsXbpUtWvSJBmGwT333MMnn3zC999/T4cOHbwdUrPlcDgoKCjwdhhN2iWXXMLWrVvZtGmT63buuedy0003sWnTJmw2m7dDbDZycnLYt28frVq18nYoTdqwYcPKtVTcvXs38fHxXoqoYiotqEcPPvggkyZN4txzz2XQoEG89NJL5ObmMmXKFG+H1qTl5OS4/WZ+4MABNm3aRMuWLYmLi/NiZE3b9OnTee+99/jf//5HSEiIqxY8LCyMgIAAL0fXdM2cOZNx48YRFxdHdnY27733Hj/88ANLlizxdmhNWkhISLn676CgICIiIlQX3sAeeughxo8fT3x8PAkJCTzxxBPYbDZuvPFGb4fWpD3wwAOcf/75PPXUU0ycOJE1a9bwxhtv8MYbb3g7NHeG1KtXX33ViIuLM+x2uzFo0CBj1apV3g6pyVu2bJkBlLtNmjTJ26E1aRV95oCxYMECb4fWpN16661GfHy8YbfbjaioKOOSSy4xvvnmG2+H1SwNHz7cuO+++7wdRpN3/fXXG61atTLsdrvRpk0b4/rrrzf27t3r7bCahc8++8zo3bu34efnZ3Tv3t144403vB1SOeojKyIiIiKNkmpkRURERKRRUiIrIiIiIo2SElkRERERaZSUyIqIiIhIo6REVkREREQaJSWyIiIiItIoKZEVERERkUZJiayIiIiINEpKZEVEzqDJkydz9dVXe+36t9xyC0899ZRH+95www08//zzDRyRiEjtaWUvEZF6YrFYqnz9iSee4IEHHsAwDMLDw89MUGVs3ryZkSNHcujQIYKDg6vdf9u2bVx00UUcOHCAsLCwMxChiEjNKJEVEaknSUlJrscffPABjz/+OLt27XJtCw4O9iiBbCi33XYbPj4+zJ8/3+NjzjvvPCZPnsz06dMbMDIRkdpRaYGISD2JjY113cLCwrBYLG7bgoODy5UWjBgxghkzZnD//ffTokULYmJiePPNN8nNzWXKlCmEhITQuXNnvvrqK7drbdu2jXHjxhEcHExMTAy33HILqamplcZWUlLCRx99xPjx4922z5s3jy5duuDv709MTAzXXXed2+vjx4/n/fffr/uHIyLSAJTIioh42TvvvENkZCRr1qxhxowZ3HXXXfzmN7/h/PPPZ8OGDYwZM4ZbbrmFkydPApCRkcHIkSPp378/69at4+uvvyY5OZmJEydWeo0tW7aQmZnJueee69q2bt067r33Xp588kl27drF119/zUUXXeR23KBBg1izZg0FBQUN8+ZFROpAiayIiJf17duXP/3pT3Tp0oWZM2fi7+9PZGQk06ZNo0uXLjz++OOkpaWxZcsWAF577TX69+/PU089Rffu3enfvz9vv/02y5YtY/fu3RVe49ChQ9hsNqKjo13bDh8+TFBQEFdccQXx8fH079+fe++91+241q1bU1hY6FY2ISJytlAiKyLiZX369HE9ttlsREREcM4557i2xcTEAJCSkgKYk7aWLVvmqrkNDg6me/fuAOzbt6/Ca+Tl5eHn5+c2IW306NHEx8fTsWNHbrnlFt59913XqK9TQEAAQLntIiJnAyWyIiJe5uvr6/bcYrG4bXMmnw6HA4CcnBzGjx/Ppk2b3G579uwpVxrgFBkZycmTJyksLHRtCwkJYcOGDfznP/+hVatWPP744/Tt25eMjAzXPunp6QBERUXVy3sVEalPSmRFRBqZAQMG8Ouvv9K+fXs6d+7sdgsKCqrwmH79+gGwfft2t+0+Pj6MGjWKZ599li1btnDw4EG+//571+vbtm2jbdu2REZGNtj7ERGpLSWyIiKNzPTp00lPT+fGG29k7dq17Nu3jyVLljBlyhRKSkoqPCYqKooBAwbw888/u7Z9/vnnvPLKK2zatIlDhw7xz3/+E4fDQbdu3Vz7/PTTT4wZM6bB35OISG0okRURaWRat27NihUrKCkpYcyYMZxzzjncf//9hIeHY7VW/t/6bbfdxrvvvut6Hh4ezscff8zIkSPp0aMH8+fP5z//+Q+9evUCID8/n8WLFzNt2rQGf08iIrWhBRFERJqJvLw8unXrxgcffMDQoUOr3f/111/nk08+4ZtvvjkD0YmI1JxGZEVEmomAgAD++c9/VrlwQlm+vr68+uqrDRyViEjtaURWRERERBoljciKiIiISKOkRFZEREREGiUlsiIiIiLSKCmRFREREZFGSYmsiIiIiDRKSmRFREREpFFSIisiIiIijZISWRERERFplJTIioiIiEijpERWRERERBql/wcCTO3ntVYqFAAAAABJRU5ErkJggg==\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "# 4 Impulse example\n", "\n", "\n" ], "metadata": { "id": "aVo1k3ytGJGv" } }, { "cell_type": "markdown", "source": [ "### 4.1 Simulate impulse response\n", "\n", "In this example the torque response to an impulse is simulated. The simulation is similar to the previous step excitation case. However, the impulse_next method of the excitations instance should be called instead of step_next. This is implemented in the code block below." ], "metadata": { "id": "9oL2Lv7_GJK9" } }, { "cell_type": "code", "source": [ "\"\"\" The impulse example is made with the same model, controller and excitation parameters. \"\"\"\n", "\n", "# Defining necessary variables\n", "x0 = np.zeros(2 * drivetrain.M.shape[0])\n", "u0 = np.zeros(drivetrain.M.shape[0])\n", "states_impulse = []\n", "rpms = []\n", "\n", "# Calculating states\n", "for i in iterations:\n", " u0[0] = controller.next_step(x0[drivetrain.M.shape[0]] * rpm)\n", " u0[-1] = excitations.impulse_next(i)\n", " x0 = Ad @ x0 + Bd @ u0\n", " states_impulse.append(x0)\n", " rpms.append(x0[drivetrain.M.shape[0]] * rpm)\n", "states_impulse = np.array(states_impulse)\n", "rpms = np.array(rpms)\n", "\n", "# Plotting rpm\n", "plot_rpm(iterations, rpm, target)\n", "\n", "# Calculating shaft torque for shaft 1, 2 and 3\n", "torques_impulse = shaft_torque(states_impulse, [k1, 500, 500], [0, 1, 2], [1, 1, 8])\n", "\n", "# Plotting shaft torques\n", "plot_torque(iterations, torques_impulse)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 797 }, "id": "oyQh0MnKN3KS", "outputId": "5e790dc9-e2b1-4d87-83a7-afb1928e9d6d" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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TXjllVcICwvD3d2dL7/8kldffdXu9nyw7526lk6dOhEREcFHH33EXXfdxeeff056ejpDhw61tbly/A8//JDg4OA8x3B1vfaPV2dM6Gk2m7nrrrt45513mDt3Llu3buXMmTPcfffdpZ5FpDxS4SRSiS1atIigoKB8B1MvX76cFStWMH/+/EIVHeHh4QAcPXo0z76/brvSW5WQkGC3/UqPy9V8/vnnZGZmsmrVKrtesKtdIiuMO++8k9dff52kpCSWLVtGREQEnTp1su2vX78+AEFBQfTp06dQxw4PD8dqtXLkyBGaNm1q23727FkSEhJsn+GVc+zbt69QvXXXKshGjBjByy+/zOeff86aNWsIDAx06DKmiOhSnUillZ6ezvLly7npppu4/fbb8ywTJ04kOTnZdrnKUaGhobRo0YIPPvjAbozQ5s2b2bt3r13b8PBwzGYzW7Zssds+d+7ca57nSs/Xn3u6EhMTWbBgQaHyFmTo0KFkZmby/vvvs3btWu688067/f369cPPz4/nnnvO7o7CK86fP1/gsW+88UYAXnvtNbvtr7zyCgADBw4EoG/fvvj6+jJr1iwyMjLs2l6th69KlSpA3oL0ilatWtGqVSv++9//8umnnzJs2DCHeshERD1OIpXWqlWrSE5O5uabb853f6dOnWyTYf75EpUjnnvuOW655Ra6dOnCvffey+XLl3nzzTdp0aKFXTHl7+/PHXfcwRtvvIHJZKJ+/fqsXr36quODrujbty/u7u4MGjSI8ePHk5KSwjvvvENQUBBxcXGFypufNm3a0KBBA/7v//6PzMzMPJ+Bn58f8+bN45577qFNmzYMGzaMwMBATp48yRdffEGXLl1488038z12ZGQkI0eO5O233yYhIYHu3buzfft23n//fW699VbbQH0/Pz9effVVxo4dS/v27bnrrruoWrUqe/bsIS0tjffffz/f43t5edGsWTOWLVtGo0aNqFatGi1atLAbKzVixAimTJkCoMt0IoXh5Lv6RMRJBg0aZHh6ehqpqakFthk1apTh5uZmXLhwwTZFwIsvvpinHfnc+r506VKjSZMmhoeHh9GiRQtj1apVxpAhQ4wmTZrYtTt//rwxZMgQo0qVKkbVqlWN8ePHG/v27XNoOoJVq1YZrVq1Mjw9PY2IiAjj+eefN9577z0DMGJjY23twsPDjYEDBzr+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MdG2nDp1qljzFtWVGcOjwnRHnYhIeRMWFsbSpUtJT0+3bcvIyGDx4sXUqVPHicnKl8DAwDI9zq1MF06GYTBx4kRWrFjBN998Q926da/5mpiYGODqtxt6eHjg5+dntzhbSmYOh88mA+pxEhEpj9q0aUNYWBjLly+3bVu+fDl16tQhKirKrm1mZiYPPfQQQUFBeHp6cv3117Njxw67Nl9++SWNGjXCy8uLnj17cvz48Tzn/O677+jatSteXl6EhYXx0EMPkZqa6lDer7/+Gk9PzzyX/h5++GF69epV5HOcPHmSW265BR8fH/z8/Ljzzjs5e/asXZvPP/+c9u3b4+npSY0aNbjtttts+/58qS4iIgKA2267DZPJREREBMePH8fFxYWdO3faHfO1114jPDwcq9Xq0PsvqjJdOE2YMIH//e9/LF68GF9fX+Lj44mPj7dV88eOHePZZ59l165dHD9+nFWrVjFixAi6detGq1atnJy+cPacSsBqQK0AL2r6eTo7johImWAYBmlZOaW+GIZRpLyjR49mwYIFtvX33nuPe++9N0+7f/7zn3z66ae8//777N69mwYNGtCvXz8uXboEwKlTpxg8eDCDBg0iJiaGsWPH8sQTT9gd49ixY/Tv358hQ4bw888/s2zZMr777jsmTpzoUNbevXsTEBDAp59+attmsVhYtmwZ0dHRRTqH1Wrllltu4dKlS2zevJl169bx66+/MnToUFubL774gttuu40bb7yRn376iQ0bNtChQ4d8j3elmFywYAFxcXHs2LGDiIgI+vTpY/c5X2kzatQoXFxKtrQp09MRzJs3D8id5PLPrnw47u7urF+/ntdee43U1FTCwsIYMmQITz31lBPS/j22y3TqbRIRsUnPttBs2lelft4Dz/Sjinvhf0XefffdTJ06lRMnTgCwdetWli5dyqZNm2xtUlNTmTdvHgsXLmTAgAEAvPPOO6xbt453332Xxx57jHnz5lG/fn1efvllABo3bszevXt5/vnnbceZNWsW0dHRPPLIIwA0bNiQOXPm0L17d+bNm4en59X/E242mxk2bBiLFy9mzJgxAGzYsIGEhASGDBlSpHNs2LCBvXv3Ehsbaxs//MEHH9C8eXN27NhB+/bt+fe//82wYcOYOXOm7XWRkZH5ZgwMDAT+mPX7irFjx3L//ffzyiuv4OHhwe7du9m7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\n" }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] } ] }