本节摘要:轨迹已知时,沿轨迹走最省笔墨——自然坐标系把加速度劈成管快慢的切向分量与管拐弯的法向分量,曲线运动的全部玄机就落在这两笔账上。本节推导切向、法向分解,解释匀速率圆周运动为什么照样有加速度,并用汽车过弯的数值算例把公式钉进工程场景。
2.1 节的直角坐标三本账什么都能记,但对"沿已知弯道行驶"这类问题实在笨拙——车明明被约束在弯道上,三个分量却都自由,拐弯的物理被摊薄在坐标数字里。自然坐标系换个思路:不问位置在哪儿,只问"沿路走了多远"(弧长 s),再加一个"此刻朝向"。它向上直接调用 2.1 节的求导链,向下喂给第四章圆周运动方程与第六章振动的切向描述——凡是"轨迹已知、沿轨走"的场景,都是它的地盘。
这套坐标最大的战果,是把"拐弯必受加速度"变成显式结论:只要速度方向在变,哪怕速率纹丝不动,加速度也照拿不误,这笔账记在法向分量头上;速率快慢的变化则记在切向分量头上。高速路上那句"请减速过弯",翻译成力学语言就是"别让法向加速度超出轮胎摩擦的支付能力"。
沿轨迹取单位切向矢量 e_t(指向运动方向)与单位法向矢量 e_n(指向轨迹凹侧、即曲率中心),速度只剩切向一笔:v = v e_t,v 是速率。对时间求导,乘积法则给出两项:
a = (dv/dt) e_t + (v²/ρ) e_n
第一项管速率变化(切向加速度),第二项管方向变化(法向加速度),ρ 是轨迹在该点的曲率半径——弯得越急 ρ 越小、法向项越大。匀速率圆周运动里 dv/dt = 0,但 a_n = v²/R 一分不减,这就是"匀速圆周运动是变速运动"的准确含义:速度矢量恒在转向。两笔账各管一摊、互不代劳:切向账只有切向分量能改,法向账只有法向分量能改,这为第四章按账目配力(切向要摩擦或牵引,法向要向心力)铺好了路。

弯道半径五十米、车速二十米每秒(合七十二公里每小时)的轿车,法向加速度是多少?需要多大的摩擦系数才撑得住?这是把公式兑换成工程判断的最好练习——法向加速度算出来之后,提供它的只能是轮胎与路面之间的摩擦,于是"安全过弯"的条件立刻写成不等式。
# 弯道安全核算:a_n 与摩擦支付能力 import math v, R, g = 20.0, 50.0, 9.8 a_n = v**2 / R print("法向加速度 =", a_n, "m/s^2") # 8.0 print("安全条件 mu >= a_n/g =", a_n / g) # 0.8163265306122449 # 干燥沥青 mu 约 0.9:勉强够;雨天 mu 掉到 0.4:必甩出弯道 for mu in [0.9, 0.4]: v_max = math.sqrt(mu * g * R) print(f"mu={mu} 时最大安全车速 = {v_max:.2f} m/s (即 {v_max*3.6:.1f} km/h)") # 输出: # mu=0.9 时最大安全车速 = 21.00 m/s (即 75.6 km/h) # mu=0.4 时最大安全车速 = 14.00 m/s (即 50.4 km/h)
同一个五十米弯道,干燥路面撑得住七十五公里,雨天只撑得住五十公里——"雨天减速"从道德劝告变成了算术结论。再核对一遍推导链:v²/R 来自 2.1 节的求导,摩擦约束来自第一章第三定律的接触力出处,到第四章会看到这道题的完整受力解剖(摩擦力兼任向心力),此处先拿到运动学结论。
第二段代码验证自然坐标公式的自洽性:取标准圆周运动 r(t) = (R cos ωt, R sin ωt),逐项求导应严格给出 v = ωR 与 a_n = ω²R,周期与角速度的关系也随之落袋。
# 匀速圆周运动:求导链与自然坐标结论互相印证 import math R, om = 50.0, 0.4 # 半径 m,角速度 rad/s v = om * R # 线速度 a_n = om**2 * R # 法向加速度 T = 2 * math.pi / om # 周期 print("v = om*R =", v, "m/s") # 20.0 print("a_n = om^2*R =", a_n, "m/s^2") # 8.0 print("周期 T =", T, "s") # 15.707963267948966 # 转速换算 rpm print("转速 =", om * 60 / (2 * math.pi), "rpm") # 3.819718634205488 # 与上例一致:同一辆车、同一弯道,自然坐标与直角坐标两套账对得上
两套坐标给出同一个 8 m/s²,这正是坐标系只是"记账方式"、运动本身才是账本内容的活例证。
判断标准只有一条:轨迹是否已知。火车沿轨道走、小车沿轨道滑、卫星沿轨道飞——轨迹被约束钉死,自然坐标立刻上桌;自由抛体的轨迹事先未知,老实用直角坐标分解。工程上还有个讨巧用法:任意曲线在小范围内可以用一段圆弧近似(曲率圆),于是圆周运动的结论可以逐点借用——过山车翻滚段的法向加速度核算、离心机的设计,都是这么干的。
⚠️ 常见坑:把法向加速度写成 v/R 或 sqrt(v)/R。它是速度的平方除以半径——速度翻倍,法向账翻四倍。高速过弯的凶险,根子就在这个平方上。
"轨迹已知"在工程里常意味着"手里有一串坐标点"——轨道测出的离散点、摄像头采到的轨迹线。此时曲率半径不必靠几何直觉,三个相邻点就能算:过三点的圆唯一确定,它的半径就是这三点处的曲率半径近似。数值上再做一步差分,切向与法向加速度的分账也随之出炉。下面用一段抛物线轨迹演示这条流水线,抛物线的解析曲率半径当裁判。
# 从轨迹点估曲率半径:三点定圆近似,抛物线 y = 0.1*x^2 在 x=1 处解析值当裁判 import math def curvature_radius(p1, p2, p3): ax, ay = p1; bx, by = p2; cx, cy = p3 d = 2 * (ax*(by-cy) + bx*(cy-ay) + cx*(ay-by)) ux = ((ax**2+ay**2)*(by-cy) + (bx**2+by**2)*(cy-ay) + (cx**2+cy**2)*(ay-by)) / d uy = ((ax**2+ay**2)*(cx-bx) + (bx**2+by**2)*(ax-cx) + (cx**2+cy**2)*(bx-ax)) / d return math.hypot(ax-ux, ay-uy) f = lambda x: 0.1 * x * x xs = [0.8, 1.0, 1.2] pts = [(x, f(x)) for x in xs] R_num = curvature_radius(*pts) x0 = 1.0 fp = 0.2 * x0 # 一阶导 fpp = 0.2 # 二阶导 R_exact = (1 + fp**2)**1.5 / abs(fpp) print("三点定圆估得 R =", round(R_num, 4), "m") # 5.3049 print("解析曲率半径 =", round(R_exact, 4), "m") # 5.303 # 同一点上 v=3 m/s 的法向账:a_n = v^2/R print("法向加速度 =", round(9.0 / R_exact, 5), "m/s²") # 1.69716
两组半径逐位咬合,抛物线的"弯度账"被三点定圆干净收编。这条流水线是实验数据与理论公式之间的桥:从任何装置采回的轨迹点,都能照此折算出逐点的法向加速度,为第四章的受力解剖备好原料。
要点复盘:
拐弯的问题清了,下一节把两个新变量请上台:对象换成会转的刚体,观察者换成在动的参考系——角量与线量怎么换算、速度怎么合成,都是本节两笔账的自然延伸。