Created
June 15, 2020 12:08
-
-
Save shadow-prince/7df36a61fa8e3371768c9846c24b91dd to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"collapsed": true | |
}, | |
"source": [ | |
"In this notebook, you will implement the forward longitudinal vehicle model. The model accepts throttle inputs and steps through the longitudinal dynamic equations. Once implemented, you will be given a set of inputs that drives over a small road slope to test your model.\n", | |
"\n", | |
"The input to the model is a throttle percentage $x_\\theta \\in [0,1]$ which provides torque to the engine and subsequently accelerates the vehicle for forward motion. \n", | |
"\n", | |
"The dynamic equations consist of many stages to convert throttle inputs to wheel speed (engine -> torque converter -> transmission -> wheel). These stages are bundled together in a single inertia term $J_e$ which is used in the following combined engine dynamic equations.\n", | |
"\n", | |
"\\begin{align}\n", | |
" J_e \\dot{\\omega}_e &= T_e - (GR)(r_{eff} F_{load}) \\\\ m\\ddot{x} &= F_x - F_{load}\n", | |
"\\end{align}\n", | |
"\n", | |
"Where $T_e$ is the engine torque, $GR$ is the gear ratio, $r_{eff}$ is the effective radius, $m$ is the vehicle mass, $x$ is the vehicle position, $F_x$ is the tire force, and $F_{load}$ is the total load force. \n", | |
"\n", | |
"The engine torque is computed from the throttle input and the engine angular velocity $\\omega_e$ using a simplified quadratic model. \n", | |
"\n", | |
"\\begin{align}\n", | |
" T_e = x_{\\theta}(a_0 + a_1 \\omega_e + a_2 \\omega_e^2)\n", | |
"\\end{align}\n", | |
"\n", | |
"The load forces consist of aerodynamic drag $F_{aero}$, rolling friction $R_x$, and gravitational force $F_g$ from an incline at angle $\\alpha$. The aerodynamic drag is a quadratic model and the friction is a linear model.\n", | |
"\n", | |
"\\begin{align}\n", | |
" F_{load} &= F_{aero} + R_x + F_g \\\\\n", | |
" F_{aero} &= \\frac{1}{2} C_a \\rho A \\dot{x}^2 = c_a \\dot{x}^2\\\\\n", | |
" R_x &= N(\\hat{c}_{r,0} + \\hat{c}_{r,1}|\\dot{x}| + \\hat{c}_{r,2}\\dot{x}^2) \\approx c_{r,1} \\dot{x}\\\\\n", | |
" F_g &= mg\\sin{\\alpha}\n", | |
"\\end{align}\n", | |
"\n", | |
"Note that the absolute value is ignored for friction since the model is used for only forward motion ($\\dot{x} \\ge 0$). \n", | |
" \n", | |
"The tire force is computed using the engine speed and wheel slip equations.\n", | |
"\n", | |
"\\begin{align}\n", | |
" \\omega_w &= (GR)\\omega_e \\\\\n", | |
" s &= \\frac{\\omega_w r_e - \\dot{x}}{\\dot{x}}\\\\\n", | |
" F_x &= \\left\\{\\begin{array}{lr}\n", | |
" cs, & |s| < 1\\\\\n", | |
" F_{max}, & \\text{otherwise}\n", | |
" \\end{array}\\right\\} \n", | |
"\\end{align}\n", | |
"\n", | |
"Where $\\omega_w$ is the wheel angular velocity and $s$ is the slip ratio. \n", | |
"\n", | |
"We setup the longitudinal model inside a Python class below. The vehicle begins with an initial velocity of 5 m/s and engine speed of 100 rad/s. All the relevant parameters are defined and like the bicycle model, a sampling time of 10ms is used for numerical integration." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import sys\n", | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"import matplotlib.image as mpimg\n", | |
"\n", | |
"class Vehicle():\n", | |
" def __init__(self):\n", | |
" \n", | |
" # ==================================\n", | |
" # Parameters\n", | |
" # ==================================\n", | |
" \n", | |
" #Throttle to engine torque\n", | |
" self.a_0 = 400\n", | |
" self.a_1 = 0.1\n", | |
" self.a_2 = -0.0002\n", | |
" \n", | |
" # Gear ratio, effective radius, mass + inertia\n", | |
" self.GR = 0.35\n", | |
" self.r_e = 0.3\n", | |
" self.J_e = 10\n", | |
" self.m = 2000\n", | |
" self.g = 9.81\n", | |
" \n", | |
" # Aerodynamic and friction coefficients\n", | |
" self.c_a = 1.36\n", | |
" self.c_r1 = 0.01\n", | |
" \n", | |
" # Tire force \n", | |
" self.c = 10000\n", | |
" self.F_max = 10000\n", | |
" \n", | |
" # State variables\n", | |
" self.x = 0\n", | |
" self.v = 5\n", | |
" self.a = 0\n", | |
" self.w_e = 100\n", | |
" self.w_e_dot = 0\n", | |
" \n", | |
" self.sample_time = 0.01\n", | |
" \n", | |
" def reset(self):\n", | |
" # reset state variables\n", | |
" self.x = 0\n", | |
" self.v = 5\n", | |
" self.a = 0\n", | |
" self.w_e = 100\n", | |
" self.w_e_dot = 0" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Implement the combined engine dynamic equations along with the force equations in the cell below. The function $\\textit{step}$ takes the throttle $x_\\theta$ and incline angle $\\alpha$ as inputs and performs numerical integration over one timestep to update the state variables. Hint: Integrate to find the current position, velocity, and engine speed first, then propagate those values into the set of equations." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"class Vehicle(Vehicle):\n", | |
" def step(self, throttle, alpha):\n", | |
" # ==================================\n", | |
" # Implement vehicle model here\n", | |
" # ==================================\n", | |
" T_e = throttle * (self.a_0 + self.a_1*self.w_e + self.a_2*self.w_e**2)\n", | |
" F_areo = self.c_a * self.v**2\n", | |
" R_x = self.c_r1 * self.v\n", | |
" F_g = self.m * self.g * np.sin(alpha)\n", | |
" F_load = F_areo + R_x + F_g\n", | |
" #torque equation (angular acceleration)\n", | |
" self.w_e_dot = (T_e - self.GR*self.r_e*F_load) / self.J_e\n", | |
" \n", | |
" w_w = self.GR * self.w_e\n", | |
" s = (w_w*self.r_e - self.v) / self.v\n", | |
" if abs(s) < 1:\n", | |
" F_x = self.c * s\n", | |
" else:\n", | |
" F_x = self.F_max\n", | |
" #force equation (acceleration) \n", | |
" self.a = (F_x - F_load) / self.m\n", | |
" \n", | |
" #update equations\n", | |
" self.w_e += self.w_e_dot * self.sample_time\n", | |
" #since v = a*t\n", | |
" self.v += self.a * self.sample_time\n", | |
" #since x = v*t - (1/2)*a*t^2\n", | |
" self.x += (self.v * self.sample_time) - (0.5 * self.a * self.sample_time**2) \n", | |
" " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Using the model, you can send constant throttle inputs to the vehicle in the cell below. You will observe that the velocity converges to a fixed value based on the throttle input due to the aerodynamic drag and tire force limit. A similar velocity profile can be seen by setting a negative incline angle $\\alpha$. In this case, gravity accelerates the vehicle to a terminal velocity where it is balanced by the drag force." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\nZhT8IiJp5v8DqbewW/uV+KEAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"sample_time = 0.01\n", | |
"time_end = 100\n", | |
"model = Vehicle()\n", | |
"\n", | |
"t_data = np.arange(0,time_end,sample_time)\n", | |
"v_data = np.zeros_like(t_data)\n", | |
"\n", | |
"# throttle percentage between 0 and 1\n", | |
"throttle = 0.2\n", | |
"\n", | |
"# incline angle (in radians)\n", | |
"alpha = 0\n", | |
"\n", | |
"for i in range(t_data.shape[0]):\n", | |
" v_data[i] = model.v\n", | |
" model.step(throttle, alpha)\n", | |
" \n", | |
"plt.plot(t_data, v_data)\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We will now drive the vehicle over a slope as shown in the diagram below.\n", | |
"\n", | |
"\n", | |
"\n", | |
"To climb the slope, a trapezoidal throttle input is provided for the next 20 seconds as shown in the figure below. \n", | |
"\n", | |
"\n", | |
"\n", | |
"The vehicle begins at 20% throttle and gradually increases to 50% throttle. This is maintained for 10 seconds as the vehicle climbs the steeper slope. Afterwards, the vehicle reduces the throttle to 0.\n", | |
"\n", | |
"In the cell below, implement the ramp angle profile $\\alpha (x)$ and throttle profile $x_\\theta (t)$ and step them through the vehicle dynamics. The vehicle position $x(t)$ is saved in the array $\\textit{x_data}$. This will be used to grade your solution.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEICAYAAABRSj9aAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xd4VGX6xvHvQ2+hhk4g9A6KAQG7\nIiIqdldXBRUXXXVddy1gb2tby/5014YdV0WqICKKWMBOERJCgIQeEhJqChDS3t8fGfbKZhMISWbO\nzOT+XFeuzJzzzpwnZ2buvPOeZs45REQkfNXwugAREfEvBb2ISJhT0IuIhDkFvYhImFPQi4iEOQW9\niEiYU9BL2DKz18zsQa/rEPGaaT96CVVmthloDeQDBcAaYAow2TlXeIzPc6Nz7is/lCniOfXoJdRd\n4JyLADoBTwMTgbe8LUkkuCjoJSw45zKcc3OB3wHjzKyfmb1rZn8DMLNIM5tnZvvMbI+ZLTGzGmb2\nPtAR+NTMss3sHl/76Wa2w8wyzGyxmfU9vCzf875sZp+ZWZaZ/WJmXYvN72tmC33LSTOz+3zTa5jZ\nJDPbYGa7zWyamTUP5HqS6klBL2HFOfcrkAycUmLWnb7pLSka7rmvqLm7FthK0TeDRs65v/vafw50\nB1oBK4APSjzfVcCjQDMgCXgCwMwigK+ABUA7oBuwyPeY24GLgNN88/YCL1f6jxY5CgW9hKMUoGRP\nOQ9oC3RyzuU555a4I2ygcs697ZzLcs4dAh4BBppZk2JNZjnnfnXO5VP0T+A43/TzgR3Oueedczm+\n5/jFN+8m4H7nXHKx573MzGpV8u8VOSIFvYSj9sCeEtOepajn/aWZbTSzSWU92MxqmtnTviGWTGCz\nb1ZksWY7it0+ADTy3Y4CNpTx1J2A2b7ho31AAkUbkVuX428SqTAFvYQVMxtMUdB/X3y6r2d9p3Ou\nC3AB8FczO+vw7BJP83vgQmAE0ASIPvz05ShhG9D1CPPOdc41LfZTzzm3vRzPK1JhCnoJC2bW2MzO\nB6YC/3bOxZWYf76ZdTMzAzIp6kkX+GanAV2KNY8ADgG7gQbAk8dQyjygjZndYWZ1zSzCzE70zXsN\neMLMOvlqamlmFx7bXypy7BT0Euo+NbMsinrL9wMvANeX0q47RRtJs4GfgFecc9/65j0FPOAbUrmL\non3xtwDbKdo3/+fyFuOcywLOpuhbww4gETjDN/tFYC5Fw0dZvuc9sbTnEalKOmBKRCTMqUcvIhLm\nFPQiImFOQS8iEuYU9CIiYS4ojsiLjIx00dHRXpchIhJSli9fvss51/Jo7YIi6KOjo1m2bJnXZYiI\nhBQz21Kedhq6EREJcwp6EZEwp6AXEQlzCnoRkTCnoBcRCXMKehGRMKegFxEJcwp6EREPOOd4aVEi\na1Iy/b6soDhgSkSkOsnNL2TSrFhmrdjOwbwC+rRr7NflKehFRAIoMyePW/69gu+TdvGXET24/axu\nfl+mgl5EJEBSMw5y/TtLSUrP5rnLB3LZCR0CslwFvYhIACSkZnL9O0vJPpTPO9cP5pTuRz0XWZVR\n0IuI+NkPSbu4+f3lNKhbk2k3DfP7mHxJCnoRET+auTyZiTNj6dqyEe9cP5h2TesHvAYFvYiIHzjn\n+NfXSTy/cD3Du7bgtWtPoHG92p7UoqAXEalieQWFPPjJaqYu3cYlx7fn6UsHUKeWd4ctHXXJZhZl\nZt+YWYKZxZvZn33Tm5vZQjNL9P1u5ptuZvaSmSWZWayZDfL3HyEiEiyyD+Vz43vLmLp0G386sxvP\nXzHQ05CH8h0Zmw/c6ZzrDQwFbjWzPsAkYJFzrjuwyHcf4Fygu+9nAvBqlVctIhKE0jNz+N3rP/F9\n0i6euqQ/d47siZl5XdbRg945l+qcW+G7nQUkAO2BC4H3fM3eAy7y3b4QmOKK/Aw0NbO2VV65iEgQ\nWbsjk4tf+ZFNu/bz5tgYrhrS0euS/uOYvk+YWTRwPPAL0No5lwpF/wyAVr5m7YFtxR6W7JsmIhKW\nvl2XzmWv/kR+YSHTbhrGGb1aHf1BAVTuoDezRsBM4A7n3JHOwlPa9xRXyvNNMLNlZrZs586d5S1D\nRCSoTPlpMze8u5SOzRvwya0n0a99E69L+h/lCnozq01RyH/gnJvlm5x2eEjG9zvdNz0ZiCr28A5A\nSsnndM5Nds7FOOdiWrYM3BFiIiJVoaDQ8cjceB6aE8+ZvVox/eZhtG0S+H3ky6M8e90Y8BaQ4Jx7\nodisucA43+1xwJxi08f69r4ZCmQcHuIREQkH2Yfy+cOUZbz742bGn9yZ16+NoWHd4N1bvTyVnQRc\nC8SZ2UrftPuAp4FpZjYe2Apc7ps3HxgNJAEHgOurtGIREQ+l7DvIDe8uJTE9m8cv6se1Qzt5XdJR\nHTXonXPfU/q4O8BZpbR3wK2VrEtEJOjEJu9j/HvLOJhbwNvXDea0HqEx7By83zVERILIgtU7uOPj\n32jRsC7//uOJ9GwT4XVJ5aagFxE5Auccry/eyDML1jKwQ1PeGBtDy4i6Xpd1TBT0IiJlyMkr4L5Z\nccz6bTvn9W/L81cMpF7tml6XdcwU9CIipUjPzGHC+8tZuW0ffxnRgz+d2Y0aNbw/nUFFKOhFREqI\nTd7HH6YsI/NgPq9dM4hR/UL7LC4KehGRYuas3M49M2KJbFSXmX8cHvCrQfmDgl5EBCgsdDz35Tpe\n+XYDQ6Kb88o1g4hsFFobXcuioBeRai8rJ4+/fLySrxLSuWpIFI+O6ef5OeSrkoJeRKq1rbsPcOOU\npWzYuZ9Hx/Rl7LBOQXEO+aqkoBeRamtJ4k7+9NFvOAdTbhjCSd0ivS7JLxT0IlLtOOd49bsNPPfF\nOrq3iuD1a08gOrKh12X5jYJeRKqV7EP53DVtFQvid3DBwHY8c2l/GtQJ7ygM779ORKSYpPRsbnp/\nGZt3H+CB83oz/uTOYTceXxoFvYhUCwtW7+Cu6auoW6sG748fwvCu4TkeXxoFvYiEtYJCxwsL1/Hy\nNxsY2KEJr15zAu2aBueVoPxFQS8iYWvfgVxun7qSxet3cuXgKB4Z0zckT0pWWQp6EQlLv23dy20f\n/sbOrEM8dUl/rhrS0euSPKOgF5Gw4pzj3R838+T8BFpF1GP6zcMYGNXU67I8paAXkbCRmZPHxBmx\nfL56ByN6t+L5y4+jSYPaXpflOQW9iISF1dszuPXDFSTvPcj9o3tz4ynVY9fJ8lDQi0hIc87x4a9b\nefTTNTRvUIePJwwlJrq512UFFQW9iISs/YfyuW92HHNWpnBqj5b844qBtAiTUwtXJQW9iISk1dsz\nuP2j39i8ez93jezBLaeH7qX+/E1BLyIhpbDQ8db3m/j7F2tp0bAuH9w4lGFdW3hdVlBT0ItIyEjP\nyuHOaatYkriLkX1a88ylA2jWsI7XZQU9Bb2IhIRv1qVz9/RVZOXk87eL+nH1iR21V005KehFJKgd\nyi/gmc/X8fYPm+jVJoIP/zCUHq0jvC4rpCjoRSRoJaVnc/tHv7EmNZNxwzpx7+je1fJcNZWloBeR\noFNYWHQag2cWrKVBnZq8MTaGs/u09rqskKWgF5GgkrLvIHfPWMUPSbs5o2dLnrl0AK0a1/O6rJCm\noBeRoOCcY/Zv23l4bjwFhY6nLunPlYOjtMG1CijoRcRze/bnct+sOBbE7yCmUzOev2IgnVqE78W6\nA01BLyKeWpSQxsSZcWQczGXiqF5MOLULNXWEa5VS0IuIJ/buz+WJ+QnMWJ5MrzYRvD9+CL3bNva6\nrLCkoBeRgHLO8WlsKo99Gs++A3nccnpX/jyiO3VrabdJf1HQi0jApOw7yIOfrGbR2nQGdGjClBtO\npE879eL9TUEvIn5XWOj49y9beObztRQ6eOC83lx/UmeNxQeIgl5E/Gp9WhaTZsayYus+TukeyZMX\n9yeqeQOvy6pWahytgZm9bWbpZra62LRHzGy7ma30/YwuNu9eM0sys3Vmdo6/CheR4HYov4B/LFzP\neS8tYeOu/bxwxUCm3DBEIe+B8vTo3wX+BUwpMf0fzrnnik8wsz7AlUBfoB3wlZn1cM4VVEGtIhIi\nlm/Zw6SZcSSmZ3Phce148Pw+ROrKT545atA75xabWXQ5n+9CYKpz7hCwycySgCHATxWuUERCRlZO\nHs9+sY73f95C28b1eOe6wZzRq5XXZVV7lRmjv83MxgLLgDudc3uB9sDPxdok+6b9DzObAEwA6Nix\nYyXKEJFgsCghjQc+Wc2OzBzGDYvmrnN60qiuNgMGg6OO0ZfhVaArcByQCjzvm17aJnRX2hM45yY7\n52KcczEtW7asYBki4rWdWYe47cMVjH9vGRH1ajHzj8N5ZExfhXwQqdAr4ZxLO3zbzN4A5vnuJgNR\nxZp2AFIqXJ2IBC3nHDOWJ/O3zxI4mFvAX8/uwc2ndaVOrYr2H8VfKhT0ZtbWOZfqu3sxcHiPnLnA\nh2b2AkUbY7sDv1a6ShEJKlt27+e+2XH8kLSbmE7NePrS/nRrpas+BaujBr2ZfQScDkSaWTLwMHC6\nmR1H0bDMZuAmAOdcvJlNA9YA+cCt2uNGJHzkFxTy9g+beGHhemrVqMHjF/Xj6iEdqaEDn4KaOVfq\nEHpAxcTEuGXLlnldhogcwertGUyaFcvq7ZmM6N2axy/qS9sm9b0uq1ozs+XOuZijtdPWEhE5opy8\nAv7vq0TeWLKRZg3q8PLvBzG6fxtdECSEKOhFpEw/btjFvbPi2LL7AJef0IH7z+tN0wZ1vC5LjpGC\nXkT+R8aBPJ6cn8DHy7bRqUUDPrzxRIZ3i/S6LKkgBb2I/Idzjs9X7+ChOfHsPZDLTad14Y6zelC/\njs4VH8oU9CICwI6MHB6cs5qFa9Lo264x714/mH7tm3hdllQBBb1INVdY6Pho6Vaenr+W3IJC7j23\nF+NP7kytmjrwKVwo6EWqsQ07s7l3Zhy/bt7D8K4tePLi/kRHNvS6LKliCnqRaig3v5DJizfw0qIk\n6tWuwd8vG8DlJ3TQLpNhSkEvUs2s3LaPSTNjWbsji/P6t+XhMX1oFVHP67LEjxT0ItXE/kP5PP/l\net79cROtIuox+doTGNm3jddlSQAo6EWqge/W7+S+WXFs33eQa4Z25J5RvWhcr7bXZUmAKOhFwtie\n/bn8bd4aZv22na4tGzL95mEMjm7udVkSYAp6kTDknGPuqhQe/XQNmQfzuP3MbtxyRjfq1daBT9WR\ngl4kzCTvPcADn6zm23U7OS6qKU9f2p9ebRp7XZZ4SEEvEiYKCh1TftrMs1+sA+DhC/owdlg0NXWu\n+GpPQS8SBpLSs5k4M5blW/ZyWo+WPHFxPzo0a+B1WRIkFPQiISyvoJDJizfy4qJEGtSpyQtXDOTi\n49vrwCf5Lwp6kRAVn5LBPTNiiU/JZHT/Njw6ph8tI+p6XZYEIQW9SIg5lF/APxcl8dp3G2jaoA6v\nXTOIUf3ael2WBDEFvUgIWbF1LxNnxJKYns0lg9rz0Pl9dMUnOSoFvUgIOJhbwHNfruPtHzbRtnE9\n3rl+MGf0bOV1WRIiFPQiQe7HDbuYNDOOrXsOcM3Qjkwc1YsInb5AjoGCXiRIZeXk8dTna/nwl61E\nt2jA1AlDGdqlhddlSQhS0IsEoW/WpnPf7DjSMnP4wymd+evZPXXdVqkwBb1IENm7P5fH5q1h9m/b\n6dG6Ea9ecxLHRTX1uiwJcQp6kSAxPy6Vh+asZt+BPG4/qzu3ntGVurXUi5fKU9CLeCw9K4eHPoln\nQfwO+rdvwpQbTqRPO52ETKqOgl7EI845Zq7YzuPz1nAwr4CJo3rxh1M6U6tmDa9LkzCjoBfxwPZ9\nB7lvVhzfrd9JTKdmPHPZALq2bOR1WRKmFPQiAVRY6Pjw1608NT8BBzw6pi/XDu1EDZ1KWPxIQS8S\nIMl7DzBxZiw/JO3m5G6RPHVJf6Ka61TC4n8KehE/c84xdek2nvgsAeccT17cn6uGROlUwhIwCnoR\nP0rZd5CJM2NZkriL4V1b8MylA9SLl4BT0Iv4gXOOacu28bd5CRQ4x+MX9ePqIR01Fi+eUNCLVLHU\njINMmlm0R82JnZvz7GUD6dhCvXjxjoJepIoc3i/+0U/jyS9w2qNGgoaCXqQKpGXmcO+sOL5em86Q\n6OY8e/kAOrVo6HVZIoCCXqRSnHN8snI7D8+JJ7egkIfO78N1w6PVi5egctRjrc3sbTNLN7PVxaY1\nN7OFZpbo+93MN93M7CUzSzKzWDMb5M/iRbyUnpXDhPeX85ePV9G9dQTzbz+FG07urJCXoFOek2q8\nC4wqMW0SsMg51x1Y5LsPcC7Q3fczAXi1asoUCR7OOeas3M7Ifyxm8fqdPHBeb6bdNIwuOoWBBKmj\nDt045xabWXSJyRcCp/tuvwd8C0z0TZ/inHPAz2bW1MzaOudSq6pgES/tyj7EA7NXsyB+B8dFNeW5\nywfSrZUCXoJbRcfoWx8Ob+dcqpkdvkpxe2BbsXbJvmn/E/RmNoGiXj8dO3asYBkigTMvNoWH5sST\nfSifSef24g+ndKGmhmkkBFT1xtjS3vWutIbOucnAZICYmJhS24gEg93Zh3hoTjyfxaUysEMTnrt8\nIN1bR3hdlki5VTTo0w4PyZhZWyDdNz0ZiCrWrgOQUpkCRbz0eVwqD3yymqycfO4Z1ZMJp3TR+eIl\n5FT0HTsXGOe7PQ6YU2z6WN/eN0OBDI3PSyjauz+XP330G3/8YAXtmtbn0z+dzC2nd1PIS0g6ao/e\nzD6iaMNrpJklAw8DTwPTzGw8sBW43Nd8PjAaSAIOANf7oWYRv/oifgf3z15NxsFc7jy7Bzef3pXa\nCngJYeXZ6+aqMmadVUpbB9xa2aJEvLDvQC6PzI3nk5Up9GnbmPfHD6F3W127VUKfjowVAb5ak8a9\ns+PYuz+Xv4zowS1nqBcv4UNBL9VaxoE8Hp0Xz6wV2+nVJoJ3rx9M33ZNvC5LpEop6KXa+mZtOpNm\nxbIrO5fbz+zGbWd2p04t9eIl/CjopdrJzMnj8U/XMH15Mj1bR/Dm2MH076BevIQvBb1UK9+t38mk\nmbGkZeZw6xlduf2s7tStVdPrskT8SkEv1UJWTh5PfJbA1KXb6N6qEa/dchIDo5p6XZZIQCjoJewt\nSdzJxBmx7MjM4ebTunLHiO7Uq61evFQfCnoJW9mH8nlyfgIf/rKVLi0bMvOPwzm+YzOvyxIJOAW9\nhKUfk3Zx94xYUjIOMuHULvz17B7qxUu1paCXsLL/UD5Pf76W93/eQufIhsy4eRgndGrudVkinlLQ\nS9j4eeNu7p6xiuS9Bxl/cmfuGtmT+nXUixdR0EvIO5Cbz98XrOPdHzfTqUUDpt00jMHR6sWLHKag\nl5D266Y93D1jFVt2H+C64dHcM6onDerobS1SnD4REpIO5hbw7BfreOfHTUQ1a8DUCUMZ2qWF12WJ\nBCUFvYSc5Vv2cNf0WDbt2s/YYZ2YOKoXDevqrSxSFn06JGTk5BXwwsL1vLFkI+2a1OfDG09keLdI\nr8sSCXoKegkJK7bu5a7pq9i4cz9Xn9iRe0f3ppF68SLlok+KBLWcvAL+76tEJi/eQNsm9fn3+BM5\nubt68SLHQkEvQWvVtn3cNX0VienZXDUkivtG9yaiXm2vyxIJOQp6CTqH8gt4aVEir323kVYRdXnv\nhiGc1qOl12WJhCwFvQSVuOQM7pq+inVpWVwR04EHzu9DY/XiRSpFQS9BITe/kH99ncjL324gslEd\n3rluMGf0auV1WSJhQUEvnotPyeDOaatYuyOLSwa15+Hz+9KkgXrxIlVFQS+eySso5OVvkvjX10k0\na1iHN8fGMKJPa6/LEgk7CnrxREJqJndOW8Wa1EwuPr49D1/Qh6YN6nhdlkhYUtBLQOUVFPLatxt4\n6etEmtSvzevXnsA5fdt4XZZIWFPQS8Cs25HFXdNXEbc9gwsGtuPRMX1p3lC9eBF/U9CL3+UXFPL6\n4o28+FUiEfVq8erVgzi3f1uvyxKpNhT04lfFe/HnDWjLY2P60qJRXa/LEqlWFPTiFyV78a9cPYjR\n6sWLeEJBL1VOvXiR4KKglyqTX1DIa99t4MVFiTSuV1u9eJEgoaCXKqFevEjwUtBLpagXLxL8FPRS\nYfEpGUyaGUfc9gzOH9CWxy7sp/3iRYKQgl6OWU5eAS8uSmTy4o00a1BH+8WLBDkFvRyTnzbs5t5Z\nsWzefYArYjpw3+jeOkeNSJCrVNCb2WYgCygA8p1zMWbWHPgYiAY2A1c45/ZWrkzxWsbBPJ6an8DU\npdvo2LwBH9x4Iid107VbRUJBVfToz3DO7Sp2fxKwyDn3tJlN8t2fWAXLEY8sWJ3Kg3Pi2Z19iJtO\n7cIdI3pQv05Nr8sSkXLyx9DNhcDpvtvvAd+ioA9JaZk5PDRnNV/Ep9GnbWPeuW4w/do38bosETlG\nlQ16B3xpZg543Tk3GWjtnEsFcM6lmlmp14MzswnABICOHTtWsgypSoWFjqlLt/HU/ARyCwqZdG4v\nxp/cmdo1a3hdmohUQGWD/iTnXIovzBea2dryPtD3T2EyQExMjKtkHVJF1u7I5P7Zq1m+ZS9DuzTn\nqUsG0DmyoddliUglVCronXMpvt/pZjYbGAKkmVlbX2++LZBeBXWKn+0/lM+LixJ56/tNNKlfm2cv\nG8BlJ3TAzLwuTUQqqcJBb2YNgRrOuSzf7ZHAY8BcYBzwtO/3nKooVPzDOceXa9J4dG48KRk5XDk4\niomjetFMBz6JhI3K9OhbA7N9Pb5awIfOuQVmthSYZmbjga3A5ZUvU/whee8BHpkbz1cJ6fRqE8FL\nVx1PTHRzr8sSkSpW4aB3zm0EBpYyfTdwVmWKEv/KKyjkzSWbeGlRImZw/+jeXHdStDa2ioQpHRlb\nzfy6aQ8PfBLH+rRsRvZpzcNj+tK+aX2vyxIRP1LQVxM7sw7xzIK1zFieTPum9XlzbAwj+rT2uiwR\nCQAFfZjLKyjk/Z+28I+F68nJL+Dm07py+1ndaFBHL71IdaFPexj7ccMuHpkbz/q0bE7pHskjY/rS\ntWUjr8sSkQBT0IehlH0HeWJ+Ap/FptKhWX1ev/YERvZprX3iRaopBX0YOZRfwJtLNvGvr5ModI6/\njOjBTad1oV5tnYBMpDpT0IeJr9em8dina9i8+wDn9G3NA+f1Iap5A6/LEpEgoKAPcVt27+exT9ew\naG06XVo2ZMoNQzi1R0uvyxKRIKKgD1FZOXm88u0G3lqyido1jftG9+K64Z2pU0sHPYnIf1PQh5iC\nQsf0Zdt47st17MrO5ZLj2zPx3F60blzP69JEJEgp6EPITxt289i8NSSkZnJCp2a8NW4wA6Oael2W\niAQ5BX0I2LJ7P0/OT+CL+DTaN63Pv35/POf1b6vdJUWkXBT0QSwzJ4+Xv07inR82U6umcfc5PRl/\ncmftLikix0RBH4QKCh1Tl27lhS/Xs+dALpcN6sDd5/SklcbhRaQCFPRB5oekXTw+bw1rd2QxJLo5\n713QRxfkFpFKUdAHifVpWTz9+Vq+XptOh2b1efXqQYzq10bj8CJSaQp6j6Vl5vCPheuZtmwbDevW\nYtK5vbhueLTG4UWkyijoPZJ9KJ/J323gjSWbyC8s5LrhnfnTmd10rVYRqXIK+gDLKyhk6tJtvPjV\nenZl53L+gLbcc04vOrbQeWlExD8U9AHinOPLNWk8s2AtG3fuZ0h0c94c15vjdMCTiPiZgj4AVmzd\ny1PzE1i6eS9dWzbkjbExjOjdShtaRSQgFPR+tHFnNs9/uZ7P4lKJbFSXJy7ux+9ioqhVUyceE5HA\nUdD7QWrGQV78KpHpy5OpW6sGfz6rOxNO7ULDulrdIhJ4Sp4qtGd/Lq98k8SUn7eAg2uHduLWM7rR\nMqKu16WJSDWmoK8C2YfyeXPJRt5csokDuflcMqgDd4zoTodm2pNGRLynoK+EnLwCPvhlKy9/k8Se\n/bmM6tuGO0f2oHvrCK9LExH5DwV9BeQXFDJrxXb+76v1pGTkcHK3SO4+p6fODS8iQUlBfwwKCh1z\nV23nn4uS2LhrPwOjmvLc5QMZ3i3S69JERMqkoC+HgkLHp6tSeGlRIht37adXmwhev/YERvZprX3h\nRSToKeiPoKDQMS+2KOA37CwK+NeuGcTIPm2oUUMBLyKhQUFfioJCx2dxqby0KJGk9Gx6to7glasH\nMaqvAl5EQo+Cvpj8gkLmxaby8jdJJKZn06N1I17+/SDO7aeAF5HQpaCnaDfJ6cuTmbx4A9v2HKR7\nq0b886qiC3Ar4EUk1FXroM/KyeODX7by1veb2Jl1iOOimvLgeX0Y0bu1Al5Ewka1DPr0rBym/LiF\nKT9tJjMnn1O6R/LilccxrEsL7UUjImGnWgX96u0ZvPPDZj5dlUJeYSHn9GnDLWd0ZUAHHegkIuEr\n7IO+oNDxVUIab3+/iV827aFBnZpcNSSKccOj6dKykdfliYj4XdgG/Y6MHKYv28bHy7aRvPcg7ZvW\n5/7RvblicBRN6tf2ujwRkYDxW9Cb2SjgRaAm8KZz7ml/Leuw/IJCvl23k6lLt/L12nQKHQzv2oJ7\nz+3NOX1b64IfIlIt+SXozawm8DJwNpAMLDWzuc65NVW9rIJCx6+b9jAvNoUFq3ewe38ukY3qctNp\nXfldTBTRkQ2repEiIiHFXz36IUCSc24jgJlNBS4EqjTov16bxqSZcaRnHaJ+7Zqc2bsVYwa248xe\nrait3ruICOC/oG8PbCt2Pxk4sXgDM5sATADo2LFjhRbSrml9ju/YlPMHtOOs3q1oUCdsNzmIiFSY\nv5KxtJ3R3X/dcW4yMBkgJibGldL+qHq1aczr18ZU5KEiItWGv8Y3koGoYvc7ACl+WpaIiByBv4J+\nKdDdzDqbWR3gSmCun5YlIiJH4JehG+dcvpndBnxB0e6Vbzvn4v2xLBEROTK/bb10zs0H5vvr+UVE\npHy0D6KISJhT0IuIhDkFvYhImFPQi4iEOXOuQscqVW0RZjuBLRV8eCSwqwrLqSrBWhcEb22q69io\nrmMTjnV1cs61PFqjoAj6yjCzZc65oDs8NljrguCtTXUdG9V1bKpzXRq6EREJcwp6EZEwFw5BP9nr\nAsoQrHVB8Namuo6N6jo21baKZtDeAAAE2ElEQVSukB+jFxGRIwuHHr2IiByBgl5EJMyFTNCb2Sgz\nW2dmSWY2qZT5dc3sY9/8X8wsOgA1RZnZN2aWYGbxZvbnUtqcbmYZZrbS9/OQv+vyLXezmcX5lrms\nlPlmZi/51lesmQ0KQE09i62HlWaWaWZ3lGgTsPVlZm+bWbqZrS42rbmZLTSzRN/vZmU8dpyvTaKZ\njQtAXc+a2VrfazXbzJqW8dgjvu5+qOsRM9te7PUaXcZjj/j59UNdHxerabOZrSzjsf5cX6Xmgyfv\nMedc0P9QdKrjDUAXoA6wCuhTos0twGu+21cCHwegrrbAIN/tCGB9KXWdDszzYJ1tBiKPMH808DlF\nVwMbCvziwWu6g6IDPjxZX8CpwCBgdbFpfwcm+W5PAp4p5XHNgY2+3818t5v5ua6RQC3f7WdKq6s8\nr7sf6noEuKscr/URP79VXVeJ+c8DD3mwvkrNBy/eY6HSo//Pxcadc7nA4YuNF3ch8J7v9gzgLDMr\n7ZKGVcY5l+qcW+G7nQUkUHS93FBwITDFFfkZaGpmbQO4/LOADc65ih4RXWnOucXAnhKTi7+P3gMu\nKuWh5wALnXN7nHN7gYXAKH/W5Zz70jmX77v7M0VXbQuoMtZXeZTn8+uXunwZcAXwUVUtr7yOkA8B\nf4+FStCXdrHxkoH6nza+D0QG0CIg1QG+oaLjgV9KmT3MzFaZ2edm1jdAJTngSzNbbkUXYi+pPOvU\nn66k7A+fF+vrsNbOuVQo+qACrUpp4/W6u4Gib2OlOdrr7g+3+YaU3i5jGMLL9XUKkOacSyxjfkDW\nV4l8CPh7LFSC/qgXGy9nG78ws0bATOAO51xmidkrKBqeGAj8E/gkEDUBJznnBgHnArea2akl5nu5\nvuoAY4Dppcz2an0dCy/X3f1APvBBGU2O9rpXtVeBrsBxQCpFwyQleba+gKs4cm/e7+vrKPlQ5sNK\nmVbhdRYqQV+ei43/p42Z1QKaULGvmcfEzGpT9CJ+4JybVXK+cy7TOZftuz0fqG1mkf6uyzmX4vud\nDsym6OtzcV5ewP1cYIVzLq3kDK/WVzFph4ewfL/TS2njybrzbZA7H7ja+QZySyrH616lnHNpzrkC\n51wh8EYZy/NqfdUCLgE+LquNv9dXGfkQ8PdYqAR9eS42Phc4vGX6MuDrsj4MVcU3/vcWkOCce6GM\nNm0ObyswsyEUrfPdfq6roZlFHL5N0Ya81SWazQXGWpGhQMbhr5MBUGYvy4v1VULx99E4YE4pbb4A\nRppZM99QxUjfNL8xs1HARGCMc+5AGW3K87pXdV3Ft+tcXMbyyvP59YcRwFrnXHJpM/29vo6QD4F/\nj/lja7M/fijaS2Q9RVvv7/dNe4yiNz5APYqGApKAX4EuAajpZIq+TsUCK30/o4GbgZt9bW4D4ina\n0+BnYHgA6uriW94q37IPr6/idRnwsm99xgExAXodG1AU3E2KTfNkfVH0zyYVyKOoBzWeou06i4BE\n3+/mvrYxwJvFHnuD772WBFwfgLqSKBqzPfw+O7yHWTtg/pFedz/X9b7v/RNLUYC1LVmX7/7/fH79\nWZdv+ruH31fF2gZyfZWVDwF/j+kUCCIiYS5Uhm5ERKSCFPQiImFOQS8iEuYU9CIiYU5BLyIS5hT0\nIiJhTkEvIhLm/h9oq+2TITD2hQAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"time_end = 20\n", | |
"t_data = np.arange(0,time_end,sample_time)\n", | |
"x_data = np.zeros_like(t_data)\n", | |
"v_data = np.zeros_like(t_data)\n", | |
"w_e_data = np.zeros_like(t_data)\n", | |
"\n", | |
"# reset the states\n", | |
"model.reset()\n", | |
"\n", | |
"# ==================================\n", | |
"# Learner solution begins here\n", | |
"# ==================================\n", | |
"def angle(i, alpha, x):\n", | |
" if x < 60:\n", | |
" alpha[i] = np.arctan(3/60)\n", | |
" elif x < 150:\n", | |
" alpha[i] = np.arctan(9/90)\n", | |
" else:\n", | |
" alpha[i] = 0\n", | |
"\n", | |
"throttle = np.zeros_like(t_data)\n", | |
"alpha = np.zeros_like(t_data)\n", | |
"\n", | |
"#throttle depends on time and alpha depends on distance travelled (model.x)\n", | |
"for i in range(t_data.shape[0]):\n", | |
" if t_data[i] < 5:\n", | |
" throttle[i] = 0.2 + ((0.5 - 0.2)/5)*t_data[i]\n", | |
" angle(i, alpha, model.x)\n", | |
" elif t_data[i] < 15:\n", | |
" throttle[i] = 0.5\n", | |
" angle(i, alpha, model.x)\n", | |
" else:\n", | |
" throttle[i] = ((0 - 0.5)/(20 - 15))*(t_data[i] - 20)\n", | |
" angle(i, alpha, model.x)\n", | |
" \n", | |
" #call the step function and update x_data array\n", | |
" model.step(throttle[i], alpha[i])\n", | |
" x_data[i] = model.x\n", | |
" v_data[i] = model.v\n", | |
" w_e_data[i] = model.w_e\n", | |
" \n", | |
"# ==================================\n", | |
"# Learner solution ends here\n", | |
"# ==================================\n", | |
"\n", | |
"# Plot x vs t for visualization\n", | |
"plt.title('Distance')\n", | |
"plt.plot(t_data, x_data)\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\nvC6p3RToItKl3f/hWp74bCOXfGsoV//XCK/L6RAFuoh0WS/O28Jf5qzm9CkD+O33xnTqi4baQoEu\nIl3Sp2uK+fVryzhqZBa3nz6h017OfyAU6CLS5azaXs5PnlnAiN6p/O28KZ5PTBEs0fGvEBFpox1l\nNVzy5DySEmJ5/KJDSUuM97qkoNGMRSLSZVTVNXDpzPnsqqrjxR9Po5+H83+GglroItIlOOe44cUl\nLC8o5f5zJzO+f4bXJQWdAl1EuoQHP1rLO7nb+dXJYzh2TOeZNi6YFOgiEvU+WFnI3XNWc+rk/lx2\n1FCvywkZBbqIRLW1Oyq4dtZixvfL4E+nTYj4seb7okAXkahVWl3PFU/NJzE+hr//6BAS42O9Limk\nNMpFRKKSz+e4/oXFbN5ZxXOXHx51I1paoha6iESl+z9cy4d5O7h1+jimDu3pdTlhoUAXkajz6Zpi\n/vrBak6b3J/zD+v8c4EGiwJdRKJKYVkN185axIheqfzvqeOj+iRocwp0EYkaDY0+rn5uEdX1jTx0\n/hSSE7rWacKu9a8Vkah25/ur+HLjTu49ZxIjeqd5XU7YqYUuIlFhzopC/v5/6/nhYYOYMam/1+V4\nQoEuIhEvf1cVN7y4mHH90rnllLFel+MZBbqIRLSGRh/XzVqMz8HfzpsS9RcP7Yv60EUkoj3w0Vrm\nb9rFX8+exODMFK/L8ZRa6CISseZt3Ml9H6zh1Mn9+cHkrtlv3pQCXUQiUmlVPdfNWsyAHsncNmOc\n1+V0CupyEZGI45zj168vo7CshpeunBZV08h1hFroIhJxXpqfz9tLt3H98aOYPKiH1+V0Ggp0EYko\n64oquPWN5Rw+rCdXfnu41+V0Kgp0EYkYdQ0+rp21iG7xMdxz9iRiY7rOfVraQn3oIhIxHvhwDblb\ny3j4/ClkZ0T//c0PlFroIhIRFm/ZzYMfr+O0Kf05aXy21+V0Sgp0Een0auob+fmLi+md1o1bv68h\niq3Zb6Cb2eNmtsPMcpssu9PM8sxsqZm9ZmbdQ1umiHRld7ybx/qiSu48YyIZSRqi2Jq2tNCfBE5q\ntmwOMN45dzCwGvhVkOsSEQHg83XFPPHZRi6cNpgjR2Z5XU6ntt9Ad859Auxstux951xD4McvgAEh\nqE1Euriymnp++dJShmalcPPJY7wup9MLRh/6JcA7ra00syvMbL6ZzS8qKgrC7kSkq/ifN1ewrbSa\n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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.title('Velocity')\n", | |
"plt.plot(t_data, v_data)\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.title('w_e')\n", | |
"plt.plot(t_data, w_e_data)\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEICAYAAACktLTqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xl4XIV97vHvT5Jled8kG1sa7wte\n8TJ2CRDCjo2LVyxD05akyUNyGy5Jk97GbG4CSYCkTdPe0oU2TdM0DdjYBgMGQwk0C0ssr/KKF7zI\nq7zvi6Rf/5gRUYRkjaSZObO8n+fR49HMGc3rM6PX43PO/I65OyIikllygg4gIiLxp3IXEclAKncR\nkQykchcRyUAqdxGRDKRyFxHJQCp3yRhm1t/M3Mzykvy4b5vZ55P5mCJNUblLWjOznWZ2S4J+9g1m\nVlHvum+Y2X8m4vFE4knlLlkr2e/wRZJJ5S5py8x+AvQFXjKz00Bp9KZPm9luMztsZg/XWf4bZva8\nmf2nmZ0EPmNmbc3sB2a2L/r1g+h1HYBXgT5mdjr69QfAQ8Dc6PdrG8n1J2a2ycyOmdlyM+uX0BUh\n0gCVu6Qtd/8jYDdwp7t3BBZEb7oOGAbcDMw3s+F17jYdeB7oCvwUeBi4GhgLXAVMAh5x9zPAFGCf\nu3eMfv0X8B3guej3V9XPZGYziPwDMAsoAn4J/Cy+f3ORpqncJRN9093PuftaYC2R0q71rru/4O41\n7n4O+DTwmLsfcvdK4JvAH7Xisb8APOHum9y9isg/BmP17l2STeUumehAnctngY51vt9Tb9k+wK46\n3++KXtdS/YC/NbPjZnYcOAoYUNyKnynSbCp3SXfNHWtaf/l9RAq5Vt/odY397KYebw/wBXfvWuer\nnbu/08ycIq2icpd0dxAY2Ir7/wx4xMyKzKwQmA/UHup4EOhhZl3qPV5/M2vsd+efgAfNbCSAmXUx\nszmtyCfSIip3SXdPECnn48BdLbj/t4AyYB1QDqyKXoe7byZS/juim1n6AAuj9ztiZqvq/zB3XwI8\nBTwbPSJnPZEdsyJJZTpZh4hI5tE7dxGRDKRyFxHJQCp3EZEMpHIXEclAgQ1OKiws9P79+wf18CIi\naWnlypWH3b2oqeUCK/f+/ftTVlYW1MOLiKQlM9vV9FLaLCMikpFU7iIiGUjlLiKSgVTuIiIZSOUu\nIpKBYip3M5tsZlvMbJuZzWvg9s+YWaWZrYl+6UzwIiIBavJQSDPLBZ4GbgUqgBVmttTdN9Zb9Dl3\nvz8BGUVEpJliOc59ErDN3XcAmNmzRM5DWb/cJQWdOn+Jn76/m7MXqoKOIhkqNyeHeyaF6Nm5IOgo\nUkcs5V7M756arAL4vQaWm21m1wMfAH/m7vVPZ4aZ3QfcB9C3b9/mp5Vmm//iBpas3otZ0EkkU7nD\n4dMXeHzGqKCjSB2xlHtDtVB/CPxLwM/c/YKZfRH4MXDTx+7k/gzwDEA4HNYg+QR7e8shlqzeywM3\nD+Grtw4NOo5kqC8/u5oX1+zl4anDKWiTG3QciYplh2oFEKrzfQm/PcckAO5+xN0vRL/9F2BCfOJJ\nS525UMXDS9YzqKgDX7pxUNBxJIPNDYc4eb6K5RsONL2wJE0s5b4CGGJmA8wsH7gbWFp3ATPrXefb\nacCm+EWUlvjr1z9g7/FzPDV7DG3z9G5KEufqgT0o6daOBWUf2xIrAWqy3N29CrgfWE6ktBe4+wYz\ne8zMpkUXe8DMNpjZWuAB4DOJCixNW737GD9650P+6Op+hPt3DzqOZLicHGPOhBC/3naEPUfPBh1H\nomI6zt3dl7n7UHcf5O7fjl43392XRi8/6O4j3f0qd78xemJhCcDFqhoeXFxOr04F/MXkYUHHkSxx\nV7gEM1i4siLoKBKlT6hmmGd+sZ3NB07x+IxRdCpoE3QcyRLFXdtx3eBCni/bQ3WNjpVIBSr3DLLt\n0Gn+7s1tTB3Tm1tH9Ao6jmSZuRND7Dtxnne2Hw46iqByzxg1Nc5Di8tpl5/LN+4cGXQcyUK3juhF\n1/ZteG6FdqymApV7hvjZit38ZudRHp46nKJObYOOI1mobV4uM8YW8/qGgxw/ezHoOFlP5Z4BDpw4\nz5PLNnPNoB7MmVASdBzJYqXhEBera3hh9d6go2Q9lXuac3cefXE9F6treGLWaExzBiRAI/p0ZlRx\nZxaU6aiZoKnc09xr6w/wxsaDfPXWofTr0SHoOCLMDYfYuP8k6/eeCDpKVlO5p7ETZy8xf+kGRvbp\nzOeuGxB0HBEApl1VTH5ejj6xGjCVexp74tVNHD1zkadmjyEvV0+lpIYu7dsweeQVvLB6L+cvVQcd\nJ2upEdLUO9sP8+yKPXz+kwMYVdwl6Dgiv2PuRA0TC5rKPQ2dv1TNQ4vL6dejPV+5WaN8JfV8IjpM\nbKF2rAZG5Z6G/vbNrew8cpYnZo6mXb4mPkrq+WiY2PbDGiYWEJV7mtmw7wTP/GIHpeESrhlcGHQc\nkUbNnlAMwPMaJhYIlXsaqaquYd6icrq1z+ehO4YHHUfkskq6tY8ME1tZQY2GiSWdyj2N/OjXOynf\ne4JvThtJ1/b5QccRaVJpOMTe4+d4Z/uRoKNkHZV7mth95Cx//cYWbhneiztGXxF0HJGY3DqiF13a\nteE5HfOedCr3NODuPPxCOXk5OTw+Y6RGDEjaKGiTy8xxxSzfcEDDxJJM5Z4GFq/ayy+3HubrU66k\nd5d2QccRaZY54RIuVtXw4pp9QUfJKir3FHf49AUef2Uj4X7d+PSkvkHHEWm2kX26MLJPZ40jSDKV\ne4p77KWNnL1QzZOzR5OTo80xkp7mTgyxYZ+GiSWTyj2F/XzzQZau3cf9Nw1mcM9OQccRabHp0WFi\nC/XuPWlU7inq9IUqHlmynqG9OvLFTw0KOo5Iq3w0TGzNPg0TSxKVe4r6q+Vb2H/yPE/OHkN+np4m\nSX+l4RAnzl3i9Y0Hg46SFdQaKWjlrmP8+N2d3PuJ/ozv2y3oOCJxcc2gHhR3badNM0mick8xF6tq\nmLdoHb07F/Dntw8LOo5I3OTkGHPCJfxq22EqjmmYWKKp3FPMP769na2HTvOtmaPo2DYv6DgicXVX\n9ATuGiaWeCr3FLL14Cn+/q2tTLuqDzdd2SvoOCJxVztMbGGZhoklmso9RdTUOPMWl9OhbR7z7xwR\ndByRhJmjYWJJoXJPET99fxcrdx3j0akjKOzYNug4IglzW3SYmD6xmlgq9xSw7/g5nnptC58cUsis\n8cVBxxFJqII2ucwY24fXNhzgxNlLQcfJWCr3gLk7j76wnuoa5zszR2vio2SFOeFQZJjY2r1BR8lY\nMZW7mU02sy1mts3M5l1mubvMzM0sHL+Ime2V8v28ufkQX7ttKKHu7YOOI5IUo4o1TCzRmix3M8sF\nngamACOAe8zsY3v8zKwT8ADwfrxDZqrjZy/yjaUbGFPShc9c0z/oOCJJVRoOsX7vSTbs0zCxRIjl\nnfskYJu773D3i8CzwPQGlnsc+C5wPo75Mtq3X9nEsbOXeHLWGPJytYVMssv0sX2iw8R0zHsixNIo\nxUDd/ztVRK/7iJmNA0Lu/vLlfpCZ3WdmZWZWVllZ2eywmeRXWw+zcGUFX7h+ICP6dA46jkjSdW2f\nz+0jr2DJ6r0aJpYAsZR7Q3v4Pvr0gZnlAH8DfK2pH+Tuz7h72N3DRUVFsafMMOcuVvPQknIGFHbg\ngZuHBB1HJDCl4RJOnLvEGxomFnexlHsFEKrzfQlQ93xZnYBRwNtmthO4GliqnaqN+8F/f8Duo2d5\nYtZoCtrkBh1HJDDXDiqkuGs77VhNgFjKfQUwxMwGmFk+cDewtPZGdz/h7oXu3t/d+wPvAdPcvSwh\nidPc+r0n+Jdf7uCeSSGuHtgj6DgigcrJMe6aoGFiidBkubt7FXA/sBzYBCxw9w1m9piZTUt0wExy\nqbqGv3h+HT06tmXelOFBxxFJCbXDxBat1DHv8RTT2EF3XwYsq3fd/EaWvaH1sTLTD3/1IRv3n+Sf\n/nA8Xdq1CTqOSEoIdW/PtYMKWbhyD//3psE6V3Cc6Pi7JNl5+Ax/88YH3D6yF5NH9Q46jkhKmRMu\noeLYOd7doWFi8aJyTwJ358HF5eTn5vDY9FFBxxFJObePvILOBXnasRpHKvckWFhWwbs7jvDgHcPp\n1bkg6DgiKaegTS4zxhXz6noNE4sXlXuCHTp1nm+9spFJA7pz98RQ03cQyVKl0WFiSzVMLC5U7gn2\nzaUbOV9VwxOzRmtHkchljCruwojenVmgcQRxoXJPoNc3HOCV8v18+eYhDCrqGHQckZRXGi6hfO8J\nNu47GXSUtKdyT5CT5y/x6IvrufKKTtx3/cCg44ikhelji8nPzdGO1ThQuSfId1/bTOWpCzw5ewxt\nNPFRJCbdOuRz28hevLBmLxeqNEysNdQ6CbBi51H+873dfPbaAYwNdQ06jkhaKQ2HOH5Ww8RaS+Ue\nZ+cvVTNv0TpKurXja7cNDTqOSNq5dnDtMDHtWG0NlXuc/cNb29heeYZvzxxN+/yYpjuISB25Ocbs\nCSX8cmsle4+fCzpO2lK5x9HmAyf5h7e3M2tcMZ8amr3z6kVaa86EEtxh0Uq9e28plXucVNc48xaV\n07ldGx75/Y+dYlZEmiHUvT3XDu7BwpV7qKnxpu8gH6Nyj5P/eHcna/Yc5y/vHEH3DvlBxxFJe6Xh\nEHuOnuM9DRNrEZV7HFQcO8v3lm/hhmFFTLuqT9BxRDKChom1jsq9ldydR15YD8C3ZozCTCMGROKh\noE0u08dGh4md0zCx5lK5t9LStft4e0sl/+/2YZR0ax90HJGMUhoOcaGqhqVr9zW9sPwOlXsrHD1z\nkW++tJGxoa788Sf6Bx1HJOOMKu7M8N6dWahNM82mcm+Fb728kZPnLvHU7DHkauKjSNyZGaXhEtZV\nnGDTfg0Taw6Vewv9zweVLF69lz+9YRDDrugUdByRjDVDw8RaROXeAmcuVPHQ4nIGFXXgSzcNDjqO\nSEbr1iGfW0f2YslqDRNrDpV7C3z/jQ/Ye/wcT84eQ9u83KDjiGS82mFi/73xUNBR0obKvZnW7DnO\nj379IX94dV8m9u8edByRrHDd4EL6dCnQpplmULk3w6XqGuYtWkfPTgX8xeQrg44jkjVyc4y7JpTw\ni62V7NMwsZio3JvhmV/sYPOBUzw+YxSdC9oEHUckq8wJhzRMrBlU7jHaXnmav31zK1NH9+bWEb2C\njiOSdULd23PNoB4s0DCxmKjcY1BT4zy4uJyCvBz+cpomPooE5aNhYh9qmFhTVO4xeHbFHn7z4VEe\nmTqCnp0Kgo4jkrUmj7qCTgV5LNRZmpqkcm/CwZPneWLZJq4Z1IM54ZKg44hktcgwsT4sK9+vYWJN\nULk3Yf6L67lYXcN3Zo7WxEeRFDA33JcLVTW8pGFilxVTuZvZZDPbYmbbzGxeA7d/0czKzWyNmf3K\nzDJiw/Rr6/ezfMNB/uzWofQv7BB0HBEhMkzsyis66Zj3JjRZ7maWCzwNTAFGAPc0UN7/5e6j3X0s\n8F3g+3FPmmQnzl3i0Rc3MLJPZz5/3YCg44hIVGSYWEjDxJoQyzv3ScA2d9/h7heBZ4HpdRdw97pr\nuAOQ9scpPfnqJo6euchTs8eQl6utVyKpZOa4yDAx7VhtXCytVQzU/f9PRfS632FmXzKz7UTeuT/Q\n0A8ys/vMrMzMyiorK1uSNyne3X6En/1mD5+/bgCjirsEHUdE6unWIZ9bR/RiyeoKDRNrRCzl3tBe\nxI+9M3f3p919EPB14JGGfpC7P+PuYXcPFxUVNS9pkpy/VM1DS8rp2709X7llaNBxRKQRpRNDHDt7\niTc3aZhYQ2Ip9wogVOf7EuByu6mfBWa0JlSQ/u7NrXx4+AxPzBpNu3xNfBRJVdcNLqR3lwKeW6Ed\nqw2JpdxXAEPMbICZ5QN3A0vrLmBmQ+p8OxXYGr+IybNx30n++Rc7mDOhhGsHFwYdR0QuQ8PELq/J\ncnf3KuB+YDmwCVjg7hvM7DEzmxZd7H4z22Bma4CvAvcmLHGCVFXXMG/xOrq1b8PDU4cHHUdEYjBn\nQmSY2OJV2rFaX14sC7n7MmBZvevm17n85TjnSrp/f2cn6ypO8Pd/MI6u7fODjiMiMejboz2fGNiD\nBWUV/OkNg8nRuYw/omP8gN1HzvJXr2/hluE9mTq6d9BxRKQZ5k4MsfvoWd7/8GjQUVJK1pe7u/Pw\nC+Xk5eTw+IxRGjEgkmZqh4npE6u/K+vLffGqvfxy62G+PnkYvbu0CzqOiDRTQZtcpl0VGSZ28ryG\nidXK6nI/fPoCj7+ykQn9uvHp3+sXdBwRaaG5E0MaJlZPVpf7Yy9t5OyFap6cNVo7YkTS2OjiLpFh\nYjrm/SNZW+4/33yQpWv38aUbBzOkV6eg44hIK5gZc8Ih1lacYPMBDRODLC330xeqeGTJeob26sj/\nuWFQ0HFEJA5mjiumTa5pmFhUVpb7Xy3fwv6T53li1hjy87JyFYhknO4fDRPby8WqmqDjBC7rmm3l\nrmP8+N2d3PuJ/kzo1y3oOCISR6XhEEfPXOTNTQeDjhK4rCr3i1U1zFu0jt6dC/jz24cFHUdE4uyT\nQ4q4onMBz+mY9+wq9398eztbD53mWzNH0bFtTJMXRCSNfDRM7INK9p/I7mFiWVPuWw+e4u/f2sq0\nq/pw05W9go4jIgkyJ1xCjUc+oJjNsqLca2qceYvL6dA2j/l3ZsS5u0WkEf16dODqgd1ZULaHmpq0\nP+Nni2VFuf/0/V2s3HWMR6eOoLBj26DjiEiCzZ0YYteRs/xmZ/YOE8v4ct9/4hxPvbaFTw4pZNb4\nj536VUQy0OSRvenUNi+rP7Ga0eXu7jz6wnqqa5zvzBytiY8iWaJdfi53ju3DsvXZO0wso8t9WfkB\n/nvTIb5221BC3dsHHUdEkmhuOMT5SzW8vHZ/0FECkbHlfvzsRf5y6XrGlHThM9f0DzqOiCTZmJIu\nDOvVKWuPec/Ycv/Osk0cO3uJJ2eNIS83Y/+aItIIM6N0Yoi1e46z5cCpoOMkXUa23q+3HWZBWQVf\nuH4gI/p0DjqOiARkxtg+tMm1rDxLU8aV+7mL1Ty0pJwBhR144OYhQccRkQD16NiWW4Zn5zCxjCv3\nH7z5AbuOnOWJWaMpaJMbdBwRCVjpxMgwsZ9vzq5hYhlV7uv3nuBff/kh90wKcfXAHkHHEZEUcH3t\nMLEsO+Y9Y8q9qrqGry9aR/cO+cybMjzoOCKSImqHif3PB5UcOHE+6DhJkzHl/sNffciGfSd5fPpI\nurRrE3QcEUkhd02IDBNbtCp7ztKUEeW+8/AZvv/GB9w+sheTR/UOOo6IpJj+hR34vQGRYWLu2TFM\nLO3L3d15aEk5+bk5PDZ9VNBxRCRFfTRM7MPsGCaW9uW+cGUF72w/woN3DKdX54Kg44hIipoyKjJM\nLFs+sZrW5X7o1Hm+/comJg3ozt0TQ0HHEZEU9tEwsfL9nMqCYWJpXe7ffGkj5y5V88Ss0eTkaOKj\niFxeaXSY2EtZMEwsbcv9jY0HeWXdfr588xAGFXUMOo6IpIGrSrowtFfHrBhHEFO5m9lkM9tiZtvM\nbF4Dt3/VzDaa2Toze9PM+sU/6m+dOn+JR19Yz5VXdOK+6wcm8qFEJIOYGaXhEGv2HOeDg5k9TKzJ\ncjezXOBpYAowArjHzOqfiHQ1EHb3McDzwHfjHbSu7762hUOnzvPk7DG00cRHEWmGmeOKI8PEMvwT\nq7E04yRgm7vvcPeLwLPA9LoLuPtb7n42+u17QEl8Y/5W2c6j/OS9XXz22gGMDXVN1MOISIbKlmFi\nsZR7MVD3n7iK6HWN+RzwakM3mNl9ZlZmZmWVlZWxp6xjx+EzDCrqwNduG9qi+4uIlIZDHMnwYWKx\nlHtDh6E0+BEvM/tDIAx8r6Hb3f0Zdw+7e7ioqCj2lHWUhkO89pXraZ+f16L7i4h8ckghvTq3ZUFZ\n5o4jiKXcK4C6B5GXAPvqL2RmtwAPA9Pc/UJ84jVM29lFpDXycnO4a0IJb285xMGTmTlMLJaWXAEM\nMbMBZpYP3A0srbuAmY0D/plIsR+Kf0wRkfiaMyFEjcPzKzPz3XuT5e7uVcD9wHJgE7DA3TeY2WNm\nNi262PeAjsBCM1tjZksb+XEiIimhdpjYwgwdJhbThmt3XwYsq3fd/DqXb4lzLhGRhCsNh/jawrWs\n2HmMSQO6Bx0nrrTxWkSy1pTRV9CxbV5GnqVJ5S4iWat9fh53XpWZw8RU7iKS1UrDJZy7VM3L6zJr\nmJjKXUSy2thQ14wcJqZyF5GsVjtMbPXu42zNoGFiKncRyXozxhWTl2MZ9e5d5S4iWa8wOkxs8aq9\nXKrOjGFiKncREaB0YglHzlzkzU2Z8SF7lbuICHD9kCJ6dW7LwgzZNKNyFxEhMkxs9vgS3sqQYWIq\ndxGRqDnhyDCxRavSf5iYyl1EJGpAYQcmDejOwrKKtB8mpnIXEamjNBziw8NnWLHzWNBRWkXlLiJS\nxx3RYWLpfsy7yl1EpI7IMLHevLJuP6cvVAUdp8VU7iIi9cwJhyLDxNZ+7IyiaUPlLiJSz7hQV4b0\nTO9hYip3EZF6aoeJrdp9nG2H0nOYmMpdRKQBM8fXDhNLz2PeVe4iIg0o7NiWm4f3ZPGqirQcJqZy\nFxFpRGk4xOHTF/n55vQbJqZyFxFpxKeGFtGzU3oOE1O5i4g0Ii83h9kTSnhrSyWH0myYmMpdROQy\n5kwoobrGWbRqb9BRmkXlLiJyGQOLOjKpf3cWlu1Jq2FiKncRkSbMCZew4/AZynalzzAxlbuISBOm\njulNh/xcFqxInx2rKncRkSZEhon14ZXy9BkmpnIXEYnBnHCIsxereWVdegwTU7mLiMRgfN+uDO7Z\nMW3GEajcRURiEBkmVsLKXcfSYphYTOVuZpPNbIuZbTOzeQ3cfr2ZrTKzKjO7K/4xRUSCN3NcCXk5\nxsI0ePfeZLmbWS7wNDAFGAHcY2Yj6i22G/gM8F/xDigikiqKOrXlpit7sigNhonF8s59ErDN3Xe4\n+0XgWWB63QXcfae7rwNS+28rItJKtcPE3krxYWKxlHsxUPfgzorodc1mZveZWZmZlVVWVrbkR4iI\nBOqGYUUUdWqb8jtWYyl3a+C6Fn0G192fcfewu4eLiopa8iNERAKVl5vD7PElvLXlUEoPE4ul3CuA\nUJ3vS4D0ONBTRCQBSsORYWKLV6fuMLFYyn0FMMTMBphZPnA3sDSxsUREUtfAoo5M7N+NBSk8TKzJ\ncnf3KuB+YDmwCVjg7hvM7DEzmwZgZhPNrAKYA/yzmW1IZGgRkaDNCYfYUXmGlSk6TCym49zdfZm7\nD3X3Qe7+7eh18919afTyCncvcfcO7t7D3UcmMrSISNCmjo4OE0vRszTpE6oiIi3QoW0evz+mDy+v\nS81hYip3EZEWKp0YGSa2bN3+oKN8jMpdRKSFxvftyqCiDim5aUblLiLSQpFhYiHKdh1j26HTQcf5\nHSp3EZFWmDW+hNwcY+HK1Hr3rnIXEWmFj4aJrdybUsPEVO4iIq00Nxzi8OkLvL0ldWZmqdxFRFrp\nt8PEUmfTjMpdRKSV8nJzmDW+mJ9vPsShU6kxTEzlLiISB6XhENU1zpJVqTFMTOUuIhIHg4o6Eu7X\njedSZJiYyl1EJE5KJ0aGia3aHfwwMZW7iEicTB3dm/b5uSxYEfxZmlTuIiJxEhkm1puX1+3jTMDD\nxFTuIiJxNHdiiDMXq3mlPNhhYip3EZE4Gt+3GwOLOrBgRbDHvKvcRUTiyMyYGx0mtr0yuGFiKncR\nkTibOb44MkysLLgdqyp3EZE469mpgBuH9WTRqgqqAhompnIXEUmAuRNDVJ4KbpiYyl1EJAFuGFZE\nYce2PBfQMDGVu4hIArTJzWH2hOCGiancRUQSZM6EyDCxF1Ynf5iYyl1EJEEG9+zIhH7deG5F8oeJ\nqdxFRBJobjjE9sozrNp9PKmPq3IXEUmgO8bUDhNL7o5VlbuISAJ1bJvH1NHJHyamchcRSbDaYWLL\nkjhMTOUuIpJgE/pFh4kl8Zh3lbuISIKZGaXhECt2HmNHkoaJxVTuZjbZzLaY2TYzm9fA7W3N7Lno\n7e+bWf94BxURSWezxkWGiS1I0jCxJsvdzHKBp4EpwAjgHjMbUW+xzwHH3H0w8DfAU/EOKiKSznp2\nLuDGYUVJGyYWyzv3ScA2d9/h7heBZ4Hp9ZaZDvw4evl54GYzs/jFFBFJf6XhyDCx//kg8cPEYin3\nYqDuXoCK6HUNLuPuVcAJoEf9H2Rm95lZmZmVVVYGMylNRCQoN17ZkxuHFZGfl/jdnXkxLNPQO/D6\nn6ONZRnc/RngGYBwOJzcz+KKiASsTW4OP/rspKQ8Viz/fFQAoTrflwD7GlvGzPKALsDReAQUEZHm\ni6XcVwBDzGyAmeUDdwNL6y2zFLg3evku4Oee7Ck5IiLykSY3y7h7lZndDywHcoF/c/cNZvYYUObu\nS4EfAj8xs21E3rHfncjQIiJyebFsc8fdlwHL6l03v87l88Cc+EYTEZGW0idURUQykMpdRCQDqdxF\nRDKQyl1EJANZUEcsmlklsKuFdy8EDscxTrwoV/Okai5I3WzK1TyZmKufuxc1tVBg5d4aZlbm7uGg\nc9SnXM2TqrkgdbMpV/Nkcy5tlhERyUAqdxGRDJSu5f5M0AEaoVzNk6q5IHWzKVfzZG2utNzmLiIi\nl5eu79xFROQyVO4iIhkopcs9FU/MbWYhM3vLzDaZ2QYz+3IDy9xgZifMbE30a35DPysB2XaaWXn0\nMcsauN3M7O+i62udmY1PQqZhddbDGjM7aWZfqbdM0taXmf2bmR0ys/V1rutuZm+Y2dbon90aue+9\n0WW2mtm9DS0T51zfM7PN0edqiZl1beS+l33eE5DrG2a2t87zdUcj973s728Ccj1XJ9NOM1vTyH0T\nsr4a64bAXl/unpJfRMYLbwcGAvnAWmBEvWX+FPin6OW7geeSkKs3MD56uRPwQQO5bgBeDmCd7QQK\nL3P7HcCrRM6cdTXwfgDP6QEiH8IIZH0B1wPjgfV1rvsuMC96eR7wVAP36w7siP7ZLXq5W4Jz3Qbk\nRS8/1VCuWJ73BOT6BvDnMTxcBXQVAAADWElEQVTXl/39jXeuerf/NTA/meursW4I6vWVyu/cU/LE\n3O6+391XRS+fAjbx8XPKpqrpwH94xHtAVzPrncTHvxnY7u4t/WRyq7n7L/j4WcLqvo5+DMxo4K63\nA2+4+1F3Pwa8AUxOZC53f90j5yQGeI/IWdCSqpH1FYtYfn8TkivaAaXAz+L1eDFmaqwbAnl9pXK5\nx+3E3IkS3Qw0Dni/gZs/YWZrzexVMxuZpEgOvG5mK83svgZuj2WdJtLdNP4LF8T6qtXL3fdD5BcU\n6NnAMkGvuz8h8r+uhjT1vCfC/dHNRf/WyGaGINfXJ4GD7r61kdsTvr7qdUMgr69ULve4nZg7Ecys\nI7AI+Iq7n6x38yoimx6uAv4/8EIyMgHXuvt4YArwJTO7vt7tQa6vfGAasLCBm4NaX80R5Lp7GKgC\nftrIIk097/H2j8AgYCywn8gmkPoCW1/APVz+XXtC11cT3dDo3Rq4rlXrK5XLPWVPzG1mbYg8eT91\n98X1b3f3k+5+Onp5GdDGzAoTncvd90X/PAQsIfJf47piWaeJMgVY5e4H698Q1Pqq42Dt5qnon4ca\nWCaQdRfdsfb7wKc9unG2vhie97hy94PuXu3uNcC/NPJ4Qa2vPGAW8FxjyyRyfTXSDYG8vlK53FPy\nxNzR7Xk/BDa5+/cbWeaK2m3/ZjaJyHo+kuBcHcysU+1lIjvj1tdbbCnwxxZxNXCi9r+LSdDou6kg\n1lc9dV9H9wIvNrDMcuA2M+sW3QxxW/S6hDGzycDXgWnufraRZWJ53uOdq+5+mpmNPF4sv7+JcAuw\n2d0rGroxkevrMt0QzOsr3nuM47z3+Q4ie5y3Aw9Hr3uMyIsdoIDIf/O3Ab8BBiYh03VE/ru0DlgT\n/boD+CLwxegy9wMbiBwh8B5wTRJyDYw+3troY9eur7q5DHg6uj7LgXCSnsf2RMq6S53rAllfRP6B\n2Q9cIvJu6XNE9tO8CWyN/tk9umwY+Nc69/2T6GttG/DZJOTaRmQ7bO3rrPbIsD7Asss97wnO9ZPo\n62cdkeLqXT9X9PuP/f4mMlf0+n+vfV3VWTYp6+sy3RDI60vjB0REMlAqb5YREZEWUrmLiGQglbuI\nSAZSuYuIZCCVu4hIBlK5i4hkIJW7iEgG+l/bWl5yIGH3NQAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.title('throttle')\n", | |
"plt.plot(t_data, throttle)\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\nMAAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.title('alpha')\n", | |
"plt.plot(t_data, alpha)\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"If you have implemented the vehicle model and inputs correctly, you should see that the vehicle crosses the ramp at ~15s where the throttle input begins to decrease.\n", | |
"\n", | |
"The cell below will save the time and vehicle inputs as text file named $\\textit{xdata.txt}$. To locate the file, change the end of your web directory to $\\textit{/notebooks/Course_1_Module_4/xdata.txt}$\n", | |
"\n", | |
"Once you are there, you can download the file and submit to the Coursera grader to complete this assessment." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"data = np.vstack([t_data, x_data]).T\n", | |
"np.savetxt('xdata.txt', data, delimiter=', ')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Congratulations! You have now completed the assessment! Feel free to test the vehicle model with different inputs in the cell below, and see what trajectories they form. In the next module, you will see the longitudinal model being used for speed control. See you there!" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"sample_time = 0.01\n", | |
"time_end = 30\n", | |
"model.reset()\n", | |
"\n", | |
"t_data = np.arange(0,time_end,sample_time)\n", | |
"x_data = np.zeros_like(t_data)\n", | |
"\n", | |
"# ==================================\n", | |
"# Test various inputs here\n", | |
"# ==================================\n", | |
"for i in range(t_data.shape[0]):\n", | |
"\n", | |
" model.step(0,0)\n", | |
" \n", | |
"plt.axis('equal')\n", | |
"plt.plot(x_data, y_data)\n", | |
"plt.show()" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.6.5" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment