ADRC控制轨迹跟踪实践记录

1. 跟踪效果分析

1.1. 无震荡,圆的半径在缩小

无震荡但线速度在减小

整体误差

从上述两幅图中,可以看出轨迹跟踪的误差在发散,但是角度的误差保持恒定,这对于轨迹跟踪的实际要求是无法接受的!

基础设定
  1. 针对过渡过程会使得响应变慢的问题,将过渡过程从控制器中剔除,直接对V1V2两个信号进行赋值,V1为目标点的(x,y,yaw),V2为轨迹对应的速度值(dx,dy,dr)
  2. 鉴于实际规划过程中,轨迹规划的起点是在机器人的当前位置,所以这里没有添加起始误差,而是直接将起始位置点放置在轨迹的初始位置上;如果加入初始误差,直接跟踪轨迹的航向角信号时,将无法正常跟上轨迹!
  3. 鉴于稳态误差过大,该测试没有添加任何干扰因素。
误差分析

实验轨迹是光滑的,且没有发生航向角的震荡问题,这也是我们期望的,但是稳态误差呈现发散的状态,这就让人无法接受啦!且经过长时间的运行检验,实验结果表明,运动半径在以一个微小的速度进行减小,运动角速度收敛为一个定值,纵向速度的衰减极小,且衰减趋势呈减小趋势,但是运动轨迹的偏移在变大,且每圈的偏移呈减小趋势。实际轨迹的航向角误差保持恒定,运动半径不断缩小的浅层原因,是由于恒定角速度跟踪正常,而由于线加速度的异常变化,导致恒定线速度跟踪无法收敛到指定的轨迹速度,甚至处于减小的情况。针对这种情况,起因可能是轨迹的线速度和角速度初值、初始的线速度和角速度误差、观测器带宽,控制器带宽、跟踪航向角和方位角的误差变化,亦或是线速度和角速度跟踪的跟踪快慢、优先问题等。故根据如上分析,做出如下控制调整:

  • 初始的线速度和角速度误差:修改之后,无任何变化;
  • 轨迹的角速度和线速度设定值:修改之后,无任何变化;
  • 角度观测器带宽和控制器带宽:两者单独修改之后,无任何变化;
  • 位置观测器带宽和控制器带宽:单独增加位置观测器带宽之后,初始位置误差得到一定的减小,但依然存在类似的向心衰减情况,速度减小;单独增加位置控制器带宽之后,初始位置误差离心脱离初始轨迹,表现出离心增大,速度增大;两者的带宽同时增加时,跟踪的稳态误差出现离心增大的情况,速度增加,表明控制器带宽的影响比重更大。所以通过适当地调节带宽应该能够较好地控制轨迹跟踪的稳态误差,但是误差总会是发散的,其误差的根本来源是追踪方位角和航向角之间的误差引起的;
  • 跟踪航向角和方位角的误差变化:根据1.2的相关结果可知,该因素确实影响了稳态误差,通过将跟踪航向角修改为跟踪方位角可以消除稳态误差的存在!所以在轨迹跟踪过程中,应该优先考虑跟踪方位角,而不是航向角。
  • 线速度和角速度跟踪的跟踪快慢、优先问题:单独调节两者的观测器和控制带宽确实能够影响到稳态误差的大小,这说明两者确实需要一个均衡问题,但是这样并不能从根本上解决轨迹跟踪的误差问题。

1.2. 震荡,圆的半径保持一致

线速度和角速度均在一定范围内震荡

整体误差

从上述两幅图中,可以看出轨迹跟踪的位置误差和角度误差保持在一定范围内,且呈现震荡,航向角时而向心,时而离心;更令人沮丧的是,机器人运动的线速度、角速度、线加速度和角加速度也在呈现震荡情况,这对于执行机构是没法接受的!

基础设定
  1. 针对过渡过程会使得响应变慢的问题,将过渡过程从控制器中剔除,直接对V1V2两个信号进行赋值,V1为目标点的(x,y,angle),但angle不是轨迹的航向角,而是当前到目标点的方位角,V2为轨迹对应的速度值(dx,dy,dr)
  2. 鉴于实际规划过程中,轨迹规划的起点是在机器人的当前位置,所以这里没有添加起始误差,而是直接将起始位置点放置在轨迹的初始位置上;如果加入初始误差,直接跟踪轨迹的方位角信号时,运行一段时间之后,机器人可以正常跟上轨迹!
  3. 鉴于稳态误差过大,该测试没有添加任何干扰因素。
误差分析

运动轨迹是存在过大的转折,运动呈现一种不连续的状态。其本质是由于跟踪信号中的方位角angle是震荡的,从而引发了实际运动轨迹的航向角也是处于一种震荡的状态,跟踪信号中的方位角angle发生震荡是由于角速度过快,离散的时间间隔过大,且观测器响应的带宽过小,控制器增益过小导致的。故对航向角控制器进行单独的如下调节:

  • 采样频率是由实际系统决定的,故离散的时间间隔无法进行调节;
  • 角速度减小能够有效地降低系统震荡的幅度,但没法降低震荡的频率,在一定程度上能够缓解这种情况,但是实际应用角速度不能过小,否则将无法满足实际的应用需求;
  • 角度观测器响应带宽增大,可以提高系统的响应速度和跟踪速度,提高控制的稳定性,但会导致控制器输出过大,不利于工程应用,且增大带宽会放大系统噪声。更重要的是,根据仿真结果可知,提高观测器的带宽,实际提升效果有限。
  • 角度控制器增益增大,能够有效地消除震荡,极大地降低系统震荡的频率和幅度,可以提高系统的响应速度和系统的跟踪能力,控制器增益过大会导致输出过大,不符合工程应用要求(,却是仿真效果最优方案)。而控制器增益减小,会延长系统稳定的时间和降低系统稳定能力,使得整体跟踪效果变差。

1.3. 震荡,圆的半径保持一致(采用跟踪微分器)

轨迹跟踪效果

跟踪误差

跟踪信号

实际效果

从上述几幅图中,可以看出轨迹跟踪的位置误差和角度误差保持在一定范围内,且呈现震荡,航向角时而向心,时而离心;更令人沮丧的是,机器人运动的线速度、角速度、线加速度和角加速度也在呈现震荡情况,这对于执行机构是没法接受的!

基础设定
  1. 本次设定与上述两次测试最大的不同,就在针对过渡过程会使得响应变慢的问题,选择了将过渡因子调大,设定为100,而不是将过渡过程从控制器中剔除,直接对V1信号进行赋值,V1为目标点的(x,y,angle),但angle不是轨迹的航向角,而是当前到目标点的方位角,V2信号由跟踪微分器产生;
  2. 鉴于实际规划过程中,轨迹规划的起点是在机器人的当前位置,所以这里没有添加起始误差,而是直接将起始位置点放置在轨迹的初始位置上;如果加入初始误差,直接跟踪轨迹的方位角信号时,运行一段时间之后,机器人可以正常跟上轨迹!
  3. 鉴于稳态误差过大,该测试没有添加任何干扰因素。
误差分析

其本质是跟踪信号的震荡引起的,有了之前两次测试的经验,这里只考虑跟踪微分器的过渡因子r0和角度控制器带宽wc的影响

  • 跟踪微分器响应因子r0:将角度的响应因子设定为100,结果还是存在震荡的情况,响应的速度可以微弱地影响震荡,效果不大,但是没法消除;
  • 角度控制器带宽wc:由于过渡过程的引入,导致控制器的带宽需要进一步加大,故当过渡因子设定为100时,带宽需要设定为6;而不存在过渡过程时,带宽只需要设定为5

2. 跟踪误差分析

TODO:针对不同轨迹的稳态误差情况进行分析和总结:
但是由于跟踪的轨迹是圆形,二阶导数时刻存在,因而效果有限。

你可能感兴趣的:(ADRC控制轨迹跟踪实践记录)