{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "*This notebook contains course material from [CBE40455](https://jckantor.github.io/CBE40455) by\n", "Jeffrey Kantor (jeff at nd.edu); the content is available [on Github](https://github.com/jckantor/CBE40455.git).\n", "The text is released under the [CC-BY-NC-ND-4.0 license](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode),\n", "and code is released under the [MIT license](https://opensource.org/licenses/MIT).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Geometric Brownian Price Process](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.08-Geometric-Brownian-Price-Process.ipynb) | [Contents](toc.ipynb) | [Decentralized Control in a Supply Chain](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.10-Decentralized-Control-in-a-Supply-Chain.ipynb) >

\"Open

\"Download\"" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "Ch-DjqUww2Y7" }, "source": [ "# Continuous Time Simulation in SimPy" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "a51mgFLcwkSj" }, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import simpy\n", "import pandas as pd\n", "\n", "from scipy.integrate import odeint" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "ilhL5iMnwkSm", "outputId": "02121e5e-9ab4-4bc9-9b68-fdfdfa9e45ec" }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 97, "metadata": { "tags": [] }, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "class flow():\n", " def __init__(self,env,Q=0):\n", " self.Qout = Q\n", " self.env = env\n", " \n", " def get_Qout(self):\n", " return self.Qout\n", " \n", " \n", "class tank():\n", " def __init__(self,env,name,C,A,Qin,h):\n", " self.name = name\n", " self.C = C\n", " self.A = A\n", " self.h = h\n", " self.data = pd.Series()\n", " self.Qout = self.C*h**1.5\n", " self.Qin = Qin\n", " env.process(self.run())\n", " \n", " def get_Qout(self):\n", " return self.Qout\n", "\n", " def run(self):\n", " while True:\n", " self.data.set_value(env.now,self.h)\n", " f = lambda h,t : (-self.C*h**1.5 + self.Qin())/self.A\n", " self.Qout = self.C*self.h**1.5\n", " yield env.timeout(0.1)\n", " self.h = odeint(f,self.h,[0,.1])[-1][0]\n", "\n", "env = simpy.Environment()\n", "Q = flow(env,10)\n", "tank_1 = tank(env,'A',.2,4,Q.get_Qout,0)\n", "tank_2 = tank(env,'B',.1,1,tank_1.get_Qout,15)\n", "env.run(until=30)\n", "\n", "tank_1.data.plot()\n", "tank_2.data.plot()\n" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "_dUmARp0wkSq" }, "outputs": [], "source": [ "class stream():\n", " def __init__(self,env,Q=0):\n", " self.Q = Q\n", " self.env = env\n", " self.hist = pd.Series()\n", " \n", " def qout(self):\n", " return self.q\n", " \n", " def qin(self,qin):\n", " self.Q = qin\n", " self.hist.set_value(env.now,qin)\n", " \n", " \n", " \n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "pgZgpMglwkSt" }, "source": [] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "9S98aLzpwkSt", "outputId": "4291e7e4-6a62-4ab9-f9fc-e8d46fd79186" }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 75, "metadata": { "tags": [] }, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "# A draining tank\n", "\n", "class PV():\n", " qin = 0\n", " qout = 0\n", "\n", "\n", "class tank():\n", " def __init__(self,env,C,A,h,fin):\n", " self.C = C\n", " self.A = A\n", " self.h = h\n", " self.hist = pd.Series()\n", " env.process(self.run())\n", " self.qout = 0\n", " self.qin = fin\n", "\n", " def run(self):\n", " while True:\n", " self.hist.set_value(env.now,self.h)\n", " f = lambda h,t : (-self.C*h**1.5 + self.qin())/self.A\n", " self.qout = -self.C*self.h**1.5\n", " yield env.timeout(0.1)\n", " self.h = odeint(f,self.h,[0,.5])[-1][0]\n", "\n", "class flow():\n", " def __init__(self,env,q,qin):\n", " self.q = q\n", " env.process(self.run())\n", " self.qin = qin\n", " \n", " def qout(self):\n", " return self.q\n", " \n", " def run(self):\n", " while True:\n", " yield env.timeout(0.1)\n", " self.q = 0.95*self.q\n", " self.qin(self.q)\n", "\n", "env = simpy.Environment()\n", "s = stream(env)\n", "qflow = flow(env,10,s.qin)\n", "unit_1 = tank(env,.2,4,0,qflow.qout)\n", "env.run(until=5)\n", "\n", "unit_1.hist.plot()\n", "PV.qout\n", "s.hist.plot()" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "YwKqo_jLwkSx" }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Geometric Brownian Price Process](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.08-Geometric-Brownian-Price-Process.ipynb) | [Contents](toc.ipynb) | [Decentralized Control in a Supply Chain](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.10-Decentralized-Control-in-a-Supply-Chain.ipynb) >

\"Open

\"Download\"" ] } ], "metadata": { "colab": { "collapsed_sections": [], "name": "04.07-Continuous-Time-Simulation-in-SimPy.ipynb", "provenance": [], "version": "0.3.2" }, "kernelspec": { "display_name": "Python [conda root]", "language": "python", "name": "conda-root-py" }, "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.5.2" } }, "nbformat": 4, "nbformat_minor": 0 }