分类 物理 | physics 下的文章

[scode type="blue"]如果行内公式没渲染请刷新页面[/scode]

理论力学 | 最小作用量原理

在理论力学中,欧拉-拉格朗日方程是求解系统运动方程的核心工具。它将经典力学问题转化为变分问题,通过最小作用量原理得到系统的运动规律。

拉格朗日函数

拉格朗日函数 $ L $ 是一个多元函数,只要给出广义坐标 $q$ 、广义速度 $\dot q$ 和时间 $ t $ 它可以表征任意一个力学系统。换句话说只要你告诉我系统的广义坐标、广义速度和时间,我就能用一个拉格朗日函数完全描述这个系统的动力学行为。拉格朗日函数可以理解为系统在每一时刻的“运动净收益”。

$$ L(q,\dot q,t)=T-V $$

其中

  • $ T $是动能
  • $ V $是势能

Q:为什么拉格朗日函数等于动能减去势能?

A:猜的!对没错就是猜的,最初它是一个经验性构造,这样定义后发现它是自洽的所有已知力学系统都符合。

作用量 (Action)

作用量 $ S $ 是一个标量泛函,它将一条轨迹 $q(t)$ (函数)映射到一个数值,即量化了运动轨迹。

$$ S = \int_{t1}^{t2}L(q,\dot q,t)dt $$

最小作用量原理

自然界中,一个物理系统在两个时刻之间的实际运动路径,是使作用量 $ S $ 取极值(通常是极小值)的那条路径即真实的运动轨迹使作用量达到极值。不太严谨的说法:一个物理系统的运动路径仅会采取“运动总收益“最小的情况。

欧拉-拉格朗日方程

根据最小作用量原理:一个物理系统在两个时刻之间的实际运动路径,是使作用量 $ S $ 取极值(通常是极小值)的那条路径。我们可以获得一种不同于牛顿力学的解决物理系统的方法,即通过求得作用量的极小值。而不是受力分析等传统力学方法。

求作用量的极值

由于作用量是一个泛函,所以求极值需要用到变分法。即我们需要对作用量求一阶变分。

变分法

类比于微分,如果一个函数 $f(x)$ 在 $x_0$ 处取得极值,则对于任意 $\delta x$有

$$ f(x_0+\delta x) -f(x_0)=0+o(\delta x) $$

换句话说,一阶微小变化不会改变函数值

同样的对于一个泛函对所有满足固定端点条件,假设泛函 $ S $ 在 $q(t)$ 处取得极值,我们引入一个微小的变化函数 $\delta {q(t)}$,将路径 $q(t)$变为 $q(t)+\delta q(t)$,如果此时作用量的值与原路径下的作用量的值相同(即对路径做微小扰动后的作用量进行一阶变分为零),那么 $q(t)$ 就是极值轨迹,也就是物理系统的真实运动轨迹。

所以我们对作用量引入一个微小扰动 $\delta q$

$$ S = \int_{t1}^{t2}L(q+\delta q,\dot q+\delta \dot q,t)dt $$

对其求一阶变分

令 $\delta q = \epsilon \eta $ 并且 $ \eta (t_1)=\eta (t_2)=0$ 则

$$ S = \int_{t1}^{t2}L(q+\epsilon \eta ,\dot q+\epsilon \dot \eta ,t)dt $$

一阶变分定义:泛函对扰动参数 $ \epsilon$ 的导数在 $ \epsilon =0$ 处的取值。

$$ \delta S = \left.\frac{d}{d\epsilon} S\right|_{\varepsilon=0} = \int_{t1}^{t2}\left.\frac{L(q+\epsilon \eta ,\dot q+\epsilon \dot \eta ,t)}{d\epsilon}\right|_{\varepsilon=0}dt= \int_{t1}^{t2}\left(\frac{\partial L}{\partial q}\eta+\frac{\partial L}{\partial\dot q}\dot\eta\right)dt $$

$$ \delta S = \int_{t1}^{t2}\left(\frac{\partial L}{\partial q}\eta\right) dt+\int_{t1}^{t2}\left (\frac{\partial L}{\partial \dot q}\dot \eta\right) dt $$

对第二项使用分部积分

$$ \delta S =\int_{t1}^{t2}\left(\frac{\partial L}{\partial q}\eta\right) dt+\left .\frac{\partial L}{\partial\dot q} \eta \right |_{t_1}^{t_2}-\int_{t1}^{t2}\frac{d}{dt}\left(\frac{\partial L}{\partial\dot q}\right)\eta dt $$

由于 $ \eta (t_1)=\eta (t_2)=0$ 所以第二项等于零

$$ \delta S =\int_{t1}^{t2}\left(\frac{\partial L}{\partial q}-\frac{d}{dt}\left (\frac{\partial L}{\partial\dot q}\right)\right)\eta dt $$

根据最小最用量原理 最用量的一阶变分为0,由于微小扰动不能为0值函数(不然就相当于没有扰动),所以必须是

$$ \frac{\partial L}{\partial q}-\frac{d}{dt}\left (\frac{\partial L}{\partial\dot q}\right)=0 $$

这就是欧拉-拉格朗日方程

对于 $s$ 个自由度的系统,在最小作用量原理中有 $s$ 个不同的函数 $ q_i(t)$ 所以我们会得到 $s$ 个欧拉-拉格朗日方程:

$$ \frac{\partial L}{\partial q_i}-\frac{d}{dt}\left (\frac{\partial L}{\partial\dot q_i}\right)=0\quad (i=1,2,\ldots,s) $$

碰撞约束

在碰撞分离阶段除了使用碰撞法线直接分离物体之外,还有一种广泛用于各大刚体模拟引擎中的方法——碰撞约束。使用碰撞约束可以更加优雅的分离物体。

通过之前《物理引擎中的约束》这篇文章我们了解到我们只需要写出我们需要的约束方程,然后找出Jacobian矩阵就可以通过之前那篇文章最后导出的公式求解冲量了。接下来我们将介绍解释碰撞约束的约束方程和推导Jacobian矩阵。

碰撞约束的约束方程

假设物体A与物体B发生碰撞

想一想我们需要什么效果,我们希望物体A与物体B满足分离状态,我们需要使用符号表示出这个状态。这里再次给出约束方程的含义:约束方程是用于描述一个系统中各部件之间相对运动限制的数学表达式。通过这些方程,我们可以定义哪些运动是允许的,哪些是被禁止的。即当方程中的参数满足约束方程我们就不必调整物体状态,否则我们需要调整物体状态。

所以我们可以这么定义碰撞约束的位置约束方程

$$ C = (\mathbf{P}_a-\mathbf{P}_b)\cdot\mathbf{n}\ge0 $$

这个方程表示两点在法向方向上不能穿透(距离 ≥ 0),但可以分离(距离 > 0)或者接触(距离=0)。还可以这么理解当两个物体穿透的时候$$\mathbf{P}_a-\mathbf{P}_b$$与法线的点积小于0(不满足约束方程)剩下的情况( ≥ 0)就是满足约束的情况了。

找到约束方程后我们还需要找到Jacobian矩阵

Jacobian矩阵

还记得我们《物理引擎中的约束》中提到的我们找到位置约束方程后,我们还需要对时间求导,得到速度约束方程。

对上面得到的碰撞约束方程对时间求一阶导数得到速度约束方程

$$ \dot{C} = \mathbf{n}\cdot\frac{d}{dt}\mathbf{P}_a- \mathbf{n}\cdot\frac{d}{dt}\mathbf{P}_b $$

  • $ \frac{d}{dt}\mathbf{P}_a$就是碰撞点a的速度
  • $ \frac{d}{dt}\mathbf{P}_b$就是碰撞点b的速度

容易得到点a的速度为

$$ \frac{d}{dt}\mathbf{P}_a=\mathbf{v}_a+(\omega_a\times\mathbf{r}_a) $$

容易得到点b的速度为

$$ \frac{d}{dt}\mathbf{P}_b=\mathbf{v}_b+(\omega_b\times\mathbf{r}_b) $$

带入速度约束方程化简有

$$ \dot{C} = \mathbf{n}\cdot\mathbf{v}_a+\omega_a\cdot(\mathbf{r}_a\times\mathbf{n})-\mathbf{n}\cdot\mathbf{v}_b-\omega_b\cdot(\mathbf{r}_b\times\mathbf{n}) $$

我们将其写成矩阵的形式

$$ \dot{C} = \begin{bmatrix} \mathbf{n} & \mathbf{r}_a\times\mathbf{n} & -n &-\mathbf{r}_b\times\mathbf{n} \end{bmatrix}\begin{bmatrix} \mathbf{v}_a \\ \omega_a\\ \mathbf{v}_b \\ \omega_b \end{bmatrix} $$

其中Jacobian就是

$$ J=\begin{bmatrix} \mathbf{n} & \mathbf{r}_a\times\mathbf{n} & -n &-\mathbf{r}_b\times\mathbf{n} \end{bmatrix} $$

注:Jacobian是我们最后应用不同物体冲量的方向例如

a->ApplyImpulseLinear(Vec2(Jacobian[0]*lambda, Jacobian[1]*lambda)); 
a->ApplyImpulseAngular(Jacobian[2]*lambda);                   
b->ApplyImpulseLinear(Vec2(Jacobian[3]*lambda, Jacobian[4]*lambda)); b->ApplyImpulseAngular(Jacobian[5]*lambda);           

求解冲量大小

根据我们的《物理引擎中的约束》最后的得到的方程我们可以解出冲量

$$ \lambda = -(JM^{-1}J^{T})^{-1}(JV) $$

带bias系数的形式

$$ \lambda = -(JM^{-1}J^{T})^{-1}(JV+b) $$

其中V为

$$ V=\begin{bmatrix} v_{ax} \\ v_{ay}\\ \omega_a\\ v_{bx} \\ v_{by} \\ \omega_b \end{bmatrix} $$

M的逆为

$$ M^{-1} = \begin{bmatrix} \frac{1}{m_a} & & & & & \\ & \frac{1}{m_a} & & & & \\ & & \frac{1}{I_a} & & & \\ & & & \frac{1}{m_b} & & \\ & & & & \frac{1}{m_b} & \\ & & & & &\frac{1}{I_b} \end{bmatrix} $$

JV是一个数,$JM^{-1}J^{T}$也是一个数,所以求出来$\lambda$也是一个数我们的公式是正确的

注:这里可以使用高斯-赛德尔(Gauss-Seidel)方法求解线性方程组

Baumgarte 稳定性方法(Baumgarte Stabilization Method) 是一种常用于刚体动力学中处理约束系统稳定性的数值方法,特别是在使用Lagrange 乘子法求解带有约束的系统时。它的主要目标是防止数值积分过程中因误差累积导致的约束漂移(constraint drift)问题。

如果不使用 Baumgarte 稳定性方法 直接应用碰撞约束求解出来的冲量可能会导致在数值积分中由于舍入误差或逼近误差,约束无法完全维持。最后导致系统状态随时间逐渐“漂移”出满足约束的区域。

Baumgarte 稳定性方法核心思想

Baumgarte 方法通过引入一个微分项来“惩罚”偏离约束的行为,从而稳定系统。

在碰撞约束中我们一般使用

$$ \dot C = JV = 0 $$

表示一个速度约束方程

利用 Baumgarte 修正,构造一个新的方程:

$$ \dot C = JV + b = 0 $$

其中

$$ b = \frac{\beta}{\Delta t}C $$

  • $\Delta t为时间步长$
  • $\beta$是一个系数,可以跟据你需要的修正速度调整,大小在0到1之间,越大修正的越快

这一项我们通常叫做bias系数

引入bias系数后我们约束求解的冲量结果为

$$ \vec {\lambda}_{imp} = (JM^{-1}J^T)^{-1}-(JV_0+b) $$

优点

  • 简单易实现,只需对加速度约束项做改写。
  • 适用于显式或半隐式积分方法。
  • 可用于任意类型的约束系统(位置、速度等)。

缺点

  • 参数选择敏感。若 $\beta$ 选得不合适,可能导致系统刚性太强或振荡。
  • 并不是完全消除漂移,而是“压制”它;如果时间步过大仍可能不稳定。

碰撞响应

​ 在游戏物理引擎中两个物体在碰撞检测阶段结束后一般下一阶段就是要处理碰撞了,也就是碰撞处理阶段,碰撞处理阶段可以细分成两个阶段,先是经过分离阶段,再就是碰撞响应了。

1

​ 碰撞响应要处理的就是如何实现类似现实世界中的弹性碰撞效果,对此我们需要更新物体碰撞后的运动状态,使得物体的运动状态与现实世界的相似。

传统冲量法

​ 还记得我们高中学习物理是怎么解决这类碰撞问题的吗?我们通常使用动量定理那一套方法,所以在这里我们还是使用这套方法来处理。

通过碰撞检测,我们可以得到以下信息:

  • 碰撞点位置:$\mathbf{p}_a,\mathbf{p}_b$
  • 碰撞法线:$\mathbf{n}$
  • 穿透深度:$depth$

并且我们还具有物体此时物体的动力学状态。

  • 质心位置:$\mathbf{p}_A,\mathbf{p}_B$
  • 线速度:$\mathbf{v}_{Alinear},\mathbf{v}_{Blinear}$
  • 角速度:$\mathbf{\omega}_A,\mathbf{\omega}_B$
  • 质量:$\mathbf{m}_A,\mathbf{m}_B$
  • 转动惯量:$\mathbf{I}_A,\mathbf{I}_B$
  • 恢复系数:$e$

如果我们能计算出碰撞时的冲量,那么我们就可以通过冲量来改变速度而达成目的。

令A,B的广义速度为

$$ \mathbf v_A =\mathbf{v}_{Alinear}+\mathbf{\omega}_A\times{\mathbf{r_a}}\\ \mathbf v_B =\mathbf{v}_{Blinear}+\mathbf{\omega}_B\times{\mathbf{r_b}} $$

其中

$$ \mathbf{r_a}=\mathbf{p_a}-\mathbf{p_A}\\ \mathbf{r_b}=\mathbf{p_b}-\mathbf{p_B} $$

根据动量定理以及角动量定理有

$$ J_A \mathbf n= m_A\mathbf{v}^{'}_{Alinear}-m_A\mathbf{v}_{Alinear} \\ $$

$$ J_B\mathbf n = m_B\mathbf{v}^{'}_{Blinear}-m_B\mathbf{v}_{Blinear} \\ $$

$$ J_A\mathbf n\times{\mathbf r_a} = I_A\mathbf{\omega}^{'}_{A}-I_A\mathbf{\omega}_{A} \\ $$

$$ J_B\mathbf n\times{\mathbf r_b} = I_B\mathbf{\omega}^{'}_{B}-I_B\mathbf{\omega}_{B} $$

由牛顿第三定律可知

$$ J_A = - J_B $$

$$ J = J_A = -J_B $$

则碰撞后的广义速度为

$$ \mathbf v_A^{'} =\mathbf{v}^{'}_{Alinear}+\mathbf{\omega}_A^{'}\times{\mathbf{r_a}} \\ $$

$$ \mathbf v_B ^{'}=\mathbf{v}^{'}_{Blinear}+\mathbf{\omega}_B^{'}\times{\mathbf{r_b}} $$

联立动量定理、牛顿第三定律、碰撞后的广义速度可得

$$ \mathbf v_A^{'} =\mathbf{v}_{A}+\frac{J\mathbf{n}}{m_A}+(\mathbf I_A^{-1}(J\mathbf{n\times{r_a}}))\times \mathbf{r_a} \\ $$

$$ \mathbf v_B^{'} =\mathbf{v}_{B}-\frac{J\mathbf{n}}{m_B}-(\mathbf I_B^{-1}(J\mathbf{n\times{r_b}}))\times \mathbf{r_b} $$

由于

$$ e = \frac{(\mathbf v_A^{'} -\mathbf v_B^{'})\cdot\mathbf n}{(\mathbf v_B -\mathbf v_A)\cdot\mathbf n} \\ $$

$$ (\mathbf v_A^{'} -\mathbf v_B^{'})\cdot\mathbf n = -e({\mathbf v_A -\mathbf v_B})\cdot\mathbf n $$

将碰撞后的广义速度两式子相减带入恢复系数的式子中有

$$ (\frac{J\mathbf n}{m_A}+\frac{J\mathbf n}{m_B}+(\mathbf{I}_A^{-1}(J\mathbf n\times{\mathbf r_a}))\times{\mathbf r_a}+(\mathbf{I}_B^{-1}(J\mathbf n\times{\mathbf r_b}))\times{ \mathbf r_b})\cdot\mathbf n=-(1+e)(\mathbf{v}_a-\mathbf{v}_b)\cdot\mathbf n $$

由于我们只改变碰撞法线方向上的冲量所以我们在两边点乘上碰撞法线即可,然后化简得到

$$ J = \frac{-(1+e)(\mathbf{v}_A-\mathbf v_B)\cdot{\mathbf{n}}}{\frac{1}{m_A}+\frac{1}{m_B}+\mathbf{n}\cdot((\mathbf{I}_A^{-1}(\mathbf {r_a}\times {\mathbf{n}}))\times{\mathbf r_a}+(\mathbf{I}_B^{-1}(\mathbf {\mathbf r_b}\times {\mathbf{n}}))\times{\mathbf r_b})} $$

注:需要用到混合积(标量三重积)

特别的,在二维情况下

$$ J = \frac{-(1+e)(\mathbf{v}_A-\mathbf v_B)\cdot{\mathbf{n}}}{\frac{1}{m_A}+\frac{1}{m_B}+\mathbf{n}\cdot(\frac{(\mathbf {r_a}\times {\mathbf{n}})^2}{I_A}+\frac{(\mathbf {r_b}\times {\mathbf{n}})^2}{I_B})} $$

摩擦力效果

​ 要实现摩擦力的效果需要将上公式中的 $\mathbf n$ 全部替换为$\mathbf n$的正交单位向量即可

碰撞约束的响应(弹性碰撞)

​ 在碰撞约束完成后物体不会穿透其他物体,但是也不会发生弹性碰撞,所以我们在碰撞约束中的Baumgarte稳定性方法系数bias上加上 $e(\mathbf v_A-\mathbf v_B)\cdot \mathbf n$ 即可

即bias为

$$ b = \frac{\beta}{\Delta t}C+e(\mathbf v_A-\mathbf v_B)\cdot \mathbf n $$

摩擦力效果

​ 要实现摩擦力的效果需要将上约束方程中的 $\mathbf n$ 全部替换为$\mathbf n$的正交单位向量即可

引用

https://math.stackexchange.com/questions/4501575/full-derivation-of-impulse-formula-for-collision-response

欧姆定律

通过某段导体的电流和这段导体两端电压成正比,跟它的电阻成反比(适用于纯电阻电路)

$$ R=\frac{U}{I} $$

数电压法

电流通过用电器时会导致电压降,经过电源时会导致电压升(其实没有这个概念)

单的说,负载两端的电势差就可以认为是电压降,电压降是电流流动的推动力。如果没有电压降,也就不存在电流的流动。

1

求ab两端的电压也就是求ab的电势差U ab可通过数电压法计算

当数电压方向与电流方向一致时电势降低为正号,电势升高为负号。当数电压方向与电流方向相反时电势降低为负号,电势升高为正号。

$$ U_{ab}=I_1(r_1+R_1)+E_1-I_2(R_2+r_2)-E_2+I_3R_3 $$

基尔霍夫定律

  1. 基尔霍夫第一定律(KCL):是电路中任一个节点上,在任一时刻,流入节点的电流与流出节点的电流之和为零,一般选定流入为正流出为负。以方程表达,对于电路的任意节点满足:

    $$ \sum_{k=1}^{n} i_k=0 $$

    其中,ik是第 k 个进入或离开这节点的电流,是流过与这节点相连接的第 k 个支路的电流。

    例如

    2

    $$ I_1=I_2+I_3 $$

    对于一个闭合回路可以看成一个大节点

    3

    $$ I_1=I_4+I_3① $$

    $$ I_6=I_5+I_4② $$

    $$ I_3=I_5+I_7③ $$

    $$ I_2=I_6+I_7④ $$

    联立①②③④得

    $$ I_1=I_2 $$

  2. 基尔霍夫第二定律(KVL):沿着闭合回路所有元件两端的电势差(电压)的代数和等于零。以方程表达,对于电路任意回路满足:

    $$ \sum_{k=1}^{m} V_k=0 $$

    其中,m 是这闭合回路的元件数目, Vk是元件两端的电压.

    基尔霍夫电压定律不仅应用于闭合回路,也可以把它推广应用于回路的部分电路(后面会提到)

    • 应用

    在使用KVL时,先设定浏览整个电路的绕行方向,在看电流方向,如果在电流方向未知时可设出电流方向,电流满足KCL,解出方程后若电流的方向为正,则与设定的电流方向一致,若为负则此电流的方向与设定的电流方向相反。再沿绕行方向写电压,写电压规则与数电压法一致。

    4

    列出KVL方程

    $$ IR+Ir-E=0 $$

    简化电路法

    要点:1)同一根导线上电势相等,2)把电流表看成一根导线,电压表看成断路。

    5

如图,红色都为同一根导线,蓝色也为同一根导线。所以设红导线上的电势为a,设蓝导线上的电势为b。则R1,R2,R3,电源两端的电势都相同。则它们4个并联

6

等效电源法

等效电压源定理(戴维宁定理):

两端有源网络可以等效为一个电压源,其电动势等与网络开路时的路段电压,内阻等于网络从开路看除源(将电动势短路,内阻仍然保留在网络中)网络的电路。

7

8

如图R1=10欧,R2=19欧,R3=4.5欧,R4=5欧,r1=0.5欧,r2=1欧,求通过R1的电流I

第一步把R1拿掉,第二步算电压源电动势与内阻,第三步简化电路,第四步计算9

Uab就是我们要求的等效电压源的电动势,设电流方向,这里设的是与下面那个绕行方向是一致的。写出KVL方程

$$ E_2+I(R_2+R_4+R_3+r_2+r_1)-E_1=0 $$

电路上方是个开路按理来说是不能用KVL的,但是断路那里有压降,且压降与下面的电路有关则还是可以用KVL的(其实有点强行解释若有知道正确解释的,请各位大佬在评论区指出)。

$$ U_{ab}-I(R_2+r_2)-E_2=0 $$

联立解得

$$ U_{ab}=\frac{7}{3}V $$

还有R0内阻

我们把图9中的电源看成一根导线,从开路方向看去

$$ R_0=\frac{(R_4+r_2)(R_3+r_1+R_2)}{R_4+r_2+R_3+r_1+R_2} $$

简化电路

10

利用欧姆定律解得

$$ I=\frac{U_{ab}}{R_1+R_0}=0.14A $$

等效电流源定理(诺顿定理):

两端有源网络可等效为一个电流源,电流源的电流等于网络两端断路时流经两端点的电流,内阻等于从网络两端看除源网络的电阻。

11

还是用图8那个例子。

第一步把R1拿掉并接上导线,第二步算电压源电动势与内阻,第三步简化电路,第四步计算

12

直接按照KVL列方程

$$ \left\{\begin{matrix}I_1R_2+I_1r_2-E_2=0 \\I_2(R_4+R_3+r_1)-E_1+E_2-I_1(R_2+r_2)=0 \\ I_0=I_1+I_2 \end{matrix}\right. $$

解得

$$ I_0=\frac{7}{20}A $$

电源看成一根导线,从短路方向看去

$$ R_0=\frac{(R_4+r_2)(R_3+r_1+R_2)}{R_4+r_2+R_3+r_1+R_2} $$

简化电路

13

利用并联分流公式有

$$ I=I_0\frac{R_0}{R_0+R_1}=0.14A $$

叠加定理

若电路中有多个电源,则通过电路中任意一条支路的电流等于各个电动势单独存在时在该支路产生的电流之和

还是以图8为例,用叠加定理求R1电流I

根据叠加定理有

14

15

先对图14分析,设图14通过R1的电流为I1

$$ I_1=\frac{E_1\frac{r_2+R_2}{R_1+r_2+R_2}}{(r_1+R_4+R_3)+\frac{R_1(r_2+R_2)}{R_1+r_2+R_2}}=\frac{6}{50}A $$

对图15分析,设图15通过R1的电流为I2

$$ I_2=\frac{E_2\frac{R_3+r_1+R_4}{R_1+R_3+r_1+R_4}}{R_2+r_2+\frac{R_1(R_3+r_1+R_4)}{R_1+R_3+r_1+R_4}}=\frac{1}{50}A $$

再有

$$ I=I_1+I_2=0.14A $$

类型一:一部分与其他用电器并联一部分位于干路上

设R1=h,R2=c,R1与R2并联的部分设为b,R1位于干路部分设为a

我们可以列出以下方程

$$ a+b=h $$

$$ R_总=\frac{bc}{b+c} + h-b=\frac{-b^2+bh+hc}{b+c} =\frac{-b^2}{b+c}+h $$

这里R总可以看为b关于f(b)的函数及

$$ f(b)=\frac{-b^2}{b+c}+h ,(0\le b\le h) $$

画出图像可知随着滑动变阻器并联的部分越多,总电阻越小。即在此情况下并联部分与总电阻成反比

此图刻度并不代表真实刻度,这里h=5

若没有画图软件可自行求导画图

类型二:两部分分别并联在不同支路上

设R1=a,R2=b,R3=c,R3中与R1并联的部分RL设为d,R3中与R3并联的部分RR设为e

我们可以列出以下方程

$$ d+e=c $$

$$ d=kc $$

$$ R_总=\frac{(a+d)(b+e)}{a+b+c}=\frac{(a+kc)(b+c(1-k))}{a+b+c} $$

$$ R_总=-\frac{c^2}{a+b+c}k^2+(\frac{cb-ac+c^2}{a+b+c} ) k+\frac{ac+ab}{a+b+c} $$

同样这里R总可以看为k关于f(k)的函数及

$$ f(k)=Ak^2+Bk+C(0\le k \le 1 ) $$

其中

$$ A=-\frac{c^2}{a+b+c},B=\frac{cb-ac+c^2}{a+b+c},C=\frac{ac+ab}{a+b+c} $$

当k=0时有

$$ R_总=\frac{a(c+b)}{a+b+c} $$

当k=1时有

$$ R_总=\frac{b(c+a)}{a+b+c} $$

$$ k=\frac{b-a+c}{2c} $$

时R总有最大值,怎么判断R总最大时k是否位于定义域中

我们进行如下变形

$$ k=\frac{b-a}{2c}+\frac{1}{2} $$

所以我们只需要知道什么情况下满足以下不等式就行

$$ -\frac{1}{2} \le \frac{b-a}{2c}\le \frac{1}{2} $$

解得

$$ c\ge \left | a-b \right | $$

即满足以上不等式R有极大值

可推得以下结论

$$ b-a+c=2kc $$

$$ b-a+d+e=2d $$

$$ d+a=e+b $$

$$ R_L+R_1=R_R+R_2 $$

若不满足则当k=1时R总最大

或者令

$$ d=(1-k)c $$

时k=0时取得R总最大

即滑动变阻器拉满时R总最大