董伯麟,杨瑞伟
(合肥工业大学机械工程学院,安徽 合肥 230009)
在传统工业机器人领域,绝大部分机器人要求具有高速和高精度的性能,因此其关节要求设计成高阻抗的刚性结构[1]。这种带有高刚度驱动关节的机器人在与外界环境发生碰撞时,容易给周围的人、环境甚至是机器人本身造成无法挽回的损失[2]。为了让机器人能够应对工作环境的动态变化以及人机交互的不确定性,机器人的关节必须具有一定的柔顺性和安全人机交互的能力。为此,国内外学者对机器人关节的柔顺性展开大量的研究[3]。在机器人的柔顺性的研究中,最为典型的结构就是串联弹性驱动器(Series Elastic Actuator)[4],即通过在机器人关节上加入弹性元件,将电机端与负载端之间的冲击载荷隔离,让机器人关节本身具有一定的物理柔顺性。目前,串联弹性驱动器(SEA)广泛运用于康复机器人[5]、仿人型机器人[6]、机械外骨骼[7]等应用中。
在SEA力矩控制策略上,文献[4]等提出了基于电流环的PID结合前馈补偿的力矩控制策略。之后文献[7]将阻抗控制算法运用到SEA的力矩控制中,提出基于力矩外环的级联PID控制策略,进一步优化了SEA 驱动控制系统中人机交互的动态性能。文献[8]指出基于电流环的力矩控制器存在采样微分误差较大、系统稳定性差等缺陷,并提出了用电机速度环代替电流环的力矩控制算法。文献[9]在研究机械外骨骼时,在级联PID控制结构的基础上,提出了基于线性扰动观测器(Linear Disturbance Observer,LDOB)的控制方法,排除了SEA运动模型中时变参数的影响,进一步提高了控制系统的鲁棒性。在上述控制方案中,基于成熟和完善的动力学模型控制方案能在特定应用场景中表现出良好的性能。但是,随着机器人技术的发展,为了追求人机交互场景中更好的仿生特性,机器人的机械结构也变得越来越复杂。导致了精确建立控制系统的动力学模型及系统参数确定变得极其困难[10]。另外,上述控制方法在SEA力矩控制器设计时,大多未考虑系统本身存在的各种外界干扰,而扰动问题在实际运用中却是不可回避的。针对上述问题,对串联弹性驱动器的结构进行了改进,极大的提高了SEA驱动器中力矩输出与弹性体形变量之间的线性关系,并以此为基础建立了动力学模型。在力矩控制器的设计过程中,提出了基于数据驱动控制的无模型自适应控制方法[11],既简化了控制器的设计,又提高了控制系统抗外界干扰的能力。最后在MATLAB/Simulink 平台上进行了仿真分析,验证了数据驱动控制器设计的正确性。
串联弹性驱动器和传统刚性驱动器相比,最大的特点就是在谐波减速器输出端和负载端串联了一个弹性元件[4],通过编码器测量出弹性体的形变量,以此计算出SEA驱动器所受负载端传递的扭矩。这使得驱动器力矩控制问题转化为弹性体形变量控制问题。对于改进的SEA 驱动器结构示意图,如图1 所示。该SEA驱动器主要由无框力矩电机、电磁制动器、谐波减速器、弹性体、编码器、输入输出轴以及外壳构成。
图1 SEA驱动器结构示意图Fig.1 Schematic Diagram of SEA
该驱动器主要有两大作用,一是能够对外界环境的冲击起到一定的缓冲作用,避免SEA本身受到损伤;二是通过弹性体两端的位置差与弹性体材料系数的乘积,反馈输出驱动器所受的力矩,让机器人具备一定的人机交互能力。改进的弹性驱动器,结构简单紧凑,极大地降低了各零部件的安装难度。同时采用空心圆轴式的设计既可以实现较大的刚度,又可以实现驱动器中心走线的布置。
将设计的新型SEA驱动器应用于机器人系统,SEA驱动器工作原理图,如图2所示。
图2 SEA工作原理图Fig.2 SEA Working Principle Diagram
SEA驱动器的动力学方程可描述如下:
式中:fl—SEA输出的;Ks—弹性体的刚度;JM—电机(将减速器和电机组成的驱动源称为电机)的转动惯量;fM-电机输出力;xM-电机端输出位置;xl-负载端输出位置;△x-弹性体的形变量。
式(1)经过Laplace变换后得:
根据式(2)得SEA驱动器的控制框图,如图3所示。
图3 SEA控制框图Fig.3 SEA Control Block Diagram
根据上图可知,控制系统在末端固定(Xl=0 )时,系统输入为FM,并且系统输出为F(l弹性体输出力),因此控制下系统传递函数为:
在传统SEA力矩控制策略研究中,人机交互的不确定性以及环境中未建模动态的变化一直都是控制器设计中无法回避的问题。因此,在力矩控制中需要实现如下两个指标:(1)SEA驱动器的力矩输出需要能够快速、精确地跟踪期望力矩输入;(2)SEA驱动系统在应对未知的环境参数和未建模的动态变化时,需要保证其鲁棒性。为了满足以上要求,根据式(3)以及在文献8]等设计的基于速度内环力矩控制的基础上,提出了一种基于数据驱动控制的无模型自适应力矩控制方法。SEA力矩控制框图,如图4所示。其中速度内环的PI控制器由驱动器的内部参数确定。
图4 SEA力矩控制框图Fig.4 Block Diagram of SEA Torque Control
无模型自适应控制的基本思路是在控制系统附近通过一系列动态线性时变模型来替代非线性系统,利用系统输入输出数据在线估计系统的伪偏导数参数,然后设计加权一步向前的力矩控制器[11]。从而消除了未建模动态和环境参数对控制系统的影响,保证了控制系统的鲁棒性。在SEA驱动器控制系统中,控制目标是让SEA驱动器的输出力矩能够达到期望的轨迹。
为此设计的无模型自适应控制器输入为期望的输出力矩y=Td,输出为SEA驱动器的实际输出力矩u=Tl,考虑SISO离散时间非线性系统如下:
式中:y(k)∈R、u(k)∈R—系统在k时刻的输出和输入;f( · )-未知的非线性函数;nu,ny—两个未知的正整数。
那么当△u(k)≠0时,一定存在一个伪偏导数(Pseudo-partial-derivative,PDD)的量ϕ(k),可得:
并且|ϕ(k) |≤b,且b是一个正常数;在考虑如下控制输入准则函数:
式中:λ>0是一个惩罚因子,用于控制输入量的变化。将式(5)代入到式(6)中,对u(k)求导,并令其等于零,得到无模型自适应控制律如下:
式中:ρ—步长因子,ρ∈(0,1]。
在控制律算法中伪偏导数量ϕ(k)是一个时变参数,在基于模型的控制系统框架下难以求解。因此设计利用受控系统输入输出数据来估计ϕ(k)的值。考虑如下PDD估计准则函数:
式中:μ—权重因子,μ>0。
对式(8)中的ϕ(k)求极值,可以得到PDD的估计算法可得:
式中:η—步长序列;μ—权重因子。
根据式(8)、式(9)可得无模型自适应控制框图,如5图所示。
图5 无模型自适应力矩控制器框图Fig.5 Block Diagram of Model-Free Adaptive Torque Controller
无模型自适应控制算法存在两个关键参数(惩罚因子λ、学习步长ρ),只有选取合适的参数值才能够保证控制系统的稳定,以及在系统响应的快速性和超调量之间达到平衡。为此,利用BP神经网络强大的非线性映射能力实现MFAC算法中惩罚因子和学习步长的在线自整定。SEA系统无模型自适应力矩控制器的参数整定结构框图,如图6 所示。BP 神经网络以y(k),y*(k+1),△y(k),u(k)四个已知量为输入层,两个待整定的参数λ,ρ为输出层,隐含层为单层结构。
图6 SEA系统无模型自适应力矩控制器的参数整定结构框图Fig.6 Block Diagram of Parameter Tuning Structure of Model-Free Adaptive Torque Controller
(1)BP神经网络正向传播过程如下:
①输入层节点的输出为:
式中:xi—第i个输入。
②隐含层的输入输出为:
式中:hxj(k)—第j个隐含层的输入;hωji—第i个输入层到第j个隐含层的权值;hyj(k)—第j个隐含层的输出;f1(·)—隐含层的激活函数。
③输出层的输入输出为:
式中:oxk—第k个输出层的输出值;oωkj—第j个隐含层到第k个输出层的权值;oyk(k)—第k个输出层的输出;f2(·)—输出层的激活函数。
参数整定模块中可考虑其性能函数:
(2)BP神经网络反向传播过程中权值系数更新如下:
①输出层到隐含层权值更新
式中:η(k)—第k次迭代的学习速率;α—惯性系数。
②隐含层到输入层权值更新
根据式(14)、式(15)可分别计算出第k+1次权值的变化量,即实现了各层权值的更新。通过BP神经网络的迭代学习,实现了MFAC控制算法的参数在线自整定功能。
为了进一步验证数据驱动控制算法的正确性,下面通过MATLAB/Simulink仿真实验平台对SEA驱动器进行数值仿真分析。SEA驱动器中电机的转动惯量JM=14.4×10-5kg·m2,谐波减速器的减速比i=50,弹性体刚度Ks=4500N·m/rad。基于速度内环的PI控制器控制参数为Kp=0.14,Ki=7。在机器人的人机交互过程中,力矩控制最为主要的目标是实现碰撞过程中的力矩柔顺性。为了仿真测试机器人与外界环境发生碰撞的场景,让负载端始终处于固定状态(负载端的位置量xl=0),SEA驱动器期望输入力矩值保持为Td=15N·m,在5s时加入一个阶跃信号T=2N·m,表示外负载的突然变化。观察SEA 输出力矩对于期望输入力矩的跟随情况。对于SEA驱动关节分别采用级联PID力矩控制[12]、固定参数的MFAC力矩控制、基于BP神经网络参数在线自整定的MFAC力矩控制三种控制方法进行对比仿真分析。级联PID控制参数调整为Kop=10,Koi=3,Kod=0.5。
固定参数的MFAC 力矩控制参数为λ=4,ρ=0.3。三种控制方案的仿真结果,如图7所示。基于BP神经网络参数在线自整定MFAC力矩控制的整定参数结果,如图8所示。
图7 SEA驱动器力矩控制仿真结果Fig.7 Simulation Results of SEA Drive Torque Tontrol
图8 BP神经网络参数整定结果Fig.8 Parameter Tuning Results of BP Neural Network
从仿真结果中可以看出,当机器人与外界环境发生碰撞时,级联PID力矩控制方法、固定参数的MFAC力矩控制方法和基于BP 神经网络参数在线自整定的MFAC 力矩控制方法都能够使SEA输出力矩收敛于期望值。从稳定性上看,在上述三种控制方法中,级联PID力矩控制和固定参数的MFAC力矩控制都存在超调量,而基于BP神经网络参数在线自整定的MFAC力矩控制方法没有明显的超调量,控制效果最好。从快速性上看,固定参数的MFAC力矩控制和基于BP神经网络的MFAC力矩控制都能在2.5s以内达到稳定状态,而级联PID力矩控制需要3.5s后才能达到稳定状态。综上所述,所设计的基于BP神经网络参数在线自整定的MFAC力矩控制方法在暂态响应和鲁棒性上具有明显的优势。
为了实现机器人在人机交互过程中的力矩柔顺性,根据SEA工作原理对串联弹性驱动器进行了改进设计,不仅让机器人关节的结构更加简单和紧凑,而且极大地改善了SEA输出力矩与弹性体形变量间的线性关系。另外,在此基础上设计了基于数据驱动控制的MFAC力矩控制器,并采用改进的BP神经网络算法实现了MFAC力矩控制器参数的在线自整定。采用该种控制算法仅仅需要利用SEA 控制系统I/O 的数据即可实现力矩控制器的设计,解决了机器人难以精确建立受控系统动力学模型以及参数调整困难的问题。最后通过仿真分析验证了所设计控制方法的有效性。在接下来的工作中,我们将结合具体的应用场景对SEA力矩控制问题做更深入的研究。