一步一步正向推导Skyhook天棚阻尼控制原理

在半主动悬架控制理论中,最经典最广泛应用的Skyhook天棚阻尼控制为如下基本形式:
一步一步正向推导Skyhook天棚阻尼控制原理-有驾
这是最简单的开关式(on-off)天棚阻尼控制,通过判断簧上质量的垂向速度和减振器行程速度的方向符号,来决定可控阻尼减振器的阻尼系数。控制框图如下,车身加速度、悬架动挠度、车轮动载荷等信息在仿真和测试中用于评价控制效果。
一步一步正向推导Skyhook天棚阻尼控制原理-有驾
我们在之前的文章《风拂峰上枫:开关式半主动悬架天棚(Skyhook)阻尼控制及ADAMS&MATLAB联合仿真》中针对这种开关式天棚阻尼控制方式,从悬架垂向运动经验的角度,分析了在天棚阻尼控制下的悬架工作状态和具体控制效果,并做了简单的仿真。
一步一步正向推导Skyhook天棚阻尼控制原理-有驾
其实,如果仅作为应用,到这一步已经可以说对天棚阻尼控制有了基本的理解,在工程和科研工作中完全可以在此基础上向前进一步探索,比如再向前一小步,开关式控制进化为连续阻尼控制,这一小步很多文献都有讲解,也不是很复杂,比如教科书《汽车原理》中就有简单介绍。但是我这人有点一根筋,再继续往前探索之前,仍有一个问题不搞清楚不行,就想倒退一小步,把天棚阻尼控制背后的原理搞清楚,一个核心的问题——为什么要用车身垂向速度和车轮相对于车身的垂向速度符号,即v_2(v_2-v_1),来作为阻尼控制的依据?上篇文章似乎从经验的角度解释了这个问题,但总觉得不够充分,也没有找到相关文献从正向来说清这件事。所以本人斗胆,在苦思冥想之下,试图从正向推导这个已经成熟应用几十年的控制方法,过程不长,但这事儿,也得从头说起。
所谓从头说起,也不想废话太多,天棚阻尼控制的构想有太多清晰的介绍,一切就从下面这个理想Skyhook和实际可调阻尼的转化说起。本文目标,不要太跳跃,一步一步,把天棚阻尼控制的最终形式推导出来,如能让新入坑者有一种豁然开朗的感觉,就深感荣幸了。
一步一步正向推导Skyhook天棚阻尼控制原理-有驾
理想天棚阻尼控制到实际阻尼控制的转换是指虚拟的天棚阻尼系数c_{sky}到实际可控阻尼系数C的转换。真实控制中,就是对可控阻尼系数C的连续可调。牢记在心Skyhook是针对车身的控制策略,所以虽然运动微分方程中同时写出了车轮的部分,但为了不干扰,只需留意如下两个等式是等效的。
既然两式等效,就意味着C(ż_2-ż_1)=c_{sky}ż_2,从而,就得到了Skyhook的雏形:
有了阻尼系数,就可以很方便的得到实时的阻尼力:DF=C(ż_2-ż_1)=c_{sky}ż_2,这也是各种文献中常见的Skyhook写法。而c_{sky},只是一个预先设定的固定参数,可以是可调阻尼减振器的上限阻尼系数C_{max},也可以是它乘以一个标定过的比例系数,一旦经过标定确认,算法中不会再有变化。所谓的连续阻尼可调,是因为ż_1和ż_2车身和车轮的速度是随时间变化的,那么得到的可控阻尼系数C也便是随时间连续变化的值了。归纳来说,c_{sky}是标定参数,C才是连续可调阻尼系数。
得到了Skyhook的雏形,还缺少它生存的逻辑。我们知道,力,是一种矢量,有正负之分,阻尼力也不例外。减振器阻尼力的正负,完全是由行程速度的正负决定的,而阻尼系数,作为半主动悬架永远为正,或者说是个标量,并无正负之分。
一步一步正向推导Skyhook天棚阻尼控制原理-有驾
也就是说,DF=C(ż_2-ż_1)中可控阻尼系数C不可能为负值。然而我们再观察一下这个可调阻尼系数的算式:
c_{sky}是一个可标定的符号为正的固定值,控制开发中一旦确定,并不会实时变化,但ż_1和ż_2作为车身和车轮的速度标量,必然会把符号运算带给可控阻尼系数C,如果放任不管,那么C一定会出现负值的情况,这就违背了物理定律——算法请求减振器提供负的阻尼系数,可是减振器做不到……
那怎么办?既然减振器做不到负的阻尼系数,那只能提供最小阻尼了,不是主动悬架,这真的是尽力了。也就是说当控制算法请求负阻尼系数时,减振器直接提供最小阻尼系数,即:
一步一步正向推导Skyhook天棚阻尼控制原理-有驾
既然如此,C_{min}要尽量小,如果能达到0,当然最好了,但任何一种液压阻尼可调减振器,阻尼系数都不可能做到0,是有下边界C_{min}的。当然,既然有下边界,也一定会有上边界C_{max},这也是减振器固件限制,因此当算法请求阻尼系数为正的时候,如果C=(c_{sky}ż_2)/(ż_2-ż_1)计算得到的值小于C_{min},超出减振器可控阻尼下边界,则限制阻尼系数为C_{min};如果C=(c_{sky}ż_2)/(ż_2-ż_1)计算得到的值大于C_{max},超出减振器可控阻尼上边界(设想车身车轮速度相同的情况),则需要限制阻尼系数为C_{max}。这里的上下边界,是由减振器固件本身能力决定的,而实际在开发工作中,会对上下边界进行重新标定,也就是说未必会使用减振器的最大上下边界。对上下边界的标定,可以实现多种模式的Skyhook控制效果,如车机可选的Comfort、Normal、Sport三种最基本的悬架模式,便是三种不同的Skyhook控制的标定结果,甚至可以做到车速自适应或载重自适应的Skyhook等等应用方案,就不细说了。
那么,对于可控阻尼系数上下边界的标定,就是对控制算法施加了一个饱和运算:
一步一步正向推导Skyhook天棚阻尼控制原理-有驾
到这里,Skyhook已经接近最终形态了,还有一丢丢的小Bug。注意到对阻尼系数算法符号的判断逻辑,使用的是ż_2/(ż_2-ż_1)大于0还是小于0。这是一个除法运算,要用这个运算来判断正负,我们人工来进行正负判断时,只需要大概算算很快就可以得到想要的结果了,可是这个正负判断需要计算机来搞定,现在计算机还没智能到这个地步,我们给一个除法运算来判断正负,计算机会怎么办?它真的会把这个运算做完得到精确的数值,如果恰好得到一个无穷数,那么计算机将发挥最大算力告诉你结果,如果恰好车身车轮等速,分母为零,这BUG……所以,用除法运算来判断正负,既不高效,又会出BUG。而乘法运算就不会有这个问题了,首先不可能有运算BUG,其次计算结果精度取决于参与运算的数值的精度,对控制器不会有负担,因此,判断正负的方式改为ż_2(ż_2-ż_1),也就是v_2(v_2-v_1)。
一步一步正向推导Skyhook天棚阻尼控制原理-有驾
Congratulations!Skyhook天棚阻尼控制的最终形态诞生了,后面的大家可以自行发挥了,希望能帮到跟我一样有过困惑的人。在最后,延伸几个小tips。
本文同发于微信公众号:模态空间
0

全部评论 (0)

暂无评论