From 08edd2f85ceedefd40452dd93d0f4a48d746e1fb Mon Sep 17 00:00:00 2001 From: Brantegger Georg Date: Mon, 18 Jul 2022 15:16:16 +0200 Subject: [PATCH] end of day commit - work on PI controller --- Regler/Regler_class_file.py | 95 ++++++++++ Regler/regler_test.ipynb | 337 +++++++++++++++++++++++++++++++----- 2 files changed, 387 insertions(+), 45 deletions(-) diff --git a/Regler/Regler_class_file.py b/Regler/Regler_class_file.py index 01597de..3d81a62 100644 --- a/Regler/Regler_class_file.py +++ b/Regler/Regler_class_file.py @@ -1,6 +1,45 @@ import numpy as np #based on https://en.wikipedia.org/wiki/PID_controller#Discrete_implementation +def trap_int(vec,timestep): + l = np.size(vec) + int = 0 + for i in range(l-1): + int = int + (vec[i]+vec[i+1])/2*timestep + return int + + +def ISE_fun(error_history,timestep): + # calcuate the integral of square error + e = np.array(error_history) + dt = timestep + ise = trap_int(e**2,dt) + return ise + +def IAE_fun(error_history,timestep): + # calcuate the integral of absolute error + e = np.array(error_history) + dt = timestep + iae = trap_int(np.abs(e),dt) + return iae + +def ITSE_fun(error_history,timestep): + # calcuate the integral of time multiply square error + e = np.array(error_history) + dt = timestep + n = np.size(e) + t = np.arange(0,n)*dt + itse = trap_int(t*e**2,dt) + return itse + +def ITAE_fun(error_history,timestep): + # calcuate the integral of time multiply absolute error + e = np.array(error_history) + dt = timestep + n = np.size(e) + t = np.arange(0,n)*dt + itae = trap_int(np.abs(e),dt) + return itae class P_controller_class: def __init__(self,setpoint,proportionality_constant): @@ -32,4 +71,60 @@ class P_controller_class: return new_control +class PI_controller_class: + def __init__(self,setpoint,proportionality_constant,Ti, timestep): + self.SP = setpoint + self.Kp = proportionality_constant + self.Ti = Ti + self.dt = timestep + self.error_history = [0,0] + self.control_variable = 0.0 + self.lower_limit = -1.3 # default + self.upper_limit = +1.3 # default + + def set_control_variable_limits(self,lower_limit,upper_limit): + self.lower_limit = lower_limit + self.upper_limit = upper_limit + + def calculate_error(self,process_variable): + self.error = self.SP-process_variable + self.error_history.append(self.error) + + def get_control_variable(self): + cv = self.control_variable + Kp = self.Kp + Ti = self.Ti + dt = self.dt + + e0 = self.error_history[-1] + e1 = self.error_history[-2] + new_control = cv+Kp*(e0-e1)+dt/Ti*e0 + if new_control < self.lower_limit: + new_control = self.lower_limit + + if new_control > self.upper_limit: + new_control = self.upper_limit + + self.control_variable = new_control + # print(new_control) + return new_control + + def get_performance_indicators(self,ISE=True,IAE=True,ITSE=True,ITAE=True): + ise = np.nan + iae = np.nan + itse = np.nan + itae = np.nan + + if ISE == True: + ise = ISE_fun(self.error_history[2:],self.dt) + if IAE == True: + iae = IAE_fun(self.error_history[2:],self.dt) + if ITSE == True: + itse = ITSE_fun(self.error_history[2:],self.dt) + if ITAE == True: + itae = ITAE_fun(self.error_history[2:],self.dt) + + return ise,iae,itse,itae + + diff --git a/Regler/regler_test.ipynb b/Regler/regler_test.ipynb index 704ad3b..6a42038 100644 --- a/Regler/regler_test.ipynb +++ b/Regler/regler_test.ipynb @@ -2,87 +2,229 @@ "cells": [ { "cell_type": "code", - "execution_count": 7, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", - "from Regler_class_file import P_controller_class" + "from Regler_class_file import P_controller_class\n", + "from Regler_class_file import PI_controller_class\n" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ - "controller = P_controller_class(setpoint=1,proportionality_constant=0.1)" + "# # %matplotlib widget\n", + "# pi_controller = PI_controller_class(setpoint=100,proportionality_constant=1,Ti = 30,timestep = 0.1)\n", + "\n", + "# t_max = 100 #s\n", + "# dt = 0.1 #s\n", + "# nt = int(t_max//dt)\n", + "# t_vec = np.arange(0,nt+1,1)*dt\n", + "\n", + "# PV_0 = 50\n", + "\n", + "# PV_vec = np.full_like(t_vec,PV_0)\n", + "\n", + "# for i in range(1,nt+1):\n", + "# pi_controller.calculate_error(PV_vec[i-1])\n", + "\n", + "# if i == 500:\n", + "# pi_controller.SP = 0.\n", + "# PV_vec[i] = PV_vec[i-1]+pi_controller.get_control_variable()\n", + "\n", + "\n", + "\n", + "# plt.plot(t_vec,PV_vec,'.')" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ + "SP_0 = 1.1\n", + "SP_1 = 0.24\n", + "PV_0 = 0.5" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "10\n", + "20\n", + "30\n", + "40\n", + "50\n", + "60\n", + "70\n", + "80\n", + "90\n" + ] + } + ], + "source": [ + "n = 100\n", + "Kp_max = 5.\n", + "Ti_max = 5.\n", + "d_Kp = Kp_max/n\n", + "d_Ti = Ti_max/n\n", + "kp_vec = np.arange(1,n+1,1)*d_Kp\n", + "Ti_vec = np.arange(1,n+1,1)*d_Ti\n", + "\n", + "XX,YY = np.meshgrid(kp_vec,Ti_vec)\n", + "\n", + "ise_mat = np.empty_like(XX)\n", + "iae_mat = np.empty_like(XX)\n", + "itse_mat = np.empty_like(XX)\n", + "itae_mat = np.empty_like(XX)\n", + "\n", + "\n", "t_max = 100 #s\n", - "dt = 0.1 #s\n", + "dt = 0.05 #s\n", "nt = int(t_max//dt)\n", - "t_vec = np.arange(0,nt+1,1)*dt\n" + "t_vec = np.arange(0,nt+1,1)*dt\n", + "\n", + "for i in range(n):\n", + " if i%10 == 0:\n", + " print(i)\n", + " for j in range(n):\n", + " Kp = XX[i,j]\n", + " Ti = YY[i,j]\n", + "\n", + " c = PI_controller_class(SP_0,Kp,Ti,dt)\n", + "\n", + " PV_vec = np.full_like(t_vec,PV_0)\n", + "\n", + " for t in range(1,nt+1):\n", + " c.calculate_error(PV_vec[t-1])\n", + "\n", + " if t == 500:\n", + " c.SP = SP_1\n", + " PV_vec[t] = PV_vec[t-1]+c.get_control_variable()\n", + " \n", + " ise_mat[i,j],iae_mat[i,j],itse_mat[i,j],itae_mat[i,j] = np.log(c.get_performance_indicators())\n", + "\n", + "\n" ] }, { "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "PV_0 = 0.5\n", - "\n", - "PV_vec = np.full_like(t_vec,PV_0)\n", - "controller.calculate_error(PV_vec[0])\n", - "controller.calculate_error(PV_vec[0])\n", - "\n", - "\n", - "for i in range(2,nt+1):\n", - " controller.calculate_error(PV_vec[i-1])\n", - "\n", - " if i == 100:\n", - " controller.SP = 0.\n", - " PV_vec[i] = PV_vec[i-1]+controller.get_control_variable()" - ] - }, - { - "cell_type": "code", - "execution_count": 11, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "" ] }, - "execution_count": 11, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "befd47eba60b46139eda036a958f6ca7", + "model_id": "8c03c1f5a874409cbf1feff48c6ef0d7", "version_major": 2, "version_minor": 0 }, - "image/png": "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", + "image/png": "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OXIk6S4BRS1JdwD26Ovrk76+vqS70XT27dsXau/atUsWLFggIyMjcueddybUq+axbt26UPv555+XwcFBGRoakmXLliXUq+Zy/vx5eeSRR+SVV16R7du3J92dptHS0sKoHxoWI4BAkxkbGxMRkblz5ybck+bjeZ7s2bNHxsfHpbe3N+nuNI3+/n65//775Z577km6K03l/fffl0WLFsmSJUvkoYcekg8++CDpLgFFjAACTSQIAtm8ebOsWrVKli9fnnR3msaRI0ekt7dXJiYmZPbs2bJ371655ZZbku5WU9izZ4+MjIzI8PBw0l1pKt/4xjfkBz/4gdx4441y5swZ2b59u9xxxx1y9OhRmTdvXtLdAwiAQDPZuHGjvPvuu/LTn/406a40lZtuukkOHz4sn332mfzkJz+RDRs2yDvvvEMIjDA6OipPPvmkvP3229Le3p50d5rK5eUut956q/T29soNN9wgr776qmzevDnBngEXEQCBJrFp0yZ588035eDBg9Ld3Z10d5pKW1ubLF26VEREVq5cKYcOHZKXXnpJXn755YR71thGRkbk7NmzsmLFiuJtnufJwYMHZceOHVIoFCSVSiXYw+bR2dkpt956q7z//vtJdwUQEQIg0PCCIJBNmzbJ3r175cCBA7JkyZKku9T0giCQQqGQdDca3t13311y5epjjz0mN998szzzzDOEvwoUCgX59a9/Ld/61reS7gogIgRA1NH58+fl2LFjxfbx48fl8OHDMnfuXFm8eHGCPWts/f398tprr8kbb7whXV1d8tFHH4mISDablY6OjoR71/ieffZZ6evrk1wuJ+fOnZM9e/bIgQMHSq6uRqmurq6SWtPOzk6ZN28eNagRnn76aVm3bp0sXrxYzp49K9u3b5d8Pi8bNmxIumuAiBAAUUfDw8OyZs2aYvtSHcyGDRtk9+7dCfWq8Q0ODoqIyOrVq0O379q1Sx599NH6d6jJnDlzRtavXy+nT5+WbDYrPT09sm/fPrn33nuT7hoM9uGHH8rDDz8sH3/8sVx99dXyzW9+U4aGhuS6665LumuAiIg4QRAESXcCAAAA9cM6gAAAAJYhAAIAAFiGAAgAAGAZAiAAAIBlCIAAAACWIQACAABYhgAIAABgGQIgAACAZQiAAAAAliEAAgAAWIYACAAAYBkCIAAAgGUIgAAAAJYhAAIAAFiGAAgAAGAZAiAAAIBlCIAAAACWIQACAABYhgAIAABgGQIgAACAZQiAAAAAliEAAgAAWIYACAAAYBkCIAAAgGUIgAAAAJYhAAIAAFiGAAgAAGAZAiAAAIBlCIAAAACWIQACAABYhgAIAABgmf8P/GU7UFikCoUAAAAASUVORK5CYII=", "text/html": [ "\n", "
\n", "
\n", " Figure\n", "
\n", - " \n", + " \n", + "
\n", + " " + ], + "text/plain": [ + "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "de17d51264b241c186d1f20588682153", + "version_major": 2, + "version_minor": 0 + }, + "image/png": "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JZdc0u9uwSwBkEVz8uTJeM973hP33Xdfv7syUB5//PHYsWNHHDhwIB577LE4c+ZM3HDDDXHy5Ml+d20gbNiwIb7+9a/HoUOH4tChQ/HhD384brrppnjiiSf63bWBcvDgwXjggQdi8+bN/e7KwLjyyivj+eefnz2OHj3a7y7BLFvBsWi2bt0aW7du7Xc3Bs7evXsz7d27d8e6devi8OHDce211/apV4Nj27Ztmfa9994bu3btigMHDsSVV17Zp14NlhMnTsTNN98c3/rWt+Kee+7pd3cGxrJly4z6sWQZAYQBc/z48YiIWLNmTZ97MniazWbs2bMnTp48GRMTE/3uzsDYsWNHfOxjH4uPfOQj/e7KQHnqqadi/fr1sXHjxvjkJz8Z//mf/9nvLsEsI4AwQNI0jZ07d8YHP/jB2LRpU7+7MzCOHj0aExMTcerUqVi9enU89NBDccUVV/S7WwNhz549cfjw4Th06FC/uzJQ3ve+98Xf/d3fxTvf+c548cUX45577okPfOAD8cQTT8TatWv73T0QAGGQ3HbbbfGzn/0sfvKTn/S7KwPlXe96Vxw5ciReeeWV+Id/+IfYvn17PP7440JggampqfjiF78YP/rRj2LFihX97s5AeWO5y1VXXRUTExPxjne8I77zne/Ezp07+9gzOEsAhAFx++23xyOPPBL79++PDRs29Ls7A2X58uVx+eWXR0TENddcEwcPHoxvfvObcf/99/e5Z0vb4cOH46WXXoqrr7569rZmsxn79++P++67L2ZmZmJoaKiPPRwcq1atiquuuiqeeuqpfncFIkIAhCUvTdO4/fbb46GHHop9+/bFxo0b+92lgZemaczMzPS7G0ve9ddf33bl6qc//el497vfHV/+8peFvw7MzMzEL37xi/jQhz7U765ARAiALKITJ07E008/Pds+duxYHDlyJNasWROXXnppH3u2tO3YsSO+973vxcMPPxwjIyPxwgsvRETE2NhYrFy5ss+9W/q+8pWvxNatW2N8fDxeffXV2LNnT+zbt6/t6mrajYyMtNWarlq1KtauXasGtcCXvvSl2LZtW1x66aXx0ksvxT333BPT09Oxffv2fncNIkIAZBEdOnQorrvuutn2uTqY7du3x4MPPtinXi19u3btioiILVu2ZG7fvXt33HrrrYvfoQHz4osvxi233BLPP/98jI2NxebNm2Pv3r3x0Y9+tN9do8KeffbZ+NSnPhUvv/xyvPnNb473v//9ceDAgbjsssv63TWIiIgkTdO0350AAGDxWAcQAKBmBEAAgJoRAAEAakYABACoGQEQAKBmBEAAgJoRAAEAakYABACoGQEQAKBmBEAAgJoRAAEAakYABACoGQEQAKBmBEAAgJoRAAEAakYABACoGQEQAKBmBEAAgJoRAAEAakYABACoGQEQAKBmBEAAgJoRAAEAakYABACoGQEQAKBmBEAAgJoRAAEAakYABACoGQEQAKBmBEAAgJoRAAEAaub/B/gJVh9N4oa3AAAAAElFTkSuQmCC", + "text/html": [ + "\n", + "
\n", + "
\n", + " Figure\n", + "
\n", + " \n", + "
\n", + " " + ], + "text/plain": [ + "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "694e357addb24eedb551f51337dfef0a", + "version_major": 2, + "version_minor": 0 + }, + "image/png": "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", + "text/html": [ + "\n", + "
\n", + "
\n", + " Figure\n", + "
\n", + " \n", + "
\n", + " " + ], + "text/plain": [ + "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "11ea13cacaa947ccaa6a68384881042d", + "version_major": 2, + "version_minor": 0 + }, + "image/png": "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JZdc0u9uwSwBkEVz8uTJeM973hP33Xdfv7syUB5//PHYsWNHHDhwIB577LE4c+ZM3HDDDXHy5Ml+d20gbNiwIb7+9a/HoUOH4tChQ/HhD384brrppnjiiSf63bWBcvDgwXjggQdi8+bN/e7KwLjyyivj+eefnz2OHj3a7y7BLFvBsWi2bt0aW7du7Xc3Bs7evXsz7d27d8e6devi8OHDce211/apV4Nj27Ztmfa9994bu3btigMHDsSVV17Zp14NlhMnTsTNN98c3/rWt+Kee+7pd3cGxrJly4z6sWQZAYQBc/z48YiIWLNmTZ97MniazWbs2bMnTp48GRMTE/3uzsDYsWNHfOxjH4uPfOQj/e7KQHnqqadi/fr1sXHjxvjkJz8Z//mf/9nvLsEsI4AwQNI0jZ07d8YHP/jB2LRpU7+7MzCOHj0aExMTcerUqVi9enU89NBDccUVV/S7WwNhz549cfjw4Th06FC/uzJQ3ve+98Xf/d3fxTvf+c548cUX45577okPfOAD8cQTT8TatWv73T0QAGGQ3HbbbfGzn/0sfvKTn/S7KwPlXe96Vxw5ciReeeWV+Id/+IfYvn17PP7440JggampqfjiF78YP/rRj2LFihX97s5AeWO5y1VXXRUTExPxjne8I77zne/Ezp07+9gzOEsAhAFx++23xyOPPBL79++PDRs29Ls7A2X58uVx+eWXR0TENddcEwcPHoxvfvObcf/99/e5Z0vb4cOH46WXXoqrr7569rZmsxn79++P++67L2ZmZmJoaKiPPRwcq1atiquuuiqeeuqpfncFIkIAhCUvTdO4/fbb46GHHop9+/bFxo0b+92lgZemaczMzPS7G0ve9ddf33bl6qc//el497vfHV/+8peFvw7MzMzEL37xi/jQhz7U765ARAiALKITJ07E008/Pds+duxYHDlyJNasWROXXnppH3u2tO3YsSO+973vxcMPPxwjIyPxwgsvRETE2NhYrFy5ss+9W/q+8pWvxNatW2N8fDxeffXV2LNnT+zbt6/t6mrajYyMtNWarlq1KtauXasGtcCXvvSl2LZtW1x66aXx0ksvxT333BPT09Oxffv2fncNIkIAZBEdOnQorrvuutn2uTqY7du3x4MPPtinXi19u3btioiILVu2ZG7fvXt33HrrrYvfoQHz4osvxi233BLPP/98jI2NxebNm2Pv3r3x0Y9+tN9do8KeffbZ+NSnPhUvv/xyvPnNb473v//9ceDAgbjsssv63TWIiIgkTdO0350AAGDxWAcQAKBmBEAAgJoRAAEAakYABACoGQEQAKBmBEAAgJoRAAEAakYABACoGQEQAKBmBEAAgJoRAAEAakYABACoGQEQAKBmBEAAgJoRAAEAakYABACoGQEQAKBmBEAAgJoRAAEAakYABACoGQEQAKBmBEAAgJoRAAEAakYABACoGQEQAKBmBEAAgJoRAAEAakYABACoGQEQAKBmBEAAgJoRAAEAaub/B/gJVh9N4oa3AAAAAElFTkSuQmCC", + "text/html": [ + "\n", + "
\n", + "
\n", + " Figure\n", + "
\n", + " \n", "
\n", " " ], @@ -96,31 +238,136 @@ ], "source": [ "%matplotlib widget\n", - "\n", - "plt.plot(t_vec,PV_vec,'+')" + "fig1,axs1 = plt.subplots(1,1)\n", + "ise_min = np.min(ise_mat)\n", + "ise_max = np.max(ise_mat)\n", + "mesh1 = axs1.pcolormesh(XX,YY,ise_mat,cmap='RdBu', vmin=ise_min, vmax=ise_max,shading='nearest')\n", + "fig1.colorbar(mesh1)\n", + "fig2,axs2 = plt.subplots(1,1)\n", + "iae_min = np.min(iae_mat)\n", + "iae_max = np.max(iae_mat)\n", + "mesh2 = axs2.pcolormesh(XX,YY,iae_mat,cmap='RdBu', vmin=iae_min, vmax=iae_max,shading='nearest')\n", + "fig2.colorbar(mesh2)\n", + "fig3,axs3 = plt.subplots(1,1)\n", + "itse_min = np.min(itse_mat)\n", + "itse_max = np.max(itse_mat)\n", + "mesh3 = axs3.pcolormesh(XX,YY,itse_mat,cmap='RdBu', vmin=itse_min, vmax=itse_max,shading='nearest')\n", + "fig3.colorbar(mesh3)\n", + "fig4,axs4 = plt.subplots(1,1)\n", + "itae_min = np.min(itae_mat)\n", + "itae_max = np.max(itae_mat)\n", + "mesh4 = axs4.pcolormesh(XX,YY,itae_mat,cmap='RdBu', vmin=itae_min, vmax=itae_max,shading='nearest')\n", + "fig4.colorbar(mesh4)\n" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "ise_ind = np.unravel_index(np.argmin(ise_mat,axis=None),ise_mat.shape)\n", + "Kp_ise = XX[ise_ind]\n", + "Ti_ise = YY[ise_ind]\n", + "iae_ind = np.unravel_index(np.argmin(iae_mat,axis=None),iae_mat.shape)\n", + "Kp_iae = XX[iae_ind]\n", + "Ti_iae = YY[iae_ind]\n", + "itse_ind = np.unravel_index(np.argmin(itse_mat,axis=None),itse_mat.shape)\n", + "Kp_itse = XX[itse_ind]\n", + "Ti_itse = YY[itse_ind]\n", + "itae_ind = np.unravel_index(np.argmin(itae_mat,axis=None),itae_mat.shape)\n", + "Kp_itae = XX[itae_ind]\n", + "Ti_itae = YY[itae_ind]\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "-0.1\n" - ] + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d320b9d6dc844aa183152834ba47ef78", + "version_major": 2, + "version_minor": 0 + }, + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAnkUlEQVR4nO3df5RXdZ0/8NfAyAwajAk5gI6IlUmxag3Zirr+qmnRtdO2Z2WzREv3xKoosrlJ7MmWr+3YntYv/QLTVL6dLPma1Ooejjm1hr8qY4QktdVWdFBn4gvWzPhrEOZ+/8D5wMiHaZD5zL3c+3ic8znJnfsZ3593XO/z83r/uFVJkiQBAEBhjEi7AQAADC8BEACgYARAAICCEQABAApGAAQAKBgBEACgYARAAICCEQABAApGAAQAKBgBEACgYARAAICCEQABAApGAAQAKBgBEACgYARAAICCEQABAApGAAQAKBgBEACgYARAAICCEQABAApGAAQAKBgBEACgYARAAICCEQABAApGAAQAKBgBEACgYARAAICCEQABAApGAAQAKBgBEACgYARAAICCEQABAApGAAQAKBgBEACgYARAAICCEQABAApGAAQAKBgBEACgYARAAICCEQABAApGAAQAKBgBEACgYARAAICCEQABAApGAAQAKBgBEACgYARAAICCEQABAApGAAQAKBgBEACgYARAAICCEQABAApGAAQAKBgBEACgYARAAICCEQABAAqmOu0G7Mt6e3vj+eefjzFjxkRVVVXazQEABiFJkuju7o5JkybFiBHFrIUJgHvh+eefj4aGhrSbAQC8CRs2bIhDDz007WakQgDcC2PGjImI7X+Bxo4dm3JrAIDB6OrqioaGhtJ9vIgEwL3QN+w7duxYARAA9jFFnr5VzIFvAIACEwABAApGAAQAKBgBEACgYARAAICCEQABAApGAAQAKBgBEACgYARAAICCEQCzqv2RiJvP2P6/AABDyKPgsur//TbimQcibv1ERHXt9mO9WyN6uiLefnpE06KIMRPSbSMAsE8SALOus23XY+uWRzz7UERURbz6x4jaAyNGvP5/5cj9IhqOizjlSgERAChLAMyS9ke2V/4i4ulf3hmHD3TuH9bv+OdXXuj/s42PRvzup/0rhzsHxZ3/XDs24iNfj5h49FB9CgAg4wTALLnryu3DvhEDh7/BKFc5fGNQ7PvzrZ/YHgx3FxL7qouDOTbQOWMmRvz1dcImAKSsKkmSJO1G7Ku6urqirq4uOjs7Y+zYsXv/C9sfifjBBRGbn9j735VVdYdtr0zuSXB8s4FzOH73vvK+LLZpX/gsKuSQS0N+/94HCYB7oSJ/gdofiVcevyse++n3o3G/p4bmdwJv3sduiDj67LRbAQwhAdA2MNkz8ejYdsL8+D/JX6bdEgAgpwTADEqSJJ7oPTSe7J2YdlOg8LbetTDiu7MiVn3FvpxAbgiAGfXbODzmbpkbvROOjhh35PbXW4/YPi8JGDbVL2+M+N1dEff8r+0LtQBywCrgDOqblPnbODy2XrgqRlXvlNO7OyLuuSbi2V9GvPbqrhPYt7wU0f3cMLcY8qun5m1R09AY0fD+iCOb0m4OwJAQAPc1YyZEfGTx7n/e/kjEf1wS8dorO44NtBoy2RrxxzJbxgAREfFU45UxtenCtJsBMKQEwAzaeV12VdUevnni0RFz7h38+X2Bsae78lttVI9WnQSADBAAi25PA+Pe2Lk6mdd947L6viy2KeOf5dlXauKF3pp4re6dAZA3AmAW7VwBTK8VQ284wybspb//6n3xeHtXfOet7067KQBDzipgAICCEQAzKNmpBFi1x5MAgaHgygPyTAAEGIBnZQJ5JABmUJLXOYAAQCYIgABlmH0B5JkAmEE7Dzm5CUG6ksQgMJA/AiAAQMEIgBm0c8XBKmBIh0sPyDMBEGAABoCBPBIAM8gNBwCoJAEQoIwqmzABOSYAZlDfFEBzkCADlOSBHBIAAQAKRgDMoL5nASsAQnr6KvCJEiCQQwIgAEDBCIBZVJoDqAYIaXH1AXkmAAIMwJPggDwSADOo736jAgEAVIIACFCOKRhAjgmAGWQfQMgOQ8BAHgmAAAAFIwBm0I59AJUAIS2uPiDPBECAARgBBvJIAMygxDJgAKCCBECAMizCAvJMAMwgBUDIjsQyYCCHBEAAgILJTQC8995746yzzopJkyZFVVVV/OhHP/qT71m1alU0NjZGbW1tHHHEEXHddddVvqGD0FdxMAQF6XH5AXmWmwD40ksvxTHHHBPf+MY3BnX++vXr44wzzoiTTjop1qxZE5///Ofj0ksvjdtvv73CLQX2JQaAgTyqTrsBQ2XmzJkxc+bMQZ9/3XXXxWGHHRaLFy+OiIipU6fG6tWr4ytf+Ur8zd/8TYVaOTilJ4GoQQAAFZCbCuCe+vnPfx5NTU39jn34wx+O1atXx2uvvZZSq4CsqHp9DoY1IEAe5aYCuKc6Ojqivr6+37H6+vrYunVrbNq0KSZOnLjLe3p6eqKnp6f0566uroq20RxAAKASClsBjNjxDb/PjsUX5ZNXc3Nz1NXVlV4NDQ0VbyMAwFArbACcMGFCdHR09Du2cePGqK6ujnHjxpV9z4IFC6Kzs7P02rBhQ0XatmMOIJCWHdefMWAgfwo7BHz88cfHnXfe2e/Y3XffHdOnT4/99tuv7HtqamqipqZmOJoHAFAxuakAvvjii7F27dpYu3ZtRGzf5mXt2rXR1tYWEdurd7Nnzy6dP2fOnHjmmWdi/vz58fjjj8dNN90UN954Y3z2s59No/n9JDHwUDRQeS4/IM9yUwFcvXp1nHrqqaU/z58/PyIizjvvvFi2bFm0t7eXwmBExJQpU2LlypVx+eWXxze/+c2YNGlSfO1rX0t9CxggW6wCBvIoNwHwlFNOGfCZncuWLdvl2MknnxwPP/xwBVv15pgDCABUUm6GgAGGko3YgTwTADOoVMd0/4HUGQEG8kgABAAoGAEwg0obUqfcDig0FyCQYwIgwACsAgbySADMoL77jX0AAYBKEAAzSMUB0ufrF5BnAmCGKQBC+hLrgIEcEgAzyQ0HAKgcATDDFAAhPSrwQJ4JgBlkDiBkh+sRyCMBMMOsAgYAKkEAzCAFB0hf37OAXY9AHgmAGab+BwBUggCYQeYcQfrMwADyTADMMDcgSF/iGxmQQwJgBtl4FgCoJAEw05QAIS0q8ECeCYAZZMQJAKgkATDDVCAAgEoQADNIBRDSV2UKBpBjAmCGuf1A+nwhA/JIAMwgq4ABgEoSADPMHEBIj+sPyDMBMIMMOUF2qMgDeSQAZphJ6ABAJQiAAAAFIwBmmDlIkD5TMoA8EgAzyA0HAKgkATDDFAAhPVWvl+B9IQPySADMIKsOAYBKEgABAApGAMygviGnKqtAIDV9V596PJBHAiAAQMEIgBmk4gDpU4AH8kwABBhAYhkwkEMCYAb13XBUIACAShAAAcrw/QvIMwEwg/oGnFQAIX0GgIE8EgABAApGAMyg0j6ABqEgNfbhBPJMAAQYiDFgIIcEwEyyChgAqBwBEKAM37+APBMAM2jHHEAgbYkxYCCHBEAAgIIRADNoxz6AaoCQFpcfkGcCIMAAPAoYyCMBMIPMAQQAKkkABChr+1cwBUAgjwTADEqUAAGAChIAAcqwCATIMwEwg0qrgFNtBRBhEQiQTwIgAEDBCIAZVJoCaAwKUuPqA/JMAAQYgEfBAXkkAGZQ3w1HBQIAqAQBEKAMMzCAPBMAs6g0BzDdZgBWAQP5JAACABSMAJhBO/YBVAKEtLj+gDwTAAEGYAQYyCMBMIMScwABgAoSAAHK8AUMyDMBMINsPAsZYhkwkEO5CoBLliyJKVOmRG1tbTQ2NsZ999034Pm33HJLHHPMMbH//vvHxIkT41Of+lRs3rx5mFoLAJCO3ATA5cuXx7x582LhwoWxZs2aOOmkk2LmzJnR1tZW9vz7778/Zs+eHRdccEE8+uijcdttt8WvfvWruPDCC4e55bvyLGBIX9/lp/4H5FFuAuC1114bF1xwQVx44YUxderUWLx4cTQ0NMTSpUvLnv+LX/wiDj/88Lj00ktjypQpceKJJ8ZnPvOZWL169TC3HABgeOUiAG7ZsiVaW1ujqamp3/GmpqZ48MEHy75nxowZ8eyzz8bKlSsjSZL4/e9/Hz/4wQ/izDPP3O2/p6enJ7q6uvq9KmHHPoAAAEMvFwFw06ZNsW3btqivr+93vL6+Pjo6Osq+Z8aMGXHLLbfErFmzYtSoUTFhwoQ48MAD4+tf//pu/z3Nzc1RV1dXejU0NAzp5wCyo28jaGtAgDzKRQDs88Y5c0mS7HYe3WOPPRaXXnppfOELX4jW1ta46667Yv369TFnzpzd/v4FCxZEZ2dn6bVhw4Yhbf/O7Y6wDQUAUBnVaTdgKIwfPz5Gjhy5S7Vv48aNu1QF+zQ3N8cJJ5wQV1xxRUREHH300XHAAQfESSedFFdffXVMnDhxl/fU1NRETU3N0H8AIHt8AQNyLBcVwFGjRkVjY2O0tLT0O97S0hIzZswo+56XX345Rozo//FHjhwZETsqcGkpzQF0A4LUpf3fA4BKyEUAjIiYP39+fPvb346bbropHn/88bj88sujra2tNKS7YMGCmD17dun8s846K1asWBFLly6Np556Kh544IG49NJL47jjjotJkyal9TEAACouF0PAERGzZs2KzZs3x6JFi6K9vT2mTZsWK1eujMmTJ0dERHt7e789Ac8///zo7u6Ob3zjG/GP//iPceCBB8Zpp50WX/7yl9P6CDv07QNoDApS4+oD8iw3ATAi4qKLLoqLLrqo7M+WLVu2y7G5c+fG3LlzK9wqYF9mABjIo9wMAedJ37OAzQEEACpBAAQow6MYgTwTADOo9CzgdJsBhI2ggXwSAAEACkYAzKDERoCQOlcfkGcCIMAAjAADeSQAZlCpAJhqKwCAvBIAAcrom4HhUXBAHgmAGdR3wzEFEACoBAEQAKBgBMAMMgcQ0uf6A/JMAAQAKBgBMINKTwIxCRAAqAABEKCMvi9gFgEDeSQAZtLrq4BTbgUAkE8CIEAZvoABeSYAZtCOOYDptgOISDwMDsghARAAoGAEwAzasQ+gEiCkxuUH5JgACDAAq4CBPBIAMyjxKBAAoIIEQIAyTMEA8kwAzKDEPoCQGUaAgTwSAAEACkYAzCD7AEL6XH9AngmAAAOwChjIIwEwg+wDCABUkgAIUEbf1y+PggPySADMoOT1MSdzkACAShAAAQAKRgDMMBVASE/f9WcRCJBHAiAAQMEIgBlU2gfQKmBIjesPyDMBEACgYATADCo9C1gBAgCoAAEQoAxfwIA8EwAzyKpDyI7EBQnkkAAIAFAwAmAGlVYBG4OC1Lj8gDwTAAEGYAQYyCMBMIP67jcKEABAJQiAAGX5CgbklwCYQX2rDs1BgvQZAQbySAAEACgYATCDzAGE9PVV4C0CAfJIAAQAKBgBMIvsAwgAVJAACFBG39evxDIQIIcEwAzqu+Go/wEAlSAAAgAUjACYQTueBZxuO6DIrAIG8kwABAAoGAEwg3YUHJQAIS1Vrj8gxwRAgAEYAQbySADMIHMAAYBKEgAByvAFDMgzATCD7AMIGWIZMJBDAiAAQMEIgBlkDiCkz+UH5JkACDAAA8BAHgmAGdR3w7EPGQBQCQIgQBlV5mAAOSYAZtHrkwDdfyB9FgEDeSQAAgAUTK4C4JIlS2LKlClRW1sbjY2Ncd999w14fk9PTyxcuDAmT54cNTU18fa3vz1uuummYWrt7pXmAKoAQuoSy0CAHKpOuwFDZfny5TFv3rxYsmRJnHDCCfGtb30rZs6cGY899lgcdthhZd9z9tlnx+9///u48cYb4x3veEds3Lgxtm7dOswtBwAYXrkJgNdee21ccMEFceGFF0ZExOLFi+PHP/5xLF26NJqbm3c5/6677opVq1bFU089FQcddFBERBx++OHD2eTdKu0DaBUwAFABuRgC3rJlS7S2tkZTU1O/401NTfHggw+Wfc8dd9wR06dPj3/7t3+LQw45JI488sj47Gc/G6+88spwNHlAiVnnkLq+KRguRyCPclEB3LRpU2zbti3q6+v7Ha+vr4+Ojo6y73nqqafi/vvvj9ra2vjhD38YmzZtiosuuiheeOGF3c4D7OnpiZ6entKfu7q6hu5DlKMACABUQC4qgH3euG9XkiS73curt7c3qqqq4pZbbonjjjsuzjjjjLj22mtj2bJlu60CNjc3R11dXenV0NAw5J8hwpMHIAtMwQDyLBcBcPz48TFy5Mhdqn0bN27cpSrYZ+LEiXHIIYdEXV1d6djUqVMjSZJ49tlny75nwYIF0dnZWXpt2LBh6D5EGW4/kD5fyIA8ykUAHDVqVDQ2NkZLS0u/4y0tLTFjxoyy7znhhBPi+eefjxdffLF07IknnogRI0bEoYceWvY9NTU1MXbs2H6vSjDnCACopFwEwIiI+fPnx7e//e246aab4vHHH4/LL7882traYs6cORGxvXo3e/bs0vnnnHNOjBs3Lj71qU/FY489Fvfee29cccUV8elPfzpGjx6d1sfox6OoID0uPyDPcrEIJCJi1qxZsXnz5li0aFG0t7fHtGnTYuXKlTF58uSIiGhvb4+2trbS+W95y1uipaUl5s6dG9OnT49x48bF2WefHVdffXVaH6FEARCyQ0UeyKPcBMCIiIsuuiguuuiisj9btmzZLseOOuqoXYaNs0QBAgCohNwMAeeJfQAhfb6AAXkmAGaYOUiQPs8CBvJIAAQAKBgBMMMUACE9KvBAngmAGWQKIGSI6xHIIQEww+wDCABUggCYQSadQ/r6voC5GoE8EgAzTP0PAKgEATCDzAEEACpJAMwyJUBITd/lZ2N2II8EwAxyuwEAKkkAzLAqJUAAoAIEwAwy4gQZ8Pr3L9cjkEcCYIbZBhAAqAQBMIPsAwjpMwUDyDMBMMPcfiB9vo4BeSQAZpA5RwBAJQmAGWYOIKTH9QfkmQAIMAAVeSCPBMAMMwkdAKgEATCDPHoK0ufrF5BnAmCGmYME6bMtE5BHAmAGKQACAJUkAGaYCiCkx/UH5JkAmEEKgJAdKvJAHgmAmaYEAQAMPQEwg1QcIH22YQLyTADMMHOQAIBKEAAzKIkk3hZ/iNM7bozo7ki7OQBAzgiAGXVw1R/j9N/fLABCSvoq8DZmB/JIAMwg9xsAoJKq024AO+nuiOjuiINfbItpI57efqz91zt+PmbC9hcAwF4QALNk9c0Rq66JT0TEJ/Z7/didl+74+clXRpy6II2WQeH0rcFSkAfySADMkumfinjXzO3/3P7r7eHvrK9FTDxm+zHVPwBgCAiAWVJuiHfiMRGTjk2lOVBo9mECcswiEIABWJQF5JEAmFVjJmyf82fYFwAYYoaAs2rMBAs+IEUGgIE8UwEEGEBiHTCQQwIgAEDBCIAAZVgEDOSZAAgwAKuAgTwSAAEACkYABCij6vV1wAqAQB4JgAAABSMAAgAUjAAIUEbfKmCLQIA8EgABAApGAAQAKBgBEKCMHftAGwMG8kcABAAoGAEQoAyPggPyTAAEGIBVwEAeCYAAAAUjAAKUUWUMGMgxARBgAIaAgTwSAAEACkYABAAoGAEQYACJjaCBHBIAAQAKRgAEKMMiYCDPBECAAVgFDOSRAAgAUDACIEAZVbF9DFgBEMgjARAAoGByFQCXLFkSU6ZMidra2mhsbIz77rtvUO974IEHorq6Oo499tjKNhAAIANyEwCXL18e8+bNi4ULF8aaNWvipJNOipkzZ0ZbW9uA7+vs7IzZs2fH6aefPkwtBfYFfauALQIB8ig3AfDaa6+NCy64IC688MKYOnVqLF68OBoaGmLp0qUDvu8zn/lMnHPOOXH88ccPU0sBANKViwC4ZcuWaG1tjaampn7Hm5qa4sEHH9zt+26++eb4n//5n7jqqqsG9e/p6emJrq6ufi8AgH1NLgLgpk2bYtu2bVFfX9/veH19fXR0dJR9z5NPPhlXXnll3HLLLVFdXT2of09zc3PU1dWVXg0NDXvddiCb+vaB9ig4II9yEQD7VL1h6/4kSXY5FhGxbdu2OOecc+Jf/uVf4sgjjxz071+wYEF0dnaWXhs2bNjrNgMADLfBlb4ybvz48TFy5Mhdqn0bN27cpSoYEdHd3R2rV6+ONWvWxCWXXBIREb29vZEkSVRXV8fdd98dp5122i7vq6mpiZqamsp8CCBTPAoOyLNcVABHjRoVjY2N0dLS0u94S0tLzJgxY5fzx44dG+vWrYu1a9eWXnPmzIl3vetdsXbt2vjABz4wXE0Hss4IMJBDuagARkTMnz8/zj333Jg+fXocf/zxcf3110dbW1vMmTMnIrYP3z733HPxne98J0aMGBHTpk3r9/6DDz44amtrdzkOAJA3uQmAs2bNis2bN8eiRYuivb09pk2bFitXrozJkydHRER7e/uf3BMQoE9VGAMG8qsqSWxz+mZ1dXVFXV1ddHZ2xtixY9NuDjCEbrj3qfjSysfjr997SPzvWcem3RxgCLl/52QOIAAAgycAApRhFTCQZwIgwADMkgHySAAEACgYARBgAOp/QB4JgAAABSMAAgAUjAAIUEbV68uArQEB8kgABAAoGAEQAKBgBECAMvr2gTYCDOSRAAgAUDACIEAZHgUH5JkACDAAj4ID8kgABAAoGAEQoAwjwECeCYAAAzAADOSRAAgAUDACIEAZVZYBAzkmAAIMxBgwkEMCIABAwQiAAGUYAQbyTAAEGEBiDBjIIQEQAKBgBECAMvpGgD0JDsgjARAAoGAEQACAghEAAcp5fRmwIWAgjwRAAICCEQABAApGAAQoo7QK2D6AQA4JgAAABSMAApThUXBAngmAAAOwChjIIwEQAKBgBECAMqrCGDCQXwIgwACMAAN5JAACABSMAAhQhlXAQJ4JgAADsAoYyCMBEACgYARAgDJ2jAArAQL5IwACABSMAAgAUDACIEAZfauALQIB8kgABAAoGAEQAKBgBECAMvqeBWwEGMgjARAAoGAEQACAgqlOuwEAmVRaBZyzQeDujoh7rol49pcR27ZG9G6NePWPEbUHRox4/ZbwxmODOefNvq+Sv3tfeV8W25SVz/LaSxEfvS7iHacFQ0sABMiinYPaa68O3U32lRe2H3ujV17408cGc86bfV8lf/e+8r4stunNvm8of/dzrQJgBQiAAGVU/elT9twbq28Ru6+EjHpLRGdb//cP1U0W9iGvvLYtRqfdiBwSAAEGsMcDwH0h75n7I17e3L8it/XVXUNdn8GEOyig5OffjHj25xHj3xFx1JmqgUNEAAR4s9ofifiPSyJee2X3lTtBDvbK/tu6Ip7+2fbXkz+OuPw3aTcpFwRAgDKqqt4wCFxuTl716Iju5/qfJ/DB0Kp9a8SEY3ZUABkSAiDAbhwVT8e/PPv5iC93lZ+TB1Te8RdHnHxF2q3IHQEQYDeOHPFsTN72dMQrobIH5IoACFBGVUSMjZfSbkblvHVKxIj98rdv3L74viy2KSuf5bWXIg5pDIaeAAiws/ZHItbdHjN++4v4UPXatFuzPahF1dDdZHu6It5+ekTToogxE4b94wDZIAAC7OyuKyOeeSAmRlTuYZljDokYdcD2f95dJWT/8RGHnxBxypWCGjDkBECAnf3lNRHrbo/e59fEqx2Px/6vbnxzv6euIWLLS/0rchERo/aP+MjXIyYePSTNBXgzBECAnU08OmLi0TEiIvZ/5P9GrPj7gc+vOyyiulblDtinCIAAe2LnOXljJkb89XWqecA+RwAE2J23HRXxtndHvNihsgfkSqWmOKdiyZIlMWXKlKitrY3Gxsa47777dnvuihUr4kMf+lC87W1vi7Fjx8bxxx8fP/7xj4extUDmTTw64uKfR3xufcTcX0WctVj4A3IhNwFw+fLlMW/evFi4cGGsWbMmTjrppJg5c2a0tZXfuf/ee++ND33oQ7Fy5cpobW2NU089Nc4666xYs2bNMLccAGB4VSVJkqTdiKHwgQ98IN73vvfF0qVLS8emTp0aH/3oR6O5uXlQv+M973lPzJo1K77whS8M6vyurq6oq6uLzs7OGDt27JtqNwAwvNy/c1IB3LJlS7S2tkZTU1O/401NTfHggw8O6nf09vZGd3d3HHTQQbs9p6enJ7q6uvq9AAD2NbkIgJs2bYpt27ZFfX19v+P19fXR0dExqN/x7//+7/HSSy/F2Wefvdtzmpubo66urvRqaGjYq3YDAKQhFwGwT1VVVb8/J0myy7Fyvv/978cXv/jFWL58eRx88MG7PW/BggXR2dlZem3YsGGv2wwAMNxysQ3M+PHjY+TIkbtU+zZu3LhLVfCNli9fHhdccEHcdttt8cEPfnDAc2tqaqKmpmav2wsAkKZcVABHjRoVjY2N0dLS0u94S0tLzJgxY7fv+/73vx/nn39+fO9734szzzyz0s0EAMiEXFQAIyLmz58f5557bkyfPj2OP/74uP7666OtrS3mzJkTEduHb5977rn4zne+ExHbw9/s2bPjq1/9avz5n/95qXo4evToqKurS+1zAABUWm4C4KxZs2Lz5s2xaNGiaG9vj2nTpsXKlStj8uTJERHR3t7eb0/Ab33rW7F169a4+OKL4+KLLy4dP++882LZsmXD3XwAgGGTm30A02AfIQDY97h/56gCmIa+7Gw/QADYd/Tdt4tcAxMA90J3d3dEhP0AAWAf1N3dXdh5/4aA90Jvb288//zzMWbMmEHtN7gnurq6oqGhITZs2FDY8vRw0M/DQz8PD/08fPT18KhUPydJEt3d3TFp0qQYMSIXG6LsMRXAvTBixIg49NBDK/rvGDt2rP+4DAP9PDz08/DQz8NHXw+PSvRzUSt/fYoZewEACkwABAAoGAEwo2pqauKqq67y6LkK08/DQz8PD/08fPT18NDPlWMRCABAwagAAgAUjAAIAFAwAiAAQMEIgAAABSMAZtCSJUtiypQpUVtbG42NjXHfffel3aR9WnNzc7z//e+PMWPGxMEHHxwf/ehH47//+7/7nZMkSXzxi1+MSZMmxejRo+OUU06JRx99NKUW50Nzc3NUVVXFvHnzSsf089B47rnn4pOf/GSMGzcu9t9//zj22GOjtbW19HP9PDS2bt0a//zP/xxTpkyJ0aNHxxFHHBGLFi2K3t7e0jn6es/de++9cdZZZ8WkSZOiqqoqfvSjH/X7+WD6tKenJ+bOnRvjx4+PAw44ID7ykY/Es88+O4yfIgcSMuXWW29N9ttvv+SGG25IHnvsseSyyy5LDjjggOSZZ55Ju2n7rA9/+MPJzTffnPzmN79J1q5dm5x55pnJYYcdlrz44oulc6655ppkzJgxye23356sW7cumTVrVjJx4sSkq6srxZbvux566KHk8MMPT44++ujksssuKx3Xz3vvhRdeSCZPnpycf/75yS9/+ctk/fr1yU9+8pPkd7/7Xekc/Tw0rr766mTcuHHJf/7nfybr169PbrvttuQtb3lLsnjx4tI5+nrPrVy5Mlm4cGFy++23JxGR/PCHP+z388H06Zw5c5JDDjkkaWlpSR5++OHk1FNPTY455phk69atw/xp9l0CYMYcd9xxyZw5c/odO+qoo5Irr7wypRblz8aNG5OISFatWpUkSZL09vYmEyZMSK655prSOa+++mpSV1eXXHfddWk1c5/V3d2dvPOd70xaWlqSk08+uRQA9fPQ+NznPpeceOKJu/25fh46Z555ZvLpT3+637GPfexjySc/+ckkSfT1UHhjABxMn/7xj39M9ttvv+TWW28tnfPcc88lI0aMSO66665ha/u+zhBwhmzZsiVaW1ujqamp3/GmpqZ48MEHU2pV/nR2dkZExEEHHRQREevXr4+Ojo5+/V5TUxMnn3yyfn8TLr744jjzzDPjgx/8YL/j+nlo3HHHHTF9+vT427/92zj44IPjve99b9xwww2ln+vnoXPiiSfGT3/603jiiSciIuLXv/513H///XHGGWdEhL6uhMH0aWtra7z22mv9zpk0aVJMmzZNv++B6rQbwA6bNm2Kbdu2RX19fb/j9fX10dHRkVKr8iVJkpg/f36ceOKJMW3atIiIUt+W6/dnnnlm2Nu4L7v11lujtbU1Vq9evcvP9PPQeOqpp2Lp0qUxf/78+PznPx8PPfRQXHrppVFTUxOzZ8/Wz0Poc5/7XHR2dsZRRx0VI0eOjG3btsWXvvSl+PjHPx4R/k5XwmD6tKOjI0aNGhVvfetbdznHvXLwBMAMqqqq6vfnJEl2Ocabc8kll8QjjzwS999//y4/0+97Z8OGDXHZZZfF3XffHbW1tbs9Tz/vnd7e3pg+fXr867/+a0REvPe9741HH300li5dGrNnzy6dp5/33vLly+O73/1ufO9734v3vOc9sXbt2pg3b15MmjQpzjvvvNJ5+nrovZk+1e97xhBwhowfPz5Gjhy5yzeYjRs37vJtiD03d+7cuOOOO+Kee+6JQw89tHR8woQJERH6fS+1trbGxo0bo7GxMaqrq6O6ujpWrVoVX/va16K6urrUl/p570ycODHe/e539zs2derUaGtriwh/n4fSFVdcEVdeeWX83d/9XfzZn/1ZnHvuuXH55ZdHc3NzROjrShhMn06YMCG2bNkSf/jDH3Z7Dn+aAJgho0aNisbGxmhpael3vKWlJWbMmJFSq/Z9SZLEJZdcEitWrIj/+q//iilTpvT7+ZQpU2LChAn9+n3Lli2xatUq/b4HTj/99Fi3bl2sXbu29Jo+fXp84hOfiLVr18YRRxyhn4fACSecsMs2Rk888URMnjw5Ivx9Hkovv/xyjBjR/zY5cuTI0jYw+nroDaZPGxsbY7/99ut3Tnt7e/zmN7/R73siteUnlNW3DcyNN96YPPbYY8m8efOSAw44IHn66afTbto+6x/+4R+Surq65Gc/+1nS3t5eer388sulc6655pqkrq4uWbFiRbJu3brk4x//uK0chsDOq4CTRD8PhYceeiiprq5OvvSlLyVPPvlkcssttyT7779/8t3vfrd0jn4eGuedd15yyCGHlLaBWbFiRTJ+/Pjkn/7pn0rn6Os9193dnaxZsyZZs2ZNEhHJtddem6xZs6a03dlg+nTOnDnJoYcemvzkJz9JHn744eS0006zDcweEgAz6Jvf/GYyefLkZNSoUcn73ve+0nYlvDkRUfZ18803l87p7e1NrrrqqmTChAlJTU1N8hd/8RfJunXr0mt0TrwxAOrnoXHnnXcm06ZNS2pqapKjjjoquf766/v9XD8Pja6uruSyyy5LDjvssKS2tjY54ogjkoULFyY9PT2lc/T1nrvnnnvK/jf5vPPOS5JkcH36yiuvJJdcckly0EEHJaNHj07+6q/+Kmlra0vh0+y7qpIkSdKpPQIAkAZzAAEACkYABAAoGAEQAKBgBEAAgIIRAAEACkYABAAoGAEQAKBgBEAAgIIRAAEACkYABAAoGAEQAKBgBEAAgIIRAAEACkYABAAoGAEQAKBgBEAAgIIRAAEACkYABAAoGAEQAKBgBEAAgIIRAAEACkYABAAoGAEQAKBgBEAAgIIRAAEACkYABAAoGAEQAKBgBEAAgIIRAAEACkYABAAoGAEQAKBg/j+1sl9cn+iNvAAAAABJRU5ErkJggg==", + "text/html": [ + "\n", + "
\n", + "
\n", + " Figure\n", + "
\n", + " \n", + "
\n", + " " + ], + "text/plain": [ + "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "print(controller.lower_limit)" + "t_max = 100 #s\n", + "dt = 0.1 #s\n", + "nt = int(t_max//dt)\n", + "t_vec = np.arange(0,nt+1,1)*dt\n", + "\n", + "\n", + "PV_vec_ise = np.full_like(t_vec,PV_0)\n", + "PV_vec_iae = np.full_like(t_vec,PV_0)\n", + "PV_vec_itse = np.full_like(t_vec,PV_0)\n", + "PV_vec_itae = np.full_like(t_vec,PV_0)\n", + "\n", + "c_ise = PI_controller_class(SP_0,Kp_ise,Ti_ise,timestep = 0.1)\n", + "c_iae = PI_controller_class(SP_0,Kp_iae,Ti_iae,timestep = 0.1)\n", + "c_itse = PI_controller_class(SP_0,Kp_itse,Ti_itse,timestep = 0.1)\n", + "c_itae = PI_controller_class(SP_0,Kp_itae,Ti_itae,timestep = 0.1)\n", + "\n", + "\n", + "for i in range(1,nt+1):\n", + " c_ise.calculate_error(PV_vec_ise[i-1])\n", + " c_iae.calculate_error(PV_vec_iae[i-1])\n", + " c_itse.calculate_error(PV_vec_itse[i-1])\n", + " c_itae.calculate_error(PV_vec_itae[i-1])\n", + "\n", + " if i == 500:\n", + " c_ise.SP = SP_1\n", + " c_iae.SP = SP_1\n", + " c_itse.SP = SP_1\n", + " c_itae.SP = SP_1\n", + "\n", + " PV_vec_ise[i] = PV_vec_ise[i-1]+c_ise.get_control_variable()\n", + " PV_vec_iae[i] = PV_vec_iae[i-1]+c_iae.get_control_variable()\n", + " PV_vec_itse[i] = PV_vec_itse[i-1]+c_itse.get_control_variable()\n", + " PV_vec_itae[i] = PV_vec_itae[i-1]+c_itae.get_control_variable()\n", + "\n", + "fig5 = plt.figure()\n", + "plt.plot(t_vec,PV_vec_ise,label='ise')\n", + "# plt.plot(t_vec,PV_vec_iae,'.-',label='iae')\n", + "plt.plot(t_vec,PV_vec_itse,'+',label='itse')\n", + "# plt.plot(t_vec,PV_vec_itae,'*',label='itae')" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3.8.13 ('DT_Slot_3')", + "display_name": "Python 3.8.13 ('Georg_DT_Slot3')", "language": "python", "name": "python3" }, @@ -139,7 +386,7 @@ "orig_nbformat": 4, "vscode": { "interpreter": { - "hash": "4a28055eb8a3160fa4c7e4fca69770c4e0a1add985300856aa3fcf4ce32a2c48" + "hash": "84fb123bdc47ab647d3782661abcbe80fbb79236dd2f8adf4cef30e8755eb2cd" } } },