基于爬行训练的脊柱康复训练设备控制系统的设计*
2018-10-18刘吉永徐秀林朱文超胡秀枋安美君
刘吉永,徐秀林△,朱文超,胡秀枋,安美君
(1. 上海理工大学医疗器械与食品学院,上海 200093;2. 上海健康医学院, 上海 201318)
1 引 言
脊柱具有支撑躯干、保护内脏等作用,同时对人体运动功能有着重要作用。近年来,脊柱疾病发病率呈显著上升趋势。我国仅在不足40岁的群体中,患有脊柱疾病就占40%[1],而且呈年轻化发展趋势,据中国儿童活动中心统计,中国青少年儿童患轻度脊柱疾病高达20%[1]。
治疗脊柱疾病除了药物、手术等手段外,运动疗法已被医学界普遍采用,近年来爬行训练备受推崇,即通过爬行姿态,促使脊柱生理曲度的恢复,调整脊椎间隙,缓解椎间盘压力[2-3]。据国内外研究报道,目前的爬行训练主要采用自然爬行、人工辅助和器械辅助爬行,而自然爬行常因患者不当的爬行姿势而受到二次伤害,人工辅助爬行又会花费大量人力物力,一般的器械辅助对患者身体要求较高,不能长时间治疗训练[4-6]。
综上,我们设计开发了一种基于自动化康复理念的俯卧式、多模式爬行训练脊柱康复训练仪,用于对脊柱疾病患者进行高效精准的康复治疗。该设备能实现主、被动训练运动,被动训练强度大小可调,其关键技术为运动控制系统。
2 运动控制系统的设计
2.1 患者训练方式
本研究的脊柱康复训练仪见图1。训练初始时,床体置于竖直状态,站立在脚板上,再将床体旋转至水平;患者手握训练扶手,膝盖放于下肢支撑内;根据患者体型调节腹部支撑的位置;训练时控制爬行的距离、速度和时间和侧弯训练的强度。
图1 脊柱康复训练仪实物图
2.2 功能及性能指标
该运动控制系统的功能包括爬行训练和脊柱侧弯矫正训练,其中爬行训练需要实现在上坡、水平、下坡三种模式下的同步爬行运动和交替爬行运动。
(1)爬行训练分别由两个无刷直流电机带动左右侧手把和下肢支撑,实现同时相向或相背联动;
(2)为实现不同患者的训练强度要求,设置慢速、中速、快速三档可调,速度分别为0.1、0.2和0.5 m/s;训练距离无级可调;
(3)为实现不同患者的训练时间要求,设置三个时间档,分别为10、20、30 min,并设置了自定义时间,以供选择;
(4)训练时床体可在-20°~30°无级可调;
(5)床体可上仰至70°,便于患者上下床体方便。
上述各参数的实现及控制均由上、下位机联合实现[7-8]。
2.3 控制系统总体结构设计
运动控制系统由研华PCI-1240运动控制卡、C51单片机、电机及其驱动器和软件等组成,控制系统原理见图2。
上位机发出控制指令,通过PCI-1240运动控制卡将指令转化为脉冲信号、数字输出信号等,实现对无刷直流电机的控制。同时通过光栅尺,实时反馈运动位置,实现对运动的精确控制。
软件以Visual Studio 2012为开发平台。实现发送控制指令、处理光栅尺数据、反馈控制运动以及用于人机交互的控制界面。
下位机采用C51单片机组件,通过定时器输出脉冲信号控制腹部支撑上下、左右调节的步进电机运动。同时模拟输出三组PWM信号调速,控制方式由上位机通过串口发送指令选择速度。
图2控制系统总体框图
Fig2Theframeworkofcontrolsystem
3 运动控制系统的实现
考虑带动人体运动所需推力和采用多种控制方式,爬行训练采用常州诺立电器的无刷直流减速电机56GP18B12F-57BL2440D及其控制器;脊柱侧弯矫正和腹部支撑调节采用三拓电器的步进电机57BYG HS;床体俯仰调节使用电动推杆。
各驱动组件见图3,其中床体由电动推杆直接推动绕转轴旋转;腹部支撑高度和前后位移的调节由两个步进电机实现;爬行训练的无刷直流电机带动连接上肢和下肢支撑的滑块在床体轨道内运动,两支撑机构由反向钢索连接实现同步或交替相对运动;脊柱侧弯矫正由安装在床体下肢部分中间的步进电机旋转带动脊柱摆动;导轨处安有光栅尺,各转轴处安有角度传感器,可实现各参数的检测和反馈。
3.1 爬行训练运动控制的实现
3.1.1爬行训练位置反馈的实现 爬行运动采用无刷直流电机作为动力源,用光栅尺辅助反馈运动的控制。采用长春数显公司生产的SGC-PCI3.1光栅数据采集卡和光栅尺,光栅尺安装于爬行轨道两侧,将测距滑块与手部支撑机构固定连接以此测量运动距离。距离读取和反馈均由上位机编程实现,其流程见图4。
图3 各电机安装和驱动方式
图4 位置反馈编程流程图
3.1.2爬行速度调节的实现 无刷直流电机控制器的速度控制信号为5 V,1~2 kHz的PWM脉宽信号,可实现0~1 m/s范围的速度调节。以C51单片机为核心,驱动芯片为ULN2003A反向器电路,硬件原理见图5。
图5 速度调节电路图
下位机编程使用Keil uVision4软件开发系统,用C语言编写。使用内部定时器1通过单片机P1.2引脚按占空比交替输出+5 V和0 V,使其成为PWM信号,单片机的晶振频率为12 MHz,PWM的频率计算见式(1),程序设置硬件计数周期计算见式(2)。
f=1000/(0.02×T/2)
(1)
n=65535-T×1000
(2)
其中f表示频率,单位Hz;T为定时器中断周期,单位ms;n为定时器装载初值。主要实现代码如下,TH1和TL1的值由上位机通过串口设置:
main()
{
//启用内部定时器1
TMOD|= 0x11;
//PWM频率为200Hz
TH1 = 0xfe;
TL1 = 0x33;
TR1 = 1;
IE =0x8A;
//一直输出PWM
while(1)
{ if(timer1>100) timer1=0;
if(timer1<30) PWM=0;
else PWM=1;}
}
//设置定时器1
void T1zd(void) interrupt 3{
TH1 = 0xfe;
TL1 = 0x33;
timer1++; }
3.1.3爬行训练运动的实现 研华PCI-1240运动控制卡基于外设组件互连标准(peripheral component interconnect, PCI)设计,利用其封装的API函数,由上位机编程指令,可实现对步进电机多种模式的精准控制,同时可对外输出自定义控制信号。本研究使用PCI-1240运动控制卡信号,控制爬行运动所需的使能EN、方向P/R和制动/BK等信号。将PCI-1240运动控制卡与主机PCI总线连接,外接引脚扩展端子板,端子板与无刷直流电机控制器连接电路见图6。
运动控制卡的通用输出OUT4-6引脚分别与使能信号EN、方向信号P/R和制动信号/BK连接,通过控制信号输出;限位引脚LMT+和LMT-分别与正负向限位开关连接,保证运动过程中的安全性;所有外接电源均为DC 24 V。
图6 PCI-1240与电机控制器线路图
Fig6ThewiringdiagramofPCI-1240andmotorcontroller
控制爬行训练的上位机编程流程见图7。训练模式分为两侧同步运动和两侧交替运动,患者俯卧于床体上,先以身体长度确定好爬行动作的弯曲和伸展的极限位置。通过位置传感器读取当前位置,训练时到达极限位置后,反向运动。
实现同步爬行运动的关键代码如下:
//双侧同步伸展运动
Acm_AxDoSetBit(p->m_hAxisHandle[0][3], 4, 0);
……
//循环读取位置信息
do{ if(XReadOut(p->mIndex)
Acm_AxDoSetBit(p->m_hAxisHandle[0][3], 6, 1);
if(YReadOut(p->mIndex)
Acm_AxDoSetBit(p->m_hAxisHandle[0][2], 6, 1);
图7控制爬行训练的上位机编程流程图
Fig7Theprogramflowchartofcreeptrainingprogram
}while(XReadOut(p->mIndex)>p->m_PositionX || YReadOut(p->mIndex)>p->m_PositionY);
//双侧同步收缩运动
Acm_AxDoSetBit(p->m_hAxisHandle[0][3], 4, 0);
……
do{ if(XReadOut(p->mIndex)>p->m_SavePositionX)
Acm_AxDoSetBit(p->m_hAxisHandle[0][3], 6, 1);
if(YReadOut(p->mIndex)>p->m_SavePositionY)
Acm_AxDoSetBit(p->m_hAxisHandle[0][2], 6, 1);
}while(XReadOut(p->mIndex)
3.2 侧弯矫正功能的实现
侧弯矫正采用PCI-1240运动控制卡,通过上位机输出控制脉冲信号至步进电机驱动器,实现对步进电机的控制。运动控制卡端子板与步进电机驱动器连接电路见图8。控制信号有四个输出引脚,正脉冲P结、正脉冲N结、负脉冲P结、负脉冲N结;步进电机采用脉冲方向信号作为驱动信号,即P+P、P+N输出脉冲信号,P-P、P-N输出方向信号;限位引脚LMT+和LMT-分别与可移动限位开关连接;通用输入1引脚接居中信号;接DC 24 V电源。限位开关可根据患者情况调节位置,运动时以两限位开关为换向位置实现对脊柱的侧弯矫正。
图8 脊柱侧弯矫正线路图
实现同步爬行运动的关键代码如下:
//设置运行速度和起步速度
ulErrorCode=Acm_SetProperty(m_hAxisHandle[DevNum][AxisNum],CFG_AxVel,&m_AxisResetParam.m_lfMaxVel, ulBufferLen);
//摆尾运动
//向正方向运动至极限位置
ulErrorCode = Acm_AxHome(p->m_hAxisHandle[0][1],MODE2_Lmt,DIR_POSITIVE);
//检测运动是否完成
do{ ulErrorCode = Acm_AxGetState(p->m_hAxisHandle[0][1],&uState);
}while(STA_AX_READY != uState);
//向负方向运动至极限位置
ulErrorCode = Acm_AxHome(p->m_hAxisHandle[0][1],MODE2_Lmt,DIR_NEGATIVE);
//检测运动是否完成
do{ulErrorCode = Acm_AxGetState(p->m_hAxisHandle[0][1],&uState);
}while(STA_AX_READY != uState);
3.3 腹部支撑位置调节的实现
使用步进电机作为腹部支撑调节的动力源,C51单片机输出脉冲信号实现控制。单片机电路见图9,通过内部定时器在P0.0引脚输出脉冲信号,与步进电机驱动器脉冲输入端连接;P0.1引脚输出方向控制信号,与步进电机驱动器方向输入端连接;P0.2引脚输出使能信号与步进电机驱动器使能接口连接;当按下方向控制按键时,触发外部中断,此时P0.0引脚开始输出脉冲信号,腹部支撑位置调节电机开始工作。
图9 腹部支撑位置调节电路
程序关键代码:
void Time1(void) interrupt 3 //脉冲输出内部定时器
{
TH1=0xFF; //定时器响应周期
TL1=0xE6;
switch(i)
{ case 0:
break;
case 1:
if (timer1 == 1) PLU = 0;
if (timer1 == 2) { PLU = 1; timer1 = 0;}
timer1++;
break;}}
3.4 人机交互界面的实现
设计的人机交互界面,其功能包括实时位置信息显示;训练速度低速、中速和高速调节;自定义训练时间;定位爬行训练位置和选择训练模式;脊柱侧弯矫正训练和复位功能;软件界面见图10。
图10 运动控制界面
4 可靠性测试
可靠性分析实验设计以3名健康志愿者作为测试对象,身高(169±10) cm,体重(60±20) kg,平均年龄23岁。对所有的测试志愿者进行两次试验,试验间隔一天的时间,每次试验重复六次。实验环境定位室内,基本视为无环境影响因素。
选择双侧同步爬行运动作为测试动作,进行重复性试验,速度设置为中速,测量时间为5 min, 当5 min时间到后读取传感器数据,求此时运动的前后极限位置之差,同时保证每个人两次运动开始运动时的位置相同。计算两次测量数据的组内相关系数(intraclass correlation coefficient, ICC),测量结果见表1。
表1爬行运动可靠性测量结果
Table1Thereliabilitymeasurementresultsofcrawlingmovement
试验次数受试者1受试者2受试者3第一次/cm第二次/cm第一次/cm第二次/cm第一次/cm第二次/cm130.0630.1145.4245.3339.8940.07229.8230.0645.3745.2640.1740.11330.3330.2344.9845.0740.2940.34430.2530.3145.2545.3140.4540.32530.4330.3744.9545.1140.3640.42630.1630.0645.1945.0739.8840.03x±s30.18±0.1630.19±0.1145.19±0.1545.19±0.1140.17±0.1940.22±0.15ICC0.8460.8430.909
将实验数据使用统计分析软件SPSS 19进行可靠性分析,三个受试者的ICC值分别为0.846、0.843和0.909。组内相关系数均大于0.75,说明本研究设计开发的脊柱康复运动控制系统具有很好的可靠性,能准确完成设定的重复性训练,保证训练精度。
5 总结与讨论
本研究的脊柱康复训练运动控制系统,由硬件控制电路和上、下位机软件组成,该系统各功能的实现基于可旋转床体、辅助上下肢爬行支撑机构和腹部减重支撑机构等机械装置;硬件控制电路包括PCI-1240运动控制卡及外围电路、单片机及驱动电机外围电路;软件部分包括控制命令类库和人机交互界面。
目前对爬行训练康复产品的研究,国外大都只有主动爬行模式,且无法实现训练评估,并未科学有效的用于脊柱患者的康复治疗[9],而国内对脊椎康复爬行训练设备的研究起步较晚,相关产品的临床应用较少,有待进一步研究。本研究的脊柱康复训练运动控制系统针对脊柱疾病患者,具有主动、被动训练两种模式,可实现上坡、水平和下坡三种爬行姿态的训练和评估,可实现双侧同步和双侧交替两种爬行方式,并增加反馈机制,能合理调节训练的时间和强度,同时还具有脊柱侧弯矫正训练功能,能为脊柱疾病患者提供安全、有效的康复治疗。