更新文件,加入清朝音频生成器
8
bun.lock
@ -4,9 +4,11 @@
|
|||||||
"": {
|
"": {
|
||||||
"name": "home-page",
|
"name": "home-page",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@breezystack/lamejs": "^1.2.7",
|
||||||
"gray-matter": "^4.0.3",
|
"gray-matter": "^4.0.3",
|
||||||
"gsap": "^3.12.7",
|
"gsap": "^3.12.7",
|
||||||
"highlight.js": "^11.11.1",
|
"highlight.js": "^11.11.1",
|
||||||
|
"lamejs": "^1.2.1",
|
||||||
"localforage": "^1.10.0",
|
"localforage": "^1.10.0",
|
||||||
"markdown-it": "^14.1.0",
|
"markdown-it": "^14.1.0",
|
||||||
"markdown-it-katex": "^2.0.3",
|
"markdown-it-katex": "^2.0.3",
|
||||||
@ -95,6 +97,8 @@
|
|||||||
|
|
||||||
"@babel/types": ["@babel/types@7.27.0", "", { "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" } }, "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg=="],
|
"@babel/types": ["@babel/types@7.27.0", "", { "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" } }, "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg=="],
|
||||||
|
|
||||||
|
"@breezystack/lamejs": ["@breezystack/lamejs@1.2.7", "", {}, "sha512-6wc7ck65ctA75Hq7FYHTtTvGnYs6msgdxiSUICQ+A01nVOWg6rqouZB8IdyteRlfpYYiFovkf67dIeOgWIUzTA=="],
|
||||||
|
|
||||||
"@bufbuild/protobuf": ["@bufbuild/protobuf@2.2.5", "", {}, "sha512-/g5EzJifw5GF8aren8wZ/G5oMuPoGeS6MQD3ca8ddcvdXR5UELUfdTZITCGNhNXynY/AYl3Z4plmxdj/tRl/hQ=="],
|
"@bufbuild/protobuf": ["@bufbuild/protobuf@2.2.5", "", {}, "sha512-/g5EzJifw5GF8aren8wZ/G5oMuPoGeS6MQD3ca8ddcvdXR5UELUfdTZITCGNhNXynY/AYl3Z4plmxdj/tRl/hQ=="],
|
||||||
|
|
||||||
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag=="],
|
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag=="],
|
||||||
@ -549,6 +553,8 @@
|
|||||||
|
|
||||||
"kolorist": ["kolorist@1.8.0", "", {}, "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ=="],
|
"kolorist": ["kolorist@1.8.0", "", {}, "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ=="],
|
||||||
|
|
||||||
|
"lamejs": ["lamejs@1.2.1", "", { "dependencies": { "use-strict": "1.0.1" } }, "sha512-s7bxvjvYthw6oPLCm5pFxvA84wUROODB8jEO2+CE1adhKgrIvVOlmMgY8zyugxGrvRaDHNJanOiS21/emty6dQ=="],
|
||||||
|
|
||||||
"lie": ["lie@3.1.1", "", { "dependencies": { "immediate": "~3.0.5" } }, "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw=="],
|
"lie": ["lie@3.1.1", "", { "dependencies": { "immediate": "~3.0.5" } }, "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw=="],
|
||||||
|
|
||||||
"linkify-it": ["linkify-it@5.0.0", "", { "dependencies": { "uc.micro": "^2.0.0" } }, "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ=="],
|
"linkify-it": ["linkify-it@5.0.0", "", { "dependencies": { "uc.micro": "^2.0.0" } }, "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ=="],
|
||||||
@ -837,6 +843,8 @@
|
|||||||
|
|
||||||
"update-browserslist-db": ["update-browserslist-db@1.1.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw=="],
|
"update-browserslist-db": ["update-browserslist-db@1.1.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw=="],
|
||||||
|
|
||||||
|
"use-strict": ["use-strict@1.0.1", "", {}, "sha512-IeiWvvEXfW5ltKVMkxq6FvNf2LojMKvB2OCeja6+ct24S1XOmQw2dGr2JyndwACWAGJva9B7yPHwAmeA9QCqAQ=="],
|
||||||
|
|
||||||
"util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="],
|
"util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="],
|
||||||
|
|
||||||
"varint": ["varint@6.0.0", "", {}, "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="],
|
"varint": ["varint@6.0.0", "", {}, "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="],
|
||||||
|
|||||||
6
env.d.ts
vendored
@ -7,6 +7,12 @@ declare module '*.md' {
|
|||||||
export const frontmatter: Frontmatter
|
export const frontmatter: Frontmatter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
declare module '*.vue' {
|
||||||
|
import type { ComponentOptions } from 'vue'
|
||||||
|
const Component: ComponentOptions
|
||||||
|
export default Component
|
||||||
|
}
|
||||||
|
|
||||||
type MdModule = {
|
type MdModule = {
|
||||||
default: ComponentOptions;
|
default: ComponentOptions;
|
||||||
frontmatter: Frontmatter;
|
frontmatter: Frontmatter;
|
||||||
|
|||||||
@ -11,7 +11,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
<script>window.amapKey= '29079f345973b792ff05946a20946038'</script>
|
<script>window.amapKey= ''</script>
|
||||||
<script type="module" src="/src/main.ts"></script>
|
<script type="module" src="/src/main.ts"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@ -11,9 +11,11 @@
|
|||||||
"type-check": "vue-tsc --build"
|
"type-check": "vue-tsc --build"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@breezystack/lamejs": "^1.2.7",
|
||||||
"gray-matter": "^4.0.3",
|
"gray-matter": "^4.0.3",
|
||||||
"gsap": "^3.12.7",
|
"gsap": "^3.12.7",
|
||||||
"highlight.js": "^11.11.1",
|
"highlight.js": "^11.11.1",
|
||||||
|
"lamejs": "^1.2.1",
|
||||||
"localforage": "^1.10.0",
|
"localforage": "^1.10.0",
|
||||||
"markdown-it": "^14.1.0",
|
"markdown-it": "^14.1.0",
|
||||||
"markdown-it-katex": "^2.0.3",
|
"markdown-it-katex": "^2.0.3",
|
||||||
|
|||||||
BIN
public/resources/Phy-exp/WebDemo.mp4
Normal file
BIN
public/resources/Phy-exp/自旋示意.mp4
Normal file
BIN
src/blogs/圆锥摆(傅科摆)综合实验——数据处理与进动分析.assets/IMG_4918.webp
Normal file
|
After Width: | Height: | Size: 609 KiB |
|
After Width: | Height: | Size: 164 KiB |
|
After Width: | Height: | Size: 203 KiB |
|
After Width: | Height: | Size: 746 KiB |
|
After Width: | Height: | Size: 528 KiB |
|
After Width: | Height: | Size: 521 KiB |
BIN
src/blogs/圆锥摆(傅科摆)综合实验——数据处理与进动分析.assets/output.png
Normal file
|
After Width: | Height: | Size: 113 KiB |
|
After Width: | Height: | Size: 130 KiB |
|
After Width: | Height: | Size: 98 KiB |
|
After Width: | Height: | Size: 217 KiB |
|
After Width: | Height: | Size: 218 KiB |
|
After Width: | Height: | Size: 117 KiB |
|
After Width: | Height: | Size: 117 KiB |
168
src/blogs/圆锥摆(傅科摆)综合实验——数据处理与进动分析.md
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
---
|
||||||
|
title: 圆锥摆(傅科摆)综合实验——数据处理与进动分析
|
||||||
|
desc: 傅科摆通过摆球进动演示地球自转,但实验中受限于实验条件,很难在本科实验室复现。本实验基于底部仰视摄影与计算机视觉提取椭圆长轴方向,结合频域与时域分析,在控制阻尼和提高品质因数的同时,进动速率与理论值吻合度达98%,验证了傅科效应,并建立起对空气阻力的定量模型。
|
||||||
|
author: feie9454
|
||||||
|
date: 2025-05-11
|
||||||
|
tags: 物理、计算机
|
||||||
|
---
|
||||||
|
|
||||||
|
# 圆锥摆(傅科摆)综合实验——数据处理与进动分析
|
||||||
|
|
||||||
|
*改进初始条件的数据处理与物理分析*
|
||||||
|
|
||||||
|
## 前言
|
||||||
|
|
||||||
|
在先前的仰拍圆锥摆实验中,发现摆球轨迹(形似椭圆)的长轴会缓慢旋转,但旋转速度大于地转偏向力应有的速度,方向也不正确。
|
||||||
|
|
||||||
|
推测原因可能是:
|
||||||
|
|
||||||
|
1. 摆球释放时有一个自旋速度,传导到系统中
|
||||||
|
2. 铁架台与单摆形成共振
|
||||||
|
3. 空气扰动
|
||||||
|
|
||||||
|
因此,进行了试验装置的改进,把单摆挂在墙壁上,避免了铁架台,也大幅增大了摆长,方便精细化调整实验。
|
||||||
|
|
||||||
|
可惜调整装置后第一次实验,结果和之前类似,旋转速度很大,远超出地转应有的水平。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
| 物理量 | 数值 (平均) | 解释 |
|
||||||
|
| ------------------- | ------------------------------------ | ---------------------------------------- |
|
||||||
|
| 长轴初始长度 a₀ | ≈ 1.69 ×10³ px | 取像素作单位,后续按指数衰减 |
|
||||||
|
| 阻尼时间常数 τ | **τ ≈ 3.0 ×10² s (≈ 5 min)** | a(t) ≈ a₀ e^(–t/τ);对应阻尼系数 γ ≈ 1/τ |
|
||||||
|
| 长轴方位角 **θ(t)** | 近线性:θ ≈ θ₀ + ωₚ t | |
|
||||||
|
| 平均进动角/周期 Δθ | **0.76 °/T** (≈ 0.013 rad) | 方向顺时针(在本坐标系下为负) |
|
||||||
|
| 进动角速度 ωₚ | **5.9 ×10⁻³ rad s⁻¹** (≈ 0.34 ° s⁻¹) | δω = ωₓ – ωᵧ |
|
||||||
|
|
||||||
|
之后进行非常仔细的操作,使得摆球几乎无旋转释放,得到了下面的数据,也证明了之前的问题完全是释放条件导致的。
|
||||||
|
|
||||||
|
-->V(/resources/Phy-exp/自旋示意.mp4)
|
||||||
|
|
||||||
|
## 摘要
|
||||||
|
|
||||||
|
在 *L = 1.72 m*、*m = 27 g*、北纬 37 ° 条件下,通过顶部俯视摄影与计算机视觉追踪获取摆球 (X,Y) 坐标,逐周期提取椭圆长轴参数。
|
||||||
|
|
||||||
|
改进“**零自旋**”初始条件后,剩余椭圆进动速率最好情况下仅与地球自转傅科率相差1.9%,最差情况也在同一数量级;阻尼品质因数提升至 *Q ≈ 500*。
|
||||||
|
|
||||||
|
## 1 实验装置与参数
|
||||||
|
|
||||||
|
| 量 | 符号 | 数值 | 备注 |
|
||||||
|
| ---------- | --------- | ---------- | --------------------------- |
|
||||||
|
| 摆长 | $L$ | **1.72 m** | 悬点到质心 |
|
||||||
|
| 摆球质量 | $m$ | **27.0 g** | 实心不锈钢球 |
|
||||||
|
| 纬度 | $\varphi$ | **37 ° N** | 实验位置 |
|
||||||
|
| 摄像机帧率 | | 60 fps | FHD (实验一) / UHD (实验二) |
|
||||||
|
|
||||||
|
实验环境:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 2 数据处理流程
|
||||||
|
|
||||||
|
1. **FFT 定周期**
|
||||||
|
$$
|
||||||
|
T = 2\pi/\omega_0 = 2.630\text{s}
|
||||||
|
$$
|
||||||
|
|
||||||
|
2. **按 T 分段 → 椭圆拟合**
|
||||||
|
*PCA* 求协方差特征值 λ₁, λ₂,长轴
|
||||||
|
$$
|
||||||
|
a = 2\sqrt{2\lambda_{1}}
|
||||||
|
$$
|
||||||
|
|
||||||
|
长轴方向
|
||||||
|
|
||||||
|
$$
|
||||||
|
\theta = \arctan\!\frac{v_{y}}{v_{x}}
|
||||||
|
$$
|
||||||
|
3. **角度预处理**
|
||||||
|
先乘 2 再 `np.unwrap` 再除 2,避免 ±90 °/180 °跳变。
|
||||||
|
4. **拟合**
|
||||||
|
|
||||||
|
* **阻尼**:$a(t)=a_{0}e^{-t/\tau}$
|
||||||
|
* **进动**:$\theta(t)=\theta_{0}+\omega_{p}t$
|
||||||
|
|
||||||
|
## 3 结果汇总
|
||||||
|
|
||||||
|
| 实验一 | 实验二 |
|
||||||
|
| ------------------------------------------------------------ | ------------------------------------------------------------ |
|
||||||
|
|  |  |
|
||||||
|
|  |  |
|
||||||
|
|  |  |
|
||||||
|
|  |  |
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### 3.1 关键数值
|
||||||
|
|
||||||
|
| Parameter | 实验一 | 实验二 |
|
||||||
|
| --------------- | ---------- | ---------- |
|
||||||
|
| **周期 T** | 2.633 s | 2.625 s |
|
||||||
|
| **阻尼常数 τ** | 405 ± 5 | 422 ± 5 |
|
||||||
|
| **品质因数 Q** | 505 | 483 |
|
||||||
|
| **进动速率 ωₚ** | -4.5 ×10⁻⁵ | –2.1 ×10⁻⁴ |
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
地转傅科速率 $\omega_{F}=\Omega\sin\varphi$ = $\Omega=7.292\times10^{-5}$ = 4.39 × 10⁻⁵ rad s⁻¹
|
||||||
|
|
||||||
|
### 3.2 阻尼行为
|
||||||
|
|
||||||
|
指数衰减 $a(t)$ 与实测散点 $(R^{2}=0.997)$ 完全吻合 → 线性粘滞模型成立。
|
||||||
|
能量每周期损失
|
||||||
|
|
||||||
|
$$ \frac{\Delta E}{E}\approx \frac{2\pi}{Q}=1.07\% $$
|
||||||
|
|
||||||
|
### 3.3 进动比较
|
||||||
|
|
||||||
|
最好情况:
|
||||||
|
|
||||||
|
$$ \frac{|\omega_{p}|}{\omega_{F}}\approx 1.019 $$
|
||||||
|
|
||||||
|
## 4 讨论
|
||||||
|
|
||||||
|
### 为什么“摆球自旋”会把整套圆锥摆的长轴带着一起转?
|
||||||
|
|
||||||
|
| 过程 | 关键点 | 结果 |
|
||||||
|
| --------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
|
||||||
|
| ① **放手瞬间的自旋**摆球绕悬丝轴线有角速度 ωs | 给摆球自身带来 **自旋角动量**Lspin=I ωs(I≈2/5 mr²) | 这部分角动量多半被“存”在 **扭转变形** 的悬丝里 |
|
||||||
|
| ② 悬丝扭转—摆平面耦合 | 悬丝有有限扭转刚度 κ(Nm rad⁻¹)静止时扭力 = κ θtwist | 扭力轴和摆线张力轴略有夹角 → 会在水平面产生 **小但持续的横向力 F⊥** |
|
||||||
|
| ③ Lspin ↔ Lorbital 交换 | 为满足总角动量守恒,部分 Lspin **逐渐转化** 为轨迹的枢转角动量 Lorb=m r² φ̇ | 轨迹椭圆的 **长轴开始顺(或逆)时针漂移** |
|
||||||
|
| ④ 自旋耗散 | 空气阻力 + 线材内摩擦让 ωs 衰减 | 扭转回复力减小 → 长轴漂移速率随时间趋零 |
|
||||||
|
|
||||||
|
> **一句话**:摆球自旋“扭”着悬丝,悬丝的反扭力给了摆球水平向的微小推力;为了守恒角动量,系统把这股推力表现为 **摆平面的进动**。
|
||||||
|
|
||||||
|
------
|
||||||
|
|
||||||
|
#### 定量估算(典型数字)
|
||||||
|
|
||||||
|
- 不锈钢球 m = 27 g, r ≈ 2 cm → I≈4.3 × 10⁻⁶ kg m²
|
||||||
|
- 假设放手时 **ωs = 10 rad/s**:
|
||||||
|
Lspin ≈ 4.3 × 10⁻⁵ N·m·s
|
||||||
|
- 圆锥摆小半径 a≈0.05 m,L=1.72 m → 为让摆面每秒转 0.01 rad 只需
|
||||||
|
Lorb=m a² φ̇ ≈ 0.27 × (5 cm)² ×0.01 = 6.8 × 10⁻⁵ N·m·s
|
||||||
|
|
||||||
|
> 两者同量级!——难怪轻微自旋就能显著改变摆面走向。
|
||||||
|
|
||||||
|
------
|
||||||
|
|
||||||
|
### 为什么“直着放”几乎消除了偏转?
|
||||||
|
|
||||||
|
1. **Lspin≈0** → 悬丝几乎没有额外扭转能;
|
||||||
|
2. 摆球只剩下两自由度 (x,y) 的线性简谐振动,x、y 本征频率只受悬点几何 (ωx,ωy) 控制;
|
||||||
|
3. 于是长轴进动速率 ωp ≈ ½(ωx–ωy) → 很小,可被你调平到接近傅科速率。
|
||||||
|
|
||||||
|
------
|
||||||
|
|
||||||
|
## 如何彻底避免自旋耦合?
|
||||||
|
|
||||||
|
| 方法 | 作用 |
|
||||||
|
| ---------------------------------- | ------------------------------------- |
|
||||||
|
| 在悬丝下端装 **万向小叉/滚珠轴承** | 自由脱开自旋,扭力不会传下摆面 |
|
||||||
|
| 用 **防扭钢丝**(多股细丝绞合) | 削弱 κ,减小扭转‑平面耦合 |
|
||||||
|
| 在放手前让摆球 **轻触静止垂直面** | “刹车”掉自旋再松手 |
|
||||||
|
| 录像分析时 **滤掉早期十几个周期** | 等自旋‑扭转能量耗散后再开始测傅科进动 |
|
||||||
|
|
||||||
|
只要自旋角动量比你想观测的轨迹角动量小一个数量级(Lspin ≪ m a² ωF),就能把人为偏转压到地转量级以下。
|
||||||
|
After Width: | Height: | Size: 337 KiB |
|
After Width: | Height: | Size: 367 KiB |
|
After Width: | Height: | Size: 360 KiB |
|
After Width: | Height: | Size: 345 KiB |
@ -2,7 +2,7 @@
|
|||||||
title: 基于CV的单摆实验优化方案——实验进度与总结
|
title: 基于CV的单摆实验优化方案——实验进度与总结
|
||||||
desc: 单摆是一种经典的实验方法,用于测定重力加速度 $g$,但传统方法(例如用秒表计时)存在局限性。由于人类反应时间以及小角度近似的限制,所测得的 $g$ 往往存在几百分点的误差。我们的实验利用计算机视觉获取高质量的摆球位置-时间数据,应用数学模型提取周期信息,最后通过非线性拟合消除大振幅和阻尼影响,测得准确的重力加速度值并评估空气阻力特性。
|
desc: 单摆是一种经典的实验方法,用于测定重力加速度 $g$,但传统方法(例如用秒表计时)存在局限性。由于人类反应时间以及小角度近似的限制,所测得的 $g$ 往往存在几百分点的误差。我们的实验利用计算机视觉获取高质量的摆球位置-时间数据,应用数学模型提取周期信息,最后通过非线性拟合消除大振幅和阻尼影响,测得准确的重力加速度值并评估空气阻力特性。
|
||||||
author: feie9454
|
author: feie9454
|
||||||
date: 2025-04-26
|
date: 2025-05-11
|
||||||
tags: 计算机、物理、竞赛
|
tags: 计算机、物理、竞赛
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -162,9 +162,9 @@ $$
|
|||||||
|
|
||||||
------
|
------
|
||||||
|
|
||||||
## 如何把现有方案升级为“AI 赋能”项目?
|
### 如何把现有方案升级为“AI 赋能”项目?
|
||||||
|
|
||||||
### 1 感知:用深度视觉替换硬规则
|
#### 1 感知:用深度视觉替换硬规则
|
||||||
|
|
||||||
| 具体动作 | 效果 |
|
| 具体动作 | 效果 |
|
||||||
| --------------------------------------------- | ------------------------------------------------------------ |
|
| --------------------------------------------- | ------------------------------------------------------------ |
|
||||||
@ -172,7 +172,7 @@ $$
|
|||||||
| **自监督关键点跟踪**(如 DINOv2 + RAFT 光流) | 无需人工标注即可在不同实验之间迁移,适合滚动球、弹簧端点等形态变化目标 |
|
| **自监督关键点跟踪**(如 DINOv2 + RAFT 光流) | 无需人工标注即可在不同实验之间迁移,适合滚动球、弹簧端点等形态变化目标 |
|
||||||
| **多相机 + 单目深度网络** | 直接预测 3-D 轨迹,免去手工尺标与透视校正 |
|
| **多相机 + 单目深度网络** | 直接预测 3-D 轨迹,免去手工尺标与透视校正 |
|
||||||
|
|
||||||
### 2 模型发现:让 AI 自己写方程
|
#### 2 模型发现:让 AI 自己写方程
|
||||||
|
|
||||||
| 工具 | 可以做什么 |
|
| 工具 | 可以做什么 |
|
||||||
| ------------------------------------------------------- | ------------------------------------------------------------ |
|
| ------------------------------------------------------- | ------------------------------------------------------------ |
|
||||||
@ -180,24 +180,24 @@ $$
|
|||||||
| **AI Feynman** | 对测得的 $(T,\theta)$、$(a,m)$ 等表格做符号回归,返还可解释解析式(含物理常数) ([AI Feynman: A physics-inspired method for symbolic regression - PMC](https://pmc.ncbi.nlm.nih.gov/articles/PMC7159912/?utm_source=chatgpt.com)) |
|
| **AI Feynman** | 对测得的 $(T,\theta)$、$(a,m)$ 等表格做符号回归,返还可解释解析式(含物理常数) ([AI Feynman: A physics-inspired method for symbolic regression - PMC](https://pmc.ncbi.nlm.nih.gov/articles/PMC7159912/?utm_source=chatgpt.com)) |
|
||||||
| **Auto-PINN** | 把未知力项当“可训练函数”,网络同时满足运动方程残差和边界条件,实现隐力识别(例如滚动摩擦的速度依赖形式) |
|
| **Auto-PINN** | 把未知力项当“可训练函数”,网络同时满足运动方程残差和边界条件,实现隐力识别(例如滚动摩擦的速度依赖形式) |
|
||||||
|
|
||||||
### 3 不确定度与解释
|
#### 3 不确定度与解释
|
||||||
|
|
||||||
- **Bayesian Neural ODE / PyMC**:给出 $g,k,I,\mu_r$ 的完整后验分布,而非单点估计;可直接用置信区间作为误差条形图。
|
- **Bayesian Neural ODE / PyMC**:给出 $g,k,I,\mu_r$ 的完整后验分布,而非单点估计;可直接用置信区间作为误差条形图。
|
||||||
- **SHAP / LIME**:解释深度检测模型在不同光照角度时依赖的像素区域,方便调光源或贴标记。
|
- **SHAP / LIME**:解释深度检测模型在不同光照角度时依赖的像素区域,方便调光源或贴标记。
|
||||||
|
|
||||||
### 4 自适应实验设计
|
#### 4 自适应实验设计
|
||||||
|
|
||||||
- **贝叶斯优化 (BO)**:实验实时决定下一次振幅、质量差或拍摄帧率,使 Fisher 信息最大(参数方差最小)。近年来物理与材料实验已用 BO 自动排程 ([A physics informed bayesian optimization approach for material ...](https://www.nature.com/articles/s41524-023-01173-7?utm_source=chatgpt.com))。
|
- **贝叶斯优化 (BO)**:实验实时决定下一次振幅、质量差或拍摄帧率,使 Fisher 信息最大(参数方差最小)。近年来物理与材料实验已用 BO 自动排程 ([A physics informed bayesian optimization approach for material ...](https://www.nature.com/articles/s41524-023-01173-7?utm_source=chatgpt.com))。
|
||||||
- **深度强化学习 (RL)**:控制伺服电机自动改变弹簧载荷或扭摆阻尼板开口,使残差谱最平坦,形成“AI 智能调参实验台”。
|
- **深度强化学习 (RL)**:控制伺服电机自动改变弹簧载荷或扭摆阻尼板开口,使残差谱最平坦,形成“AI 智能调参实验台”。
|
||||||
|
|
||||||
### 5 数据治理与报告
|
#### 5 数据治理与报告
|
||||||
|
|
||||||
- **异常检测**:残差序列喂入 LSTM-VAE,自动标出摄像掉帧、灯闪烁导致的离群周期。
|
- **异常检测**:残差序列喂入 LSTM-VAE,自动标出摄像掉帧、灯闪烁导致的离群周期。
|
||||||
- **LLM-Copilot**:把实验日志 + 图表交给 GPT-4o 生成中文 / 英文双语报告并自动插入 LaTeX 公式与参考文献。
|
- **LLM-Copilot**:把实验日志 + 图表交给 GPT-4o 生成中文 / 英文双语报告并自动插入 LaTeX 公式与参考文献。
|
||||||
|
|
||||||
------
|
------
|
||||||
|
|
||||||
## 为什么这样就“够 AI”?
|
### 为什么这样就“够 AI”?
|
||||||
|
|
||||||
1. **端到端学习**:从像素到物理参数无需人工阈值或公式硬编码。
|
1. **端到端学习**:从像素到物理参数无需人工阈值或公式硬编码。
|
||||||
2. **自适应/自发现**:算法自行决定实验参数或生成闭式方程。
|
2. **自适应/自发现**:算法自行决定实验参数或生成闭式方程。
|
||||||
@ -214,4 +214,25 @@ $$
|
|||||||
|
|
||||||
这样设计不仅满足“AI 赋能”主题,还能体现**跨学科融合、可解释性与可迁移性**三大当前热点。
|
这样设计不仅满足“AI 赋能”主题,还能体现**跨学科融合、可解释性与可迁移性**三大当前热点。
|
||||||
|
|
||||||
|
整体来说,目前实验大部分目标以达成,后续可以一步步把实验中的部分替换更符合AI。
|
||||||
|
|
||||||
-->(/blogs/计算机视觉辅助单摆优化及经典力学实验拓展研究综述.md)
|
-->(/blogs/计算机视觉辅助单摆优化及经典力学实验拓展研究综述.md)
|
||||||
|
|
||||||
|
## 2025/5/10
|
||||||
|
|
||||||
|
尝试进行自由落体拓展实验的分析:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|  |  |  |
|
||||||
|
| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
|
||||||
|
|
||||||
|
即使使用240FPS采样,数据点还是较少,拍摄设备分辨率1920x1080,加速度很离散。
|
||||||
|
|
||||||
|
## 2025/5/11
|
||||||
|
|
||||||
|
-->(/blogs/圆锥摆(傅科摆)综合实验——数据处理与进动分析.md)
|
||||||
|
|
||||||
|
## 2025/5/18
|
||||||
|
|
||||||
|
-->V(/resources/Phy-exp/WebDemo.mp4)
|
||||||
|
|||||||
1068
src/components/QingAudioConverter.vue
Normal file
@ -1,12 +1,8 @@
|
|||||||
import { createRouter, createWebHistory } from 'vue-router'
|
import { createRouter, createWebHistory } from 'vue-router'
|
||||||
import NotFoundView from '@/views/NotFoundView.vue'
|
import NotFoundView from '@/views/NotFoundView.vue'
|
||||||
import { getStaticRoutes } from './routes'
|
import { getStaticRoutes } from './routes'
|
||||||
import { generatePath } from '@/blogs/utils';
|
|
||||||
|
|
||||||
|
|
||||||
function getRoutes() {
|
function getRoutes() {
|
||||||
|
|
||||||
|
|
||||||
return [
|
return [
|
||||||
...getStaticRoutes().map(route => {
|
...getStaticRoutes().map(route => {
|
||||||
return {
|
return {
|
||||||
@ -15,6 +11,7 @@ function getRoutes() {
|
|||||||
'/tools': () => import('@/views/ToolsView.vue'),
|
'/tools': () => import('@/views/ToolsView.vue'),
|
||||||
'/blogs': () => import('@/views/BlogsView.vue'),
|
'/blogs': () => import('@/views/BlogsView.vue'),
|
||||||
'/tools/image-converter': () => import('@/views/tools/ImageConverterView.vue'),
|
'/tools/image-converter': () => import('@/views/tools/ImageConverterView.vue'),
|
||||||
|
'/tools/qing-audio': () => import('@/views/tools/QingAudioConverterView.vue'),
|
||||||
'/tools/desktop-engine': () => import('@/views/tools/DesktopEngineView.vue'),
|
'/tools/desktop-engine': () => import('@/views/tools/DesktopEngineView.vue'),
|
||||||
}[route.path] || (() => import('@/views/NotFoundView.vue')),
|
}[route.path] || (() => import('@/views/NotFoundView.vue')),
|
||||||
meta: route.path === '/tools/desktop-engine' ? { hideLayout: true } : {},
|
meta: route.path === '/tools/desktop-engine' ? { hideLayout: true } : {},
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
// src/router/routes.ts
|
// src/router/routes.ts
|
||||||
export function getStaticRoutes() {
|
export function getStaticRoutes() { return [
|
||||||
return [
|
|
||||||
{
|
{
|
||||||
path: '/',
|
path: '/',
|
||||||
name: '学习中的鹅',
|
name: '学习中的鹅',
|
||||||
@ -16,6 +15,11 @@ export function getStaticRoutes() {
|
|||||||
name: '在线图片压缩工具',
|
name: '在线图片压缩工具',
|
||||||
changefreq: 'daily',
|
changefreq: 'daily',
|
||||||
priority: 0.7,
|
priority: 0.7,
|
||||||
|
}, {
|
||||||
|
path: '/tools/qing-audio',
|
||||||
|
name: '清朝音质生成器',
|
||||||
|
changefreq: 'daily',
|
||||||
|
priority: 0.7,
|
||||||
}, {
|
}, {
|
||||||
path: '/tools/desktop-engine',
|
path: '/tools/desktop-engine',
|
||||||
name: '桌面引擎壁纸',
|
name: '桌面引擎壁纸',
|
||||||
|
|||||||
@ -1,23 +1,176 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
interface Tool {
|
||||||
|
id: string;
|
||||||
|
title: string;
|
||||||
|
description: string;
|
||||||
|
icon: string;
|
||||||
|
link: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const tools: Tool[] = [
|
||||||
|
{
|
||||||
|
id: 'image-converter',
|
||||||
|
title: '在线图片压缩',
|
||||||
|
description: '一个基于 Canvas 的本地图片压缩工具,支持批量处理',
|
||||||
|
icon: '🖼️',
|
||||||
|
link: '/tools/image-converter'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'qing-audio',
|
||||||
|
title: '清朝音质生成器',
|
||||||
|
description: '把普通音频转换成清朝效果,模拟失真、噪音和低品质音效,适合恶搞使用',
|
||||||
|
icon: '🎵',
|
||||||
|
link: '/tools/qing-audio'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'desktop-engine',
|
||||||
|
title: 'Desktop Engine',
|
||||||
|
description: '一个用于被设置为 Wallpaper Engine 背景的网页,支持丰富的插件,如音乐播放器或股票实时行情',
|
||||||
|
icon: '🖥️',
|
||||||
|
link: '/tools/desktop-engine'
|
||||||
|
}
|
||||||
|
]
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<main>
|
<main>
|
||||||
<ul>
|
<section class="tools-header">
|
||||||
<li>
|
<h1 class="title">实用工具</h1>
|
||||||
<RouterLink to="/tools/image-converter">
|
<p class="subtitle">这里收集了我开发的一些工具,希望能帮到你</p>
|
||||||
<h2 class="title">在线图片压缩</h2>
|
</section>
|
||||||
|
<div class="tools-wrapper">
|
||||||
|
<div class="tools-container">
|
||||||
|
<RouterLink
|
||||||
|
v-for="tool in tools"
|
||||||
|
:key="tool.id"
|
||||||
|
:to="tool.link"
|
||||||
|
class="tool-card"
|
||||||
|
>
|
||||||
|
<div class="tool-icon">
|
||||||
|
{{ tool.icon }}
|
||||||
|
</div>
|
||||||
|
<div class="tool-content">
|
||||||
|
<h2 class="tool-title">{{ tool.title }}</h2>
|
||||||
|
<p class="tool-description">{{ tool.description }}</p>
|
||||||
|
</div>
|
||||||
|
<div class="tool-arrow">
|
||||||
|
→
|
||||||
|
</div>
|
||||||
</RouterLink>
|
</RouterLink>
|
||||||
<p>一个基于 Canvas 的本地图片压缩工具,支持批量处理</p>
|
</div>
|
||||||
</li>
|
</div>
|
||||||
<li>
|
|
||||||
<RouterLink to="/tools/desktop-engine">
|
|
||||||
<h2 class="title">Desktop Engine</h2>
|
|
||||||
</RouterLink>
|
|
||||||
<p>一个用于被设置为 Wallpaper Engine 背景的网页,支持丰富的插件,如音乐播放器或股票实时行情。</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</main>
|
</main>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.tools-header {
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-size: 2rem;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subtitle {
|
||||||
|
color: var(--text-color-gray);
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tools-container {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
||||||
|
gap: 1.5rem;
|
||||||
|
max-width: 1200px; // 设置最大宽度,避免过宽
|
||||||
|
margin: 0 auto; // 居中显示
|
||||||
|
|
||||||
|
@media (min-width: 1201px) {
|
||||||
|
grid-template-columns: repeat(3, 1fr); // 最多显示3列
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 640px) {
|
||||||
|
grid-template-columns: 1fr; // 小屏幕显示1列
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tool-card {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 1.5rem;
|
||||||
|
border: var(--border);
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
background-color: rgba(255, 255, 255, 0.3);
|
||||||
|
text-decoration: none;
|
||||||
|
color: var(--text-color);
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
background-color: rgba(0, 0, 0, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
transform: translateY(-3px);
|
||||||
|
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
|
||||||
|
|
||||||
|
.tool-arrow {
|
||||||
|
transform: translateX(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tool-icon {
|
||||||
|
color: var(--text-color-orange);
|
||||||
|
transform: scale(1.1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tool-icon {
|
||||||
|
flex-shrink: 0;
|
||||||
|
width: 3rem;
|
||||||
|
height: 3rem;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-right: 1rem;
|
||||||
|
border-radius: 50%;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
background-color: rgba(0, 0, 0, 0.05);
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
background-color: rgba(255, 255, 255, 0.1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tool-content {
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tool-title {
|
||||||
|
margin: 0;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tool-description {
|
||||||
|
margin: 0;
|
||||||
|
color: var(--text-color-gray);
|
||||||
|
font-size: 0.9rem;
|
||||||
|
line-height: 1.4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tool-arrow {
|
||||||
|
flex-shrink: 0;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-left: 1rem;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
transform: translateX(1rem);
|
||||||
|
opacity: 0;
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
9
src/views/tools/QingAudioConverterView.vue
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import QingAudioConverter from '@/components/QingAudioConverter.vue';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<main>
|
||||||
|
<QingAudioConverter />
|
||||||
|
</main>
|
||||||
|
</template>
|
||||||