{ "cells": [ { "cell_type": "markdown", "id": "eb5e3afc", "metadata": {}, "source": [ "# Read Export Files" ] }, { "cell_type": "code", "execution_count": 1, "id": "a1f59e48", "metadata": {}, "outputs": [], "source": [ "# Imports\n", "import numpy as np\n", "import pandas as pd\n", "from sympy.utilities.lambdify import lambdify\n", "import matplotlib.pyplot as plt\n", "import matplotlib\n", "%matplotlib inline\n", "from IPython.core.interactiveshell import InteractiveShell\n", "InteractiveShell.ast_node_interactivity = \"all\"\n", "from matplotlib.ticker import LogLocator" ] }, { "cell_type": "code", "execution_count": 2, "id": "4f1dd722", "metadata": {}, "outputs": [], "source": [ "# Official package: https://pypi.org/project/ltspice/\n", "# Derived LTspice reader\n", "def read_ltspice(file_name,ftype='trans',units='db'):\n", " cols = []\n", " arrs = []\n", " with open(file_name, 'r',encoding='utf-8') as data:\n", " for i,line in enumerate(data):\n", " if i==0:\n", " cols = line.split()\n", " arrs = [[] for _ in cols]\n", " continue\n", " parts = line.split()\n", " for j,part in enumerate(parts):\n", " arrs[j].append(part)\n", " df = pd.DataFrame(arrs)\n", " df = df.T\n", " df.astype('float64',errors='ignore')\n", " df.columns = cols\n", " if ftype=='trans':\n", " return df\n", " elif ftype=='ac':\n", " if units=='db':\n", " for col in cols:\n", " if df[col].str.contains(',').all():\n", " df[f'Mag_{col}'] = df[col].apply(lambda x: x.split(',')[0])\n", " df[f'Mag_{col}'] = df[f'Mag_{col}'].apply(lambda x: x[1:-2])\n", " df[f'Mag_{col}'] = df[f'Mag_{col}'].astype('float64')\n", " df[f'Phase_{col}'] = df[col].apply(lambda x: x.split(',')[1])\n", " df[f'Phase_{col}'] = df[f'Phase_{col}'].apply(lambda x: x[0:-2])\n", " df[f'Phase_{col}'] = df[f'Phase_{col}'].astype('float64')\n", " if units=='cartesian':\n", " for col in cols:\n", " if df[col].str.contains(',').all():\n", " df[f'Re_{col}'] = df[col].apply(lambda x: x.split(',')[0])\n", " df[f'Re_{col}'] = df[f'Re_{col}'].astype('float64')\n", " df[f'Im_{col}'] = df[col].apply(lambda x: x.split(',')[1])\n", " df[f'Im_{col}'] = df[f'Im_{col}'].astype('float64')\n", " df['Freq.'] = df['Freq.'].astype('float64')\n", " return df\n", " else:\n", " print('invalid ftype')" ] }, { "cell_type": "code", "execution_count": 6, "id": "be53ec60", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
 Freq.V(vout3)/(V(vp)-V(vm))Mag_V(vout3)/(V(vp)-V(vm))Phase_V(vout3)/(V(vp)-V(vm))
00.010(-4.11838015619366e+001dB,-5.59733635143613e-001°)-41.184-0.560
10.010(-4.07837855425980e+001dB,-5.72769990801834e-001°)-40.784-0.573
\n" ], "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "filepath = 'data/top_level_OP1177.txt'\n", "df = read_ltspice(filepath,'ac')\n", "df.head(n=2).style.format(precision=3)" ] }, { "cell_type": "code", "execution_count": 4, "id": "a52b1844", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" ] }, { "data": { "image/png": "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+186duxIy5YtAbwONaxXrx7XXnstc+fOpW3btkRERNCsWTNPH5k6dSrNmjUjKiqKyy67jJ9//rlQHIMGDWL79u0sWrSo2HhFxD9KvEQkIJxOJ4sWLaJDhw7UqlXLa53atWvTvn17vv/++2LvaQDYsWMHANWrVy/1WIvz3nvvYbVaufvuu4utl5GRweeff0737t2pX7++z/t3Op3k5eV5Xn9uh3vuuQe73c5///tfPv/8c+x2O5MmTWLAgAE0b96cTz/9lP/+97+cOnWKLl26sHnzZs+2U6dO5e6776ZZs2bMnDmTJ598kmeffZbvv//ev0Y4x6JFi+jcuTMnT57krbfe4osvvqBNmzbcdttthRI0gGHDhmG325kxYwbPP/88ixcv5s477yxQ5+mnn+aOO+4gMTGRqVOnMnv2bAYPHuxJsu+9915CQkJ4++23C2x3/PhxPv74Y4YOHUp4eLjf57J7924AmjRp4in78MMP6dmzJzExMXzwwQd8+umnVK1alV69ehVISAYNGsScOXN4+umnmT9/Pu+++y5XX311oV+WDx48yO23384dd9zBF198Qf/+/ZkwYQL/93//56mTnZ1NSkoK06ZNY/To0Xz99dfceeedPP/889x0002F4v7666957bXXGD9+PDNnzqRq1arceOONBX6p9yU+X88V3MlFt27dztum99xzDxaLpdBQvc2bN7Nq1SoGDx6MzWZj27ZtdOrUiU2bNvHvf/+bWbNm0bx5c4YMGcLzzz9/3uP82RtvvEHnzp2Jj48vMGz3XDNnziwwzHDlypUcO3aMlJSUAvWaNGnClVdeyYcfflhoGOqUKVNISkqiV69e541p6NChWK1WzxDIVatW0a1bt2LvgcvfLjc3lw8//LBA+bfffktaWponMSzOr7/+ypgxY/jb3/7GrFmziI2N5aabbmLs2LG8++67TJo0ienTp5ORkcG1117L2bNnC2zfvn17oqOj+frrr897LBHxg9mX3ESkfDp48KABGLfffnux9W677TYDMA4dOmQYxh9DDVesWGE4HA7j1KlTxty5c43q1asblSpVMg4ePOh1P8UNNTyXP0MN84cV9erV67x184dRffTRR+etaxh/DH/78yspKckwjD/a4a677iqwXWpqqhESEmI8+OCDBcpPnTplxMfHG7feeqthGO7hlYmJiUa7du0KDBfa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ezJjxgxefPFFpkyZQqNGjbjqqqt8Pv6FOn78eIn6nogUTVe8RCRgxowZg2EYjBw5stCkEU6nk/vvvx/DMBgzZoxJERYt/5e08/2FOScnhw8//JDLLruMFi1aBDyuXr16ERISws6dOwtcKTv3Be4EKCEhgY8++sgznBPcQ4qWLVtWYJ/5Q/XWr19foDx/qFi+pk2b0rhxY3799dcij33uEDhf9OzZE5vNxptvvnneujfeeCN16tThkUce4bvvvmPkyJElfnisxWLh9ddfx2az8eSTTwLuB9NWrlyZzZs3F3l+3p4XV6dOHUaNGkWPHj345ZdfCqw7depUoXacMWMGVqvV80t09+7dOX36NHPmzClQb9q0aZ71F8JbfCU9V18NHToUp9PJCy+8wLx587j99tsLDHHr3r0733//faEZLqdNm0ZkZKQnGfS1b0Lhq375Zs6cSWJiYqEE85JLLgFg586dXs/h8ssvp0WLFkyZMoUpU6YQGxtb6KpZcaZPn15gedmyZezdu9czSUm1atW8fnbzDR06lBMnTvD000+zbt067r777lJ/WHJxdu3aRfPmzS/a8UQqAl3xEpGA6dy5My+//DIPP/wwV155JaNGjaJOnTqkpqby+uuvs3LlSl5++eUS33P0ww8/eIaqOZ1O9u7dy+effw5A165dPVdTzpw547l3asWKFZ5tjx49SlRUlGd663z5D4Ht1KmT5x6IosyZM4fjx48H5GqXN/Xq1WP8+PE88cQT7Nq1i969e1OlShUOHTrEqlWriIqK4plnnsFqtfLss88ybNgwbrzxRoYPH87JkycZN25coSFQ8fHxXH311fzjH/+gSpUq1K1bl4ULFzJr1qxCx3/77be55ppr6NWrF0OGDCEpKYnjx4+zZcsWfvnlF889WP6cz+OPP86zzz7L2bNnGTBgALGxsWzevJmjR4/yzDPPeOrabDYeeOAB/va3vxEVFeW5B6qkGjduzIgRI3jjjTdYunQpV155Ja+++iqDBw/m+PHj9O/fnxo1anDkyBF+/fVXjhw5wptvvklGRgYpKSkMHDiQSy65hEqVKrF69Wq++eabQlcCq1Wrxv33309qaipNmjRh3rx5/Oc//+H++++nTp06ANx11128/vrrDB48mD179tCyZUuWLl3KpEmT6NOnD1dffbVf5+VLfNHR0T6da76QkBC6du3q831e+cNmX375ZQzDKPQHjLFjxzJ37lxSUlJ4+umnqVq1KtOnT+frr7/m+eefJzY2FnAPqW3atCmPPvooeXl5VKlShdmzZ7N06dJCx2zZsiWzZs3izTffpH379litVjp06MDnn3/OTTfdVChpyU+AVqxYUWiIb7577rmH0aNHs23bNu69914iIiJ8On9wP3Zh2LBh3HLLLezbt48nnniCpKQkz7Dc87nuuuuIi4vjhRde8EzVf7EcO3aM3377rcBQXBEpBaZN6yEiFcby5cuN/v37GzVr1jRCQkKMGjVqGDfddJOxbNmyQnWLeoCyN/mzxnl7nTvbWf7sfN5e3mZBmz59ugEY77///nlj6NGjhxEVFVVgljlfnO8Byudrhzlz5hgpKSlGTEyMERYWZtStW9fo37+/8d133xWo9+677xqNGzc2QkNDjSZNmhjvv/++MXjw4ELnnZ6ebvTv39+oWrWqERsba9x5553Gzz//XGhWQ8MwjF9//dW49dZbjRo1ahh2u92Ij483/vKXvxhvvfXWeeMvagbFadOmGR07djTCw8ON6Ohoo23btoWOaxjuWRkB47777vPaLt4U19aHDh0yoqOjjZSUFE/ZDz/8YPTt29eoWrWqYbfbjaSkJKNv377GZ599ZhiGYWRnZxv33Xef0apVKyMmJsaIiIgwmjZtaowdO7bAjHFdu3Y1Lr30UmPx4sVGhw4djLCwMCMhIcF4/PHHC80KeezYMeO+++4zEhISjJCQEKNu3brGmDFjjOzs7AL1AOOBBx4odB5169b1zOrpa3y+nOu5x+3atev5G/scr7zyigEYzZs397p+w4YNRr9+/YzY2FgjNDTUaN26tdd/8+3btxs9e/Y0YmJijOrVqxsPPvig8fXXXxfqR8ePHzf69+9vVK5c2bBYLAZg7Nixo9hZTLt06WL06dOnyHM4cuSIERoaagDGqlWrvNahiFkN58+fbwwaNMioXLmyERERYfTp08f47bffijyWN3/9618NoMgYi5rVsG/fvl7j/HPfyf9ufOGFFwqUv/fee4bdbi9yFlkRKRmLYZwzBkVERMq9IUOGsHjx4kIPpS0LXn31VR566CE2btzoeRBusOrWrRtHjx5l48aNZodSYT3//PNMnjyZ9PR0r5NozJw5k9tuu429e/cWmAXwQuQ/P2/16tWm3qd6Ibp06UKdOnUK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Z8JPTk5m4sSJpKenk5Dg7oTz588nLCyM9u3be+o8/vjj5ObmEhoa6qmTmJhYIMETEREREQk6EZUhoRWk/+qeVr7VLWZHJH4oE8/xSktLo1u3btSuXZvJkydz5MgRDh48WODqVc+ePWnevDmDBg1i7dq1LFy4kEcffZThw4d7xloOHDiQsLAwhgwZwsaNG5k9ezaTJk3SjIYiIiIiUjbU6+L+qWnly5wyMavh/Pnz2bFjBzt27KBWrVoF1hm/zw1is9n4+uuvGTlyJJ07dyYiIoKBAwd6ppsHiI2NZcGCBTzwwAN06NCBKlWqMHr0aEaPHn1Rz0dEREREpETqdYHlr+lBymVQmUi8hgwZwpAhQ85br06dOsydO7fYOi1btmTJkiWlFJmIiIiIyEVUNxksVji+EzLTICbx/NtIUCgTQw1FRERERAQIj4WE1u73uupVpijxEhEREREpS/Lv89qtUVxliRIvEREREZGyxDPBhq54lSVKvEREREREypI6V4DFBid2Q8Z+s6MRHynxEhEREREpS8JjILGN+72uepUZSrxERERERMqaele6f+7W87zKCiVeIiIiIiJlTb2r3D/1IOUyQ4mXiIiIiEhZU+dy931eJ/fCyVSzoxEfKPESERERESlrwipBUjv3e93nVSYo8RIRERERKYvy7/NS4lUmKPESERERESmLPA9S1n1eZYESLxERERGRsqj25WANgYxUOLHX7GjkPJR4iYiIiIiURWHRkNTe/V6zGwY9JV4iIiIiImWVnudVZijxEhEREREpq+r//jyvXYvBMEwNRYqnxEtEREREpKyqfQXYI+H0QTi0yexopBhKvEREREREyip7+B/DDXcuNDcWKZYSLxERERGRsqxhd/fPHd+ZG4cUS4mXiIiIiEhZ1uhq98/UFZCbZW4sUiQlXiIiIiIiZVm1hlC5DjhzYc9Ss6ORIijxEhEREREpyyyWP656abhh0FLiJSIiIiJS1nnu89IEG8FKiZeIiIiISFlX/yqwhsDxnXB8t9nRiBdKvEREREREyrrwGKh9ufu9ppUPSkq8RERERETKg4Z/cf/UcMOgpMRLRERERKQ8aPT7fV67l0BerrmxSCFKvEREREREyoP41hAZB7mnYd8Ks6ORP1HiJSIiIiJSHlit0LiH+/32b82NRQpR4iUiIiIiUl406eX+qcQr6CjxEhER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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1,figsize=(10,5))\n", "freq = df['Freq.']\n", "mag = df['Mag_V(vout3)/(V(vp)-V(vm))']\n", "\n", "ax.semilogx(freq, mag, color='tab:orange')\n", "ax.grid(True,which='both')\n", "ax.set_xlabel('Frequency [Hz]')\n", "ax.set_ylabel('Magnitude [dB]')\n", "ax.set_title('OP1177 Frequency Response: Vout/(Vip-Vim)')\n", "\n", "# overrides matplotlib -> won't plot bode lines if dimension size isn't big enough\n", "# manipulate x-axis ticks and labels\n", "ax.xaxis.set_major_locator(LogLocator(numticks=15)) #(1)\n", "ax.xaxis.set_minor_locator(LogLocator(numticks=15,subs=np.arange(2,10))) #(2)\n", "for label in ax.xaxis.get_ticklabels()[::2]:\n", " label.set_visible(False) #(3)\n", "\n", "ax.legend()\n", "plt.show();" ] }, { "cell_type": "code", "execution_count": null, "id": "fc9a0f35", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.7.9" }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 5 }