diff --git a/hp4155/.ipynb_checkpoints/ctlm_part2-checkpoint.ipynb b/hp4155/.ipynb_checkpoints/ctlm_part2-checkpoint.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..363fcab7ed6e9634e198cf5555ceb88932c9a245 --- /dev/null +++ b/hp4155/.ipynb_checkpoints/ctlm_part2-checkpoint.ipynb @@ -0,0 +1,6 @@ +{ + "cells": [], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/hp4155/__pycache__/measurements.cpython-39.pyc b/hp4155/__pycache__/measurements.cpython-39.pyc index 3776f38aaac556c6cb73ff2f761012d03d3456cc..9f177a32c3f095a1a0c4b508d32caaddf5e74e71 100644 Binary files a/hp4155/__pycache__/measurements.cpython-39.pyc and b/hp4155/__pycache__/measurements.cpython-39.pyc differ diff --git a/hp4155/__pycache__/module.cpython-39.pyc b/hp4155/__pycache__/module.cpython-39.pyc index a750414447cd5b036463274ffd6af1c8699b1a2e..87910561dfda5f7c2093a0c9ea8002494a237473 100644 Binary files a/hp4155/__pycache__/module.cpython-39.pyc and b/hp4155/__pycache__/module.cpython-39.pyc differ diff --git a/hp4155/ctlm.ipynb b/hp4155/ctlm.ipynb index c656659fee38eab720f30949d394e19b2a24aa7b..2d8f7be1478ea84b53ed0f1f764a88aa678291cb 100644 --- a/hp4155/ctlm.ipynb +++ b/hp4155/ctlm.ipynb @@ -450,7 +450,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.4" + "version": "3.9.7" } }, "nbformat": 4, diff --git a/hp4155/ctlm_part2.ipynb b/hp4155/ctlm_part2.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..f9d110cdf06dd67e52c3bbd30dd2909c1a497528 --- /dev/null +++ b/hp4155/ctlm_part2.ipynb @@ -0,0 +1,285 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "6aec8d34-d4bf-4ae0-98e3-0ad8d6a3780f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "' this is the part 2 of the single step of ctlm measurement. \\nHere we save the results in a txt file and we do the linear regression\\n'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "''' this is the part 2 of the single step of ctlm measurement. \n", + "Here we save the results in a txt file and we do the linear regression\n", + "'''" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "f2f531eb-6e42-42b1-83b8-078a439e7226", + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import pandas as pd\n", + "from datetime import datetime\n", + "import os \n", + "from sklearn.linear_model import LinearRegression\n", + "import sys" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "ddd23aac-b903-46e2-9b96-9f6676d4411b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "101\n" + ] + } + ], + "source": [ + "resistance = [199.0687, 203.1307, 207.3624, 211.7744, 216.3797, 221.1893, 226.2174, 231.4787, 236.9896, 242.7693, 248.838, 255.2181, 261.9341, 269.0141, 276.4874, 284.3889, 292.7551, 301.6264, 311.0509, 321.0848, 331.7863, 343.2259, 355.4841, 368.6504, 382.8311, 398.1461, 414.7365, 432.7694, 452.4416, 473.9852, 491.4541, 488.2188, 485.5548, 482.6365, 480.0089, 477.8993, 475.462, 473.3512, 471.7728, 469.9153, 468.2796, 467.1869, 465.7367, 465.1277, 463.9013, 462.756, 462.8145, 461.8933, 460.749, 462.548, -9.9e+307, 459.826, 459.255, 460.9573, 462.064, 462.1692, 463.4757, 464.6631, 465.969, 466.9178, 468.4606, 470.2536, 471.66, 473.7292, 475.982, 478.0425, 480.7104, 483.5262, 486.6198, 489.6606, 493.1878, 473.9649, 452.4223, 432.7527, 414.7214, 398.1343, 382.8215, 368.6438, 355.4759, 343.2188, 331.7775, 321.0737, 311.0401, 301.6142, 292.7427, 284.3794, 276.4811, 269.0093, 261.9302, 255.2141, 248.8343, 242.7657, 236.9855, 231.4752, 226.2149, 221.1874, 216.3789, 211.7756, 207.3632, 203.1304, 199.0674]\n", + "print(len(resistance))" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "a2d522b1-5a59-42c6-95a3-a92de47fd413", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "101\n" + ] + } + ], + "source": [ + "voltage = [-9.953434, -9.953406, -9.953396, -9.953398, -9.953468, -9.95352, -9.953564, -9.953582, -9.953562, -9.95354, -9.95352, -9.953506, -9.953494, -9.953522, -9.953548, -9.95361, -9.953674, -9.953672, -9.953628, -9.953628, -9.953588, -9.953552, -9.953556, -9.953562, -9.953608, -9.953652, -9.953676, -9.953696, -9.953716, -9.95369, -9.829082, -9.276158, -8.739986, -8.20482, -7.680142, -7.16849, -6.656468, -6.153566, -5.661274, -5.169068, -4.682796, -4.204682, -3.725894, -3.255894, -2.783408, -2.31378, -1.851258, -1.38568, -0.921498, -0.462548, -0.003156, 0.459826, 0.91851, 1.382872, 1.848256, 2.310846, 2.780854, 3.252642, 3.727752, 4.20226, 4.684606, 5.17279, 5.65992, 6.15848, 6.663748, 7.170638, 7.691366, 8.219946, 8.759156, 9.303552, 9.863756, 9.953262, 9.95329, 9.953312, 9.953314, 9.953358, 9.95336, 9.953382, 9.953324, 9.953344, 9.953324, 9.953284, 9.953284, 9.95327, 9.953252, 9.953278, 9.953318, 9.953344, 9.953348, 9.95335, 9.953374, 9.953392, 9.953392, 9.953434, 9.953456, 9.953434, 9.95343, 9.953454, 9.953434, 9.95339, 9.95337]\n", + "print(len(voltage))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "cf775aa2-e15a-4030-8b03-cc013f660f1c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "101\n" + ] + } + ], + "source": [ + "current=[-0.05, -0.049, -0.048, -0.047, -0.046, -0.045, -0.044, -0.043, -0.042, -0.041, -0.04, -0.039, -0.038, -0.037, -0.036, -0.035, -0.034, -0.033, -0.032, -0.031, -0.03, -0.029, -0.028, -0.027, -0.026, -0.025, -0.024, -0.023, -0.022, -0.021, -0.02, -0.019, -0.018, -0.017, -0.016, -0.015, -0.014, -0.013, -0.012, -0.011, -0.01, -0.009, -0.008, -0.007, -0.006, -0.005, -0.004, -0.003, -0.002, -0.001, 0.0, 0.001, 0.002, 0.003, 0.004, 0.005, 0.006, 0.007, 0.008, 0.009, 0.01, 0.011, 0.012, 0.013, 0.014, 0.015, 0.016, 0.017, 0.018, 0.019, 0.02, 0.021, 0.022, 0.023, 0.024, 0.025, 0.026, 0.027, 0.028, 0.029, 0.03, 0.031, 0.032, 0.033, 0.034, 0.035, 0.036, 0.037, 0.038, 0.039, 0.04, 0.041, 0.042, 0.043, 0.044, 0.045, 0.046, 0.047, 0.048, 0.049, 0.05]\n", + "print(len(current))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "7bc98b19-f8d9-4549-9775-92c3c9bd974b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "nan\n" + ] + } + ], + "source": [ + "#we need to find element which has current value 0\n", + "resistance[current.index(0)]=float('NAN')\n", + "print(resistance[current.index(0)])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "265c23ad-29f4-4664-94c3-60fa440998f4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 2 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#Here we plot the current and the resistance\n", + "fig, (ax1, ax2) = plt.subplots(2,sharex=True) #the plots share the same x axis \n", + "fig.suptitle('CTLM plot')\n", + "ax1.set_title('I(V)')\n", + "ax1.set(xlabel='Voltage(V)',ylabel='Current(A)')\n", + "ax1.plot(voltage, current)\n", + "ax2.set_title('R(V)')\n", + "ax2.set(xlabel='Voltage(V)',ylabel='Resistance(Ohm)')\n", + "ax2.plot(voltage,resistance)\n", + "fig.tight_layout() #leave space between plots \n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "ace8d693-f5cb-4aa4-b82d-66c842c3df5a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.2250738585072014e-308\n", + "100\n", + "[35714.285713825164, 100000.00000378577, 499999.999930111, 14285.714285530066, 19230.769231365877, 22727.272726848576, 55555.555553272694, 49999.999997451996, 45454.54545553223, 49999.999997451996, 71428.57143671338, 83333.33332168518, 35714.285713825164, 38461.53846141788, 16129.032258120591, 15624.999999984373, 499999.999930111, 22727.272727766114, 4.49423283715579e+307, 24999.99999983622, 27777.777778006992, 249999.9999650555, 166666.6666927136, 21739.13043510191, 22727.272726848576, 41666.66666701049, 49999.999997451996, 50000.000001892884, 38461.53846141788, 8.025166923471991, 1.8085668193097093, 1.8650731481688694, 1.868579095084515, 1.905930875699001, 1.9544534175572468, 1.9530410802660825, 1.9884589840565334, 2.0313147481575977, 2.0316696667655436, 2.056462226901814, 2.0915513873260365, 2.0886070661754252, 2.1276595744680864, 2.116464826471049, 2.129344928326249, 2.1620593182594563, 2.147867811623401, 2.1543273974432444, 2.178886588953045, 2.1767901922541095, 2.1599111844520955, 2.180150168743623, 2.1534923184928996, 2.1487631719182447, 2.161741498951554, 2.12762335960239, 2.1195960897691353, 2.104775736145312, 2.1074460283072165, 2.0732005655691155, 2.048407977320025, 2.0528401042842788, 2.005776636713734, 1.979147699834543, 1.972814614610664, 1.9203883793458385, 1.8918612130614105, 1.8545650117764856, 1.836898140324326, 1.7850640123954826, 11.17243536746139, 35714.285713825164, 45454.54545553223, 499999.999930111, 22727.272727766114, 499999.999930111, 45454.54545553223, 17241.379310575107, 50000.000001892884, 50000.000001892884, 24999.99999983622, 4.49423283715579e+307, 71428.57142765033, 55555.55555875528, 38461.538464045625, 24999.99999983622, 38461.53846141788, 249999.9999650555, 499999.999930111, 41666.66666701049, 55555.55555875528, 4.49423283715579e+307, 23809.52380921678, 45454.54545553223, 45454.54545553223, 250000.00007607782, 41666.66666701049, 49999.999997451996, 22727.272727766114, 49999.999997451996]\n" + ] + } + ], + "source": [ + "'''lets test the linear regression fitting.\n", + "for these tasks the are are two methods.\n", + "\n", + "Method 1: measure the slope. the current step is constant. so we need only the voltage difference.\n", + "when the second derivative I''(V) is big then we are not in the linear region(for a line is I''(V)=0) \n", + "then dv should be big \n", + "\n", + "Method 2: do a linear regression. delete the points that have the biggest distance from the line. and do a linear regression again\n", + "'''\n", + "\n", + "#method 1\n", + "mini=sys.float_info.min\n", + "print(mini)\n", + "#define the voltage differences\n", + "derivative=[]\n", + "for i in range(1,len(voltage)):\n", + " element = (abs(voltage[i]-voltage[i-1])+mini)**(-1)\n", + " derivative.append(element)\n", + "\n", + "print(len(derivative))\n", + "print(derivative)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "d7ee8038-f343-4660-99ea-63bd13291c42", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "99\n", + "[2295918367.468986, 39999999994.14683, 242857142788.34436, 70643642.08245775, 67240451.83829193, 746097336.9502603, 308641975.31068957, 227272727.08440652, 206611570.0917475, 1071428571.908469, 850340134.7377707, 3968253966.7669935, 98116169.55561735, 858942546.2779719, 8129552.550612424, 7568359373.900659, 238636363567.8163, inf, inf, 69444444.45381439, 6172839505.246728, 20833333315.17343, 24154589380.04353, 21481354.1687213, 430440771.35928303, 347222222.10459465, 0.22204440027740802, 576923077.0455914, 1478981280.5528402, 49.889253532375676, 0.10219547145567956, 0.0065388474512759675, 0.06979475642041172, 0.09248061069502782, 0.0027603474454596117, 0.06917262107966252, 0.08521692914536874, 0.0007209514027160663, 0.05037029239032119, 0.0721595329861116, 0.006158198987294401, 0.08156534477192649, 0.023818612759653943, 0.02726028253789495, 0.0696602202875625, 0.030682879162623997, 0.013874336458860369, 0.05290853912861865, 0.004567810652435678, 0.0367420586384047, 0.04371440853322024, 0.05811811672245666, 0.010184180821546209, 0.0278873511622859, 0.07375459769809996, 0.017079006811064144, 0.03141316359005189, 0.005620366150795851, 0.07217046443495378, 0.05140000797993658, 0.009078804230072604, 0.0966137736754965, 0.05341169945280647, 0.012534111053696229, 0.10342724311946469, 0.05478323862828188, 0.07055923660548065, 0.03276436166272785, 0.09521401319782576, 16.757058776920367, 398890.72552072123, 347866419.342195, 20661157022.020298, 238636363567.8163, 10847107436.652409, 227272727205.52167, 1282416642.9804366, 564803805.0302639, 0.0, 1250000000.1501553, inf, inf, 1133786847.763597, 949667616.4274548, 517751479.4264198, 336538461.5373367, 8136094673.191322, 62499999982.52775, 229166666599.51776, 578703703.827475, inf, inf, 515357658.23896027, 0.0, 9297520664.772095, 52083333368.11638, 347222222.10459465, 1363636363.414803, 619834710.6881351]\n" + ] + } + ], + "source": [ + "second_derivative=[]\n", + "for i in range(1,len(derivative)):\n", + " element=abs(derivative[i]-derivative[i-1])*(abs(voltage[i]-voltage[i-1])+mini)**(-1)\n", + " second_derivative.append(element) \n", + "\n", + "print(len(second_derivative))\n", + "print(second_derivative)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "580b815f-3b7d-495f-b7b0-adb064811540", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.2250738585072014e-308\n" + ] + }, + { + "ename": "IndexError", + "evalue": "pop index out of range", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/tmp/ipykernel_21670/2406563054.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msecond_derivative\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mabs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msecond_derivative\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mmini\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m>\u001b[0m\u001b[0;36m20\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 12\u001b[0;31m \u001b[0mvoltage_new\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 13\u001b[0m \u001b[0mcurrent_new\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mIndexError\u001b[0m: pop index out of range" + ] + } + ], + "source": [ + "#we have two less values, we delete also the last 2 voltages \n", + "voltage_new = voltage.copy() \n", + "current_new = current.copy() \n", + "voltage_new.pop()\n", + "voltage_new.pop()\n", + "current_new.pop()\n", + "current_new.pop()\n", + "for i in range(len(second_derivative)):\n", + " if second_derivative>100\n", + " \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a15d75eb-a1a7-4d51-a0ac-43151974a038", + "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.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/hp4155/measurements.py b/hp4155/measurements.py index fd7c47f26a95f9119c0352601c550baa9c95ba7e..bd28f618d0831d720d7bb733dddb4d5ab796e9d9 100644 --- a/hp4155/measurements.py +++ b/hp4155/measurements.py @@ -5,6 +5,7 @@ import matplotlib.pyplot as plt import pandas as pd from datetime import datetime import os +from sklearn.linear_model import LinearRegression def I_V_Measurement(start,stop,step): @@ -265,9 +266,7 @@ def ctlm(field_name ='M00',start=-50*10**(-3),stop=50*10**(-3),step=10**(-3),com answer = input('please press enter to continue with the next measurement or finish after the last measurement!') if answer == "": break - else: - quit() - + #close the connection and plot all the diagramms del device diff --git a/hp4155/working_examples/pandas.ipynb b/hp4155/working_examples/pandas.ipynb index faff4cfe1217caaa5b6f2339ea0548c703a57fe5..f81da8394c75018bb2562c7942a9fcac1dc0c832 100644 --- a/hp4155/working_examples/pandas.ipynb +++ b/hp4155/working_examples/pandas.ipynb @@ -2,22 +2,10 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "f3bb2a53-f571-4da3-b09f-4c8ee8c75a83", "metadata": {}, - "outputs": [ - { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'pandas'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m/tmp/ipykernel_6709/1825645653.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mpandas\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpyplot\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mdatetime\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mdatetime\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mnumpy\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0msklearn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlinear_model\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mLinearRegression\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'pandas'" - ] - } - ], + "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n",