基于CPG神经元网络的机械臂运动节律控制方法与流程

文档序号:16923598发布日期:2019-02-19 19:40阅读:454来源:国知局
基于CPG神经元网络的机械臂运动节律控制方法与流程

本发明涉及生物医学工程技术,特别是一种基于cpg神经元网络的机械臂运动节律控制实验方法。



背景技术:

近年来,随着机器人技术的发展,高速、高精度、高负载自重比的机械臂结构受到各个领域的关注。随着人们对于机械臂的应用要求的提升,传统由人工规划产生的机械臂运动轨迹,不论是轨迹的连贯性还是动作的自然性,都与人类的真实手臂存在很大差异。因此,机器人机械臂结构柔性特征必须予以考虑,有效控制柔性机械臂精度必须分析系统动力学特性,单纯地依靠传统的设计方法已经无法满足人们对机器人复杂功能的要求。

随着生物学研究的不断深入,仿生控制方法在模拟生物运动节律的方向上展现出了相比传统控制方法更大的优越性。中枢模式发生器,英文名称cpg(centralpatterngenerator),是一种复杂的分布式神经网络。这种神经网络可以在没有外部节律信号输入的前提下通过网络自身来产生节律信号,是自然界中动物产生节律运动的重要机制。这种网络主要由相互耦合的振荡器和接收外界刺激的反馈系统组成,具有很强的鲁棒性和自适应能力,已经成为生物学领域和仿生学领域研究的热点之一。因此设计一种基于cpg神经元网络的机械臂运动节律控制实验平台,通过人机操作界面进行相关参数的设定,整定cpg神经元网络输出的波形,调节机械臂节律运动的振幅、周期、对称性,实现对机械臂运动节律的控制。

现场可编程门阵列(fieldprogrammablegatearray,fpga)技术在以生物神经系统为对象的计算神经科学领域的应用逐渐受到重视。相比于模拟系统,fpga有着体积小、密度高、计算速度快(最高速率可达150mhz)、编程灵活、修改参数方便、低功耗、低成本、可重新配置、高可靠性等优点。应用可并行运算的fpga实现对神经元及网络的运算和特性分析,可实现在真实时间尺度下运行,效率高,且集成度高,在神经元网络特性研究、仿生学、智能系统等方面有着广阔的应用前景。

现有的技术存在以下不足之处:现有的控制策略多采用pwm调节占空比的方法,对大脑控制手臂运动的仿真度较低,控制效果较为僵硬、迟缓,控制器不能灵活的控制机械臂。



技术实现要素:

针对现有技术存在的各项不足,本发明提出一种基于cpg神经元网络的机械臂运动节律控制方法。该方法通过对cpg神经元网络模型参数的设置和变阈值整形方式的调整,实现对机械臂节律运动的调控。为研究cpg神经元网络模型的动力学特性及其在仿生机器人领域的应用提供了重要依据。本发明解决所述技术问题采用的技术方案是:

一种基于cpg神经元网络的机械臂运动节律控制方法,包括下列步骤:

(1)上位机设定神经元持续纳电流、钾电流和泄漏电流对应的电导率和反电势参数,以及变阈值整形时的上、下限阈值和阈值周期,并由usb通讯传输至fpga;

(2)fpga根据所设参数,建立cpg神经元网络仿真模型,进行仿真,仿真过程中输出放电波形,将此波形传输至上位机加以显示;

其中,所采用的cpg神经元网络是一种由一个兴奋性神经元,即1号神经元和三个抑制性神经元,编号分别为2、3、4号神经元,三个兴奋性驱动作用(d1、d2、d3)构成的网络模型,这些神经元通过突触连接而形成复杂的神经元网络,从而产生节律信号;

该cpg神经元网络模型的数学表达式具体描述如下:

上式中i(i=1,2,3,4)分别代表1、2、3、4号神经元,其中符号说明如下:c为神经元的膜电容,vi为i号神经元所代表神经元群体的平均膜电位,t为时间,inap为持续钠电流,ik为钾电流,iadi为自适应钾电流,ili为泄漏电流,isynei和isynii分别为其它神经元向i号神经元输入的兴奋性电流和抑制性电流,上述电流均根据上位机所设参数计算得到;

该cpg神经元网络中的每个神经元模型由一个二阶微分方程组描述,四个神经元相互耦合,附加三个外部驱动作用,共同构成cpg神经元网络模型;

用非线性函数fi(vi)表示每个神经元所为的神经元群体的输出活动,定义如下:

其中v1/2为半活动电压,为i号神经元输出函数的斜率;

将1号神经元的输出信号f1(v1),经过变阈值整形转换为占空比可调的矩形波信号,作为机械臂3的控制信号;

(3)利用fpga实现变阈值整形,对步骤2中cpg神经元网络输出的放电波形进行整定,并输出控制信号至机械臂,从而控制调节机械臂的运动节律,并将机械臂关节角位移传输至上位机加以显示;方法如下:在cpg神经元网络信号的每个周期上均设置一个不同的阈值;所设阈值不同,整形所得矩形波的占空比不同;阈值越小,占空比越大,对应机械臂的角度值越大;

在一个周期内,阈值函数先增后减,整形后矩形波的占空比和机械臂的关节转角先减后增,机械臂实现一次摆动在连续时间段内,cpg神经元网络输出连续信号,阈值函数进行周期性变化,机械臂的一个关节进行周期性的摆动,即运动节律;

阈值函数的上、下限阈值分别决定机械臂关节的最大和最小摆角,从而决定了机械臂摆动的振幅;通过改变上、下限阈值调节运动节律的振幅;

阈值函数从上限阈值递减到下限阈值的下降时间决定机械臂关节角位移增大的时间;反之,上升时间决定角位移减小的时间;一方面,角位移增大和减小的时间决定机械臂摆动的对称性,二者相等时,进行对称性摆动;否则,进行非对称性摆动;另一方面,两个时间之和决定运动节律的周期;因此,可通过改变阈值函数在一个周期的上升、下降时间来调节运动节律的对称性和周期;

对电信号的变阈值整形通过fpga实现,主要由加法器、比较器、延迟模块、乘法累加器、查找表组成;首先,在每个周期检测cpg信号,确定改变阈值的时刻;利用比较器对cpg信号做阈值整形处理,整形后的信号为占空比不变的矩形波,且周期与cpg信号相同;

然后,利用延迟模块和加法器,实现信号当前时刻幅值与前一时刻幅值的减法运算,如果结果为1,即为上升沿,相邻上升沿的间隔为cpg信号的周期;之后将上升沿判断位与数据1做乘法累加,结果增大1为cpg信号增加一个周期,阈值发生变化;查找表中以一维数组的形式存储了阈值函数一个周期的阈值,乘法累加器的输出作为地址值读取对应阈值,用读取到的阈值与cpg信号做整形运算;当乘法累加器的输出值达到阈值函数单个周期的总阈值数时,乘法累加器的输出清零,重新读取查找表中阈值数组的值,完成周期的循环。

本发明的有益效果是:(1)利用cpg神经元网络实现对机械臂运动节律的控制,更接近人脑对手臂的控制;(2)fpga采用并行的计算方式,具有较高的运算速度,可以模拟人脑计算的时间尺度。(3)通过在上位机上调节cpg神经元网络模型参数和变阈值整形模块阈值,即可整定fpga仿真系统输出的控制信号,最终调控机械臂节律运动的振幅、周期和对称性。

附图说明

图1为本发明本发明采用的系统的总体设计框图;

图2为本发明的cpg神经元网络结构图;

图3为本发明的1号神经元的fpga离子通道计算模型;

图4为本发明的2号神经元的fpga离子通道计算模型;

图5为本发明的3号神经元的fpga离子通道计算模型;

图6为本发明的4号神经元的fpga离子通道计算模型;

图7为本发明的阈值函数举例示意图;

图8为本发明的fpga变阈值整形模块实现结构图;

图9为本发明的上位机人机操作界面示意图。

具体实施方式

下面结合实施例及附图内容对本发明的技术方案进行清楚完整的描述及说明,但并不以此作为本申请保护范围的限定。

图1为本发明采用的系统的总体设计框图,其中的核心fpga芯片采用的是altera公司的stratixiiiep3se260f1152c2n。利用matlab软件中的dspbuilider编写基于模块的cpg神经元网络模型,用quartusii软件进行编译综合后下载到芯片中形成相应的硬件电路。

基于cpg神经元网络的机械臂运动节律控制方法,其特征在于该方法借助上位机和fpga开发板实现,在上位机设定所需相关参数,并用usb通讯传输至fpga开发板,经过处理后的信息输出至机械臂,控制其运动节律。

本发明基于cpg神经元网络的机械臂运动节律控制方法,基于上位机和fpga开发板实现。主要包括三个步骤:

(1)在上位机设定神经元持续纳电流、钾电流和泄漏电流对应的电导率和反电势参数,以及变阈值整形时的上、下限阈值和阈值周期,并由usb通讯传输至fpga;

(2)fpga根据所设参数,建立cpg神经元网络仿真模型,进行仿真,仿真过程中输出放电波形,将此波形传输至上位机加以显示;

(3)利用fpga实现变阈值整形,对步骤2中cpg神经元网络输出的放电波形进行整定,并输出控制信号至机械臂,从而控制调节机械臂的运动节律,并将机械臂关节角位移传输至上位机加以显示;

本发明所采用的cpg神经元网络是一种由四个神经元和三个兴奋性驱动作用构成的网络模型,该网络中的四个神经元包括一个兴奋性神经元(1号神经元)和三个抑制性神经元(2、3、4号神经元),三个兴奋性驱动作用(d1、d2、d3)。这些神经元通过突触连接而形成复杂的神经元网络,从而产生节律信号。网络连接结构如图2所示,该网络的每个神经元分别代表一个不同种类的神经元群体。

该cpg神经元网络模型的描述是由一系列微分方程构成的,具体描述如下:

上式中角标编号i(i=1,2,3,4)分别代表1、2、3、4号神经元,其中符号说明如下:c为神经元的膜电容,vi为i号神经元所代表神经元群体的平均膜电位,t为时间,inap为持续钠电流,ik为钾电流,iadi为自适应钾电流,ili为泄漏电流,isynei和isynii分别为其它神经元向i号神经元输入的兴奋性电流和抑制性电流。

以上电流的表达式如下:

inap=gnapmnaphnap(v1-ena)

iadi=gadimadi(vi-ek)

ili=gli(vi-el)

上式符号说明如下:gnap、gk、gadi、gli、gsyne、gsyni分别为相应元素电流的最大电导系数,ena、ek、el、esyne、esyni分别为对应元素电流所在通道的反电势,d1、d2、d3为来自于外部的三个兴奋性驱动作用,aji为从神经元j到神经元i的兴奋性突触输入的权重;bji为从神经元j到神经元i的抑制性突触输入的权重;而cki为从驱动作用k到神经元i的兴奋性突触输入的权重。

非线性函数fi(vi)表示每个神经元所为的神经元群体的输出活动,定义如下:

其中v1/2为半活动电压,kvi为每个神经元定义了输出函数的斜率。电流表达式中的mnap、hnap为1号神经元中持续钠电流的门控变量,mk、madi为各神经元中自适应钾电流的门控变量,它们的具体表达式如下:

其中,函数h∞nap与τhnap的表达式具体描述如下:

其中,τhnapmax为持续钠电流的时间常数,τadi为自适应钾电流的时间常数,kadi为自适应参数。该cpg神经元网络中的每个神经元模型由一个二阶微分方程组描述,四个神经元相互耦合,附加三个外部驱动作用,共同构成了cpg神经元网络模型。

该网络的突触权重矩阵分别取为:

参数表如下:

其中1号神经元的持续钠电流、钾电流、泄漏电流对应的电导率和反电势这6个参数可在上位机1设置(上表所列数值仅为参考值),其它参数固定。

cpg神经元网络的建模和控制信号的输出通过fpga芯片实现。

首先采用欧拉法对上述模型离散化,数据输入总线接收上位机设置的数据到硬件系统中,四个神经元模型的所有数据通路均在同一时钟下同步运行。

图3-6分别为1、2、3、4号神经元的fpga离子通道硬件结构图,主要由加法器、乘法器和查找表构成。

以1号神经元为例,说明其硬件结构图(如图3所示)的基本内容。该图共有7个查找表,其中lut1至lut4实现各电流所对应门控变量的复杂函数,lut5实现的是1号神经元的输出f1(v1),该函数的值域为[0,1],是该cpg模型的主要输出,也是后续机械臂的关节控制信号的来源。lut6和lut7分别是3号神经元和4号神经元的输出,是3号神经元和4号神经元对1号神经元耦合作用的体现,由于它们是电流isyni1的组成部分,故体现了抑制性神经元的抑制作用。图中的0.063为三个兴奋性驱动作用d1、d2、d3对1号神经元兴奋性突触输入作用的大小。图中从△t到输出前的部分正是欧拉法离散化的实现。

本发明将1号神经元的输出信号f1(v1),经过变阈值整形转换为占空比可调的矩形波信号,作为机械臂3的控制信号。

其中变阈值整形的思想为:在cpg神经元网络信号的每个周期上均设置一个不同的阈值。图7为阈值函数的实现示意图,该图的横轴为cpg神经元网络信号的周期数,以整数为有效的取值点,整数对应的纵轴值即为cpg神经元网络信号在该周期对应的阈值。

整形原则为cpg神经元网络信号在高于阈值的部分整形为3.3v,即高电平;反之为0v,即低电平。因此,cpg神经元网络信号在每个周期均被整形为矩形波。所设阈值不同,整形所得矩形波的占空比不同。阈值越小,占空比越大,对应机械臂的角度值越大。

阈值函数在一个周期内按照先减后增的规律变化,对应整形后的矩形波的占空比按照先增后减的规律变化,对应机械臂一个关节转角按照先增后减的规律变化,即实现一次摆动。只要cpg神经元网络信号持续输出,阈值函数持续进行周期性变化,机械臂的一个关节就会周期性的摆动,即运动节律。

阈值函数的上限阈值和下限阈值分别决定机械臂关节的最大和最小摆角,二者共同决定了振幅;

阈值函数从上限阈值递减到下限阈值所需下降时间决定机械臂关节角位移增大的时间;反之决定减小的时间。当增大和减小的时间相等时,机械臂对称性摆动;否则,非对称性摆动。且二者之和决定运动节律的周期。因此,可以通过改变上下限阈值来调节运动节律的振幅,改变阈值函数在一个周期的上升、下降时间来调节运动节律的周期和对称性。

对电信号的变阈值整形通过fpga实现(如图8所示),主要由加法器、比较器、延迟模块、乘法累加器、查找表组成。首先,在每个周期检测cpg信号,确定改变阈值的时刻。先将原cpg信号通过比较器做阈值整形处理,整形后的信号为占空比不变的矩形波,与cpg信号不同,但二者周期相同。

然后,通过延迟模块和加法器,实现信号的当前时刻幅值与前一时刻幅值的相减,如果结果为1,即为上升沿,相邻上升沿的间隔为cpg信号的周期。之后将上升沿判断位与数据1做乘法累加,结果增大1为cpg信号增加一个周期,阈值发生变化。查找表中以一维数组的形式存储了阈值函数一个周期的阈值,乘法累加器的输出作为地址值读取对应阈值,用读取到的阈值与cpg信号做整形运算。当乘法累加器的输出值达到阈值函数单个周期的总阈值数时,乘法累加器的输出清零,重新读取查找表中阈值数组的值,完成周期的循环。

通过signalcompiler功能将dspbuilder模块转换成vhd设计文件和tcl脚本,之后在quartusii中转化为功能块。由于dspbuilder模块输出的控制信号与原始cpg信号周期相同,仍需调频。将开发板提供的50mhz晶振时钟通过分频器分频成所需时钟信号,将该时钟信号作为dspbuilder功能块的全局时钟输入,进而将输出信号的频率调成50hz,即周期20ms。之后将控制信号经过gpio端口的时钟管脚输出到机械臂对应关节舵机的控制引线上,同时gpio端口提供5v电源端子和地端子。

在实际工作过程中,利用fpga搭建的cpg神经元网络模型接收在上位机1设定的钠电流、钾电流和泄漏电流对应的电导率和反电势参数,经过cpg神经元网络仿真模块22的仿真计算,得到1号神经元的输出信号f1(v1),然后将f1(v1)信号输出至变阈值整形模块23,变阈值整形模块23根据上位机1设定的上限阈值、下限阈值和阈值周期,将f1(v1)信号整定为占空比可调的矩形波信号,最后,fpga仿真系统2输出整定后的矩形波信号,用于控制机械臂的摆动角度,具体为占空比越大,机械臂的摆动角度越大。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1