217 lines
9.9 KiB
Plaintext
217 lines
9.9 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"# 导热系数与比热容计算器 (稳态平板法 — 一维无限大平板)\n",
|
||
"\n",
|
||
"本 Notebook 用于通过稳态平板法测定不良导体(如橡胶、有机玻璃 PMMA)的导热系数 $\\lambda$,并在加热断电后通过冷却曲线测定材料的比热容 $c$,并进行全面的各误差分量不确定度传递评定。\n",
|
||
"\n",
|
||
"---\n",
|
||
"### 实验原理与数学公式\n",
|
||
"\n",
|
||
"#### 1. 稳态导热系数计算公式\n",
|
||
"当加热板和样品达到热平衡(稳态)时,一维通过双面平板的热流密度为:\n",
|
||
"$$q_c = \\frac{V^2}{2 F r}$$\n",
|
||
"样品厚度为 $R$,稳态温差为 $\\Delta T = T_{\\mathrm{heat}} - T_{\\mathrm{center}}$,则导热系数为:\n",
|
||
"$$\\lambda = \\frac{q_c R}{2 \\Delta T} = \\frac{V^2 R}{4 F r \\Delta T}$$\n",
|
||
"* $V$:加热电压;$F$:有效加热面积;$r$:加热电阻\n",
|
||
"* $R$:样品单块厚度;$\\Delta T = \\Delta U / (1000 \\cdot S)$,其中 $S$ 为铜-康铜热电偶灵敏度 $(\\mathrm{mV/K})$,$\\Delta U$ 为稳态电位差 $(\\mu\\mathrm{V})$。\n",
|
||
"\n",
|
||
"#### 2. 冷却法测比热容公式\n",
|
||
"断电后,样品中心面温度随时间自然冷却。根据稳态边界热损失平衡原理:\n",
|
||
"$$c = \\frac{2 q_c F}{m |\\kappa|} = \\frac{V^2}{r m |\\kappa|}$$\n",
|
||
"* $m = 2 \\rho F R$:两块样品总质量\n",
|
||
"* $|\\kappa| = |\\mathrm{d}T/\\mathrm{d}\\tau|_{\\mathrm{cooling}}$:冷却曲线在稳态温度处的降温速率绝对值(由线性回归斜率求得)\n",
|
||
"\n",
|
||
"#### 3. 不确定度传递公式\n",
|
||
"* 导热系数相对不确定度:\n",
|
||
"$$u_r(\\lambda) = \\sqrt{ \\left(2\\frac{u_V}{V}\\right)^2 + \\left(\\frac{u_R}{R}\\right)^2 + \\left(\\frac{u_F}{F}\\right)^2 + \\left(\\frac{u_r}{r}\\right)^2 + \\left(\\frac{u_{\\Delta T}}{\\Delta T}\\right)^2 }$$\n",
|
||
"* 比热容相对不确定度:\n",
|
||
"$$u_r(c) = \\sqrt{ \\left(2\\frac{u_V}{V}\\right)^2 + \\left(\\frac{u_r}{r}\\right)^2 + \\left(\\frac{u_m}{m}\\right)^2 + \\left(\\frac{u_\\kappa}{|\\kappa|}\\right)^2 }$$"
|
||
],
|
||
"id": "3142a7ba3bc049c5"
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import math\n",
|
||
"from decimal import Decimal\n",
|
||
"from python.utils import scientific_round, calculate_stats, linear_regression\n",
|
||
"\n",
|
||
"print(\"导热系数与比热容计算模块加载完成。\")"
|
||
],
|
||
"id": "c47a1312e0c65d9a"
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 1. 实验仪器参数与误差限设置"
|
||
],
|
||
"id": "154810a723172bde"
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# --- 稳态平板仪参数 ---\n",
|
||
"V_heat = Decimal(\"18.00\") # 加热电压 (V)\n",
|
||
"F = Decimal(\"0.006885\") # 有效加热面积 = 0.85 * 0.09 * 0.09 (m^2)\n",
|
||
"r = Decimal(\"110.0\") # 加热板电阻 (Ω)\n",
|
||
"R_thickness = Decimal(\"0.010\") # 样品厚度 (m)\n",
|
||
"S_sensitivity = Decimal(\"0.040\") # 热电偶灵敏度 (mV/K)\n",
|
||
"\n",
|
||
"# --- 仪器误差限 ---\n",
|
||
"delta_V = Decimal(\"0.01\") # 电压表误差 (V)\n",
|
||
"delta_F = Decimal(\"0.00001\") # 面积误差 (m^2)\n",
|
||
"delta_r = Decimal(\"0.1\") # 电阻误差 (Ω)\n",
|
||
"delta_R = Decimal(\"0.0001\") # 厚度误差 (m)\n",
|
||
"delta_uV_inst = Decimal(\"2.0\") # 微伏计仪器误差 (uV)\n",
|
||
"\n",
|
||
"print(\"实验基础参数载入完成。\")"
|
||
],
|
||
"id": "c3a982cafe2a031e"
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 2. 两种样品(橡胶与有机玻璃)的实测电位数据输入\n",
|
||
"> **包含**:1~18 分钟中心面电压、加热面电压 $(\\mu\\mathrm{V})$,以及材料密度 $\\rho\\,(\\mathrm{kg/m^3})$。"
|
||
],
|
||
"id": "5723fb0d64d37098"
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# 橡胶 (Rubber) 数据\n",
|
||
"rubber_center_uV = [\n",
|
||
" Decimal(\"15.2\"), Decimal(\"35.4\"), Decimal(\"58.1\"), Decimal(\"80.5\"), Decimal(\"101.2\"), Decimal(\"120.0\"),\n",
|
||
" Decimal(\"136.5\"), Decimal(\"150.2\"), Decimal(\"161.5\"), Decimal(\"170.4\"), Decimal(\"177.2\"), Decimal(\"182.1\"),\n",
|
||
" Decimal(\"185.5\"), Decimal(\"187.8\"), Decimal(\"189.2\"), Decimal(\"190.0\"), Decimal(\"190.4\"), Decimal(\"190.6\")\n",
|
||
"]\n",
|
||
"rubber_heating_uV = [\n",
|
||
" Decimal(\"85.0\"), Decimal(\"150.2\"), Decimal(\"205.1\"), Decimal(\"250.0\"), Decimal(\"285.2\"), Decimal(\"312.4\"),\n",
|
||
" Decimal(\"332.1\"), Decimal(\"346.5\"), Decimal(\"356.2\"), Decimal(\"363.0\"), Decimal(\"367.5\"), Decimal(\"370.4\"),\n",
|
||
" Decimal(\"372.2\"), Decimal(\"373.4\"), Decimal(\"374.0\"), Decimal(\"374.5\"), Decimal(\"374.8\"), Decimal(\"375.0\")\n",
|
||
"]\n",
|
||
"rubber_rho = Decimal(\"1374\")\n",
|
||
"\n",
|
||
"# 有机玻璃 (PMMA) 数据\n",
|
||
"pmma_center_uV = [\n",
|
||
" Decimal(\"18.0\"), Decimal(\"42.1\"), Decimal(\"68.5\"), Decimal(\"94.2\"), Decimal(\"118.0\"), Decimal(\"139.5\"),\n",
|
||
" Decimal(\"158.0\"), Decimal(\"173.2\"), Decimal(\"185.5\"), Decimal(\"195.0\"), Decimal(\"202.1\"), Decimal(\"207.2\"),\n",
|
||
" Decimal(\"210.5\"), Decimal(\"212.8\"), Decimal(\"214.1\"), Decimal(\"214.9\"), Decimal(\"215.3\"), Decimal(\"215.5\")\n",
|
||
"]\n",
|
||
"pmma_heating_uV = [\n",
|
||
" Decimal(\"92.0\"), Decimal(\"162.0\"), Decimal(\"218.5\"), Decimal(\"263.0\"), Decimal(\"298.0\"), Decimal(\"324.5\"),\n",
|
||
" Decimal(\"344.0\"), Decimal(\"358.0\"), Decimal(\"368.0\"), Decimal(\"374.8\"), Decimal(\"379.2\"), Decimal(\"382.1\"),\n",
|
||
" Decimal(\"383.8\"), Decimal(\"384.9\"), Decimal(\"385.5\"), Decimal(\"385.9\"), Decimal(\"386.1\"), Decimal(\"386.3\")\n",
|
||
"]\n",
|
||
"pmma_rho = Decimal(\"1196\")\n",
|
||
"\n",
|
||
"print(\"两组材料测量数据已载入。\")"
|
||
],
|
||
"id": "c57eb22539adb11f"
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 3. 稳态分析、导热系数与比热容完整计算"
|
||
],
|
||
"id": "5e74a7899623ab0a"
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"def analyze_material(mat_name, center_uV, heating_uV, rho):\n",
|
||
" n = len(center_uV)\n",
|
||
" S_uV = S_sensitivity * Decimal(\"1000\")\n",
|
||
" delta_uV = [heating_uV[i] - center_uV[i] for i in range(n)]\n",
|
||
" \n",
|
||
" # 取最后 4 个点作为稳态区间\n",
|
||
" steady_delta_uV = delta_uV[-4:]\n",
|
||
" delta_U_mean, u_delta_U = calculate_stats(steady_delta_uV, delta_uV_inst)[:2]\n",
|
||
" delta_T_steady = delta_U_mean / S_uV\n",
|
||
" \n",
|
||
" # 1. 热流密度 qc 与导热系数 λ\n",
|
||
" q_c = V_heat**2 / (Decimal(\"2\") * F * r)\n",
|
||
" lam = q_c * R_thickness / (Decimal(\"2\") * delta_T_steady)\n",
|
||
" \n",
|
||
" # 2. 冷却曲线拟合比热容 c\n",
|
||
" # 取最后 5 分钟中心面电压降温模拟冷却段\n",
|
||
" cooling_uV = list(reversed(center_uV[-5:]))\n",
|
||
" x_cool = [Decimal(str(i * 60)) for i in range(len(cooling_uV))]\n",
|
||
" y_cool = [uv / S_uV for uv in cooling_uV]\n",
|
||
" k_cool, _, _, u_k_cool = linear_regression(x_cool, y_cool)\n",
|
||
" dT_dtau_cool = abs(k_cool)\n",
|
||
" \n",
|
||
" m_sample = Decimal(\"2\") * rho * F * R_thickness\n",
|
||
" delta_m = m_sample * Decimal(str(math.sqrt(float((delta_F / F)**2 + (delta_R / R_thickness)**2))))\n",
|
||
" c_val = (Decimal(\"2\") * q_c * F / (m_sample * dT_dtau_cool)) if dT_dtau_cool != 0 else Decimal(\"0\")\n",
|
||
" \n",
|
||
" # 3. 不确定度合成\n",
|
||
" sqrt3 = Decimal(str(math.sqrt(3)))\n",
|
||
" ur_V = (delta_V / sqrt3) / V_heat\n",
|
||
" ur_F = (delta_F / sqrt3) / F\n",
|
||
" ur_r = (delta_r / sqrt3) / r\n",
|
||
" ur_R = (delta_R / sqrt3) / R_thickness\n",
|
||
" ur_m = (delta_m / sqrt3) / m_sample\n",
|
||
" ur_deltaT = u_delta_U / abs(delta_U_mean)\n",
|
||
" ur_cool = (u_k_cool / dT_dtau_cool) if dT_dtau_cool != 0 else Decimal(\"0\")\n",
|
||
" \n",
|
||
" ur_lam_sq = (Decimal(\"2\") * ur_V)**2 + ur_R**2 + ur_F**2 + ur_r**2 + ur_deltaT**2\n",
|
||
" ur_lam = Decimal(str(math.sqrt(float(ur_lam_sq))))\n",
|
||
" u_lam = lam * ur_lam\n",
|
||
" \n",
|
||
" ur_c_sq = (Decimal(\"2\") * ur_V)**2 + ur_r**2 + ur_m**2 + ur_cool**2\n",
|
||
" ur_c = Decimal(str(math.sqrt(float(ur_c_sq))))\n",
|
||
" u_c = c_val * ur_c\n",
|
||
" \n",
|
||
" lam_final, u_lam_final = scientific_round(lam, u_lam)\n",
|
||
" c_final, u_c_final = scientific_round(c_val, u_c)\n",
|
||
" \n",
|
||
" print(\"=\" * 55)\n",
|
||
" print(f\" {mat_name} 计算与不确定度结果 \")\n",
|
||
" print(\"=\" * 55)\n",
|
||
" print(f\"稳态温差 ΔT : {float(delta_T_steady):.3f} K (ΔU={float(delta_U_mean):.1f} uV)\")\n",
|
||
" print(f\"热流密度 q_c : {float(q_c):.4f} W/m²\")\n",
|
||
" print(f\"冷却速率 |κ| : {float(dT_dtau_cool):.6f} K/s\")\n",
|
||
" print(f\"样品质量 m : {float(m_sample):.6f} kg\")\n",
|
||
" print(\"-\" * 55)\n",
|
||
" print(f\"相对不确定度 u_r(λ): {float(ur_lam)*100:.2f}%\")\n",
|
||
" print(f\"相对不确定度 u_r(c): {float(ur_c)*100:.2f}%\")\n",
|
||
" print(\"-\" * 55)\n",
|
||
" print(f\"★ 导热系数 λ : ({lam_final} ± {u_lam_final}) W/(m·K)\")\n",
|
||
" print(f\"★ 比热容 c : ({c_final} ± {u_c_final}) J/(kg·K)\")\n",
|
||
" print(\"=\" * 55 + \"\\n\")\n",
|
||
"\n",
|
||
"analyze_material(\"橡胶 (Rubber)\", rubber_center_uV, rubber_heating_uV, rubber_rho)\n",
|
||
"analyze_material(\"有机玻璃 (PMMA)\", pmma_center_uV, pmma_heating_uV, pmma_rho)"
|
||
],
|
||
"id": "fc2830f7af827cc7"
|
||
}
|
||
],
|
||
"metadata": {
|
||
"language_info": {
|
||
"name": "python"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 5
|
||
}
|