1. 细说虚功原理

需要简单的微积分和基础的力学知识。

向量用黑体表示。为了方便,我们会用牛顿上面加点的方式表示对时间的导数。

0. 基本概念

我们考虑一个质点系(系统)。系统内所有质点位置的集合称为位形。

然后系统要受到一些约束来限制位形的变化,比如物块放到平面上不能掉下去,平面限制了小物块位置的变化。

一般来说,约束可以写成这样的形式:

f(r1,,rn,r˙1,,r˙n,t)=0

上面的式子比较抽象,这里作简单说明。

约束带来的力称为约束(反)力,比如物块放在水平面上,弹力是为了满足平面约束而必须有的,它是一种与违背约束相对抗的反作用力;而对应的重力称为主动力,它不是依赖于约束而存在的。

1. 虚位移,理想约束,虚功原理

仅仅有约束我们还不足以确定运动状态。比如将静止物块放在水平面上后,仅依靠约束,它有可能向各个方向运动(也可能静止);然而实际上由动力学规律,它只可能静止。上面所谓 “可能” 的位移指的是符合约束的位移,我们称为虚位移,这是我们想象出来的,并非实际的运动(时间并没有变化)。对于定常约束,真实的位移就是虚位移中的一个(指的是 “看上去” 一模一样)。我们研究问题的步骤就是先确定符合约束的位移,然后再判定哪个虚位移是真实位移。在传统方法中,我们需要启动牛顿第二定律才能得到真实位移;但我们也可以使用另外的方法,通过一系列判定条件(比如下面的虚功原理)来确定真实位移,这就是分析力学的思想。

上面的文字只是一个较为粗略的对思路的描述,有必要做一些更深入的说明。

我们考察的都是无穷小的虚位移,用 δr 表示。这里 δ 是等时变分符号。变分符号与微分符号的区别是,微分的 dr 指的是,实际情况中,经过极小时间 dt,位置矢量的变化量,即一个极小的实位移,同时伴随时间的增加;而变分指的是,对于原来这个状态进行微扰(或者认为单纯只是另外一个位形接近的状态)带来的变化(虚位移),此时时间并没有变化,即 δt=0(所以称为 “等时” 变分)。画一个图:

(为了更好表示,上面的图画的是标量 r,下面推导也写标量)

我们考察 (t,r) 处的点,我们会发现,对这个点先微分再变分与先变分再微分的结果是完全相同的。于是我们有:

r+dr+δ(r+dr)=r+δr+d(r+δr)

dδ 都表示极小变化量,可以验证它们的运算规则相同。化简得到

d(δr)=δ(dr)

这被称为 δd 的可对易性:它们可以进行任意交换,运算规则也相同,它们只是因为表示意义不同而有不同的符号。

引入虚位移的一大好处是,大多数约束力做的虚功为零。这里“虚功”的意思是力和虚位移的点乘,并不是一种实际的功。约束力做的虚功为零的约束称为理想约束。

下面这些约束都是理想约束:

与光滑表面接触;光滑铰接;质点用张紧且不可伸长轻绳连接……

如果是静力平衡的情况那么上面这些都是显然的。这里说明一下,在非定常条件下质点光滑表面接触(光滑表面不属于系统)也是理想约束。

我们设光滑表面带来的约束为 f(x,y,z,t)=0(光滑表面可以运动),那么虚位移应当满足:

fxδx+fyδy+fzδz=0

如果使用 d 的话(也就是实际情况下),应当有 ftdt 这一项,实际做的功并不为零。然而注意虚位移的定义,δt=0,虚位移是被限制在某一时刻的切向上的。

由理想约束下约束力不做功,我们记质点 i 受到的主动力为 Fi,约束力为 Ni,作虚位移 δri。在理想约束的条件下,有:

δW=i=1n(Fi+Ni)δri=i=1nFiδri=0

这就得到虚功原理:

具有理想约束的质点系达到平衡的充分必要条件是在任何虚位移上,主动力做的虚功的和为零。

(必要性证明不难)

这给了我们只需作出主动力就能做题的方法。试试看!

例 1.1 如图,现有线密度为 λ 的均质链条,它静止悬挂时两端各受的力为 T1,T2,两端高度差为 h。证明 T2T1=λgh.

自然想到应当考虑沿原来绳子的方向的虚位移,但是首先有一个问题是,绳子的形状会变,然后什么都变了,算不了一点。

这里的技巧是,直接把条件改了,让绳子不是自由垂落,而是用一个和原来绳子形状相同的光滑管套在绳子外面。这样并不会改变各个力的大小,但是能使绳子只沿原方向,相当于减小了自由度。

此时仍然保证理想约束。由重力(保守力)做功的性质及虚功原理得

T2δsT1δsλghδs=0

即得结论。

我们再来看一个流体的问题(帕斯卡定律)。

例 1.2 如图,容器内有不可压缩的流体且处于平衡状态,忽略活塞摩擦及重力,求证 P1S1=P2S2=P3S3.(尊重原图,用 P 表示力)

考虑一个 P1 处向内压的虚位移 δx1,此时 P2,P3 处分别有向外虚位移 δx2,δx3,由体积不变及虚功原理:

S1δx1S2δx2S3δx3=0P1δx1P2δx2P3δx3=0

消去 δx1

(P1S2S1P2)δx2+(P1S3S1P3)δx3=0

这时,关键在于 δx2δx3 是独立的,因此我们只能让两个括号内式子都为 0,化简即得结论。

从这个例子可以看出,最后我们需要化为互相独立的虚位移的线性组合的形式,这就要求我们需要把不独立的虚位移消掉。

虚功原理能够大量减少约束力的分析。经典的例子是这个题:

例 1.3 如图由四根长 Lmg 的杆和四根长 2L2mg 的杆光滑铰接而成,杆间夹角均为直角。一根不可伸长的细绳连接两铰接点,求细绳的拉力 T

T 是约束力,但也可以用虚功原理求。做法简单粗暴,就是直接解除约束,把绳子扬了,用两个主动力 T 来替代。

O2 点有向下虚位移 δx,根据比例关系易得其它各点的虚位移,直接列式子:

T2δxT3δx+2mg14δx+22mgδx+22mg2δx+2mg114δx=0

T=18mg,做完了。

但是来看这个平衡题:

例 1.4 如图,质量为 m 的均匀细杆与光滑表面相切,求平衡时杆与水平面的夹角 θ 与图中长度的关系。

按照之前虚位移的理论,我们考虑一个质心的虚位移 δr。只有重力为主动力,虚位移 δr 仅有竖直方向的分量 δy 对做功有贡献,于是

mgδy=0

m=0 疑似有点扯了,所以得到平衡位置 δy=0

这里有一个问题,就是我们本来是希望是要做虚位移的,结果最后解出所设的“虚位移”根本不存在,这里所谓的虚位移是不符合定义的,只是在数学上满足这样的关系。

不过在这个题中我们可以用数学方法处理。
为了解出关系我们先用 θ 表示 y (以水平面为高度零点)得

Lsinθdtanθ=y

同取 δ

Lcosθδθdcos2θδθ=δy=0

这下 δθ 总不可能为 0 了,于是得到

cos3θ=dL

我们能够明显感受到这道题与前面两道题的区别,直接用虚功原理遇到了困难。我们把一些问题总结在这里:

解决这些问题的方案其实上面已经有了:不拘泥于 “位移”,也可以使用 θ 这样的东西来表示。这就引出了广义坐标。

2. 广义坐标下的虚功原理

广义坐标指的是一组独立的参数 q1,,qs,用它们能够唯一确定系统位形。广义坐标的个数 s 称为系统(有限运动中)的自由度。

举一个经典的例子,考虑一个单摆(摆角不超过 90)。

“无法区分左右两状态” 这句话道出了 例 1.4 中出现 δy=0 的根本原因。那个题的平衡状态就像是单摆的平衡状态(只是稳定性有差别)。

因为使用广义坐标就已经能唯一确定位形,我们无需再找出坐标间关系(不用管约束方程了)。

类比原有的运动学概念,广义坐标关于时间的导数称为广义速度。在我们目前讨论的问题(完整约束)中,广义速度、广义坐标的变分也是相互独立的。

接下来我们尝试将广义坐标代入到虚功原理的式子中。

设位矢 ri=ri(q1,,qs,t),取变分有

δri=α=1sriqαδqα

代入到虚功原理的式子中有

δW=i=1nFiδri=i=1nFiα=1sriqαδqα=α=1s(i=1nFiriqα)δqα=0

与初始时的虚功原理作比较,我们可以定义广义力

Qα=i=1nFiriqα

于是有

δW=α=1sQαδqα=0

因为广义坐标的优秀性质(相互独立和唯一确定性),我们有

Qα=0

我们可以看到,这个式子就不再包含原来的“虚位移”,是一个更加确定的形式。

实际上我们并不会对每个广义坐标求广义力,即直接用上面的式子进行运算,而是考虑每个主动力,计算它作的虚功。比如下面这道例题:

例 2. 如图,杆 OA,AB 长度分别为 l1,l2,各铰接处光滑,求 φ1,φ2

容易判定符合使用虚功原理的条件。我们取广义坐标 φ1,φ2,并以水平向右为 x 轴正方向,以水平向下为 y 轴正方向。

要算做功,只需表示 yC,yD,xB,具体地,有:

yC=12l1cosφ1yD=l1cosφ1+12l2cosφ2xB=l1sinφ1+l2sinφ2

取变分,有

δyC=12l1sinφ1δφ1δyD=l1sinφ1δφ112l2sinφ2δφ2δxB=l1cosφ1δφ1+l2cosφ2δφ2

由虚功原理,

m1gδyC+m2gδyD+FδxB=0

代入化简得

(Fl1cosφ112m1gl1sinφ1m2gl1sinφ1)δφ1+(Fl2cosφ212m2gl2sinφ2)δφ2=0

于是有

{Fl1cosφ112m1gl1sinφ1m2gl1sinφ1=0Fl2cosφ212m2gl2sinφ2=0

解得

{φ1=arctan(2F(m1+2m2)g)φ2=arctan(2Fm2g)

练习:用类似的方法完成 例1.4

总结一下,我们做题的步骤是这样的:

  1. 判定约束为双面、定常、几何、理想的约束。如果要求约束力,需要解除约束,用主动力替换(例 1.3)。

  2. 判断自由度,选取合适的广义坐标。

  3. 将每个主动力的作用点的位置用广义坐标表示。

  4. 作变分,求出虚功。

  5. 按广义坐标合并同类项,令各项为零,解方程组即得。

3. 保守系统下的虚功原理与平衡的稳定性

很多主动力,比如恒力(重力可看作一种恒力),引力,库仑力,弹簧弹力等都属于保守力,有势能相对应。因此对于保守系统,我们可以使用势能来表示稳定条件。下面我们具体推导一下。

设势能函数为 V,由势能定理有

δV=δW=α=1sQαδqα

由对易性 δ 可理解为 d,我们立刻得到

Qα=Vqα

Qα=0,我们最终得到

Vqα=0

上面的式子意义明显,就是说物体的平衡位置就是势能取驻值的位置。

实际上对于 例 1.4,我们最后的做法中 δy=0 就相当于(重力)势能取极值。

然而并不是所有的平衡位置都是我们在日常生活中能够见到的。比如考虑一个半球面,我们将一个小球放到上面,它几乎必然会滑下;或者说,即使恰好将它放在了正上方,给一个任意小的微扰,它都会远离平衡位置滑下。我们称这种平衡为不稳定平衡。反过来,如果是半球碗内的球,那么即使给定一个微扰,它也会回复到原来的位置,这种平衡称为稳定平衡。另外我们还有随遇平衡的概念,指的是经过微扰后,物体停留在微扰后的位置,既不远离平衡位置,也不回复到平衡位置。

值得注意的是,引入势能函数,我们可以比较方便地得到平衡的稳定性。我们可以粗略认为,极值点的种类对应着稳定性的种类。简单来说,稳定平衡一般对应着势能函数的极小值,而不稳定平衡一般对应着势能函数在平衡位置不取严格极小值。随遇平衡则意味着势能函数在对应位置周围非无穷小的部分为定值。(这里的说法都不是很严谨;平衡稳定性的证明过于复杂,这里直观理解即可)

对仅一个广义坐标的情况(一元势函数),我们可以简单地对其进一步求导,判断二阶导数的符号即可。

若仅有重力势能,此时就是受力分析中所谓“重心升降法”的原理。

例 3.1 试判断 例 1.4 中平衡的稳定性。

重力势能只与纵坐标有关,只写纵坐标即可。我们沿用先前的符号,

y=Lsinθdtanθdydθ=Lcosθdcos2θd2ydθ2=Lsinθ2dsinθcos3θ<0

因此为不稳定平衡。

例 3.2 如图,匀质杆 AB 长度为 l,各接触面光滑。若杆在 Oxy 平面上任意位形都为平衡位置,求柱面方程。

随遇平衡意味着势能为常数,杆的重心高度不变。考虑竖直放置,此时重心高度为 l2。设 B(x,y),容易得到

(l2y)2+(x2)2=(l2)2

这就得到柱面方程。柱面在 Oxy 平面上的截面为椭圆(的一部分)。

下面两个例子相对复杂一点。

例 3.3 如图,大圆环光滑,A 为光滑小环,其上系两段绳子。B 为光滑定滑轮,大小不计,两物体 C,D 重力分别为 P,GD 与大圆环间无弹力。求平衡时的 φ 及平衡稳定性。

CAABD 段绳长分别为 l,L,半径为 R,直接写重力势能

V=P(Rcosφl)+G(RL+2Rsinφ2)

求导

dVdφ=PRsinφ+GRcosφ2=0

解得 φ1=arcsinG2P,注意有可能不存在。

这里对于势能函数的讨论比较复杂,略去,直接给出最后的势能曲线:

例 3.4 如图,光滑圆环半径为 R,以 ω 角速度匀速转动。一根长 L=2R 的细杆放于环上,杆中心与圆心的连线与竖直方向夹角为 θ。求平衡时 θ 大小,并讨论平衡稳定性。

显然考虑换系,此时多出一项惯性离心力 F=mω2r

注意惯性离心力的大小只与到圆心的距离有关,我们可以引入离心势能。先算做功(注意力的方向向外)

W=r1r2mω2rdr=12mω2r2212mω2r12

ΔV=W 对比得

V=12mω2r2

考虑整根杆,由长度关系注意到杆所对圆心角为 90,设线密度 λ=m2R,有总离心势能

V=12ω202R(Rsin(θ45)+xcosθ)2λdx=(1416cos2θ)mω2R2

O 为零势能点,又有重力势能 VG=22mgRcosθ

因此杆总势能

V=VG+V=22mgRcosθ(1416cos2θ)mω2R2

注意到这是关于 cosθ 的二次方程,有

V=16mω2R2(cosθ32g2ω2R)214mω2R23mg24ω2

cosθ=32g2ω2R (若存在)时,V 取最小值,为稳定平衡。

θ=π 这个位形疑似有点扯了。

再考虑 θ=0,可以算出:

4. 后面是什么?

简单介绍一点动力学问题的处理方案,基本上就是列举结论。

对于动力学问题,我们有时也会将它转化为静力学问题来进行解决。方法就是引入我们常说的“惯性力”。

我们记质点 i 质量为 mi,受到的主动力为 Fi,约束力为 Ni,位移为 ri,我们可以列出方程:

Fi+Ni=mir¨i

此时我们将右边一项移到左边:

Fi+Nimir¨i=0

mir¨i 这一项看作惯性力。在理想约束条件下,有

δW=i=1n(Fimir¨i)δri=0

此式称达朗贝尔原理,也叫做动力学普遍方程。

接下来我们将广义坐标代入,设位矢 ri=ri(q1,,qs,t),与之前相似,得到

δW=α=1s(Qαi=1nmir¨iriqα)δqα

这可以使用一些技巧化简得到(比较复杂,不细推了)

δW=α=1s(QαddtTqα˙+Tqα)δqα=0

其中 T 为系统动能,即满足

T=i=1n12mi|r˙i|2

最终得到拉格朗日方程

ddtTqα˙Tqα=Qα

当为保守力系时代入 Qα 可得结论

ddtLqα˙Lqα=0

其中 L 为拉格朗日量,满足

L=TV

一个方程就把(完整系下的)动力学写明白了,非常厉害。