• 首页
  • 科学成果
  • 基于Hildreth的嵌入式肘关节矫形器模型预测控制-刘湘辉博士

基于Hildreth的嵌入式肘关节矫形器模型预测控制-刘湘辉博士

2023-08-23

0 引言 

      在过去的几年里,机器人设备已被广泛用于改善医疗服务的许多策略中。最著名的医疗机器人之一是机器人矫形器或外骨骼。这些机器人已被用于拯救和帮助人们实现残疾肢体的机器人康复,并为老年人或残疾患者提供舒适的医疗保健。这种机器人再教育可以在医院、家庭中进行(Riani等人,2018),也可以使用物联网技术远程进行(Li和Zhong,2020)。重复和密集的治疗互动是使用机器人设备进行中风和脊髓损伤后康复的主要优势。治疗机器人设备还可以对患者在训练期间和训练后的行为进行定量和客观的评估(Pehlivan等人,2016)。上肢和下肢装置是这些医疗机器人康复系统的两个主要类别。施加扭矩的大小是它们之间的基本区别。机器人治疗中的一个重要问题是机器人在康复过程中所扮演的角色。事实上,我们区分了不同类型的治疗模式,即被动、主动辅助、主动约束、对位控制、电阻、误差放大和双手模式(Reinkensmeyer等人,2004)。设计用于控制机器人的控制方法与所选择的治疗模式有关。康复机器人设计的主要标准是所选择的控制策略为患者提供稳健和平静的康复训练的能力(Lee等人,2022)。Proietti等人(2016)对上肢外骨骼的控制策略进行了综述。被动轨迹跟踪可以通过多种方法实现。最简单的方法是采用比例积分微分(PID)控制器来调节位置(Proietti等人,2016)。文献中已经使用了上肢机器人矫形器的其他许多低水平控制方法。Pehlivan等人(2016)详细介绍了一种基于最小辅助需求控制器的自适应控制策略。在Li等人(2017)中,提出了一种采用强化学习的自适应阻抗控制的人机协作。Kiguchi等人(2008)提出了一种基于肌电图(EMG)的三自由度上肢运动辅助控制。Culmer等人(2010)提出了一种导纳控制方案。在Li等人(2017)中,机器人机械手采用了基于控制的自适应阻抗,其末端执行器的运动受到限制。Mayetin和Kucuk(2021)实施了一种嵌入式策略,采用导纳和阻抗控制实验,使用力测量来评估人机交互。在现有的鲁棒控制方案中,本文重点研究了模型预测控制(MPC)方法,这是一种控制机器人系统并处理其硬约束的强大方法。事实上,在所有控制应用中,执行器功率都受到限制。因此,强烈需要在控制器设计规范中明确考虑功率限制。这可以通过受约束的MPC方法来实现。因此,由于MPC的重要优势,本文使用了它。

      事实上,该控制器能够预测未来的轨迹变化。此外,它处理先验致动器约束的能力提供了对输入和输出变量的重要管理。MPC的基本目标是实时解决像本文研究的机器人这样的非常快速的系统的约束优化问题。本文的目的是使用主动集方法进行在线优化,以实现约束MPC设计。在文献中,主动集方法的主题非常适用于约束MPC。原始和对偶方法是计算约束MPC控制律的最常用的优化算法。在经典文献中,数值解过分采用了原始方法。

      最近,采用了适用于预测控制的专门定制的内点方法。已经开展了一些工作来寻找分析解决方案(Wang,2009)。Tsang和Clarke(1988)解决了控制范围为一个或两个的单输入单输出系统的约束广义预测控制问题。他们的想法是基于对活动约束进行猜测,并应用闭式解决方案。Rossiter和Kouvariatakis(1993)提出的加权最小二乘Lawson算法为约束控制问题提供了另一种有趣的方法,因为它是迭代求解的。可以系统地采用对偶方法来发现非活动约束并在解决方案中消除它们。这种方法有助于计算约束最小化问题的最优解的编程过程(Wang,2009)。

       其目的是通过约束预测控制来控制机器人的角位置,降低计算成本,并在控制努力和闭环性能之间保持更好的平衡。受限MPC可以确保安全的治疗演习,因为它能够处理硬件约束,因此使用软件和硬件都可以保证安全。

       毫无疑问,这项工作的主要贡献是它的实验方面。设计的机器人模拟器的初步实验结果发表在Hmida等人(2021). 结果涉及硬件设计、建模和显式MPC的开发。本文是一个扩展,我们将解释基于约束MPC的机器人控制方法,该方法通过基于Arduinoba的接口硬件的32位核心实时在线优化。主要的挑战是以较低的计算时间成本实现这种在线优化。实践证明,该方法能够处理快速的实际系统。

       事实上,本文开发了一个用于约束MPC的主动集Hildreth二次规划求解器。尽管有许多其他二次规划求解器,但我们将重点关注Hildreth算法,因为它的迭代特性被认为对实时实现设计有用(Anne和Darshika,2018)。事实上,它允许在C代码中进行简单的实现,它涉及可以在廉价的微控制器上高效执行的简单操作,而且它还可以处理仿射不等式约束。中心挑战是在总计算时间小于等于4ms的采样时间Ts的情况下,解决基于Hildreth二次规划求解器的机器人控制在线优化问题。

      除此之外,本文的组织如下:在“理论背景:约束MPC设计综述”一节中,给出了约束MPC的设计,而名为“结果和讨论”的一节介绍了受控系统的数值模拟和实时实验结果。一般结论和未来工作见“结论”一节。


1理论背景:受限MPC设计综述

1.1MPC控制策略

       我们的工厂模型被选择为离散时间单输入单输出系统

1.png

其中u(k)和y(k)分别表示系统在时刻k的输入和输出,Xm是假设维数为n1的状态变量向量。扩充状态空间模型如下:

2.png

      要优化以计算控制信号的成本函数J表示如下

3.png

其中,α≥0是用作所需闭环性能的调谐参数的加权因子,Hp是预测范围,Hc是控制范围,Yd(k+1)是时刻(k+i)的设定点。包含设定点信息的向量是Yd,可以表示为:

4.png


1.2受限的MPC策略

      为了处理对控制信号的约束,我们有两种解决方案。第一种是基于无约束解,然后是饱和步骤,第二种是将约束直接纳入MPC问题。这里的基本思想是取为无约束问题获得的控制增量序列U,并在约束变为活动时对其进行修改。这涉及到在存在约束的情况下直接制定优化问题。

      我们将公式约束(输入电压u(k+i)和输入电压增量u(k+i),i=0,….,Hc-1) 作为MPC设计要求的一部分。

      约束MPC的标准优化问题可以看作是一个二次规划问题。约束将被分解为两部分,以反映符号相反的上限和下限。因此,根据不等式,约束将以矩阵形式表示如下

  

5 6.png

其中,dim(M1)=(2Hc1),0.png分别是具有0.png的Hc元素的列向量。

       然后,并使用以下方程:

  

7.png

      因此,根据不等式,对输入序列的约束可以在控制增量序列上进行转换。


1.3基于Hildreth算法的在线优化

     不等式约束以包括活动约束和非活动约束。其中Mj和gj分别是M矩阵的第j行和g向量的第j元素。他们共同形成了第j个不等式约束。

     我们引入了Karush–Kuhn–Tucker条件,该条件根据拉格朗日乘子定义了活动和非活动约束,如下所示

8.png

     其中λ是包含拉格朗日乘子的向量(Wang,2009)。这些条件可以用一组活动约束的更简单形式来表示。设Sact表示活动约束的索引集。然后,必要条件如下

   

9.png

      主动集方法的思想是在算法的每一步定义一组约束,称为要被视为主动集的工作集。识别那些活动约束在计算上是相当大的。双重方法的使用有助于上述识别。我们在最优化文献中将对偶变量称为拉格朗日乘子。等价对偶问题是从方程定义的原始问题导出的,如下所示。

      针对这一对偶问题,提出了希尔德雷斯二次规划方法。事实上,Hildreth算法是高斯-塞德尔方法计算线性方程的一个简单变体。Hildreth过程通过拉格朗日乘子或对偶变量求解对偶问题来获得主动约束(Hildreth,1957)。

      通常,λ是一个稀疏向量,因为在同一迭代中只有一些约束是活动的。在许多情况下,希尔德雷斯二次规划求解器法并不收敛。

      因此,需要仔细选择迭代次数,以增加收敛的可能性,并在不收敛的情况下保证可接受的解决方案。希尔德雷斯二次规划求解器是一个由两个嵌套循环组成的迭代过程。内部循环计算λ向量的元素。外环负责λ向量的收敛性测试。如果l向量收敛或达到最大迭代次数(在我们的情况下,为z次迭代),则后一个循环终止。δ表示用于测试解的收敛性的一个小数字。通过基于先前的最优解初始化λ,将热启动添加到原始算法中(Anne和Darshika,2018)。我们注意到,不需要在每一步计算任何矩阵的逆。因此,该算法比其他算法快914次。因此,如果主动约束的数量小于或等于决策变量的数量,或者如果它们是线性独立的,那么对偶变量将收敛。根据相反,如果上述紧急情况中的任何一个没有得到满足,它们将不会收敛到方程定义的λact。当我们达到最大迭代次数z时,计算循环将终止。基于Hildreth方法的优化将不使用任何矩阵求逆。因此,约束冲突可以在没有获得数值不稳定的λact的情况下发生。事实上,Hildreth算法将在没有断裂的情况下进行,从而产生关于约束的合理的次优解。这对于嵌入式应用程序来说是非常有用的。事实上,病态约束问题会自动恢复,这对系统运行的安全至关重要。当条件满足时,Hildreth算法采用的一维搜索方法已被证明收敛到λact集。后者对于活动约束具有正值的分量,对于非活动约束具有零值。

      MPC算法的实现程序采用C语言实现。为了确保采样周期始终恒定,有必要在每次迭代时精确测量时间。因此,在每个连续的时刻,执行以下方案:

      1)测量的过程输出信号存储在微控制器的存储器中。

      2) 控制信号的新值按照希尔德雷斯算法计算并应用于该过程。

      3) 微控制器等待一个新的离散时间瞬间并返回步骤λ。

      使用脉冲宽度调制(PWM)输出将控制信号施加到过程中。我们在不超过内存要求的情况下实现了一些离线计算。因此,所有必要的矢量和矩阵都是离线预先计算的,并传输到微控制器。


2结果与讨论

      在我们的案例中,实现了两种机器人康复控制策略。辅助被动治疗是第一种策略,在这种策略中,机器人设备支撑受损肢体的重量,并产生全部扭矩来完成运动。第二种策略是阻力技术,其中机器人矫形器反对对所需运动的努力,以形成更具阻力的任务,并使患者能够适应运动以对抗外部扰动(Proietti等人,2016)。这两种技术如图1所示。


2.1肘部康复机器人模型

      我们的实验平台是一个活动肘关节。它包含1个自由度操纵器,能够启动用户的肘部进行屈曲/伸展运动。这种机器人矫形器包含一个致动器、一个传感器和一个控制硬件。直流(DC)电机和传感器是根据控制手臂运动的运动学约束条件选择的(Mohammadi等人,2016)。事实上,人类手臂肘关节的运动范围在0°和140°(Liszka,2006年)。所提出的机器人的工作空间将被限制在0°和130°安全问题。肘部致动所需的计算扭矩为6 N m。因此,直流齿轮电机(RDS5160)和比例为1:279的金属齿轮箱负责肘部的弯曲/伸展。我们使用了一个由坚固的金属齿轮箱(60 kg cm)配备的直流伺服电机执行器。直流电动机的机电特性详见表1。

      该执行器与模拟人体手臂的肘部支撑机械耦合。机械旋转是通过一个铝金属支架和一个伺服臂来完成的。为了测量肘部支撑的角度位置,我们使用了一个旋转电阻电位计作为传感器。它是一个有三个端子的可变电阻器。两个固定端子分别连接到3.3和0V,一个可变端子机械连接到RDS5160直流电机的轴。它是一种模拟旋转编码器,具有稳定控制回路的角度控制器是基于状态的控制器,为了控制推车的位置,本文使用了两个MF智能控制器:一个iPD控制器、一个MF-SMC控制器和可调分压器。该传感器具有模拟输出信号,该信号与角度位置成比例地变化,从0到3.3 V。一个顶部有有机玻璃盖的小塑料盒包含Arduino Due板和连接到电源插座的DFRobot 15A。此外,可以简单地启动紧急停止按钮,以确保患者的安全。整个机器人设备。

      这是第一块基于32位Atmel SAM3X8E ARM Cortex-M3核心微控制器的Arduino板。它包含54个数字输入/输出引脚(其中12个可以用作12位PWM输出)、12个模拟输入、2个数模转换器和4个硬件串行端口。它的工作频率为84兆赫。Arduino Due板运行电压为3.3伏。输入输出引脚可承受的最大电压为3.3 V。它配备了512 KB闪存和96 KB静态随机存取存储器。图2所示的DFRobot 15A电源接口用于为机器人电机供电。

      模拟角度位置被转换为数字格式(12位),进入微控制器。MPC方法需要识别模型。事实上,预测性能与模型对工厂动态的表征程度高度相关。在Hmida等人(2021)描述的先前工作中,采用了线性模型而不是基于物理的模型。与上述采用的模型相比,后一种模型的缺点通常是计算的复杂性。线性模型的简单性提供了一个动态模型,为实时应用提供了方便的预测控制性能(Anne和Darshika,2018)。采用实验方法对肘部机器人模型进行了识别。在实验中,将合适的电压输入序列应用于开环系统,并在每个采样周期Ts=0:004 s捕获和测量角位置输出值(以伏特为单位)。MATLAB系统识别工具箱用于识别模型。识别基于测量输出和模型预测输出之间的误差最小化(Qi等人,2019)。Hmida等人(2021)强调了模型实验识别过程的细节。机器人有一个单独的控制输入(电机电压)和一个测量输出(旋转角度)。设备的输出和输入信号表示为电压,这意味着它们被限制在0到3.3 V之间。DFRobot15A接口在整个实验测试中都在6V下供电。确定的离散时间模型如下为了控制设计的机器人


2.2仿真结果

      本节描述了在MATLAB环境中执行的模拟结果。将描述肘关节的被动屈伸。

      参考轨迹的生成是一个重要的问题,有许多方法对此进行了定义。事实上,注意到参考生成是一个与控制康复机器人设备问题不同的问题是有意义的。当然,相同的控制律可能会产生不同的康复表现,通过采用各种方法产生参考(Proietti等人,2016)。基本方法是直接记录人体肢体的运动(教学/记录)。这种技术总是能产生实用和个性化的参考资料,但它很耗时,而且无法进行多次练习。成本函数和优化算法的使用也是用于定义参考轨迹的其他策略(Proietti等人,2016)。可以实现呈现平滑跟踪轮廓的滤波参考轨迹。本文研究了三种类型的轨迹。

10.png

       第一条轨迹是许多作品中使用的正弦轨迹(例如,见Mohammed等人,2012;Riani等人,2018;Roula等人,2019;Sherwani等人,2020)。上述轨迹的模型定义如下:yd(k)=0.75 sin(k/200)+1.8(对于0łkł; 2000)。我们注意到,对于所有下图,所有输出、控制输入和控制输入增量值都以伏特表示。图3描述了正弦轨迹的系统输出y、设定点yd、控制序列u和输入增量u。第二个轨迹被认为是连续的步骤。考虑该轨迹的模拟MPC响应如图4所示。第三条轨迹是过滤轨迹,其响应如图5所示。对于这三种响应,MPC成功地连接和跟踪轨迹,而不违反约束条件,并具有不同的性能,如表2所示。系统输出的过冲、输入信号的方差和跟踪误差e的均方根(RMS)计算如下

     其中N、ymax和y’分别表示输出信号的总迭代次数、最大值和最终稳态值。为了降低能耗,第三条轨迹似乎是实际测试中使用的最佳轨迹。我们考虑了三种不同的优化方法,并使用tic和toc MATLAB函数测量了每次迭代所需的时间(Knap-Cordes和McKeeman,2011)。此任务使用英特尔奔腾CPU 2020M 2.40 GHz处理器完成。图6描述了不同求解器的计算时间演变。图6和表3表明,基于Hildreth的二次规划求解器比其他著名的MATLAB求解器更快。


2.3实验结果

      接下来介绍的实验有两个目标。

      首先,证明了所讨论的解析Hildreth二次规划求解算法可以应用于采样周期短的快速过程。其次,受约束MPC处理机器人硬件约束的能力。我们的实验是为了使用机器人矫形器提供被动和阻力康复模式。该设备在没有患者的情况下进行了测试。测试的目的是保证机器人的良好性能,以帮助治疗师在良好的条件下应用他们的再教育计划。这是一种训练测试,可用于临床康复。本实验中使用的轨迹对应于肘关节允许的被动屈曲/伸展运动,并用于临床被动康复练习。运动范围必须在130°之间?(超扩展)和0°(过度屈曲)。静止位置被认为是0°。由于没有通用的调整方法,预测和控制范围以及加权系数通过离线实验进行调整。事实上,MPC的参数是通过MATLAB考虑仿真结果进行调整的,以获得平滑的响应,而不会出现过冲和振荡。在文献中,我们区分了两种用于调整MPC参数的方法。第一种是基于我们工作中使用的离线试错方法。第二个与Hewing等人(2020)以及Gros和Zanon(2020)中所做的在线调整参数的学习过程有关。这种在线方法带来了严重的计算挑战,尤其是对于像我们的肘部机器人系统这样采样时间短的系统,并将导致高计算时间。假设闭环性能令人满意的MPC参数如表4所示。

      Hildreth二次规划求解器参数汇总在表5中。不依赖于的时不变计算在控制算法开始时仅实现一次。这将减少MPC算法的密集迭代计算的负载。

     重新定位的计算包括矩阵u和F,Hildreth矩阵H以及约束矩阵M和g。

     轨迹的参考是由四个部分组成的分段滤波轨迹。每个部分可保存2000个样本。模拟总共持续8000个样本。在采样时间Ts=4ms的情况下,这相当于32秒。约束MPC响应的计算时间如图7所示。它从零活动约束的160ms到两个活动约束的471ms不等,这是非常合理且不耗时的。然后,Hildreth二次规划求解器算法是非常有效的,因为它是在可接受的时间内实现的。实现Hildreth二次规划求解器算法的时间取决于两个因素:非零元素的数量和收敛所需的迭代次数。

      图8所示的实验结果证明了所设计的预测控制器取得了令人满意的结果。事实上,输出成功地跟踪了设定点,并且满足了对输入和输入增量信号的约束。表6中给出的实验测试的分析表明,出现了不显著的超调、平稳的响应和低的控制信号方差。观察到的超调是完全可以接受的,并且在治疗训练期间对用户的安全性没有不良影响。过冲过大


3 结论

      在这项工作中,建立了用于教学机器人设备的约束预测控制器。事实上,使用了基于32位Atmel SAM3X8E ARM Cortex-M3核心微控制器的Arduino Due板。本文清楚地表明,对于使用Arduino板的快速机器人系统,可以通过实验实现约束MPC的在线优化。该基于约束MPC的Hildreth二次规划求解器被实时实现,以实现在线优化。应用于机器人设备的控制律在特定的被动和阻力运动中表现出良好的性能。这项研究未来发展的有希望的途径将包括基于学习的MPC,该MPC考虑了模型的不确定性,并提供MPC参数的自动调整。此外,我们的机器人设备还将集成一个力传感器,以研究人机交互。