智能车竞赛中的气垫船运动建模与控制分析
智能车竞赛中的气垫船运动建模与控制分析
在智能车竞赛中,气垫船的运动控制是一个复杂而精细的技术挑战。本文将从物理学原理出发,深入分析气垫船在弯道行驶时的力的平衡问题,并探讨如何通过传感器测量和控制实现精准转向。
船体转向的理论分析
考虑气垫船沿曲线行驶的情况,假设某一时刻船体的前进速度为v vv,此时船体的运动轨迹对应的曲率半径大小为r rr,则可以计算得到此时船体做圆周运动所需的向心力大小:
F = m v 2 r F = m\frac{v^2}{r}F=mrv2
如果此时船体所受到的侧向方向的力与船体做圆周运动所需的向心力不一致,则严格来说船体的运动并不是圆周运动,而是离心运动(实际受力小于所需向心力)或者向心运动,这种情况下船体的运动半径是在不断变化的,可能会对船体的转向控制带来一定的困难。
实际上,由于气垫船本身的特性,其底部的气垫通常会导致船体受赛道的摩擦力减小。为弥补这个缺陷,许多气垫船模在左右两侧各安装了一个电动旋翼以提供侧向推力,主要用来维持船体转向时姿态的稳定。通过简单分析可以发现,船体在弯道处的速度上限很大程度上取决于船体在侧向方向上所能获得的摩擦力和推力大小,保持一定的摩擦力对于维持船体姿态的稳定能够起到一些作用。
相比于常规的四轮车模,气垫船在转向时对于“向心力”的要求明显更高。当气垫船以较高速度前进并转向时,经常出现冲出赛道的情况,这主要是因为船体的实际受力不足以提供船体转向所需的向心力而开始做离心运动。在理想情况下,船体应该尽量避免做离心运动(和向心运动),保证船体运动始终在“可控”的状态,这就要求船体的受力情况需要满足船体转向时对向心力的需求,关键在于如何控制船体两侧的电动旋翼提供向心力。
以比赛中常用的一类气垫船模为例,其受到左右两侧方向的力的来源主要包括两侧的电动旋翼(无刷或有刷电机),以及船底与赛道的摩擦力。假设某一时刻船体以速度v vv做半径为r rr的圆周运动,根据圆周运动的向心力计算公式:
F m + f = m v 2 r = m v ω F_m + f = m\frac{v^2}{r} = mv\omegaFm +f=mrv2 =mvω
其中F m F_mFm 表示两侧无刷电机提供的推力,f ff表示船体受到的摩擦力(摩擦力的方向指向圆心),m mm为船体质量,v vv表示船体运动的线速度,ω \omegaω表示船体运动的角速度,r rr为船体圆周运动的半径大小。
由于船体所受的摩擦力主要来自船体底部与赛道的摩擦,设摩擦系数大小为μ \muμ(这里的摩擦系数综合考虑了底部气垫对船体的抬升作用),则摩擦力可计算为:
f = μ m g f = \mu mgf=μmg
因而可以得到此时船体需要无刷电机提供的侧向推力大小为:
F m = m v ω − f = m ( v ω − μ g ) \begin{aligned} F_m &= mv\omega - f \ &= m(v\omega - \mu g) \end{aligned}Fm =mvω−f=m(vω−μg)
因此可以得出结论:在上述情况下,侧向无刷电机需要提供的推力大小与船体线速度和角速度的乘积呈线性关系。假设所用无刷电机(包括电调)的输入信号与输出的推力大小是线性变化的(成正比关系),并且在运动过程中摩擦系数μ \muμ变化不大的情况下(可以近似认为是常数),那么侧向无刷电机的输入信号可以计算为:
S i g n a l = m ( v ω − C ) Signal = m(v\omega - C)Signal=m(vω−C)
其中C CC是一个常数,通常难以测量直接得到,因此在实际应用中需要通过调试得到合适的参数值。
船体线速度和角速度的测量
为了获得上面式子中v ω v\omegavω的值,我们需要使用传感器来测量一些数据。测量船体前进的线速度通常可以使用编码器,可以安装在船体后方(或者前方)。
测量角速度最容易想到的传感器自然是陀螺仪。在上面的讨论中,我们需要测量的量实际上是船体做圆周运动的角速度,而不是船体转向的角速度。但是通过下面的分析可以发现,这两个量其实是相同的(陀螺仪测量得到的实际上应该是是船体的转向角速度),只需要一些基本的几何知识即可证明。
下面这张草图展示了船体做圆周运动的过程,在前后两个状态中,船体前进方向的角度变化了θ \thetaθ。由于在任一点上船体前进方向和船体与圆心的连线是垂直的,可以很容易计算得到这一过程中船体围绕圆心运动的角度大小也是θ \thetaθ。也就是说,在船体做圆周运动的过程中,船体的转向角度始终等于船体围绕圆心运动的角度,因此船体的转向角速度始终等于船体做圆周运动的角速度,所以用陀螺仪测量得到的(转向)角速度在数值上也等于船体做圆周运动的角速度。
(未完待续:关于转弯半径未知的问题)