Files
get3-v5/hehe.ipynb
T
Matthias Biermann 369cdd249a initial commit
2023-09-27 12:39:19 +02:00

190 lines
5.7 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import matplotlib as mpl\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"\n",
"\n",
"def read_oscilloscope_file(file_name, time_div=200):\n",
" with open(file_name, 'r') as file:\n",
" lines = []\n",
" for line in file:\n",
" lines.append(line.strip())\n",
" print(file.name)\n",
"\n",
" data = pd.DataFrame()\n",
" \n",
" data[\"time\"] = np.linspace(0, 12*time_div, 1200)\n",
" data[\"CH1\"] = np.float_(lines[5:1205])\n",
" data[\"CH2\"] = np.float_(lines[1212:2412])\n",
"\n",
" return data\n",
"\n",
"\n",
"def plot_kurven(data: pd.DataFrame, title=\"\", xStart=0, xStop=0, xStep=200, xStepMinor=100, vlines=[]):\n",
" fig, ax = plt.subplots(figsize=(10, 4))\n",
"\n",
" # time offset\n",
" if xStop > xStart:\n",
" data[\"time\"] -= xStart\n",
"\n",
" ax.plot(\"time\", \"CH1\", data=data, label=\"Anfang\", ls=\"-\", marker='.')\n",
" ax.plot(\"time\", \"CH2\", data=data, label=\"Ende\", ls=\"-\", marker='.')\n",
"\n",
"\n",
" # Beschriftungen setzen\n",
" ax.set_xlabel(\"Zeit t [ns]\")\n",
" ax.set_ylabel(\"Spannung U [V]\")\n",
" if title != \"\": ax.set_title(title, fontsize=16, pad=10)\n",
"\n",
" \n",
" # ax.set_xticks(np.arange(data[\"time\"].iloc[0], data[\"time\"].iloc[-1], xStepMinor), minor=True)\n",
" ax.set_xticks(np.arange(data[\"time\"].iloc[0], data[\"time\"].iloc[-1], xStep))\n",
"\n",
" if xStop > xStart:\n",
" ax.set_xlim(left=0, right=xStop-xStart)\n",
" else:\n",
" ax.set_xlim(left=data[\"time\"].iloc[0], right=data[\"time\"].iloc[-1])\n",
"\n",
" if xStepMinor != 0:\n",
" ax.grid(which=\"major\", ls=\"-\", linewidth=0.5)\n",
" # ax.grid(which=\"minor\", ls=\"-\", linewidth=0.1)\n",
" else: \n",
" ax.grid(which=\"major\")\n",
"\n",
" ax.legend()\n",
" # plt.vlines(x=25, ymin=ax.get_ylim()[0], ymax=ax.get_ylim()[1], linestyles=\":\", label=\"t1\")\n",
" # plt.show()\n",
"\n",
" return fig"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib widget"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"lel = read_oscilloscope_file(\"Messungen/Rohdaten/Messung 2.1/Reflexion bei Kurzschluss.txt\", time_div=200)\n",
"# plot_kurven(lel)\n",
"plot_kurven(lel, 1000, 1400)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Alles plotten und als Bilder abspeichern\n",
"current_directory = os.getcwd()\n",
"\n",
"# iterate over all files in the directory \"Messungen/Rohdaten/\"\n",
"for root, dirs, files in os.walk(os.path.join(current_directory, \"Messungen/Rohdaten/\")):\n",
" for file in files:\n",
" if file.endswith(\".txt\"):\n",
" file_path = os.path.join(root, file)\n",
" messung = read_oscilloscope_file(file_path, 200)\n",
" plot_kurven(messung, title=file[0:-4])\n",
" plot_kurven(messung, title=file[0:-4], start=1000, stop=1500)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Diagramme für 3.2 Kurzschluss\n",
"kurzschluss = read_oscilloscope_file(\"Messungen/Rohdaten/Messung 2.1/Reflexion bei Kurzschluss.txt\")\n",
"# kurzschluss.set_index(\"time\", inplace=True)\n",
"\n",
"kurzschluss_fig = plot_kurven(kurzschluss, start=1060, stop=1232, title=\"Reflexion bei Kurzschluss\", xStep=10, xStepMinor=5)\n",
"kurzschluss_fig.savefig(\"Reflexion_bei_Kurzschluss\", dpi=250)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Leerlauf\n",
"leerlauf = read_oscilloscope_file(\"Messungen/Rohdaten/Messung 2.1/Reflexion im Leerlauf.txt\")\n",
"\n",
"leerlauf_fig = plot_kurven(leerlauf, title=\"Relfexion bei Leerlauf\", start=1120, stop=1370, xStep=20)\n",
"leerlauf_fig.savefig(\"Reflexion_bei_Leerlauf\", dpi=250)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Endwiderstand\n",
"endwiderstand = read_oscilloscope_file(\"Messungen/Rohdaten/Messung 2.1/Reflexion mit Endwiderstand.txt\")\n",
"\n",
"endwiderstand_fig = plot_kurven(endwiderstand, title=\"Relfexion mit Endwiderstand\", start=1120, stop=1340, xStep=20)\n",
"endwiderstand_fig.savefig(\"Reflexion_mit_Endwiderstand\", dpi=250)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"kurzschluss.set_index(\"time\", inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"kurzschluss[0:150].to_csv(\"text\")\n"
]
}
],
"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.11.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}