ADRC学习(1)系统在调节过程中安排过渡过程的作用

2023-10-11 07:48

本文主要是介绍ADRC学习(1)系统在调节过程中安排过渡过程的作用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.二阶系统的调节过程

考虑对于如下所示的二阶系统
{ x ¨ = − a 1 ( x − v 0 ) − a 2 x ˙ y = x (1.1) \begin{cases} \ddot{x} = -a_1 (x - v_0) - a_{2} \dot{x}\\ \tag{1.1} y = x \end{cases} {x¨=a1(xv0)a2x˙y=x(1.1)
输入单位阶跃信号 v 0 = 1 v_0 = 1 v0=1时的响应。
希望系统的输出 y y y尽可能快的、无超调的跟踪阶跃信号。当 a 1 > 0 , a 2 > 0 a_1>0 ,a_2>0 a1>0,a2>0时,该二阶系统可以跟踪输入信号 v 0 v_0 v0,但是过渡过程不一定没有超调和振荡。
对系统方程(1.1)进行拉氏变换:
s 2 Y ( s ) − s Y ( 0 ) − Y ′ ( 0 ) = − a 1 Y ( s ) − a 2 [ s Y ( s ) − Y ( 0 ) ] + a 1 X ( s ) s 2 Y ( s ) = − a 1 Y ( s ) − a 2 s Y ( s ) + a 1 X ( s ) Y ( s ) [ s 2 + a 2 s + a 1 ] = a 1 X ( s ) s^2Y(s) - sY(0) - Y^{'}(0) = -a_1Y(s)-a_2[sY(s)-Y(0)]+a_1X(s) \\ s^2Y(s) = -a_1Y(s)-a_2 sY(s)+a_1X(s) \\ Y(s) [s^2+a_2s+a_1] = a_1X(s) s2Y(s)sY(0)Y(0)=a1Y(s)a2[sY(s)Y(0)]+a1X(s)s2Y(s)=a1Y(s)a2sY(s)+a1X(s)Y(s)[s2+a2s+a1]=a1X(s)
即可得出该二阶系统传递函数:
Y ( s ) X ( s ) = a 1 s 2 + a 2 s + a 1 (1.2) \frac{Y(s)}{X(s)} = \frac{a_1}{s^2+a_2 s+a_1} \tag{1.2} X(s)Y(s)=s2+a2s+a1a1(1.2)
为了使系统尽可能快且没有超调的跟踪给定的输入阶跃信号,我们设置系统参数使之成为一个临界阻尼的二阶系统。

说明:

1.欠阻尼系统可以使得系统调节时间减少,但是会出现超调和振荡;
2.过阻尼的系统无超调、无振荡,但是调节时间过长;
3.临界阻尼系统系统能在保证尽可能快的跟踪给定的阶跃信号,也可以无超调、无振荡。

因此我们选择适当参数使得该二阶系统为临界阻尼二阶系统。
二阶系统(1.2)的特征方程为:
D ( s ) = s 2 + a 2 s + a 1 = 0 (1.3) D(s) = s^2+a_2 s+a_1 = 0 \tag{1.3} D(s)=s2+a2s+a1=0(1.3)
故特征根为:
s 1 , 2 = − a 2 ± a 2 2 − 4 a 1 2 s_{1,2}= \frac{-a_2 \pm \sqrt {a_2^2-4a_1}}{2} s1,2=2a2±a224a1
若使系统为临界阻尼系统,则
a 2 2 − 4 a 1 = 0 , s 1 , 2 = − ω n a_2^2-4a_1=0,s_{1,2}= -\omega_n a224a1=0s1,2=ωn

a 2 = 2 a 1 a_2 = 2\sqrt {a_1} a2=2a1
a 1 = r 2 , a 2 = 2 r a_1 =r^2,a_2=2r a1=r2a2=2r,当 r > 0 r>0 r>0时即可保证系统处于临界阻尼状态。
此时系统变为:
{ x ¨ = − r 2 ( x − v 0 ) − 2 r x ˙ y = x \begin{cases} \ddot{x} = - r^2 (x - v_0) - 2r \dot{x}\\ y = x \end{cases} {x¨=r2(xv0)2rx˙y=x
根据二阶系统临界阻尼的特性,我们可以计算出该系统对于单位阶跃响应的调节时间:
Δ = 2 \Delta =2 Δ=2时, T s = 5.84 ω n T_s =\frac{5.84}{\omega_n} Ts=ωn5.84

Δ = 5 \Delta =5 Δ=5时, T s = 4.75 ω n T_s =\frac{4.75}{\omega_n} Ts=ωn4.75
取不同的系统参数 r = 2 , 4 , 6 , 8 r=2,4,6,8 r=2,4,6,8,使得系统单位阶跃响应是不同的,matlab仿真如下:

r=2 r=4 r=6 r=8

2.加入PD控制的二阶系统调节过程

加入控制器后的系统(1.1)变为
{ x ¨ = − a 1 x − a 2 x ˙ + u y = x (2.1) \begin{cases} \ddot{x} = - a_1 x - a_2 \dot{x} + u\\ \tag{2.1} y = x \end{cases} {x¨=a1xa2x˙+uy=x(2.1)
取PD控制器
u = k 1 ( v 0 − x ) + k 2 ( v ˙ 0 − x ˙ ) = k 1 ( v 0 − x ) + k 2 ( − x ˙ ) u=k_1(v_0 - x)+k_2( \dot{v}_0- \dot{x}) =k_1(v_0 - x)+k_2( - \dot{x}) u=k1(v0x)+k2(v˙0x˙)=k1(v0x)+k2(x˙)
将带入系统方程(2.1),可得
{ x ¨ = − ( a 1 + k 1 ) ( x − v 0 ) − ( a 2 + k 2 ) x ˙ y = x (2.2) \begin{cases} \ddot{x} = - (a_1+k_1)(x - v_0) - (a_2 +k_2)\dot{x} \\ \tag{2.2} y = x \end{cases} {x¨=(a1+k1)(xv0)(a2+k2)x˙y=x(2.2)
a ‾ 1 = a 1 + k 1 > 0 , a ‾ 2 = a 2 + k 2 > 0 \overline{a}_1 = a_1+k_1>0,\overline{a}_2 = a_2+k_2>0 a1=a1+k1>0,a2=a2+k2>0,系统方程(2.2)变为:
{ x ¨ = − a ‾ 1 ( x − v 0 ) − a ‾ 2 x ˙ y = x (2.3) \begin{cases} \ddot{x} = - \overline{a}_1(x - v_0) - \overline{a}_2\dot{x} \\ \tag{2.3} y = x \end{cases} {x¨=a1(xv0)a2x˙y=x(2.3)
为了使闭环系统无超调、无振荡,则需满足
a ‾ 1 = r 2 , a ‾ 2 = 2 r \overline{a}_1 =r^2,\overline{a}_2=2r a1=r2a2=2r
也就是说,在系统参数 a 1 , a 2 a_1,a_2 a1a2给定的情况下,控制器参数 k 1 , k 2 k_1,k_2 k1k2需满足以下关系:
k 1 = 2 a 1 + k 1 − a 2 k_1 = 2\sqrt {a_1+k_1} - a_2 k1=2a1+k1 a2
系统的特征根为 s 1 , 2 = − ω n = a ‾ 2 2 s_{1,2}= -\omega_n=\frac{\overline{a}_2}{2} s1,2=ωn=2a2
当系统参数设定为 a 1 = a 2 = 2 a_1=a_2=2 a1=a2=2
取PD控制器的控制参数 k 1 = 2.0 k_1=2.0 k1=2.0,为了保证闭环系统为临界阻尼状态,则 k 2 k_2 k2需满足:
k 2 = 2 a 1 + k 1 − a 2 = 2 4 − 2 = 2 k_2=2\sqrt {a_1+k_1}-a_2=2\sqrt {4}-2=2 k2=2a1+k1 a2=24 2=2.
此时系统的调节时间为
T s = 4.75 ω n = 4.75 a ‾ 2 / 2 = 9.5 a ‾ 2 = 9.5 a 2 + k 2 = 2.375 T_s=\frac{4.75}{\omega_n}=\frac{4.75}{\overline{a}_2/2}=\frac{9.5}{\overline{a}_2}=\frac{9.5}{a_2+k_2}=2.375 Ts=ωn4.75=a2/24.75=a29.5=a2+k29.5=2.375.
matlab仿真如下:

PD临界阻尼

现固定控制器增益 k 1 = k 2 = 2 k_1=k_2=2 k1=k2=2,分别改变系统参数 a 1 , a 2 a_1, a_2 a1,a2为(3,2),(1,2),(2,3),(3,1),matlab仿真如下:

a1=3,a2=2 a1=1,a2=2 a1=2,a2=1 a1=2,a2=3
矛盾分析

在阶跃响应中,由于直接取实际输出与期望之间的误差 e 0 = x − v 0 e_0 = x-v_0 e0=xv0,在系统初始状态下,误差 e 0 = x − v 0 = − v 0 e_0 = x-v_0=-v_0 e0=xv0=v0,为了使系统调节过程加快,取较大的 k 1 k_1 k1,但这又容易使闭环系统产生超调。特别是在一些实际生产过程中,系统不允许有超调产生,所以快速性与超调产生矛盾。
若能在初始状态下降低起始误差,那么就可以在不改变系统参数的情况下用较大的增益调节系统,加快过渡过程。
初始误差 e 0 = x − v 0 e_0 = x-v_0 e0=xv0,无非两种方法,改变初始输出或者改变初始目标,初始输出为0的情况下,改变初始目标值是一种好办法,因此对初始目标值安排过渡过程。

3.加入过渡过程

3.1 加入过度过程的比例控制

定义如下函数:
t r n s ( T 0 , t ) = { 1 2 ( 1 + s i n ( π ( t T 0 − 1 2 ) ) ) , t ≤ T 0 1 , t > T 0 (3.1) trns(T_0,t) = \begin{cases} \frac{1}{2}(1 + sin(\pi(\frac{t}{T_0}- \frac{1}{2}))) , &t \leq T_0\\ \tag{3.1} 1,&t >T_0 \end{cases} trns(T0,t)={21(1+sin(π(T0t21))),1tT0t>T0(3.1)
T 0 T_0 T0时间内,曲线从0单调上升到1并保持不变的曲线,在 T 0 T_0 T0时间外,保持1不变。
因此,安排目标过渡过程的P控制后,闭环系统(2.3)变为:
{ x ¨ = − a ‾ 1 ( x − v 0 t r n s ( T 0 , t ) ) − a ‾ 2 x ˙ y = x (3.2) \begin{cases} \ddot{x} = - \overline{a}_1(x - v_0trns(T_0,t)) - \overline{a}_2\dot{x} \\ \tag{3.2} y = x \end{cases} {x¨=a1(xv0trns(T0,t))a2x˙y=x(3.2)
先对有无安排过渡过程前后两种情况的仿真结果进行对比,
同样,取不同的系统参数 a 1 = a 2 = 0 a_1=a_2=0 a1=a2=0,和控制参数 k 1 k_1 k1,结果对比如下:取不同

仿真结果对比
(1 无过渡过程 k 1 = 0 , 3 , 6 k_1=0,3,6 k1=0,3,6
a1=3,a2=2 a1=1,a2=2 a1=2,a2=1
(2 有过渡过程
过渡时间 T 0 = 1 T_0 = 1 T0=1
T0=1,k1=400 T0=1,k1=800
过渡时间 T 0 = 2 T_0 = 2 T0=2
T0=2,k1=400 T0=2,k1=800

经过对比显示,安排过渡过程,可以在大增益的情况下有效抑制超调产生,并且可以减少调节时间。

现在探索安排过渡过程的另一个优势,固定控制器参数 k 1 = 600 k_1 = 600 k1=600、系统参数 a 1 = 2 a_1 = 2 a1=2和过渡时间 T 0 = 1 T_0 = 1 T0=1,改变系统参数 a 2 = 2 , 10 , 30 , 50 a_2 = 2,10,30,50 a2=2,10,30,50,仿真结果如下:

a2=2 a2=10 a2=30 a2=50
小结

由上图可以看出,系统参数 a 2 a_2 a2变化明显,但未对系统的阶跃响应产生明显影响,说明事先安排过渡过程能够扩大控制系统的适用范围。

3.2 加入过度过程的比例微分控制

由于安排了过渡过程,那么给定目标的 v ˙ 0 \dot{v}_0 v˙0不恒为零,对过渡过程(3.1)进行求导

d t r n s ( T 0 , t ) = { π 2 T 0 c o s ( π ( t T 0 − 1 2 ) ) , t ≤ T 0 1 , t > T 0 (3.3) dtrns(T_0,t) = \begin{cases} \frac{\pi}{2T_0} cos(\pi(\frac{t}{T_0}- \frac{1}{2})) , &t \leq T_0\\ \tag{3.3} 1,&t >T_0 \end{cases} dtrns(T0,t)={2T0πcos(π(T0t21)),1tT0t>T0(3.3)

因此,PD控制器为
u = k 1 ( v 0 t r n s ( T 0 , t ) − x ) + k 2 ( v ˙ 0 d t r n s ( T 0 , t ) − x ˙ ) u=k_1(v_0trns(T_0,t) - x)+k_2( \dot{v}_0dtrns(T_0,t)- \dot{x}) u=k1(v0trns(T0,t)x)+k2(v˙0dtrns(T0,t)x˙)
带入二阶系统,闭环的系统方程(3.2)为:
{ x ¨ = − a ‾ 1 ( x − v 0 t r n s ( T 0 , t ) ) − a ‾ 2 ( x ˙ − v 0 d t r n s ( T 0 , t ) ) y = x (3.4) \begin{cases} \ddot{x} = - \overline{a}_1(x - v_0trns(T_0,t)) - \overline{a}_2(\dot{x}-v_0dtrns(T_0,t)) \\ \tag{3.4} y = x \end{cases} {x¨=a1(xv0trns(T0,t))a2(x˙v0dtrns(T0,t))y=x(3.4)
取系统参数 a 1 = a 2 = 2 a_1 =a_2 =2 a1=a2=2,过渡过程时间为 T 0 = 0.5 T_0 =0.5 T0=0.5,改变控制增益,仿真结果如下:

a2=2 a2=10
a2=2 a2=10
小结

上图仿真表明,PD控制增益在大范围内的不同选取,对过渡过程特性的影响并不大,同样也说明,在这个范围内给定的PD控制增益所能适应的系统参数 a 1 a 2 a_1 a_2 a1a2的范围也很大。

总结

  1. 事先安排过渡过程是解决超调与快速性矛盾的一种很有效的办法;
  2. 事先安排过渡过程使误差反馈增益和误差微分反馈增益的选取范围大为扩大,便于控制系统的参数整定;
  3. 事先安排过渡过程使给定的控制增益所能适应的对象参数范围大为扩大,控制器的鲁棒性更为加强。

参考文献:韩京清 《自抗扰控制技术——估计补偿不确定因素的控制技术》

这篇关于ADRC学习(1)系统在调节过程中安排过渡过程的作用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/186591

相关文章

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa

css中的 vertical-align与line-height作用详解

《css中的vertical-align与line-height作用详解》:本文主要介绍了CSS中的`vertical-align`和`line-height`属性,包括它们的作用、适用元素、属性值、常见使用场景、常见问题及解决方案,详细内容请阅读本文,希望能对你有所帮助... 目录vertical-ali

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

Oracle存储过程里操作BLOB的字节数据的办法

《Oracle存储过程里操作BLOB的字节数据的办法》该篇文章介绍了如何在Oracle存储过程中操作BLOB的字节数据,作者研究了如何获取BLOB的字节长度、如何使用DBMS_LOB包进行BLOB操作... 目录一、缘由二、办法2.1 基本操作2.2 DBMS_LOB包2.3 字节级操作与RAW数据类型2.