429 lines
11 KiB
Plaintext
429 lines
11 KiB
Plaintext
{
|
|
"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
|
|
}
|