一种基于下肢外骨骼神经网络控制的足底压力分析方法与流程

文档序号:24335986发布日期:2021-03-19 12:16阅读:292来源:国知局
一种基于下肢外骨骼神经网络控制的足底压力分析方法与流程

本发明属于传感与信息工程领域,具体来说是一种基于下肢外骨骼神经网络控制的足底压力分析方法。



背景技术:

随着机器人技术和生物监测技术的不断发展,外骨骼机器人的研究至今已经有了较为成熟的体系。尤其在控制领域,根据控制参数的不同,传统外骨骼控制方法可分为基于位置的控制,基于力信息的人机交互控制,基于生物电信号的人机交互控制等方式。针对外骨骼所要达到的不同目的,控制策略也分为主动式与被动式控制方式。上述方法无外乎探究关节或四肢的位置与人体可获取信号之间的内在关系进行精确建模,得到反应系统规律的传递函数,通过实验进行验证并进一步改进使模型更加精确化。经过一代代改进与调整,到今天已经趋于成熟,在商用外骨骼领域也得到了普遍认可与应用。

而传统控制方法的特点在于,对输入与输出内在机理的探究难度较大,限制条件较多,忽略了很多实际情况下的影响因素或者在理论计算中难以将某些因素考虑在内,导致得出的结论使用条件受限或者与实际偏差较大。并且参数固定无法自行调节,难以根据不同人群的需要,或者某个特定使用者行走时细节的变化进行适当调整。而bp神经网络从输入与输出数据出发,让机器进行“学习”的思想,可以很好地解决这个问题,这也引发了外骨骼控制的新一轮革命。于是数据驱动控制理论、即智能控制在外骨骼控制领域的应用与创新成为了当下的发展趋势,神经网络控制便是其中的代表之一。

神经网络控制是一种基于神经网络算法的数据驱动控制策略,它可以充分逼近任何复杂的非线性关系,能够学习和实验严重不确定性系统的动态特性。对于下肢外骨骼来说,其输入通常采用与下肢运动相关的力和位置特性,其中足底压力分布与变化情况是最常用的特性之一,例如浙江大学刘涛教授课题组研制了一种采用神经网络模型控制的膝关节内收力矩训练系统,在足底的特定区域布置了共6个压力传感器作为神经网络的输入,其问题在于对足底压力位置选择方法较为依赖经验,且无法适应不同人的行走特点,导致了最终控制算法的输出与实验结果存在一定误差。国内目前应用于外骨骼控制的足底压力分析领域的专利也不在少数,例如专利cn201210150499通过对足底四个压力传感器数据与阈值进行比较判断运动所处的相位,专利cn201610259538通过压力之和与阈值的综合比较模块化对当前步态做出判断,但其中大多传感器数量较少且位置固定,在信息获取层面有待优化,并且大多分析方法仅仅进行了模块化的概念定义,并未综合外骨骼控制方法应用进行完整探究与阐述。



技术实现要素:

本发明提供一种基于下肢外骨骼神经网络控制的足底压力分析方法,旨在解决运用神经网络控制外骨骼时对足底压力的分析及处理问题,即通过改变输入以使下肢外骨骼能适应更多的步态情况,控制输出与实际符合得更好,为不同功能的外骨骼提供更准确的分析方法。

本发明采取的技术方案是,包括训练过程及使用过程:

所述训练过程,包括:

(1)准备工作,使用者穿戴带有s行p列压力传感器二维阵列的鞋垫,膝关节佩戴角度传感器,连接单片机、计算机,使用者开始运动;

(2)受力面压力传感器二维阵列实时采集压力数据,将信息传送至计算机,进行压力分析后将数据保存,角度传感器采集实时数据传送至计算机保存;

(3)重复n次步骤(2)作为n组训练数据,将数据运用matlab进行自适应模糊神经网络建模,每次的s个压力最大值作为输入,对于神经网络算法来说,即输入层由s个神经元构成,每个神经元分别代表每个压力传感器采集的压力数据,隐藏层个数由经验公式确定,输出层则为唯一的输出角度值,建立膝盖角度随时间及足底压力数据的函数关系;

(4)训练过程不会终止,将与接下来的使用过程同时进行,使用过程进行m次后,将n+m组数据运用matlab再次进行自适应模糊神经网络建模,更改原模型的权重参数,继续后续的训练过程与使用过程。

进一步地,所述步骤(2)压力分析过程,其步骤包括:

1)每隔一个预设的时间段,足底压力传感器阵列采集一次压力原始数据,比较压力阵列当前每一行的所有值并保留其中的最大值以及最大值所在的位置,较小值以及较小值所在的位置,形成原始数据库;

2)将原始数据库中的每行压力最大值按照足底位置纵向排列为一个一维阵列,将其作为自适应模糊神经网络算法的输入;

3)将原始数据库中的较小值位置作为压力分析的辅助输入,对压力进行分析,算法步骤包括:

a)使用者穿戴好压力传感器、角度传感器、外骨骼,连接下位机,上位机,步进电机,电机驱动器,使用者开始运动。压力传感器二维阵列、角度传感器将每个步态周期的信息传送至计算机,在重复n个步态周期后,将所有压力传感器数据通过matlab进行bp神经网络建模,得到针对该使用者的数据;具体步骤为,使用者行走若干个步态周期,所有数据作为初始训练数据,将数据运用matlab进行自适应模糊神经网络建模,每次的压力最大值作为输入,对于神经网络算法来说,即输入层由m个神经元构成,每个神经元分别代表每个压力传感器采集的压力数据,隐藏层个数由经验公式确定为n个,输出层则为唯一的输出角度值;

将输入层神经元个数为m个,隐藏层神经元个数设定为n个,输出层神经元个数为1个。假设输入层第i个神经元为pi,隐藏层第1个神经元为nj,输出层神经元为k。输入层到隐藏层的连接权值为wij,隐藏层到输出层的连接权值为wj,隐藏层第j个神经元的阈值为aj,输出层第神经元的阈值为b;

隐藏层传递函数选用tan-sigmoid函数g1(x),此情形下要比log-sigmoid函数的误差小,输出传递函数则选用purelin线性函数g2(x);

隐藏层第j层输入函数为:

隐藏层第j层输出函数为:

输入层神经元输入函数ki为:

则模型实际输出y为:

y=g2(ki)

假设期望输出值为tp,实际输出值为y=op,于是,最终误差

将此值保存在计算机中作为判断控制算法准确程度的依据;

此过程对不同的使用者需要重新开始;

b)对数据进行存储,掌握使用者行走时压力横向最大值可能出现的区域,将整个行走过程中所受压力均小于某一阈值的传感器位置记录下来,将其在后续计算中剔除,从而降低今后的计算量。剔除压力传感器阵列每行的阵列点数量,仅保留每行的一个特征阵列点,参与控制的阵列点纵向排列为一个一维阵列,将其作为自适应模糊神经网络算法的输入;此过程可根据经验手动进行,也可建立算法实现,原则上依据该阵列点的压力峰值或随时间变化的均值大小进行筛选,剔除的阵列点在使用阶段中继续采集数据,但不作为有效控制数据;

c)将角度传感器每个瞬时的预测数据用前n个步态周期的均值代替,并将剩余压力传感器阵列点作为实时输入与角度传感器实时数值之间进行bp神经网络建模。对角度设置安全阈值,防止转角过大。在使用过程中根据需要进一步优化,进行外骨骼的助力;

所述使用过程,包括:将根据训练数据建立起来的膝盖角度随时间及足底压力的函数关系作为系统控制函数的蓝本,根据外骨骼类型:主动型、被动型,期望外骨骼达到的效果助力效果,对控制函数进行进一步调整并输出。

本发明使用过程中被剔除的压力传感器继续采集数据,经过m个步态周期后,将训练阶段n个周期与使用阶段m个周期重新进行bp神经网络预测,计算结束后生成新的控制函数,不断重复上述过程,以适应使用者体力的消耗,行走环境路面的变化等。

本发明所述的足底压力分析方法可视为组成控制函数方法的一部分,与神经网络算法共同构成传统意义上的控制算法,原始数据库为输入,膝盖角度为输出;亦可视为为神经网络算法提供了更合适的输入,实质上是在神经网络算法之前增添了对输入的预处理过程。

本发明的优点是以神经网络算法为基础,通过建立步态数据模型并筛选压力点数据降低计算机计算量,从而增强了外骨骼在工作应用场景下的反应灵敏度,以适应使用者体力的消耗,行走环境路面的变化,提高了外骨骼装置实际应用场景下的舒适性,为其他外骨骼驱动数据处理方法提供借鉴。

使用者由于长期工作膝关节受力较大,极易劳损,因此存在行进中膝关节发力困难、行走不便的困难,通过该下肢外骨骼协助,可提高在行进过程中的舒适性,提高工作、生活机能。在高强度作业环境中为使用者提供舒适、便捷且可靠性较高的膝关节助力。该专利以神经网络算法为基础,建立步态数据模型并通过筛选压力点数据降低计算量,提高反应灵敏度,从而增强了外骨骼在工作应用场景下的舒适性,为其他外骨骼驱动数据处理方法提供借鉴。本发明基于外骨骼数据驱动控制理论的特点对足底压力原始数据进行了预分析来决定算法的输入量,充分考虑了不同脚型与不同步态人群的控制适应问题,能够得到与使用者实际步态偏差更小的输出数据,有一定的应用价值。

附图说明

图1是本发明的应用过程逻辑图;

图2是本发明的装置连接示意图;

图3是本发明实施例神经网络算法示意图;

图4是本发明的足底压力阵列实施例示意图。

具体实施方式

包括训练过程及使用过程:

所述训练过程,包括:

(1)准备工作,使用者穿戴带有s行p列压力传感器二维阵列的鞋垫,膝关节佩戴角度传感器,连接单片机、计算机,使用者开始运动;

(2)受力面压力传感器二维阵列实时采集压力数据,将信息传送至计算机,进行压力分析后将数据保存,角度传感器采集实时数据传送至计算机保存;

(3)重复n次步骤(2)作为n组训练数据,将数据运用matlab进行自适应模糊神经网络建模,每次的s个压力最大值作为输入,对于神经网络算法来说,即输入层由s个神经元构成,每个神经元分别代表每个压力传感器采集的压力数据,隐藏层个数由经验公式确定,输出层则为唯一的输出角度值,建立膝盖角度随时间及足底压力数据的函数关系;

(4)训练过程不会终止,将与接下来的使用过程同时进行,使用过程进行m次后,将n+m组数据运用matlab再次进行自适应模糊神经网络建模,更改原模型的权重参数,继续后续的训练过程与使用过程。

进一步地,所述步骤(2)压力分析过程,其步骤包括:

1)每隔一个预设的时间段,足底压力传感器阵列采集一次压力原始数据,比较压力阵列当前每一行的所有值并保留其中的最大值以及最大值所在的位置,较小值以及较小值所在的位置,形成原始数据库;

2)将原始数据库中的每行压力最大值按照足底位置纵向排列为一个一维阵列,将其作为自适应模糊神经网络算法的输入;

3)将原始数据库中的较小值位置作为压力分析的辅助输入,对压力进行分析,算法步骤包括:

a)使用者穿戴好压力传感器、角度传感器、外骨骼,连接下位机,上位机,步进电机,电机驱动器,使用者开始运动。压力传感器二维阵列、角度传感器将每个步态周期的信息传送至计算机,在重复n个步态周期后,将所有压力传感器数据通过matlab进行bp神经网络建模,得到针对该使用者的数据;具体步骤为,使用者行走若干个步态周期,所有数据作为初始训练数据,将数据运用matlab进行自适应模糊神经网络建模,每次的压力最大值作为输入,对于神经网络算法来说,即输入层由m个神经元构成,每个神经元分别代表每个压力传感器采集的压力数据,隐藏层个数由经验公式确定为n个,输出层则为唯一的输出角度值;

将输入层神经元个数为m个,隐藏层神经元个数设定为n个,输出层神经元个数为1个。假设输入层第i个神经元为pi,隐藏层第1个神经元为nj,输出层神经元为k。输入层到隐藏层的连接权值为wij,隐藏层到输出层的连接权值为wj,隐藏层第j个神经元的阈值为aj,输出层第神经元的阈值为b;

隐藏层传递函数选用tan-sigmoid函数g1(x),此情形下要比log-sigmoid函数的误差小,输出传递函数则选用purelin线性函数g2(x);

隐藏层第j层输入函数为:

隐藏层第j层输出函数为:

输入层神经元输入函数ki为:

则模型实际输出y为:

y=g2(ki)

假设期望输出值为tp,实际输出值为y=op,于是,最终误差

将此值保存在计算机中作为判断控制算法准确程度的依据;

此过程对不同的使用者需要重新开始;

b)对数据进行存储,掌握使用者行走时压力横向最大值可能出现的区域,将整个行走过程中所受压力均小于某一阈值的传感器位置记录下来,将其在后续计算中剔除,从而降低今后的计算量。剔除压力传感器阵列每行的阵列点数量,仅保留每行的一个特征阵列点,参与控制的阵列点纵向排列为一个一维阵列,将其作为自适应模糊神经网络算法的输入;此过程可根据经验手动进行,也可建立算法实现,原则上依据该阵列点的压力峰值或随时间变化的均值大小进行筛选,剔除的阵列点在使用阶段中继续采集数据,但不作为有效控制数据;

c)将角度传感器每个瞬时的预测数据用前n个步态周期的均值代替,并将剩余压力传感器阵列点作为实时输入与角度传感器实时数值之间进行bp神经网络建模。对角度设置安全阈值,防止转角过大。在使用过程中根据需要进一步优化,进行外骨骼的助力;

所述使用过程,包括:将根据训练数据建立起来的膝盖角度随时间及足底压力的函数关系作为系统控制函数的蓝本,根据外骨骼类型:主动型、被动型,期望外骨骼达到的效果助力效果,对控制函数进行进一步调整并输出。

本发明使用过程中被剔除的压力传感器继续采集数据,经过m个步态周期后,将训练阶段n个周期与使用阶段m个周期重新进行bp神经网络预测,计算结束后生成新的控制函数,不断重复上述过程,以适应使用者体力的消耗,行走环境路面的变化等。

下面通过附图说明结合实际应用案例对本发明进行详细阐述;

使用者佩戴好下肢外骨骼,穿着内置密布压力传感器的柔性面(鞋垫)的鞋子,设鞋垫分布5×6共30个薄膜式压力传感器,同膝盖处角度传感器连接相应控制平台,外骨骼膝关节处的步进电机连接相应控制平台,控制平台连接计算机,如图2所示;

设备启动,使用者穿着设备步行,每隔0.1秒,足底压力传感器阵列采集一次压力原始数据,比较压力阵列当前每一行的所有值并保留其中的最大值以及最大值所在的位置,较小值以及较小值所在的位置,形成原始数据库,角度传感器采集实时数据传送至计算机保存;

使用者行走5个步态周期,即10步过程中的所有数据作为初始训练数据,将数据运用matlab进行自适应模糊神经网络建模,每次的6个压力最大值作为输入,对于神经网络算法来说,即输入层由6个神经元构成,如图3所示,每个神经元分别代表每个压力传感器采集的压力数据,隐藏层个数由经验公式确定为5个,输出层则为唯一的输出角度值。

在建立的bp神经网络模型中,输入层神经元个数为6个,隐藏层神经元个数设定为5个,输出层神经元个数为1个。假设输入层第i个神经元为pi(i=1,2,…,6),隐藏层第.1个神经元为nj(j=1,2,...,5),输出层神经元为k。输入层到隐藏层的连接权值为wij,隐藏层到输出层的连接权值为wj。隐藏层第j个神经元的阈值为aj,输出层第神经元的阈值为b。

隐藏层传递函数选用tan-sigmoid函数g1(x)(此情形下要比log-sigmoid函数的误差小),输出传递函数则选用purelin线性函数g2(x)。

隐藏层第j层输入函数

隐藏层第j层输出函数

输入层神经元输入函数ki为

则模型实际输出y为

y=g2(ki)

假设期望输出值为tp,实际输出值为y=op,于是,最终误差

将此值保存在计算机中作为判断控制算法准确程度的依据;

程序示例如下,

1)通过实验将六个压力数据x1,x2,x3,x4,x5,x6提取出来与膝关节角度值y对应,有1000组这样的数据,其中900组用作样本,100组用作对照,并存储进excel表格。

2)首先需要读取这些数据,并把数据赋值给input和output。用xlsread函数来读取excel表格数据。读取出来的数据是1000*7的矩阵。

num=xlsread(‘test.xlsx’,’sheet1’,’a2:g1001’);

input_train=num(1:900,1:6)’;

output_train=num(1:900,7)’;

input_test=num(901:1000,1:6)’;

3)将样本数据归一化处理

[inputn,inputps]=mapminmax(input_train);

[outputn,outputps]=mapminmax(output_train);

4)初始化网络结果,设置参数,并用数据对网络进行训练。

newff函数是给出了设置,即输入样本数据,输出样本数据和隐含层节点数;

net.trainparam.epochs:设置最大迭代次数,取200;

net.trainparam.lr是设置学习率,取0.1;

net.trainparam.goal是设置目标值,取0.00005。

net=newff(inputn,output,5);

net.trainparam.epochs=200;

net.trainparam.lr=0.1;

net.trainparam.goal=0.00005;

net=train(net,inputn,outputn);%网络训练

5)设置好参数,将预测数据进行归一化处理,然后将预测结果输出,并将输出的结果进行反归一化处理,神经网络构建完成。bpoutput为预测结果。

inputn_test=mapminmax(‘apply’,input_test,inputps);%预测数据归一化

an=sim(net,inputn_test);%网络预测输出

bpoutput=mapminmax(‘reverse’,an,outputps);$网络输出反归一化

6)将已训练好的网络可以把训练好的网络储存起来,下次可以直接进行预测。

savedatanetinputpsoutputps%保存训练好的网络

loaddatanetinputpsoutputps%下载训练好的网络数据

inputn_test=mapminmax(‘apply’,numl,inputps);%输入待预测数据,并存储在numl中;

an=sim(net,inputn_test);%神经网络预测结果

testoutput-mapminmax(‘reverse’,an,outputps);%预测结果反归一化,即真实预测值

5个步态周期结束后,预处理算法对压力分析过程进行调整,将自始至终压力未超过体重3%的传感器从本次使用中剔除不再考虑,如图4所示,红点为当前峰值点,即神经网络算法的真实输入,黄点为可能峰值点,绿点为无效点,将其剔除。其他步骤不发生变化,从而大大降低计算量;

使用者在接下来的行走中,训练过程仍然与使用过程同时进行,随着训练数据的不断增加,神经网络不断优化自身的参数权重,以逐渐贴近使用者的步态或者适应使用者步态的细微变化;

以上仅为本发明的较佳实施例,凡是依据本发明方法实质对以上过程做任意简单修改的做法均在本发明的保护范围内。

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