{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "9c25e271", "metadata": {}, "outputs": [], "source": [ "import importlib\n", "from statlib import *\n", "\n", "g = 9.806\n", "ug = 0.004" ] }, { "cell_type": "markdown", "id": "233e717f", "metadata": {}, "source": [ "# Calcolo w0" ] }, { "cell_type": "code", "execution_count": 2, "id": "e1efad4a", "metadata": {}, "outputs": [], "source": [ "# k e m varie configurazioni\n", "\n", "# k [N/m]\n", "k1 = 23.631\n", "uk1 = 0.017\n", "\n", "k2 = 3.2053\n", "uk2 = 0.0013\n", "\n", "# m [g]\n", "m_CD = [63.13, 83.04, 103.02, 122.83, 142.77, 162.44, 182.33]\n", "m_rete = [58.96, 78.86, 98.85, 118.66, 138.61, 158.26, 178.16]" ] }, { "cell_type": "code", "execution_count": 3, "id": "81d935ac", "metadata": {}, "outputs": [], "source": [ "# Creazione Data\n", "\n", "df = pd.DataFrame()\n", "df[\"m_CD\"] = m_CD\n", "df[\"um_CD\"] = 0.01/np.sqrt(12)\n", "df[\"m_rete\"] = m_rete\n", "df[\"um_rete\"] = 0.01/np.sqrt(12)\n", "df[\"k1\"] = k1\n", "df[\"uk1\"] = uk1\n", "df[\"k2\"] = k2\n", "df[\"uk2\"] = uk2\n", "\n", "param_sistema = Data(df)\n", "param_sistema.analisi_stat = df" ] }, { "cell_type": "code", "execution_count": 6, "id": "7b2c2af7", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "a5b577c48b9e41549f4804af6032b481", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Sheet(cells=(Cell(column_end=0, column_start=0, row_end=6, row_start=0, squeeze_row=False, type='numeric', val…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Calcolo w0 varie cnfigurazioni\n", "\n", "m_CD, m_rete, k1, k2 = sp.symbols('m_CD, m_rete, k1, k2', positive=True)\n", "\n", "w0_1_CD = sp.sqrt(k1/(m_CD/1000))\n", "w0_1_rete = sp.sqrt(k1/(m_rete/1000))\n", "w0_2_CD = sp.sqrt(k2/(m_CD/1000))\n", "w0_2_rete = sp.sqrt(k2/(m_rete/1000))\n", "\n", "param_sistema = param_sistema.calc_var(w0_1_CD, \"w0_1_CD\")\n", "param_sistema = param_sistema.calc_var(w0_1_rete, \"w0_1_rete\")\n", "param_sistema = param_sistema.calc_var(w0_2_CD, \"w0_2_CD\")\n", "param_sistema = param_sistema.calc_var(w0_2_rete, \"w0_2_rete\")\n", "\n", "sheet = ipysheet.from_dataframe(param_sistema.analisi_stat)\n", "display(sheet)" ] }, { "cell_type": "markdown", "id": "ecf23a81", "metadata": {}, "source": [ "# Creazione classi dati\n", "\n", "Selezione picchi delle oscillazioni" ] }, { "cell_type": "code", "execution_count": 7, "id": "c040f35e", "metadata": {}, "outputs": [], "source": [ "# config = [molla1_leggera_rete_inizio, molla1_leggera_rete_fine, molla1_leggera_rete_mid,\n", "# molla1_pesante_rete_inizio, molla1_pesante_rete_fine, molla1_pesante_rete_mid,\n", "# molla1_leggera_CD_inizio, molla1_leggera_CD_fine, molla1_leggera_CD_mid,\n", "# molla1_pesante_CD_inizio, molla1_pesante_CD_fine, molla1_pesante_CD_mid,\n", "# molla2_leggera_rete_inizio, molla2_leggera_rete_fine, molla2_leggera_rete_mid,\n", "# molla2_pesante_rete_inizio, molla2_pesante_rete_fine, molla2_pesante_rete_mid,\n", "# molla2_leggera_CD_inizio, molla2_leggera_CD_fine, molla2_leggera_CD_mid,\n", "# molla2_pesante_CD_inizio, molla2_pesante_CD_fine, molla2_pesante_CD_mid]" ] }, { "cell_type": "code", "execution_count": 8, "id": "c9611e53", "metadata": {}, "outputs": [], "source": [ "h = [0.51415, 0.4983, 0.485, 0.4735]\n", "df = pd.DataFrame()\n", "df[\"h\"] = h\n", "molla2_leggera_rete_inizio = Data(df)\n", "molla2_leggera_rete_inizio.analisi_stat = df\n", "\n", "h = [0.5121, 0.498, 0.4856, 0.47389]\n", "df = pd.DataFrame()\n", "df[\"h\"] = h\n", "molla2_leggera_CD_inizio = Data(df)\n", "molla2_leggera_CD_inizio.analisi_stat = df" ] }, { "cell_type": "code", "execution_count": 9, "id": "3014c983", "metadata": {}, "outputs": [], "source": [ "config = [molla2_leggera_rete_inizio,\n", " molla2_leggera_CD_inizio]" ] }, { "cell_type": "markdown", "id": "28734bca", "metadata": {}, "source": [ "# Calcolo A" ] }, { "cell_type": "code", "execution_count": 13, "id": "00b5d09c", "metadata": {}, "outputs": [], "source": [ "molla2_leggera_CD_inizio.analisi_stat[\"h1\"] = molla2_leggera_CD_inizio.analisi_stat[\"h\"][1]\n", "molla2_leggera_CD_inizio.analisi_stat[\"h2\"] = molla2_leggera_CD_inizio.analisi_stat[\"h\"][2]\n", "\n", "molla2_leggera_rete_inizio.analisi_stat[\"h1\"] = molla2_leggera_rete_inizio.analisi_stat[\"h\"][1]\n", "molla2_leggera_rete_inizio.analisi_stat[\"h2\"] = molla2_leggera_rete_inizio.analisi_stat[\"h\"][2]" ] }, { "cell_type": "code", "execution_count": null, "id": "2e3e28c0", "metadata": {}, "outputs": [], "source": [ "# Calcolo numerico x e y\n", "\n", "for data in config:\n", " data.analisi_stat[\"h1\"] = data.analisi_stat[\"h\"][1]\n", " data.analisi_stat[\"h2\"] = data.analisi_stat[\"h\"][2]\n", " data.analisi_stat[\"uh1\"] = 0.001\n", " data.analisi_stat[\"uh2\"] = 0.001\n", " data.analisi_stat[\"uh\"] = 0.001\n", " data.analisi_stat[\"n\"] = [1, 2, 3, 4]\n", " data.analisi_stat[\"un\"] = 0.000000001" ] }, { "cell_type": "code", "execution_count": null, "id": "857214ff", "metadata": {}, "outputs": [], "source": [ "h, h1, h2 = sp.symbols('h h1 h2')\n", "h0 = (h*h2-h1**2) / (2*h1 + h + h2)" ] }, { "cell_type": "code", "execution_count": 22, "id": "4c030372", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b83544b403c04d0493ef734f9dc039ab", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Sheet(cells=(Cell(column_end=0, column_start=0, row_start=0, squeeze_row=False, type='numeric', value=[0.51415…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "ab432f011593444aa2d42ae9fe4f3601", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Sheet(cells=(Cell(column_end=0, column_start=0, row_start=0, squeeze_row=False, type='numeric', value=[0.5121,…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Calcolo numerico x e y\n", "\n", "for data in config:\n", " data = data.calc_var(h0, \"h0\")\n", " sheet = ipysheet.from_dataframe(data.analisi_stat)\n", " display(sheet)" ] }, { "cell_type": "markdown", "id": "3b522bfe", "metadata": {}, "source": [ "# Rgressione lineare" ] }, { "cell_type": "markdown", "id": "30f903b5", "metadata": {}, "source": [ "## Attrito proporzionale a v" ] }, { "cell_type": "code", "execution_count": null, "id": "64e483e1", "metadata": {}, "outputs": [], "source": [ "# Calcolo simbolico x e y\n", "\n", "# x = n-1\n", "n = sp.Symbol('n', positive=True)\n", "x = n-1\n", "\n", "# y = ln(h1/hn)\n", "h1, hn = sp.symbols('h1 hn', positive=True)\n", "y = sp.ln(h1/hn)" ] }, { "cell_type": "code", "execution_count": null, "id": "b0df03fc", "metadata": {}, "outputs": [], "source": [ "# Calcolo numerico x e y\n", "\n", "for data in config:\n", " data = data.calc_var(x, \"x\")\n", " data = data.calc_var(y, \"y\")" ] }, { "cell_type": "code", "execution_count": null, "id": "497ed583", "metadata": {}, "outputs": [], "source": [ "# Regressione\n", "\n", "for data in config:\n", " data = data.reg_lin(stampa_param=True, plot_regressione=True, calc_residui=True,\n", " x_label=\"\", y_label=\"\", r_label=\"\",\n", " titolo_reg=\"\", titolo_residui=\"\",\n", " cd_A=4, cd_B=4, scala_barre=1)" ] }, { "cell_type": "markdown", "id": "453d5b53", "metadata": {}, "source": [ "## Attrito proporzionale a v^2" ] }, { "cell_type": "code", "execution_count": null, "id": "cdb8d336", "metadata": {}, "outputs": [], "source": [ "# Calcolo simbolico x e y\n", "\n", "# x = n-1\n", "n = sp.Symbol('n', positive=True)\n", "x = n-1\n", "\n", "# y = 1/hn - 1/h1\n", "h1, hn = sp.symbols('h1 hn', positive=True)\n", "y = 1/hn - 1/h1" ] }, { "cell_type": "code", "execution_count": null, "id": "84ad3d64", "metadata": {}, "outputs": [], "source": [ "# Calcolo numerico x e y\n", "\n", "for data in config:\n", " data = data.calc_var(x, \"x\")\n", " data = data.calc_var(y, \"y\")" ] }, { "cell_type": "code", "execution_count": null, "id": "8fee50b3", "metadata": {}, "outputs": [], "source": [ "# Regressione\n", "\n", "for data in config:\n", " data = data.reg_lin(stampa_param=True, plot_regressione=True, calc_residui=True,\n", " x_label=\"\", y_label=\"\", r_label=\"\",\n", " titolo_reg=\"\", titolo_residui=\"\",\n", " cd_A=4, cd_B=4, scala_barre=1)" ] }, { "cell_type": "markdown", "id": "dc3ce36f", "metadata": {}, "source": [ "# Stima errore campionamento" ] }, { "cell_type": "code", "execution_count": null, "id": "513736c3", "metadata": {}, "outputs": [], "source": [ "A_max =\n", "w0_max =\n", "fc = 50 # [Hz]\n", "\n", "err_picco_max = A_max * (1 - np.cos(w0_max / (2*fc)))\n", "print(f\"errore massimo individuazione picco > {err_picco_max}\")" ] } ], "metadata": { "kernelspec": { "display_name": "base", "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.13.11" } }, "nbformat": 4, "nbformat_minor": 5 }