From 67dc2098638dbb7e7cd1580d67ee1cfcdef84e8b Mon Sep 17 00:00:00 2001 From: "Corey R. Randall" Date: Thu, 26 Dec 2024 11:01:36 -0700 Subject: [PATCH] Prep for v0.1.2 release --- ...0469622e9348e9f3331feb3203f592387b7b3565.png | Bin 0 -> 23190 bytes docs/jupyter_execute/examples/ramping.ipynb | 14 +++----------- .../user_guide/basic_tutorial.ipynb | 2 +- docs/source/examples/ramping.ipynb | 10 +++++----- src/thevenin/__init__.py | 2 +- src/thevenin/loadfns/_ramps.py | 4 +++- 6 files changed, 13 insertions(+), 19 deletions(-) create mode 100644 docs/jupyter_execute/583464dcd637a3c7b04a4ee20469622e9348e9f3331feb3203f592387b7b3565.png diff --git a/docs/jupyter_execute/583464dcd637a3c7b04a4ee20469622e9348e9f3331feb3203f592387b7b3565.png b/docs/jupyter_execute/583464dcd637a3c7b04a4ee20469622e9348e9f3331feb3203f592387b7b3565.png new file mode 100644 index 0000000000000000000000000000000000000000..4d58bdabdf76b5275ce93692bfa163f3b8c29b33 GIT binary patch literal 23190 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 B" ] @@ -185,7 +177,7 @@ ], "source": [ "expr = thev.Experiment()\n", - "expr.add_step('current_A', 75*20, (180., 75), limits=('voltage_V', 3.))\n", + "expr.add_step('current_A', 75*20, (180., 50), limits=('voltage_V', 3.))\n", "\n", "soln2 = model.run(expr)\n", "\n", diff --git a/docs/jupyter_execute/user_guide/basic_tutorial.ipynb b/docs/jupyter_execute/user_guide/basic_tutorial.ipynb index 66ef272..843e6f7 100644 --- a/docs/jupyter_execute/user_guide/basic_tutorial.ipynb +++ b/docs/jupyter_execute/user_guide/basic_tutorial.ipynb @@ -162,7 +162,7 @@ "output_type": "stream", "text": [ "CycleSolution(\n", - " solvetime=0.006 s,\n", + " solvetime=0.011 s,\n", " success=[True, True],\n", " status=[2, 1],\n", " nfev=[257, 69],\n", diff --git a/docs/source/examples/ramping.ipynb b/docs/source/examples/ramping.ipynb index 8decb85..2f50364 100644 --- a/docs/source/examples/ramping.ipynb +++ b/docs/source/examples/ramping.ipynb @@ -30,7 +30,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -54,7 +54,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -101,7 +101,7 @@ "dynamic_load = thev.loadfns.Ramp2Constant(20*75/1e-3, 20*75)\n", "\n", "expr = thev.Experiment()\n", - "expr.add_step('current_A', dynamic_load, (180., 0.5), limits=('voltage_V', 3.))\n", + "expr.add_step('current_A', dynamic_load, (360., 0.5), limits=('voltage_V', 3.))\n", "\n", "soln = model.run(expr)\n", "soln.plot('time_s', 'current_A')\n", @@ -125,7 +125,7 @@ "outputs": [], "source": [ "expr = thev.Experiment()\n", - "expr.add_step('current_A', 75*20, (180., 75), limits=('voltage_V', 3.))\n", + "expr.add_step('current_A', 75*20, (180., 50), limits=('voltage_V', 3.))\n", "\n", "soln2 = model.run(expr)\n", "\n", @@ -168,7 +168,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.9" + "version": "3.12.7" } }, "nbformat": 4, diff --git a/src/thevenin/__init__.py b/src/thevenin/__init__.py index d946b75..11ab9a2 100644 --- a/src/thevenin/__init__.py +++ b/src/thevenin/__init__.py @@ -27,7 +27,7 @@ from . import loadfns from . import plotutils -__version__ = '0.2.0.dev' +__version__ = '0.1.2' __all__ = [ 'IDASolver', diff --git a/src/thevenin/loadfns/_ramps.py b/src/thevenin/loadfns/_ramps.py index d9ed1fa..1a533dd 100644 --- a/src/thevenin/loadfns/_ramps.py +++ b/src/thevenin/loadfns/_ramps.py @@ -94,6 +94,8 @@ def __repr__(self) -> str: # pragma: no cover def __call__(self, t: float) -> float: linear = self._m*t + self._b - sigmoid = 1. / (1. + np.exp(-self._sharpness*(linear - self._step))) + + z = self._sharpness*(linear - self._step) + sigmoid = 1. / (1. + np.exp(-np.clip(z, -700, None))) return (1. - sigmoid)*linear + sigmoid*self._step