基于迭代学习和神经网络的机械臂变长度误差跟踪
Variable Length Error Tracking of Manipulator Based on Iterative Learning and Neural Network
DOI: 10.12677/MOS.2023.122128, PDF, HTML, XML, 下载: 229  浏览: 368 
作者: 唐荣嘉, 刘永春:四川轻化工大学自动化与信息工程学院,四川 自贡;何 平:华中农业大学工学院,湖北 武汉
关键词: 机械臂迭代学习迭代长度变化神经网络跟踪控制Manipulator Neural Network Iterative Learning Iterative Length Change Tracking Control
摘要: 本文考察了在任意初始状态下不确定性机械臂的轨迹跟踪问题。首先,根据预设期望轨迹、随机变量概率分布函数和虚拟误差变量,建立误差动力学系统。其次,运用虚拟控制信号和迭代学习分别补偿没有运行的区间和处理随机变化的迭代长度。然后,通过自适应神经网络逼近机械臂的不确定性和外部干扰,并通过复合能量函数证明了跟踪算法的可行性。最后,通过一个仿真例子表明了本文算法的有效性。
Abstract: In this paper, trajectory tracking of uncertain manipulator under arbitrary initial conditions is in-vestigated. Firstly, the error dynamics is established according to the preset expected trajectory, the probability distribution function of random variables and the virtual error variable. Secondly, the virtual control signal and iterative learning are used to compensate the interval without opera-tion and the iteration length with random changes. Then, the uncertainty and external disturbance of the manipulator arms are approximated by an adaptive neural network, and the practicability of the tracking algorithm is inspected by a composite energy function. Finally, the simulation example is certified to display the validity of the proposed algorithm.
文章引用:唐荣嘉, 何平, 刘永春. 基于迭代学习和神经网络的机械臂变长度误差跟踪[J]. 建模与仿真, 2023, 12(2): 1363-1377. https://doi.org/10.12677/MOS.2023.122128

1. 引言

机械臂在工业领域的广泛应用将人类从繁杂的体力劳动和重复工作中解放出来了。机械臂的物件抓取、机械焊接、油漆喷涂和制造装备等都涉及机械臂的轨迹跟踪问题 [1]。迭代学习控制适用于非线性强耦合和重复性运动的系统,可以广泛应用于机械臂等执行重复任务的被控对象 [2]。机械臂运行过程中信息会丢失一部分,进而会导致每次迭代的长度不一致 [3] [4]。通过神经网络对系统的内部和外部干扰进行逼近,可以提高跟踪控制的精度 [5]。因此,本文通过迭代学习原理和神经网络方法在迭代长度变换的情形下研究机械臂的变长度误差跟踪具有重要意义。

基于自适应模糊迭代学习控制方法,文献 [6] 研究了系统约束和随机变化的迭代长度问题。基于迭代学习控制方法,文献 [7] 研究了一类多输入多输出非线性系统在迭代长度变化的轨迹跟踪问题。基于势垒复合能量函数构造的一种自适应迭代学习控制方法,文献 [8] 研究了在状态对准条件下的多输入多输出非线性系统的变迭代长度轨迹跟踪问题。基于牛顿极值求值算法的迭代学习控制方法,文献 [9] 研究了多轴系统轮廓运动精度控制的问题。基于反馈控制和自适应迭代控制结合的方法,文献 [10] 降低了初始状态不匹配对工业机器人跟踪性能的影响。基于神经网络自适应迭代学习控制方法,文献 [11] 研究了由任意初始偏移引起的问题。基于分布式迭代学习控制方法,文献 [12] 研究了多智能体框架下高速列车速度和位移跟踪控制的问题。基于迭代平均算子的迭代学习控制方法,文献 [13] 研究了具有非均匀迭代长度跟踪的问题。然而,文献 [7] [8] [9] 没有考虑系统的初值变化问题和参数估计值因逐点收敛导致上下界不固定的问题。文献 [11] [12] 没有考虑迭代过程中信息丢失,而造成的迭代不等长的问题。文献 [13] 的控制器设计是基于压缩映射方法,无法使当前迭代的信息充分利用。

综上所述,基于迭代学习控制和神经网络方法,本文将在具有外部干扰和模型不确定性的情况下研究机械臂变长度误差轨迹跟踪问题:1) 与文献 [7] 相比,本文针对任意初始偏移引起的问题,设计期望误差轨迹。2) 与文献 [10] 相比,本文针对迭代学习过程的不等长问题,引入一个虚拟跟踪误差,补偿未运行区间的误差信息。与文献 [13] 相比,本文可以充分利用迭代信息。3) 与文献 [8] 相比,更新率采用饱和函数代替,能够有效避免估计值因逐点收敛导致上下界不固定的问题,且本文考虑了系统的不确定性和外部干扰,用RBF神经网络对其进行逼近,提高精度和收敛性。

2. 问题陈述

考虑机械臂动力学模型:

{ q ˙ 1 , k ( t ) = q 2 , k ( t ) M ( q 1 , k ( t ) ) q ˙ 2 , k + C ( q 1 , k ( t ) , q 2 , k ( t ) ) q 2 , k ( t ) + G ( q 1 , k ( t ) ) = τ k ( t ) + d k ( t ) (1)

其中, k K = { 1 , 2 , } 为迭代次数, q 1 , k ( t ) R n q 2 , k ( t ) R n q ˙ 2 , k ( t ) R n ,分别为关节位置,关节速度和关节加速度, M ( q 1 , k ( t ) ) R n × n 为对称正定的惯性矩阵, C ( q 1 , k ( t ) , q 2 , k ( t ) ) R n × n 为向心–科里奥利矩阵, G ( q 1 , k ( t ) ) R n 为重力矩阵, d k ( t ) R n 为系统模型不确定性和外部扰动在内的有界干扰, τ k ( t ) R n 表示系统控制输入。为了方便后续描述,定义 M k ( q 1 , k ( t ) ) M k C k ( q 1 , k ( t ) , q 2 , k ( t ) ) C k G k ( q 1 , k ( t ) ) G k

机械臂有以下特性:

参考文献 [14] [15],机械臂具有以下特征:

性质1:矩阵 [ M ˙ ( q 1 , k ( t ) ) 2 C ( q 1 , k ( t ) , q 2 , k ( t ) ) ] ,是斜对称矩阵,即对任意向量 x R n x T [ M ˙ ( q 1 , k ( t ) ) 2 C ( q 1 , k ( t ) , q 2 , k ( t ) ) ] x = 0

性质2:对于任意的向量 q , q ˙ R n 和任意的已知向量 v , v ˙ R n ,存在一个未知的时变参数向量 δ R n ,使得以下等式成立:

M ( q ) v ˙ + C ( q , q ˙ ) v + G ( q ) = A ( q , q ˙ , v , v ˙ ) δ (2)

其中, A ( q , q ˙ , v , v ˙ ) R m × n 是一个回归矩阵。

引理1 [16] :对于标量ai,定义其饱和函数:

s a t a ¯ i ( a i ) = { a ¯ i 1 , a i < a ¯ i 1 a i , a ¯ i 1 < a i < a ¯ i 2 a ¯ i 2 , a i > a ¯ i 2 (3)

其中, a ¯ i = { a ¯ i 1 , a ¯ i 2 } ai的上限和下限,且 a ¯ i 1 < a ¯ i 2

对于向量 x = [ x 1 , x 2 , , x n ] T R n 和向量 y = [ y 1 , y 2 , , y n ] T R n ,定义 s a t y ¯ y = [ s a t y ¯ 1 ( y 1 ) , s a t y ¯ 2 ( y 2 ) , , s a t y ¯ i ( y i ) ] T R n y ¯ i = { y ¯ i 1 , y ¯ i 2 } y ¯ = { y ¯ 1 , y ¯ 2 , , y ¯ n } y ¯ i 1 x i y ¯ i 2 ,则有:

[ y s a t y ¯ ( y ) ] T [ y s a t y ¯ ( y ) ] 0 (4)

对于矩阵 A R m × n B R m × n ,定义 s a t B ¯ ( B ) = { s a t B ¯ i j ( B i j ) } m × n R m × n ,其中 0 i m , 0 j n ,且 B ¯ i j = { B ¯ i j 1 , B ¯ i j 2 } B i j 的上限和下限,若 B ¯ i j 1 A i j B ¯ i j 2 ,则有以下不等式成立:

t r [ B s a t B ¯ ( B ) ] T [ A s a t B ¯ ( B ) ] 0 (5)

引理2:对于向量 a , b R n

a T a b T b 2 ( a b ) T a (6)

对于矩阵 A , B R n × n

t r ( A T A B T B ) t r [ 2 ( A B ) T A ] (7)

引理3:定义向量 x R m ,向量 y R n 和矩阵 M R m × n ,有:

y T M T x = t r ( y x T M ) (8)

本文做出如下假设:

假设1:在时间 t [ 0 , T ] 内,实际轨迹 q 1 , k ( t ) R n q 2 , k ( t ) R n 是连续可导的。

本文中 T k 是随迭代次数变化的,T是期望迭代长度。对于随机变化的迭代长度问题,需要考虑两种情况, T k T T k T 。在 t [ 0 , T ] 中,迭代在期望长度内,且已经满足下次迭代所需数据。在 t [ T , T k ] 中,迭代数据超过期望长度,因此不需要参与下次迭代更新数据,被直接舍去,所以本文只考虑 T k T 的情况。当 t [ T k , T ] 时,系统已经完成本次迭代,控制器不再参与系统运行,但更新律仍需将上次的迭代信息记录到未运行区间,使得每次迭代都能是 [ 0 , T ] 的更新信息。根据上述描述,定义 T min T max 分别表示 T k 的最小值和最大值,对 0 < T min T k T max T 时设计了控制器。

假设2 [17] :Tk是一个随机变量,它的概率分布函数为

F T k ( t ) = P [ T k < t ] = { 0 , t [ 0 , T min ] p ( t ) , t ( T min , T max ] 1 , t ( T max , ) (9)

其中, 0 < p ( t ) < 1 是一个连续函数。

注1:假设2描述了随机变量 T k 的分布情况。当 F T k ( T min ) = 0 ,表示 t [ 0 , T min ] ,实际操作长度 T k 不能大于 T min F T k ( T min ) < 1 时,系统有一定概率运行至最大迭代长度,进而保证在迭代次数趋于无穷时, T k = T max 的情况可以出现无穷次。所以概率分布函数 p ( t ) 不需要事先知道,这是因为迭代学习控制律的设计与 p ( t ) 无关。综上描述假设2是一个通用公式,在大多数实际应用中是满意的。

本文针对系统(1)设计控制器 τ k ( t ) ,使得当迭代次数k趋向于无穷时,关节位置 q 1 , k ( t ) 能够在指定区间 [ ξ , T k ] 内跟踪期望轨迹 q d ( t ) ,即,在区间 [ ξ , T k ] ,当 k 时,系统以概率1的情况下使 e 1 , k ( t ) 0

3. 控制设计

3.1. 相关变量设计

定义状态跟踪误差 e 1 , k ( t ) e 2 , k ( t ) 和期望误差轨迹 e 1 , k * 如下:

e 1 , k ( t ) q 1 , k ( t ) q d ( t ) (10)

e 2 , k ( t ) e ˙ 1 , k ( t ) = q ˙ 1 , k ( t ) q ˙ d ( t ) = q 2 , k ( t ) q ˙ d ( t ) (11)

e 1 , k * ( t ) [ e 1 , k ( 0 ) + t e 2 , k ( 0 ) ] ω ( t ) (12)

ω ( t ) = { cos a t , t [ 0 , ξ ] 0 , t ( ξ , T ] (13)

其中,公式中的 ξ 为先前指定的修正时刻。根据公式(10)~公式(12)得到:

e 1 , k * ( 0 ) = e 1 , k ( 0 ) (14)

e ˙ 1 , k * ( 0 ) = e 2 , k ( 0 ) (15)

注2 [18] :采用了迭代学习控制跟踪的理想条件 q 1 , k ( 0 ) = q d ( 0 ) , q 2 , k ( 0 ) = q ˙ d ( 0 ) 来设计控制律。但是在机械臂系统实际运行中,迭代会受到扰动,所以这一条件会被破坏,相关成果不在适用。因此本文通过构造期望误差轨迹(12)来放宽迭代学习控制的初值理想条件,解决迭代初值变化的问题。

当系统(1)运行到 t = T k 时刻,迭代过程会返回到其初始状态,开始下一次迭代,因此迭代过程只能跟踪时间区间 0 t T k 的信息。由于 t = T k 是随机变化的,本文需要设计虚拟误差变量,补偿未运行部分的误差信息。虚拟误差变量设计如下:

ε 1 , k ( t ) = e 1 , k ( t ) e 1 , k * ( t ) , ε 2 , k ( t ) = e 2 , k ( t ) α k ( t ) (16)

z 1 , k ( t ) = { e 1 , k ( t ) e 1 , k * ( t ) , t [ 0 , T k ] e 1 , k ( T k ) e 1 , k * ( T k ) , t [ T k , T ] (17)

z 2 , k ( t ) = { e 2 , k ( t ) α k ( t ) , t [ 0 , T k ] e 2 , k ( T k ) α k ( T k ) , t [ T k , T ] (18)

控制器设计分为 t [ 0 , T k ] t [ T k , T ] 两个情况讨论。为了证明所提出的迭代学习控制律的收敛性,需要在时间间隔 T k t T 内补偿丢失的控制信息。因此引入一个二进制0或1的随机变量 γ k ( t ) γ k ( t ) = 1 表示系统(1)在第k次迭代的t时刻依旧可以运行,此事件的概率为p(t)。所以 z 1 , k ( t ) z 2 , k ( t ) 可表示为如下:

z 1 , k ( t ) = γ k ( t ) ε 1 , k ( t ) + ( 1 γ k ( t ) ) ε 1 , k ( T k ) (19)

z 2 , k ( t ) = γ k ( t ) ε 2 , k ( t ) + ( 1 γ k ( t ) ) ε 2 , k ( T k ) (20)

自适应径向基函数神经网络(RBFNN)将用于估计公式(36)中的非线性不确定项dk(t)。具体表示如下:

d ^ k = W ^ k T h ( u k ) (21)

其中, d ^ k dk的估计值, u k = [ e 1 , k * T , e 1 , k T , e 2 , k T , q 1 , k T , q 2 , k T , q d T , q ˙ d T , q ¨ d T ] T R 8 n 为神经网络的控制输入。 W ^ k = [ w ^ 1 , k , w ^ 2 , k , , w ^ n , k ] T R m × n 为最优神经网络权值 W * 的估计值,m是隐含层中的神经元节点数。 h ( u k ) = [ h ^ 1 ( u k ) , h ^ 2 ( u k ) , , h ^ m ( u k ) ] T R m 是具有隐层输出函数 h j ( u k ) 的RBFNN激活函数,高斯函数选择如下:

h ^ j ( u k ) = exp [ ( u k c j ) T ( u k c j ) δ j 2 ] (22)

其中, j { M = 1 , 2 , , m } $ , $ c j R 8 n 是神经元节点的中心, δ j 是神经元的宽度。存在一组最优神经网络权值 W * 使得以下等式成立:

d k = W * T h ( u k ) + ε ( u k ) (23)

其中, W * 定义为如下表达式 [19] :

W * = arg min W ^ k R m × n { sup | d k W ^ k T h ( u k ) | } (24)

且, ε ( u k ) 为神经网络的逼近误差向量,满足 ε ( u k ) ε m

3.2. 迭代分析

为了让系统(1)在整个迭代过程中保持稳定,分成了两种情况讨论,情况1: t [ 0 , T k ] 和情况2: t ( T k , T ]

情况1: t [ 0 , T k ] (以下公式中时间t省略)

构造李亚普诺夫函数 V k ,根据 V k 设计虚拟控制器 α k

V k = V 1 , k + V 2 , k (25)

V 1 , k = 1 2 z 1 , k T z 1 , k (26)

V 2 , k = 1 2 z 2 , k T M k z 2 , k (27)

将公式(26)求导并结合公式(11)和公式(17)有:

V ˙ 1 , k = z 1 , k T z ˙ 1 , k = z 1 , k T [ e ˙ 1 , k e ˙ 1 , k * ] = z 1 , k T [ q ˙ 1 , k q ˙ d e ˙ 1 , k * ] = z 1 , k T [ q 2 , k q ˙ d e ˙ 1 , k * ] = z 1 , k T [ e 2 , k e ˙ 1 , k * ] (28)

根据公式(18)得到:

e 2 , k = z 2 , k + α k (29)

公式(29)代入公式(28)得到:

V ˙ 1 , k = z 1 , k T [ z 2 , k + α k e ˙ 1 , k * ] (30)

则设计虚拟控制器为:

α k = c 1 z 1 , k + e ˙ 1 , k * (31)

将公式(31)代入(30)得到:

V ˙ 1 , k = z 1 , k T z 2 , k c 1 z 1 , k T z 1 , k (32)

对公式(27)进行求导得到:

V ˙ 2 , k = z 2 , k T M k z ˙ 2 , k + 1 2 z 2 , k T M ˙ k z 2 , k (33)

公式(33)中,等号右边第一项根据公式(11)和(18)可化简得到:

z 2 , k T M k z ˙ 2 , k = z 2 , k T M k ( e ˙ 2 , k α ˙ k ) = z 2 , k T M k ( q ˙ 2 , k q ¨ d α ˙ k ) (34)

由公式(1)可得到:

M k q ˙ 2. k = τ k + d k C k q 2 , k G k (35)

将公式(11)、(18)、(34)和(35)代入公式(33)得到:

V ˙ 2 , k = z 2 , k T M k q ˙ 2 , k z 2 , k T M k ( q ¨ d + α ˙ k ) + 1 2 z 2 , k T M ˙ k z 2 , k = z 2 , k T ( τ k + d k C k q 2 , k G k ) z 2 , k T M k ( q ¨ d + α ˙ k ) + 1 2 z 2 , k T M ˙ k z 2 , k = z 2 , k T ( τ k + d k ) z 2 , k T C k ( α k + z 2 , k + q ˙ d ) z 2 , k T G k z 2 , k T M k ( q ¨ d + α ˙ k ) + 1 2 z 2 , k T M ˙ k z 2 , k = z 2 , k T ( τ k + d k ) z 2 , k T [ M k ( q ¨ d + α ˙ k ) + G k + C k ( q ˙ d + α k ) ] + 1 2 z 2 , k T ( M ˙ k 2 C k ) z 2 , k (36)

根据性质1和性质2可得到:

V ˙ 2 , k = z 2 , k T [ τ k + W * T h ( u k ) + ε ( u k ) A k δ ] z 2 , k T [ τ k + W * T h ( u k ) A k δ ] + z 2 , k T ε m (37)

因此,设计的实际控制器为:

τ k = z 1 , k c 2 z 2 , k + A k δ ^ k W ^ k T h ( u k ) ε ^ m , k sgn ( z 2 , k ) (38)

其中, δ ^ k δ 的估计, W ^ k W * 的估计, ε ^ m , k 为的 ε m 估计, c 2 大于零的常数。

将公式(38)代入公式(37)得到:

V ˙ 2 , k z 2 , k T [ z 1 , k c 2 z 2 , k + A k δ ^ k W ^ k T h ( u k ) ε ^ m , k sgn ( z 2 , k ) A k δ + W * T h ( u k ) ] + z 2 , k T ε m z 2 , k T [ z 1 , k c 2 z 2 , k + A k δ ^ k W ^ k T h ( u k ) A k δ + W * T h ( u k ) ] ε ^ m , k z 2 , k + ε m z 2 , k T (39)

定义

δ δ ^ k δ ˜ k , W * W ^ k W ˜ k , ε m ε ^ m , k ε ˜ m , k (40)

将公式(40)代入(39)得到:

V ˙ 2 , k z 2 , k T z 1 , k c 2 z 2 , k T z 2 , k z 2 , k T A k δ ˜ k + z 2 , k T W ˜ k T h ( u k ) + ε ˜ m , k z 2 , k (41)

将公式(14)和公式(17)代入公式(26)可得到:

V 1 , k ( 0 ) = 1 2 z 1 , k T ( 0 ) z 1 , k ( 0 ) = 1 2 [ e 1 , k ( 0 ) e 1 , k * ( 0 ) ] T [ e 1 , k ( 0 ) e 1 , k * ( 0 ) ] = 0 (42)

将公式(15)、公式(17)、公式(18)和公式(31)代入公式(27)可得到:

V 2 , k ( 0 ) = 1 2 z 2 , k T ( 0 ) M k ( 0 ) z 2 , k ( 0 ) = 1 2 [ e 2 , k ( 0 ) α k ( 0 ) ] T M k ( 0 ) [ e 2 , k ( 0 ) α k ( 0 ) ] = 1 2 [ e 2 , k ( 0 ) c 1 z 1 , k ( 0 ) e ˙ 1 , k * ( 0 ) ] T M k ( 0 ) [ e 2 , k ( 0 ) c 1 z 1 , k ( 0 ) e ˙ 1 , k * ( 0 ) ] = 0 (43)

根据公式(32)、公式(41)、公式(42)和公式(43)结合,有:

V 1 , k + V 2 , k V 1 , k 1 V 2 , k 1 V 1 , k ( 0 ) + V 2 , k ( 0 ) + 0 t ( V ˙ 1 , k + V ˙ 2 , k ) d τ V 1 , k 1 0 t ( c 1 z 1 , k T z 1 , k c 2 z 2 , k T z 2 , k z 2 , k T A k δ ˜ k + z 2 , k T W ˜ k T h ( u k ) + ε ˜ m , k z 2 , k ) d τ 1 2 z 1 , k 1 T z 1 , k 1 (44)

接下来设计 t [ 0 , T k ] 时的更新率设计如下所示:

{ δ ^ k ( t ) = s a t δ ¯ ( δ ¯ * k ( t ) ) δ ¯ * k ( t ) = s a t δ ¯ ( δ ¯ * k 1 ( t ) ) γ 1 A k T z 2 , k (45)

其中, γ 1 为大于零的常数, δ ^ 1 ( t ) = 0 并且 δ ¯ = { δ ¯ 1 , δ ¯ 2 } 表示上限和下限。假设 δ ( t ) = s a t δ ¯ ( δ ( t ) ) ,则 δ ( t ) δ ¯ 这个饱和界限内。

{ W ^ k ( t ) = s a t W ¯ ( W ¯ k * ( t ) ) W ¯ k * ( t ) = s a t W ¯ ( W ¯ k 1 * ( t ) ) + γ 2 h ( u k ) z 2 , k T (46)

其中, γ 2 为大于的常数, W ^ 1 ( t ) = 0 ,并且 W ¯ = { W ¯ 1 , W ¯ 2 } 表示上限和下限。假设 w i j * ( t ) = s a t W ¯ ( w i j * ( t ) ) ,则 w i j * W ¯ 这个饱和界限内。

{ ε ^ m , k ( t ) = s a t ε ¯ ( ε ¯ * m , k ( t ) ) ε ¯ * m , k ( t ) = s a t ε ¯ ( ε ¯ m , k 1 * ( t ) ) + γ 3 z 2 , k (47)

其中, γ 3 为大于零的常数, ε ^ m , 1 ( t ) = 0 并且 ε ¯ = { ε ¯ 1 , ε ¯ 2 } 表示上限和下限。假设 ε m = s a t ε ¯ ( ε m ( t ) ) ,则 ε ¯ 这个饱和界限内。

注3:为了保证估计值在预定范围内的有限性,可以使用完全限幅学习律。通过饱和函数的性质,学习算法的整个右侧是饱和的,并且确保每个参数的估计在预先指定的区域内。

情况2: t ( T k , T ]

t ( T k , T ] 时的更新率设计如下所示:

δ ^ k ( t ) = δ ^ k 1 ( t ) (48)

W ^ k ( t ) = W ^ k 1 ( t ) (49)

ε ^ m , k ( t ) = ε ^ m , k 1 ( t ) (50)

其中, δ ^ 1 ( t ) = 0 W ^ 1 ( t ) = 0 ε ^ m , 1 ( t ) = 0 。此时系统(1)已经完成了本次迭代,因此不需要加入控制器,依旧需要保留上一次更新数据。该时刻不参与控制器设计,且不含 z 1 , k z 2 , k 的相关信息。

根据更新率(48)~(50)得到:

δ ˜ k = δ δ ^ k = δ δ ^ k 1 = δ ˜ k 1 W k = W * W ^ k = W * W ^ k 1 = W ˜ k 1 ε ˜ m , k = ε m ε ^ m , k = ε m ε ^ m , k 1 = ε ˜ m , k 1 (51)

k = 0时,得到如下等式:

δ ˜ 0 = δ δ ^ 0 = δ δ ^ 1 = δ W 0 = W * W ^ 0 = W * W ^ 1 = W * ε ˜ m , 0 = ε m ε ^ m , 0 = ε m ε ^ m , 1 = ε m (52)

引理4:对于常数 ε ˜ m , k ,向量 δ ˜ k R n ,矩阵 W ˜ k R m × n ,分别有:

ε ˜ m , k 2 ε ˜ m , k 1 2 2 γ 3 z 2 , k ε ˜ m , k δ ˜ k T δ ˜ k δ ˜ k 1 T δ ˜ k 1 2 γ 1 z 2 , k T A k δ ˜ k t r ( W ˜ k T W ˜ k ) t r ( W ˜ k 1 T W ˜ k 1 ) 2 γ 2 z 2 , k T W ˜ k T h ( u k ) (53)

引理5:对于常数 ε ˜ m , 0 ,向量 δ ˜ 0 R n ,矩阵 W ˜ 0 R m × n ,分别有:

1 2 γ 3 ε ˜ m , 0 2 ε ˜ m , 0 z 2 , 0 + 1 2 γ 3 ε m 2 1 2 γ 1 δ ˜ 0 T δ ˜ 0 z 2 , 0 T A 0 δ ˜ 0 + 1 2 γ 1 δ T δ 1 2 γ 2 t r ( W ˜ 0 T W ˜ 0 ) z 2 , 0 T W ˜ 0 T h ( u 0 ) + 1 2 γ 2 t r ( W * T W * ) (54)

4. 稳定性分析

定理1:根据机械臂系统(1),在设计的控制律(38)和更新率(45)~(50)下,保证迭代次数k趋于无穷大时,跟踪误差以概率为1在 [ ξ , T k ] 上收敛到零。

证明:整个证明过程分了三个步骤,分别为步骤1:证明复合能量函数随迭代次数单调递减,步骤2:证明k = 0时,复合能量函数在 [ 0 , T ] 是有界的,步骤3:证明关节位置 q 1 , k 能够实现对期望轨迹 q d 的跟踪。

步骤1:证明复合能量函数随迭代次数单调递减。

情况1: t [ 0 , T k ] (以下公式中时间t省略)。

设计复合能量函数 E k ( 1 ) 如下:

E k ( 1 ) = V k + 1 2 γ 1 0 t δ ˜ k T δ ˜ k d τ + 1 2 γ 2 0 t t r ( W ˜ k T W ˜ k ) d τ + 1 2 γ 3 0 t ε ˜ m , k 2 d τ (55)

根据公式(25)和公式(55)得到:

E k ( 1 ) = V k ( 0 ) + 0 t V ˙ k ( τ ) d τ + 1 2 γ 1 0 t δ ˜ k T δ ˜ k d τ + 1 2 γ 2 0 t t r ( W ˜ k T W ˜ k ) d τ + 1 2 γ 3 0 t ε ˜ m , k 2 d τ = V 1 , k ( 0 ) + V 2 , k ( 0 ) + 0 t [ V ˙ 1 , k ( τ ) + V ˙ 2 , k ( τ ) ] d τ + 1 2 γ 1 0 t δ ˜ k T δ ˜ k d τ + 1 2 γ 2 0 t t r ( W ˜ k T W ˜ k ) d τ + 1 2 γ 3 0 t ε ˜ m , k 2 d τ (56)

结合公式(42)和公式(43),公式(56)可化简得到:

E k ( 1 ) = 0 t [ V ˙ 1 , k ( τ ) + V ˙ 2 , k ( τ ) ] d τ + 1 2 γ 1 0 t δ ˜ k T δ ˜ k d τ + 1 2 γ 2 0 t t r ( W ˜ k T W ˜ k ) d τ + 1 2 γ 3 0 t ε ˜ k 2 d τ (57)

迭代到第k次的差值为 Δ E k ( 1 ) = E k ( 1 ) E k 1 ( 1 ) ,则有:

Δ E k ( 1 ) = E k ( 1 ) E k 1 ( 1 ) = V 1 , k + V 2 , k V 1 , k 1 V 2 , k 1 + 1 2 γ 1 0 t ( δ ˜ k T δ ˜ k δ ˜ k 1 T δ ˜ k 1 ) d τ + 1 2 γ 2 0 t t r [ ( W ˜ k T W ˜ k ) t r ( W ˜ k 1 T W ˜ k 1 ) ] d τ + 1 2 γ 3 0 t ( ε ˜ k 2 ε ˜ k 1 2 ) d τ (58)

将公式(44)和引理4代入公式(58)得到:

Δ E k ( 1 ) 0 t ( c 1 z 1 , k T z 1 , k c 2 z 2 , k T z 2 , k z 2 , k T A k δ ˜ k + z 2 , k T W ˜ k T h ( u k ) + ε ˜ m , k z 2 , k ) d τ 1 2 z 1 , k 1 T z 1 , k 1 + 1 2 γ 1 0 t 2 γ 1 z 2 , k T A k δ ˜ k d τ + 1 2 γ 2 0 t 2 γ 2 z 2 , k T W ˜ k T h ( u k ) d τ + 1 2 γ 3 0 t 2 γ 3 z 2 , k ε ˜ m , k d τ 0 t ( c 1 z 1 , k T z 1 , k c 2 z 2 , k T z 2 , k ) d τ 1 2 z 1 , k 1 T z 1 , k 1 0 (59)

情况2: t ( T k , T ]

设计复合能量函数 E k ( t ) 如下:

E k ( t ) = E k ( 1 ) ( T k ) + E k ( 2 ) ( t ) (60)

其中, E k ( 1 ) ( T k ) 是情况1在 T k 时刻的复合能量函数。公式(60)中 E k ( 2 ) ( t ) 设计如下:

E k ( 2 ) ( t ) = 1 2 γ 1 T k t δ ˜ k T δ ˜ k d τ + 1 2 γ 2 T k t t r ( W ˜ k T W ˜ k ) d τ + 1 2 γ 3 T k t ε ˜ m , k 2 d τ (61)

根据情况1得到, Δ E k ( 1 ) ( T k ) 0 。现在只需证明 E k ( 2 ) ( t ) 是随迭代次数单调递减的。根据公式(61)得:

Δ E k ( 2 ) ( t ) = E k ( 2 ) ( t ) E k 1 ( 2 ) ( t ) = 1 2 γ 1 0 t ( δ ˜ k T δ ˜ k δ ˜ k 1 T δ ˜ k 1 ) d τ + 1 2 γ 2 0 t t r [ ( W ˜ k T W ˜ k ) t r ( W ˜ k 1 T W ˜ k 1 ) ] d τ + 1 2 γ 3 0 t ( ε ˜ k 2 ε ˜ k 1 2 ) d τ (62)

将公式(51)代入公式(62)得到:

Δ E k ( 2 ) ( t ) = 0 (63)

Δ E k ( t ) = Δ E k ( 1 ) ( T k ) + Δ E k ( 2 ) ( t ) (64)

根据情况2描述, Δ E k ( t ) ( T k , T ] 上小于等于0。

综上所述,根据情况1和情况2分析,复合能量函数在[0, T]区间上任意时刻的值随迭代次数增加而单调减。

步骤2:证明k = 0时,复合能量函数在 [ 0 , T ] 是有界的。

情况1: [ 0 , T ] (以下公式中时间t省略)。

根据公式(55)可得到:

E 0 ( 1 ) = V 1 , 0 + V 2 , 0 + 1 2 γ 1 0 t δ ˜ 0 T δ ˜ 0 d τ + 1 2 γ 2 0 t t r ( W 0 T W 0 ) d τ + 1 2 γ 3 0 t ε ˜ m , 0 2 d τ (65)

对公式(65)进行求导得到:

E ˙ 0 ( 1 ) = V ˙ 1 , 0 + V ˙ 2 , 0 + 1 2 γ 1 δ ˜ 0 T δ ˜ 0 + 1 2 γ 2 t r ( W 0 T W 0 ) + 1 2 γ 3 ε ˜ m , 0 2 (66)

将公式(32)、(41)和引理5代入公式(66):

E ˙ 0 ( 1 ) c 1 z 1 , 0 T z 1 , 0 c 2 z 2 , 0 T z 2 , 0 z 2 , 0 T A 0 δ ˜ 0 + z 2 , 0 T W ˜ 0 T h ( u 0 ) + ε ˜ m , 0 z 2 , 0 + z 2 , 0 T A 0 δ ˜ 0 z 2 , 0 T W ˜ 0 T h ( u 0 ) ε ˜ m , 0 z 2 , 0 + 1 2 γ 1 δ T δ + 1 2 γ 2 t r ( W * T W * ) + 1 2 γ 3 ε m 2 c 1 z 1 , 0 T z 1 , 0 c 2 z 2 , 0 T z 2 , 0 + 1 2 γ 1 δ T δ + 1 2 γ 0 t r ( W * T W * ) + 1 2 γ 0 ε m 2 L (67)

其中, L = δ T δ + t r ( W * T W * ) + ε m 2 L是一个大于等于零的常数。则 E 0 ( 1 ) E 0 ( 1 ) ( 0 ) + T k L < ,即 E 0 ( 1 ) [ 0 , T k ] 内有界。

情况2: t ( T k , T ]

根据公式(60)可得:

E 0 ( t ) = E 0 ( 1 ) ( T k ) + E 0 ( 2 ) ( t ) (68)

其中, E 0 ( 1 ) ( T k ) 是情况1在 T k 时刻的复合能量函数,根据情况1得到, E 0 ( 1 ) ( T k ) 是有界的。现在只需证明 E 0 ( 2 ) ( t ) 是有界的。根据公式(61)得到 E 0 ( 2 ) ( t )

E 0 ( 2 ) ( t ) = 1 2 γ 1 T k t δ ˜ 0 T δ ˜ 0 d τ + 1 2 γ 2 T k t t r ( W ˜ 0 T W ˜ 0 ) d τ + 1 2 γ 3 T t t ε ˜ m , 0 2 d τ (69)

将公式(52)代入公式公式(69)可得到:

E 0 ( 2 ) ( t ) = 1 2 γ 1 T k t δ T δ d τ + 1 2 γ 2 T k t t r ( W * T W * ) d τ + 1 2 γ 3 T k t ε m 2 d τ (70)

因为 δ ( t ) , W * ( t ) , ε m ( t ) [ 0 , T k ] 是连续且有界的,所以存在常数 l 1 , l 2 , l 3 使得 [20] :

l 1 = max t [ 0 , T k ] ( 1 2 γ 1 δ T δ ) < l 2 = max t [ 0 , T k ] [ 1 2 γ 2 t r ( W * T W * ) ] < l 3 = max t [ 0 , T k ] ( 1 2 γ 2 ε m 2 ) < (71)

将公式(71)代入公式(70)得到:

E 0 ( 2 ) ( t ) = 1 2 γ 1 T k t l 1 d τ + 1 2 γ 2 T k t l 2 d τ + 1 2 γ 3 T k t l 3 d τ T T k 2 γ 1 l 1 + T T k 2 γ 2 l 2 + T T k 2 γ 3 l 3 (72)

根据公式(72)得到, E 0 ( 2 ) ( t ) 是有界的。所以 E 0 ( t ) ( T k , T ] 是有界的。根据情况1和情况2描述,得到复合能量函数在[0, T]是有界的。

步骤3:证明关节位置 q 1 , k 能够实现对期望轨迹 q d 的跟踪。

根据步骤1和步骤2得到在 t [ 0 , T k ] 时:

E k ( 1 ) ( t ) E 0 ( 1 ) ( t ) + j = 1 k Δ E j ( 1 ) ( t ) E 0 ( 1 ) ( t ) j = 1 k 0 t [ c 1 z 1 , j T z 1 , j + c 2 z 2 , j T z 2 , j ] d τ j = 0 k 1 1 2 z 1 , j T z 1 , j (73)

公式(73)进一步可得:

j = 1 k 0 t ( c 1 z 1 , j T z 1 , j + c 2 z 2 , j T z 2 , j ) d τ + j = 0 k 1 1 2 z 1 , j T z 1 , j E 0 ( 1 ) ( t ) E k ( 1 ) ( t ) (74)

根据假设2 [21] 可得, γ k ( t ) = 0 时,系统迭代到第k次的t时刻已经停止运行。 γ k ( t ) = 1 时,系统迭代到第k次的t时刻依旧在运行。根据公式(17)、公式(19)和公式(74),当迭代k趋于无穷时得:

j = 0 z 1 , k T z 1 , k = j = 0 γ k ( t ) ε 1 , k ( t ) T ε 1 , k ( t ) = j = 0 γ k ( t ) [ e 1 , k ( t ) e 1 , k * ( t ) ] T [ e 1 , k ( t ) e 1 , k * ( t ) ] (75)

所以,当系统的迭代次数 k 时,系统 γ k ( t ) = 1 成立,使得 e 1 , k ( t ) e 1 , k * ( t ) 收敛到0,即关节误差 e 1 , k ( t ) 可以跟踪到期望误差轨迹所以根据本文设计的期望轨迹误差(12)可得,在时间 [ ξ , T k ] 上关节误差 e 1 , k 以概率1收敛至0,意味着关节位置 q 1 , k 能够实现对期望轨迹 q d 的跟踪。

5. 仿真实验

本文考虑一个2自由度机械臂系统:

{ q ˙ 1 , k ( t ) = q 2 , k ( t ) M ( q 1 , k ( t ) ) q ˙ 2 , k + C ( q 1 , k ( t ) , q 2 , k ( t ) ) q 2 , k ( t ) + G ( q 1 , k ( t ) ) = τ k ( t ) + d k ( t ) (76)

其中, q 1 , k = [ q 11 , k , q 12 , k ] T q 2 , k = [ q 12 , k , q 22 , k ] T M ( q 1 , k ) = [ M i j ] 2 × 2 M 11 = m 1 l 1 2 + m 2 ( l 1 2 + l 2 2 + 2 l 1 l 2 cos ( q 12 , k ) ) M 12 = M 21 = m 2 ( l 2 2 + l 1 l 2 cos ( q 12 , k ) ) M 22 = m 2 l 2 2 C ( q 1 , k , q 2 , k ) = [ C i j ] 2 × 2 C 11 = m 2 l 1 l 2 q 22 , k sin q 12 , k C 12 = m 2 l 1 l 2 sin ( q 12 , k ) ( q 21 , k + q 22 , k ) C 21 = m 2 l 1 l 2 q 21 , k sin ( q 12 , k ) C 22 = 0 G ( q 1 , k ) = [ G 1 , G 2 ] T G 1 = ( m 1 + m 2 ) l 1 g cos ( q 11 , k ) + m 2 l 2 g cos ( q 11 , k + q 12 , k ) G 2 = m 2 l 2 g cos ( q 11 , k + q 12 , k ) 。回归矩阵 A 11 = l 1 2 ( q ¨ d 1 + α ˙ 1 , k ) + l 1 g cos ( q 11 , k ) A 21 = 0 A 12 = ( l 1 2 + l 2 2 + 2 l 1 l 2 cos ( q 12 , k ) ) ( q ¨ d 1 + α ˙ 1 , k ) ( ( q ˙ d 1 + α 1 , k ) q 22 , k + ( q ˙ d 1 + α 1 , k ) ( q 21 , k + q 22 , k ) ) l 1 l 2 sin ( q 12 , k ) + l 1 g cos ( q 11 , k ) + l 2 g cos ( q 11 , k + q 12 , k ) A 22 = l 2 2 + l 1 l 2 cos ( q 12 , k ) ) ( q ¨ d 1 + α ˙ 1 , k ) + l 2 2 ( q ¨ d 2 + α ˙ 2 , k ) + ( q ˙ d 1 + α 1 , k ) q 21 , k l 1 l 2 sin ( q 12 , k ) + l 2 g cos ( q 11 , k + q 12 , k )

系统的期望轨迹qd表示为 [ 0.4 sin ( 0.5 π t ) , 0.4 cos ( π t ) ] T ,期望迭代长度 T max 设置为6 s, T k 分布在[4, 6] s,初值 q 1 , k ( 0 ) = [ rand ( 1 ) , 0. 8rand ( 1 ) ] T ,机械臂系统参数设置为 l 1 = l 2 = 0. 8 m g = 9.81 m / s m 1 = m 2 = 1 kg d k = [ 0.1 sin t , 0.1 cos t ] T

定义性能指标 a v g ( z 1 , k ( t ) ) = i = 1 T k ( z 1 , k ( i t s ) ) T k / t s 和表现跟踪状态随迭代次数变化 J max = max t [ 0 , T k ] ( z 1 , k ) 。其中 T k 表示迭代长度, t s 表示采样间隔。

P1:采用本文设计实际控制器(38)和更新率(45)~(47)。

P2:机械臂自适应迭代学习控制,控制器设计为 τ k = e ˙ 1 , k ( t ) c 2 e 1 , k ( t ) d ^ k ( t ) sgn ( e ˙ 1 , k ( t ) ) ,迭代自适应参数更新率设计为 d ^ k ( t ) = s a t d ¯ ( d ^ k 1 ( t ) ) + Γ e 1 , k T ( t ) sgn ( e ˙ 1 , k ( t ) )

Figure 1. Joint position q11,k and expected position signal qd1

图1. 关节位置q11,k和期望位置信号qd1

Figure 2. Joint position q12,k and expected position signal qd1

图2. 关节位置q12,k和期望位置信号qd2

Figure 3. Performance index

图3. 性能指标

Figure 4. Approximation of dk by the 30th iteration iteration RBF neural network

图4. 第30次迭代的RBF神经网络对dk的逼近

Figure 5. Joint position q11,k tracking comparison

图5. 关节位置q11,k跟踪对比

Figure 6. Joint position q12,k tracking comparison

图6. 关节位置q12,k跟踪对比

图1图2分别表示机械臂系统的关节位置q11,kq12,k对期望轨迹qd1qd2的跟踪效果。由图1图2可知,在任意初始状态下,经过足够多的迭代以后,本文所提的控制方法能够实现关节位置在指定区间跟踪期望轨迹,且在30次迭代之后,两个关节位置的跟踪精度均优于前面的跟踪精度。图1图2还可以看出实际操作长度随迭代次数k随机变化的情况。图3描述了性能指标随迭代次数的变化趋势。随着迭代次数的增加,本文所提方法能够有效提高跟踪误差的收敛性能。通过图4可以看出RBF神经网络在Tmax = 6 s时,基本可以完全跟踪到干扰dk图5图6分别表示P1和P2两种控制方法下关节位置q11,kq12,k对期望轨迹qd1qd2的跟踪效果。由图5图6可得,随着迭代次数k的增加,关节位置q11,kq12,k对期望轨迹qd1qd2的跟踪越来越精确。

6. 结论

基于RBF神经网络和迭代学习方法,本文解决了机械臂在任意初始状态下和迭代不等长的轨迹跟踪问题。针对机械臂系统的初始值问题,引入期望误差轨迹,使系统可在任意初始值时跟踪到期望轨迹。针对迭代过程不等长的问题,设计了虚拟控制器,使跟踪控制误差的收敛性也能在整个期望的迭代长度上得到保证。针对机械臂系统中的内外部干扰问题,采用RBF神经网络进行处理,提高跟踪的精确性。利用能量函数证明跟踪误差沿迭代轴渐近收敛到零,所提出新的迭代学习控制算法也可以解决传统的迭代学习控制问题。

参考文献

[1] Sun, W., Su, S.F., Xia, J.W., et al. (2018) Adaptive Fuzzy Tracking Control of Flexible-Joint Robots with Full-State Con-straints. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 49, 2201-2209.
https://doi.org/10.1109/TSMC.2018.2870642
[2] Xu, J.M., Wang, Y.D. and Sun, M.X. (2020) Iterative Learning Con-trol Based on Extracting Initial Iterative Control Signals. Acta Automatica Sinica, 46, 294-306.
https://doi.org/10.1109/ACC.2009.5160565
[3] Hoelzle, D.J., Alleyne, A.G. and Johnson, A.J.W. (2009) Iterative Learning Control Using a Basis Signal Library. Proceedings of 2009 American Control Conference, St. Louis, MO, USA, 10-12 June 2009, 925-930.
[4] Shi, J.T., Xu, J.X., Jun, S. and Yang, Y.H. (2020) Iterative Learning Control for Time-Varying Systems Subject to Variable Pass Lengths: Application to Robot Manipulators. IEEE Transactions on Industrial Electronics, 67, 8629-8637.
https://doi.org/10.1109/TIE.2019.2947838
[5] Liu, G.F. and Hou, Z.S. (2019) RBFNN-Based Adaptive Iterative Learn-ing Fault-Tolerant Control for Subway Trains with Actuator Faults and Speed Constraint. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 51, 5785-5799.
https://doi.org/10.1109/TSMC.2019.2957299
[6] Yu, Q.X. and Hou, Z.S. (2020) Adaptive Fuzzy Iterative Learning Control for High-Speed Trains with both Randomly Varying Operation Lengths and System Constraints. IEEE Transactions on Fuzzy Systems, 29, 2408-2418.
https://doi.org/10.1109/TFUZZ.2020.2999958
[7] Xu, J. (2021) Iterative Learning Control for MIMO Nonlinear Sys-tems with Iteration-Varying Trial Lengths Using Modified Composite Energy Function Analysis. IEEE Transactions on Cy-bernetics, 51, 6080-6090.
https://doi.org/10.1109/TCYB.2020.2966625
[8] Shen, M.Q., Wu, X.Z., et al. (2021) Iterative Learning Control of Con-strained Systems with Varying Trial Lengths under Alignment Condition. IEEE Transactions on Neural Networks and Learn-ing Systems.
https://doi.org/10.1109/TNNLS.2021.3135504
[9] Wang, Z., Hu, C.X., Zhu, Y., et al. (2017) Newton-ILC Contouring Error Estimation and Coordinated Motion Control for Precision Multiaxis Systems with Comparative Experiments. IEEE Transactions on Industrial Electronics, 65, 1470-1480.
https://doi.org/10.1109/TIE.2017.2733455
[10] Saab, S.S., Shen, D., Orabi, M., et al. (2021) Iterative Learning Control: Practical Implementation and Automation. IEEE Transactions on Indus-trial Electronics, 69, 1858-1866.
https://doi.org/10.1109/TIE.2021.3063866
[11] Sun, M.X., Wu, T., Chen, L.J. and Zhang, G.F. (2017) Neural AILC for Error Tracking against Arbitrary Initial Shifts. IEEE Transactions on Neural Networks and Learning Systems, 29, 2705-2716.
https://doi.org/10.1109/TNNLS.2017.2698507
[12] Huang, D.Q., Chen, Y., Meng, D.Y. and Sun, P.F. (2019) Adaptive Iterative Learning Control for High-Speed Train: A Multi-Agent Approach. Transactions on Systems, Man, and Cybernetics: Systems, 51, 4067-4077.
https://doi.org/10.1109/TSMC.2019.2931289
[13] Li, X.F., Xu, J.X. and Huang, D.Q. (2014) An Iterative Learning Con-trol Approach for Linear Systems with Randomly Varying Trial Lengths. IEEE Transactions on Automatic Control, 59, 1954-1960.
https://doi.org/10.1109/TAC.2013.2294827
[14] Iang, Y.M., Wang, Y.N., Miao, Z.Q., et al. (2020) Compo-site-Learning-Based Adaptive Neural Control for Dual-Arm Robots with Relative Motion. IEEE Transactions on Neural Net-works and Learning Systems, 33, 1010-1021.
https://doi.org/10.1109/TNNLS.2020.3037795
[15] Zeng, C., Shen, D. and Wang, J.R. (2019) Adaptive Learning Track-ing for Robot Manipulators with Varying Trial Lengths. Journal of the Franklin Institute, 356, 5993-6014.
https://doi.org/10.1016/j.jfranklin.2019.04.034
[16] Sun, M.X. and Yan, Q.Z. (2013) Error Tracking of Iterative Learning Control Systems. Acta Automatica Sinica, 39, 251-262.
https://doi.org/10.1016/S1874-1029(13)60027-0
[17] Shen, D. and Xu, J.X. (2019) Adaptive Learning Control for Nonlinear Systems with Randomly Varying Iteration Lengths. IEEE Trans-actions on Neural Networks and Learning Systems, 30, 1119-1132.
https://doi.org/10.1109/TNNLS.2018.2861216
[18] Liu, C., Ruan, X., Shen, D. and Jiang, H. (2022) Optimal Learning Control Scheme for Discrete-Time Systems with Nonuniform Trials. IEEE Transactions on Cybernetics.
[19] Shen, D. and Xu, J.X. (2022) Adaptive Learning Control Algorithms for Infinite-Duration Tracking. IEEE Transactions on Neural Networks and Learning Systems.
[20] 吕庆. 抑制初态误差影响的自适应迭代学习控制[J]. 自动化学报, 2015, 41(7): 1365-1372.
[21] Lin, N., Chi, R. and Huang, B. (2019) Auxiliary Predictive Compensation-Based ILC for Variable Pass Lengths. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 51, 4048-4056.
https://doi.org/10.1109/TSMC.2019.2930670