跟踪微分器

本文最后更新于:2023年10月21日 上午

跟踪微分器

  跟踪微分器(TD,Tracking-Differentiator)由韩京清研究员在《自抗扰控制技术》中提出,是自抗扰控制(ADRC,Active Disturbance Rejection Controller)的一个重要组成部分。跟踪微分器最常见的用途是安排过渡过程,但它作为一种微分器,同样也可以提取含噪信号的微分、配置系统零点、引入相角超前等。

  在开始学习跟踪微分器之前,有必要简要的介绍一下PID算法的主要缺点:

  1. 从PID的原理可以看出PID的稳定裕度是不小的,但其动态性能的裕度并不大。也就是说,如果被控对像处于一个动态变化的环境之中时,便需要经常改动PID的增益来达到控制效果;

  2. PID算法的核心是:基于误差反馈来消除误差,但有时这种方式并不是最合理的,在初始状态时,直接取这种误差,往往会使初始控制量太大而出现超调的现象,正是这个原因,导致PID算法控制的系统会有“快速性”与“超调”的矛盾;

  3. 在实际应用中,由于实际测量很少有比较合适的微分器,导致大部分的系统使用P控制,从而限制了PID的控制能力;

  上述描述中,有两个点比较重要,一个是由于初始误差较大而导致控制量大进而导致的超调问题,另一个是微分信号获取得不准确的问题导致PID中的微分项D没有发挥出应有的作用。而跟踪微分器便是一个解决这两个问题的一个较好的工具。

微分-跟踪器(tracking - differentiator, TD)灰信网

跟踪微分器(Tracking Differentiator,TD)_跟踪微分器原理-CSDN博客

【ADRC】跟踪微分器 - 知乎 (zhihu.com)

ADRC的理解(含效果视频) - 知乎 (zhihu.com)

非线性跟踪-微分器 仿真应用_非线性跟踪微分器-CSDN博客

自抗扰控制2— 跟踪微分器是怎么设计的 (zhihu.com)

【ADRC】一. 线性跟踪微分器 - 知乎 (zhihu.com)

ADRC学习|TD微分跟踪器(原理解析和Matlab实现)_跟踪微分器原理_David小伟同学的博客-CSDN博客

自抗扰控制ADRC之三种微分跟踪器TD仿真分析 (xjx100.cn)

自抗扰控制算法(一)— Simulink实现 - 知乎 (zhihu.com)

跟踪微分器滤波性能研究 - 中国知网 (cnki.net)

一、微分跟踪器的作用

  工程上信号的微分是难以得到的,所以本文采用微分器实现带有噪声的信号及其微分信号提取,从而实现无需量速度信号的控制。并且将会结合一般惯性控制对象,简单地用PID进行控制,即TD微分器+PID控制。

  与PID的缺点相对应,跟踪微分器的作用是提供两个信号:一个是目标点的过渡信号,一个是目标点过渡信号的微分信号。过渡信号的意思可以简单的理解为缓慢的向目标点靠近而不阶跃,不超调。即过渡信号可以理解为惯性环节,不超调,缓慢的向目标点生成一条曲线。

(1)经典微分器

  假如我们要提取一个信号的微分,最直接也是最简单的想法便是用差分计算,写成传递函数的形式就是一个纯微分环节 。这样做对一个理想的信号是没问题的,但一旦有一个噪声混在信号中,这个噪声便会微分环节放的非常大,使提取出来的原信号的微分失真。而现实系统中的信号普遍存在噪声,所以我们想要一种方式,可以既提取出原信号的微分,又不放大噪声。

  由于在现实中无法获得真正的微分,理想微分环节实际上难以实现(微分具有滞后),所以实际的微分环节是带有惯性环节的,因此我们常采用如下经典微分器,来获取微分信号。

  其中, 为原始信号, 为近似的微分信号。可以看到,其实经典微分器就是在一个纯微分环节后,又串联了一个一阶低通滤波器(惯性环节)来抑制噪声。

当时间常数 比较小时:

  所以式所表达的微分环节在时域中可以这样理解:

(2)经典微分器噪声分析

  将经典微分器的传递函数利用后向差分进行离散化,将 代入传递函数:

  离散表示为:

  当测量信号中存在随机噪声,则:

  其中 为真实信号值,而 为测量信号值。可以看到,减小微分器的时间常数 会导致噪声被放大,而增大时间常数会造成相位滞后。还可以看出,较短的离散化采样时间会放大滤波信号中的噪声,这就是经典微分器的噪声放大效应。

(3)线性跟踪微分器

  为了消除或减弱噪声的放大效应,考虑用两个惯性环节相减来近似微分器(亦可以理解为纯微分环节串联一个二阶系统,这比经典微分器中惯性环节的噪声抑制能力要强,高频信号抑制能力更强,见下图),这也是微分跟踪器的雏形,如下二阶形式:

惯性环节与二阶系统 伯德图

(4)线性跟踪微分器噪声分析

  将式中的线性跟踪微分器的传递函数利用后向差分进行离散化,将 代入传递函数:

  离散表示为:% raw %

  当测量信号 中存在随机噪声 ,则:

  当两个惯性环节的时间常数一致时:,则其噪声项为:

  其中 为真实信号值,而 为测量信号值。与经典微分器进行比较,可以看出线性微分跟踪的噪声项影响更小。

二、线性跟踪微分器

(1)原理分析

  线性跟踪微分器的原理是类似二阶系统的传递函数,如上式,当两个惯性环节的时间常数相等时获得线性微分跟踪器:

  从上式的二阶系统传递函数可知其处于临界阻尼 状态,系统会无超调的一次进入稳态值。这便是我们想要的一个理想的线性跟踪微分器。此时的参数 便可以代表系统的收敛速度, 越大,系统收敛得越快,就越快达到目标值,但实际调试的时候需要根据实际系统来调试 ,不同的系统可以达到的实际收敛速度是不同的。取两个状态,分别表示过渡曲线和过渡曲线的微分,用传递函数表示:

  写成时域方程:

  转换成状态空间方程:

  即可以理解 是输入信号经二阶系统衰减平滑后的信号,即安排过渡过程, 是过渡曲线的微分,由此获得线性微分跟踪器。

(2)仿真验证

1.阶跃信号微分测量

线性跟踪微分器Simulink

阶跃信号-线性跟踪微分测量

阶跃信号线性跟踪微分测量结果

2.优化PID控制

PID控制和增加跟踪微分器控制

增加跟踪微分器控制效果

三、非线性跟踪微分器

(1)原理分析

  非线性跟踪微分器NLTD可以结合线性跟踪微分器LTD进一步分析:其中 相当于是目标过渡信号, 相当于是过渡信号的微分信号,如果将输入信号 的控制律修改为一个非线性函数,便可以得到一个非线性跟踪微分器,这个非线性函数的形式有很多种,比较常用的是快速最优控制综合函数:

  对于上式的直观理解,可认为是安排 追赶 的过程, 可认为是以当前速度 减速至0的所需位移。当目标位移比减速所需位移大时,即减速到0并不能达到目标位置,因此 ,以 的加速度加速,反之,则,减速。这个“快速最优控制”就是使加速度在始末都是0,这样就能保证启停时的一个流畅过渡,不至于加速度突变,从而增加控制的稳定性。

(2)仿真验证

非线性微分跟踪器Simulink

1.阶跃信号微分测量

阶跃信号-非线性跟踪微分测量

阶跃信号非线性跟踪微分测量结果
颤振现象

2.颤振改进(改善)

非线性跟踪微分器(颤振改进)Simulink

  将原来的符号函数替换成线性饱和函数:

1
2
3
4
5
6
7
8
9
function y = Saturation(delta, u)

if abs(u) > delta
y = sign(u);
else
y = u / delta;
end

end

阶跃信号-非线性跟踪微分测量(颤振改进)

阶跃信号非线性跟踪微分(改进)测量结果
颤振现象

3.优化PID控制对比

  针对常规PID控制,引入线性跟踪微分器,对输入信号进行平滑过渡消除纯微分放大噪声的作用,这将会引入信号滞后,通过调试收敛参数 可减少滞后影响,当然也可直接引入非线性跟踪微分器,提高过渡曲线跟踪输入信号的快速性,减少滞后影响。

PID优化对比

四、最速离散跟踪微分器

(1)原理公式

  如果考虑连续系统,上面提到的非线性TD有着非常好的效果,但是我们要处理的实际问题一定是离散的。考虑其离散形式:

  这个系统的一个最大问题时,进入稳态后会有高频震颤,将 函数改为线性饱和函数 虽有改善,但仍不够完美。上面的离散递推公式只是一种数值计算的近似解,并不是非线性跟踪微分器的离散形式,因此韩京清老师推导了该离散系统的最速控制综合函数,这里只给出结果:

  且最速跟踪微分器的离散表达式为:

   是积分步长, 是决定跟踪快慢的参数。 越大, 更快地跟踪信号 ,也越容易引入高频噪声。当 被噪声污染时,会使信号 被更大的噪声所污染。为了滤掉 所含的噪声,选取适当的 ,能获得很好的滤波效果。 数值上一般取大于步长 的数,然而 越大,滤波效果越好,但会使 跟踪信号 的相位损失也越大。

(2)仿真验证

最速离散跟踪微分器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function fh = fhan(x1, x2, v, r, h1)
% h1为滤波因子,r为调节系数,r越大跟踪效果越好,但微分信号会增加高颜噪声
% 反之,微分信号越平滑,会产生一定的滞后
d = r * h1;
d1 = h1 * r^2;
y = x1 - v + h1 * x2;
if (abs(y) >= d1)
a = x2 + sign(y) * (sqrt(d^2+8*r*abs(y)) - d) / 2;
else
a = x2 + y / h1;
end
fh = -r * sat(a, d);
end

function m = sat(a, d)
if (abs(a) >= d)
m = sign(a);
else
m = a / d;
end
end

  Simulink中的仿真步长改为固定步长,且与采样步长 一致,其中噪声模块和正弦波发生模块的采样时间改为-1,表示使用仿真步长采样。

原始信号与跟踪信号
原始信号微分与跟踪信号微分
跟踪微分效果放大图

  从左图中可以看出跟踪信号存在相位延迟,所以学者武利强在对TD的进一步研究后,由于从TD得到了原始信号的微分,受物理学中位移公式的启发,采用预报的方法来克服延迟。思路是将滤波后得到的信号加上微分信号与预报步长的乘积作为原始信号的逼近,虽然校正了跟踪信号的相位延迟,但是获得的微分信号噪声会变大,读者可查阅该学者文献自行理解。

  此节讲述了最速综合控制函数的非线性跟踪微分器,但也有其他非线性跟踪微分器,如全程快速微分器、Levant微分器。理解最速非线性跟踪微分器是学习自抗扰控制的基础,此篇文章作为自抗扰控制的入门篇,后续将更新自抗扰控制。