# 单摆虚拟实验:模型依据、参数与验证 单摆虚拟实验采用从静止释放的理想无阻尼模型,研究摆长与初始摆角如何改变运动和周期,并通过多组计时拟合重力加速度。历史观测、模型情景和数值验证分别记录,使每个结果都能够追溯到输入、方程和计算方法。 ## 物理模型与原文定位 柴聪聪等给出的线性阻尼单摆方程为 $\ddot\theta+2\beta\dot\theta+(g/L)\sin\theta=0$。首版取 $\beta=0$,得到完整正弦回复力的运动方程。方程依据见该文 p.48 式 (1)、式 (2)。[柴聪聪等,2020](https://doi.org/10.19655/j.cnki.1005-4642.2020.03.010) $$ \ddot\theta+\frac{g}{L}\sin\theta=0, \qquad \theta(0)=\theta_0,\qquad \dot\theta(0)=0. $$ 假设为质点摆球、无质量且长度固定的摆线、固定悬点、均匀重力场、无阻尼及无驱动力。$L$ 表示悬点至质点的距离,角度进入计算时使用弧度。 从静止释放时,有限摆角周期为 $$ T=4\sqrt{\frac{L}{g}}K(k),\qquad k=\sin\frac{\theta_0}{2},\qquad K(k)=\int_0^{\pi/2}\frac{\mathrm d\varphi}{\sqrt{1-k^2\sin^2\varphi}}. $$ 该积分及小角度周期 $T_0=2\pi\sqrt{L/g}$ 见鞠衍清、张风雷 p.6 左栏首个未编号公式。其数值比较实际使用 $0.5^\circ$ 至 $90^\circ$、步长 $0.5^\circ$ 的 180 个摆角。[鞠衍清、张风雷,2007](https://doi.org/10.16854/j.cnki.1000-0712.2007.03.002) 小角度运动用于对照: $$ \theta_{\mathrm{lin}}(t)=\theta_0\cos\left(\sqrt{\frac gL}\,t\right). $$ 由周期关系可直接得到:若用有限摆角的真实模型周期 $T$ 代入小角度测量公式,所得估计满足 $$ \widehat g=\frac{4\pi^2L}{T^2},\qquad \frac{\widehat g-g}{g}=\left(\frac{T_0}{T}\right)^2-1. $$ 这一定量偏差由前述公式推导;它描述有限摆角近似的影响,其他测量误差需要分别分析。 ## 参数身份与适用范围 表 1 虚拟实验参数的来源与用途 |参数|设置或范围|身份与依据| |---|---|---| |有效摆长 $L$|默认 $1\,\mathrm m$;交互范围 $0.2\text{--}1.2\,\mathrm m$|默认值沿用已有计算情景;范围为教学探索设置,覆盖原记录有效摆长 $0.515\text{--}1.011\,\mathrm m$| |初始摆角 $\theta_0$|默认 $20^\circ$;交互范围 $1^\circ\text{--}60^\circ$|教学情景,沿用已有摆角探索;原观测表未记录每组实际释放角度| |初始角速度|$0\,\mathrm{rad/s}$|从静止释放的模型条件| |重力加速度 $g$|默认 $9.81\,\mathrm{m/s^2}$;情景范围 $1\text{--}20\,\mathrm{m/s^2}$|$9.81$ 为源报告比较值,地区标定状态见参数文件;控件范围用于研究 $T\propto g^{-1/2}$| |源数据拟合重力|$9.73521844233565\,\mathrm{m/s^2}$|由六组历史观测按含截距 OLS 重算;作为观测对照参数| |每条计时的振动次数 $N$|默认 20;模型计时支持 1–100|20 对应源观测的计数方法;其他次数为模型探索| |阻尼 $\beta$|$0\,\mathrm{s^{-1}}$|首版理想模型假设| 原参数及单位见 [experiment.json](../experiments/course-01/pendulum/experiment.json),计时与直径见 [measurements.csv](../experiments/course-01/pendulum/data/measurements.csv)、[diameters.csv](../experiments/course-01/pendulum/data/diameters.csv),源表定位和更正记录见 [provenance.json](../experiments/course-01/pendulum/data/provenance.json)。 理想摆的周期与质量无关。有限尺寸摆球、摆线伸长、悬点摩擦和空气阻力属于进一步建模的因素。上述控件范围规定平台展示情景,实际装置是否符合这些假设需要装置资料及观测检验。 对于从静止释放的柔性摆线,由径向受力与能量守恒可推得张力 $$ \frac{F_{\mathrm{tension}}}{m}=g\cos\theta+L\dot\theta^2 =g(3\cos\theta-2\cos\theta_0)\ge g\cos\theta_0. $$ 在本页面 $\theta_0\le60^\circ$ 的范围内,张力始终为正。该上限同时为数值与界面验收划定参数域;椭圆积分本身可描述更大振幅的理想约束摆,实际柔性摆线还需满足张紧条件。 ## 观测读数、模型计时与拟合 源记录共六组长度,每组有三次 20 次全振动的计时,另有六次摆球直径测量。每组周期由平均计时得到;有效摆长为悬点至球顶的长度加平均半径: $$ L=L_{\mathrm{string}}+\frac{\overline d}{2},\qquad T=\frac{\overline t}{20},\qquad T^2=aL+b,\qquad \widehat g=\frac{4\pi^2}{a}. $$ [网页观测数据](../simulations/pendulum/observations.json) 的 `raw` 保留原始读数及原字符串,`derived` 保存单位换算、组均值和拟合。独立使用 SciPy `linregress` 重算的重力结果与[已有 Python 结果](../experiments/course-01/pendulum/results/python.json)一致;其回归标准误约为 $0.0101020\,\mathrm{m/s^2}$,范围限于 OLS 残差传播。仪器误差限与逐组初始摆角的状态按源参数文件记录。 模型自动计时使用 $t_N=NT(L,g,\theta_0)$,其身份为理想模型输出。相同批次的多长度拟合保持 $g$ 与 $\theta_0$ 相同,使斜率的物理意义明确。历史观测与模型生成的计时分别分析。 含截距 OLS 的计算关系可对照王震委等 p.27 式 (4)、式 (7)、式 (8);其 p.28 第 2.4 节和 p.29 表 2 给出 `scipy.stats.linregress` 与独立软件的实例对照。[王震委等,2026](https://doi.org/10.3969/j.issn.2096-3149.2026.02.004) $$ a=\frac{\sum_i(L_i-\overline L)(T_i^2-\overline{T^2})}{\sum_i(L_i-\overline L)^2},\qquad b=\overline{T^2}-a\overline L, $$ $$ s_a=\sqrt{\frac{\sum_i[T_i^2-(aL_i+b)]^2}{(n-2)\sum_i(L_i-\overline L)^2}},\qquad s_g=\frac{4\pi^2}{a^2}s_a. $$ 这里的标准误是纵向 OLS 残差模型中的量,自变量按给定值处理,纵向误差采用独立、共同方差假设。实际摆长误差和其他系统分量需要另作预算。文献中的八组 30 周期数据是独立实例,项目继续使用自身六组 20 周期的规范输入。 ## 多周期计时与不确定度 重复观测均值的 A 类标准不确定度采用 $$ u_A(\overline x)=\sqrt{\frac{\sum_{i=1}^{m}(x_i-\overline x)^2}{m(m-1)}}. $$ 若计数 $N$ 个完整周期的总时间为 $t$,则 $T=t/N$、$u_T=u_t/N$。当摆长与周期的协方差可忽略时,对 $g=4\pi^2L/T^2$ 作一级传播得到 $$ \frac{u_g}{g}=\sqrt{\left(\frac{u_L}{L}\right)^2+\left(2\frac{u_T}{T}\right)^2}. $$ 上述计时、传播和均值关系可定位到钱钧等 p.79 式 (3)、式 (7)、式 (10)。$N$ 是每次计时的周期数,$m$ 是重复测量次数,两者分别记录。A 类与 B 类区分评定方式,完整预算需要重复观测及仪器等信息。[钱钧等,2009](https://doi.org/10.14139/j.cnki.cn22-1228.2009.03.013) 该文 p.80 第 3 节依据其仪器、人工计时假设与 0.2% 的目标推得 50 周期的方案,适合说明如何从目标不确定度设计计数。平台原记录的 20 周期保留原事实;更改模型计数用于观察累计计时关系。手动交互计时记录仿真时钟上的起止时刻,确定性自动计时输出由模型计算,二者各按对应测量方式解释。 ## 交互与计算说明的组织 王震委等 pp.28–30 展示了文字、公式、代码、拟合图和结果在 Notebook 中连续组织的实例,并讨论通过调参和图形观察安排学习任务。本平台据此组织“调节装置—记录计时—拟合参数—解释偏差”的操作顺序,同时保留可核查的输入和计算入口。[王震委等,2026](https://doi.org/10.3969/j.issn.2096-3149.2026.02.004) 这篇文献提供计算和教学设计参考。平台教学效果需要在实际使用中以明确任务、评价指标和学习数据评估。 ## 数值实现与验证 浏览器使用算术几何平均(AGM)计算椭圆积分,使用四阶 Runge–Kutta(RK4)推进运动。独立参考采用 SciPy 的 `ellipk` 和 DOP853。AGM 接收模数 $k$,SciPy 接收参数 $m=k^2$,两者在接口处显式转换。 单位质量机械能用于无阻尼守恒检查: $$ \mathcal E=\frac12L^2\dot\theta^2+gL(1-\cos\theta) =\frac12L^2\dot\theta^2+2gL\sin^2\frac\theta2. $$ 实际计算采用第二种形式,减小小摆角下的相减消去误差。验证方法由项目根据模型选择;文献提供方程和周期关系,验证结果来自实际运行。 表 2 模型依据与验证对应关系 |对象|依据或参考|验证方法|本轮范围| |---|---|---|---| |运动方程|柴聪聪等 p.48 式 (1)、式 (2),设 $\beta=0$|RK4 与 DOP853 轨迹比较|48 组参数,每组四个精确周期、65 个对照采样点| |有限摆角周期|鞠衍清、张风雷 p.6 未编号积分|AGM 与 SciPy 椭圆积分比较;ODE 首次向下过零时间乘四|$L=0.2,0.6,1.2\,\mathrm m$;$\theta_0=1^\circ,5^\circ,20^\circ,60^\circ$;$g=1,9.81,20\,\mathrm{m/s^2}$ 及源数据拟合值| |小角度偏差|$T_0$ 与精确周期的关系|计算周期相对增量及推得的重力偏差|与上述参数网格相同| |数值守恒|无阻尼方程的机械能积分|轨迹中最大能量相对漂移|默认步长 $1/240\,\mathrm s$,四周期| |数值收敛|RK4 的阶数|比较步长 $h=\min(0.02\,\mathrm s,T/80)$ 与 $h/2$ 的轨迹误差|上述 48 组参数| |源数据处理|规范 CSV、有效摆长及计时定义|SciPy 独立拟合与已有保存结果比较|18 条计时、6 条直径、6 组均值| |重复性与累计计时|钱钧等 p.79 式 (3)、式 (7)、式 (10)|核对均值标准误与 $T=t/N$ 的传播关系|使用源观测的重复性分量;仪器预算沿实际输入状态| |含截距拟合|王震委等 p.27 式 (4)、式 (7)–(11)|中心化 OLS 与 SciPy `linregress` 比较|源观测与模型数据分别计算| 本轮最大周期相对差为 $2.22\times10^{-16}$,最大摆角差为 $3.85\times10^{-7}\,\mathrm{rad}$,最大角速度差为 $3.54\times10^{-6}\,\mathrm{rad/s}$。四周期内浏览器轨迹最大能量相对漂移为 $4.38\times10^{-8}$;步长减半的误差比最低为 14.57,与四阶收敛预期相符。 完整参数、采样值、容差、环境版本及输入和代码哈希见 [pendulum-reference.json](simulation/pendulum-reference.json)。上述实测验证结果对应所列参数网格与时长;新增模型、控件边界或更长运行时间应补充对应测试。 复现命令: ```powershell python scripts/validate_pendulum_simulation.py node --test tests/pendulum-model.test.mjs ``` ## 阻尼扩展的模型要求 柴聪聪等 p.48–49 讨论线性弱阻尼,并区分累计时间 $T'(n)$ 与平均周期 $T'(n)/n$。振幅逐渐衰减时,相邻同相位事件间隔随过程变化;单一常数周期不足以概括整个过程。[柴聪聪等,2020](https://doi.org/10.19655/j.cnki.1005-4642.2020.03.010) 阻尼扩展应设置有身份说明的 $\beta$,积分完整方程,以同向过零事件计算相邻周期与累计平均周期;验证能量耗散、无阻尼极限、小角度阻尼解析解和步长收敛。将其用于实际装置修正时,需要由衰减观测确定阻尼系数,并检验线性阻力假设。 ## 原文数值核对记录 文献核读同时核对公式、定义和印出的数值。鞠衍清、张风雷 p.7 的部分参考周期比与同一椭圆积分的独立计算有约 $10^{-6}\text{--}10^{-5}$ 的差异,因此验证夹具从积分重新生成。柴聪聪等的式 (5) 与下一行指数符号不一致,式 (9) 的印式与表 1 数值也存在差异;首版采用其明确的运动方程式 (1)、式 (2),以独立数值积分和椭圆积分互相检验。 钱钧等原文中均匀分布除数及末尾相对不确定度的印值经算术核对后,采用与定义相符的公式;王震委等 p.27 式 (4) 前的周期平方关系补全摆长因子。四篇文献按所引公式、条件和具体用途使用。机器可读题录、原文哈希和引用定位见 [pendulum-references.json](pendulum-references.json),文献管理软件可导入 [BibTeX](pendulum-references.bib)。 ## 参考文献 1. 鞠衍清,张风雷.基于 MATLAB 的单摆周期近似解的比较[J].大学物理,2007,26(3):6–9.[DOI: 10.16854/j.cnki.1000-0712.2007.03.002](https://doi.org/10.16854/j.cnki.1000-0712.2007.03.002)。模型定位:p.6 首个未编号积分;比较方法:pp.6–7;结果:p.8 表 1。 2. 柴聪聪,凤飞龙,王公正,卫芬芬.大摆角单摆“周期”变化的解析解及其实验应用[J].物理实验,2020,40(3):48–50.[DOI: 10.19655/j.cnki.1005-4642.2020.03.010](https://doi.org/10.19655/j.cnki.1005-4642.2020.03.010)。运动方程:p.48 式 (1)、式 (2);累计时间:pp.48–49 式 (6)、式 (7);计时讨论:p.50。 3. 钱钧,张春玲,王槿.不确定度理论在单摆实验教学中的应用[J].大学物理实验,2009,22(3):78–81.[DOI: 10.14139/j.cnki.cn22-1228.2009.03.013](https://doi.org/10.14139/j.cnki.cn22-1228.2009.03.013)。传播、累计计时及重复均值:p.79 式 (3)、式 (7)、式 (10);方案设计:p.80 第 3 节。 4. 王震委,张磊,王美雅.Jupyter Notebook 在单摆测重力加速度实验中的应用[J].湖北师范大学学报(自然科学版),2026,46(2):25–30.[DOI: 10.3969/j.issn.2096-3149.2026.02.004](https://doi.org/10.3969/j.issn.2096-3149.2026.02.004)。OLS:p.27 第 2.2 节;计算实例:pp.28–29 第 2.4 节、图 3、表 2;任务组织:pp.29–30 第 3 节。