本帖最后由 冀·闲庭信步 于 2019-9-14 16:31 编辑
继2019-05-19发表了“超简洁且效果还不错的循线算法(https://bbs.cmnxt.com/forum.php? ... 9795&extra=page%3D1)”后,对其速度一直不甚满意。
经近几个月的思考、分析和验证,今天可以发布了。
请看下图:
平方函数与反比例函数的完美组合
基于平方循线算法的自动变速循线思路,转向值为:偏差*|偏差|*转向系数;此处利用平方函数的特性,偏差比较小时,弱化偏差,以减小搬动;而当偏差比较大(遇到急弯)时,函数值迅速增加,以加大转向力度。
需要变速吗?
开车遇转弯时需要减速,此乃常识也。
如何实现变速呢?想一下,反比例函数吧。
看上图中的红色曲线,当偏差比较小时,功率是满功率(100),而当偏差比较大时,功率得以迅速地衰减,从而避免在弯道处脱轨(加大转向值的同时辅以慢速通过)。
程序如下图:
RSC(反比例变速——Reverse speed change)
程序中的Two AM是自动测光模块,Left是左眼(端口1)读取反光值并做标准化处理,输出左眼的标准化(0——100)反光值。
本算法只有两个参数:功率系数(2500为基准)和转向系数(0.04为基准)。
当我完成验证之后,为其循线姿态所惊讶,可以说其姿态不输于PID,但操作难度仅仅为PID算法的N分之一吧。
好东西(原计划等我家的小外孙出生再发布的,太好了,不忍心秘而不发),就应该分享出来。
如有雷同,敬请指出。
根据速度控制的方法本算法命名为:RSC(反比例变速——Reverse speed change) 。
此段程序仅为基本算法而已,欢迎各位批评指正。
|