郭志阳,陈学英
(电子科技大学 电子工程学院,成都 610054)
STM32的医疗康复机器人手臂控制系统
郭志阳,陈学英
(电子科技大学 电子工程学院,成都 610054)
摘要:医疗康复机器人是近年出现的一种新型机器人,主要功能是帮助患者完成各种运动功能恢复训练。为此提出通过STM32微控制器控制无刷直流电机来控制机器手臂的运转,并通过Simulink建立PID模型,运用XPCTarget和控制板进行通信,以此得到电机在调速过程中合适的PID参数,使机器手臂在运转的过程中更加平滑。实际的临床试验操作证明,该系统能够较好地完成手臂的医疗康复训练。
关键词:医疗康复机器人手臂;STM32;PID;Simulink;IR2130
引言
随着我国逐渐步入老年社会,对各类康复设备的需求日益增大,对性价比高的医疗康复设备控制系统的需求尤为迫切。基于DSP芯片的成本相对较高、设计复杂、研发周期长,芯片的尺寸会导致印刷电路板的体积变大。
本文基于STM32微控制器设计的医疗康复机器人手臂控制系统,具有杰出的功耗控制和电机控制的高级定时器,能产生3对可配置并互补输出的PWM信号。通过在Simulink上建立双闭环PID算法模型,得到合适的PID参数来改变PWM波的占空比,进而精确地实现电机的调速,保证了机器人手臂运行轨迹平滑,运行速度稳定。由于无刷直流电机[1]具有体积小、性能稳定等优点,其机器手臂尺寸能够更加符合人体运动学设计理念[4]。
1总体方案设计
医疗康复机器人手臂可以模拟日常生活中手臂的一些动作,通过创造虚拟工作环境实现对手臂各个关节的运动训练、肌肉的锻炼,以及神经功能的恢复训练。以STM32微控制器为控制核心,机器手臂控制总体设计方案如图1所示。
图1 机器手臂控制总体方案设计
通过运用IR2130栅极驱动芯片,对STM32输出的6路PWM信号进行特殊处理,满足H桥中IRF3808高功率MOS管工作的需求。
STM32微控制器通过不断地检测无刷直流电机中霍尔信号来改变换相时序,以此来控制电机的运转。当电机在堵转的时候会产生大电流,通过ADC对其电流值进行采样,当其值超过阀值的时候可以停止电机工作,此时IR2130会自动进入自我保护状态,关断输出信号,保证手臂运行的安全。
2硬件电路设计
2.1栅极驱动
栅极驱动芯片采用的是美国国际整流器公司的IR2130芯片,它具有高电压、高速度,并有3个独立的高、低侧功率MOSFET驱动输出通道。其输入和输出信号时序如图2所示。其具有过电流保护、欠压锁定功能,并能及时关断6路输出。在出现异常状态时,逆变电路处于关断状态,这样可以保护电机不被烧坏,且具有自我保护功能。
图2 IR2130输入输出时序图
6路输出信号中的3路具有电平转换功能,因而它既能驱动桥式电路中低压侧的功率器件,又能驱动高压侧的功率元件。如图3所示,将STM32输出驱动H桥的3对互补PWM信号提高至能够驱动MOSFET开关电压电平。
图3 IR2130输出的六路波形图
1片IR2130可取代3片IR2110,且仅需要一个输入级电源,就能够自动产生成上、下侧驱动所必需的死区,时间为2.5 μs,并得到更好的控制性能。
2.2H桥功率电路
高功率场效应管可以输出高电压。逆变电路主要由6个大功率场效应管IRF3808组成,如图4所示。每个场效应管都并联了反接的快速恢复二极管,具有保护和续流的作用。对于24 V电压的电机,场效应管的VDS至少需要40 V电压,而漏极电流必须足够高,以应对电机启动电流。由于软件中实现的软加速机制(小幅提升至所需速度),启动电流可以进一步降低。
图4 H桥电路图
2.3电流检测电路
图5 电流检测电路图
运用一个0.01 Ω的电流检测电阻或者是一段蛇形地线,经过电机和MOSFET的电流全都从它那里经过并流向地。如图5所示,经过电机的总电流经过这个小阻值的电阻而流向地,这个电流检测电阻的阻值很小,但如果电流够大的时候,会在其两端产生一个小的电压,经过RC形成的一阶低通滤波电路可以滤去一些偶尔产生的瞬时高频分量。其截止频率可以由RC的具体值算出。最后可以把其接入STM32的ADC通道进行电流采集。
2.4电机转矩
对电机来说,机器人手臂在运转时是处于负载状态下运行,所以要有足够的转矩以保证手臂运行正常。跟速度控制一样,转矩[6]也由通过定子线圈的电流大小决定。最大转矩、定子和转子磁场之间的角度,应保持在90°。梯形换相如图6所示,控制分辨率为60°,定子和转子磁场间的角度在-30°~+30°的范围内,这会产生转矩脉动。
图6 直流无刷电机梯形换相波形图
电流检测过程中的RC低通滤波器可以滤除流入电机的高频瞬时脉冲,并改善电机转矩特性。在改变运转方向的时候,为了得到比较大的转矩选择直接改变运转方向,不会选用运行-停止-反向运行的方式来进行机器人手臂方向的改变。这样可防止机器人手臂在转向时候出现抖动现象,也防止了再次启动的时候启动电流过大,容易出现堵转现象,对硬件电路和电机都会造成损害。
3软件设计
3.1μC/OS-II操作系统
为了让软件架构更加稳定清晰,运用一个可固化、可裁剪的、占先式多任务实时操作系统μC/OS-II。它是基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量、邮箱、消息队列、内存管理、中断管理等。
在μC/OS-II嵌入式操作系统上,对无刷直流电机中霍尔信号的捕捉中断、上位机通信中断、ADC采集中断、PID速度调节中断的优先级进行分配,并且通过创建医疗康复手臂运转方向、启动、停止、上位机通信、PID调节等任务使软件运行上更加模块化。任务与任务之间通过邮箱、消息队列等传递信息,并且可以相互挂起和启动相应任务,使任务之间能够协调的工作、软件架构更清晰。
3.2电机速度测量和六步换相
无刷直流电机的实际转速可通过测量霍尔传感器信号得到。在电机转动过程中,通过120°分布在电机中的3个霍尔传感器可以得到如图7所示的3路周期信号。
图7 3路霍尔信号波形图
电机每转一圈,每个霍尔传感器产生2个周期的方波信号,且其周期与电机转速成反比。其结构比在外围添加编码器更加方便灵活。
STM32微控制器的定时器具有检测霍尔信号的端口,通过定时器对检测到的3路霍尔信号进行异或处理,当其能捕捉到上升沿时触发一次中断请求,在中断中记录产生此次中断需要的时间,并进行定时器清零。控制流程操作如图8所示,通过几次中断时间求取平均值,把得到的时间平均值转化成电机运行的速度值。通过检测到的3个霍尔传感器的高低电平值来进行电机6步换相时序,能够使无刷直流电机按时序要求进行运转。
图8 速度检测流程图
3.3电机PID算法
由于人体手臂和机器手臂结构都有重量,在电机运行的时候将受到其影响,导致电机运行速度不断变化,不利于机器手臂的稳定运行,因此需要把测量到的速度值和设定的速度值进行双闭环PID[7]运算,使电机运转速度一直保持设定的速度值。如图9所示,电机的PID算法是运用改变相电压脉宽调制(PWM)波的占空比来实现,通过增大或减小占空比,每个换相步骤会有部分电流流过定子线圈,这会影响定子磁场和磁通密度,从而改变转子和定子的之间的力。
图9 PID调速流程图
通过得到无刷直流电机速度的设定值(上位机设置)和实际检测到的电机转速值之间的差值,使其经过速度PID控制环和电流PID控制环进行PID调节来改变STM32输出驱动电机运转信号的PWM波的占空比,机器手臂能够平滑和稳定地运行。
4PID模型设计
运用MathWorks公司开发的基于RTW体系框架的实时目标系统XPC_Target建模,其提供了一种低廉成本、性能较高的可便捷实时应用的系统。采用宿主机+目标机的技术实现途径,即“双机”模式。宿主机和目标机可以是不同类型的计算机,两者之间通过以太网实现通信。其实现模型如图10所示。
图10 宿主机+目标机模型
根据工作原理,其实现分为如下步骤:
(1) 用U盘创建DOS目标启动盘
启动盘有FDD、HDD和ZIP三种模式,在制作的过程中根据目标机支持的模式选择。通过选用XPC_Target的嵌入式选项来制作目标启动盘。通过U盘来调用和启动XPC_Target的实时内核,可以使每次系统启动后自动运行目标应用程序。
(2) Simulink模型建立
在宿主机的Simulink上通过添加各个驱动模块建立电机调速过程中电流环、速度环的PID模型和下位机的串口通信模块,然后用RTW代码生成器和C编译器来生成可执行代码,在目标机上进行实时运行。
(3) 信号采集过程
通过XPC_Target实时内核将目标应用程序的信号数据存储在目标机的RAM中,并且在目标机的显示界面上对信号进行监视、记录、跟踪,并且绘制出图像。当下位机通过串口发送速度测量值给目标机上运行的通过Simulink中建立的PID模型生成的可执行代码时,通过可执行代码程序进行速度调节,把其调节后的数据通过目标机发送给下位机,从而改变驱动电机运转信号的PWM波占空比。当其速度测量值能够稳定到速度设定值的时候,
Simulink中设置的PID参数就是所需要的速度调节的PID参数值。否则,需要改变Simulink中建立的PID参数模型。
结语
参考文献
[1] 张琛.直流无刷电动机原理及应用[M].北京:机械工业出版社,2004∶20-21.
[2] 王永.“反电势法”无刷直流电机控制系统研究[D].南京:东南大学,2004.
[3] 杜志江,孙传杰,陈艳宁.康复机器人研究现状[J].中国康复医学杂志,2003,18(5):291-292.
[4] 百化同,李俊宝.机械与结构振动——理论与应用[M].北京:中国宇航出版社,2005.
[5] 李韧.基于DSP无位置传感器无刷直流电机控制系统的研究[D].阜新:辽宁工程技术大学,2007:31-32.
[6] 谢杨梅.无刷直流电动机(BLDCM)转矩脉动抑制的电流跟踪型PWM控制[J].安徽电子信息职业技术学院学报,2007,6(1):85-87.
[7] 彭韬,鱼振民.无刷直流电动机单神经元自适应PID控制及改进[J].微电机,2005,38(1):45-47.
郭志阳(硕士研究生),主要研究方向为嵌入式系统和SoC设计;陈学英(高级工程师),主要研究方向为集成电路中信号完整性分析和嵌入式系统。
(责任编辑:杨迪娜收修改稿日期:2015-06-15)
ARM与微软Azure结盟
ARM宣布mbed Enabled Freescale FRDM-K64F开发板通过微软认证,有助于开发可安全搜集和传输资料至微软Azure公有云平台的物联网(IoT)产品。这是率先通过Microsoft Azure物联网认证(Microsoft Azure Certified for IoT)测试和验证的ARM mbed开发板,将支持微软Azure 物联网套件(Microsoft Azure IoT Suite)。Microsoft Azure是一个开放、灵活和可靠的云平台,广获财富五百强企业采用。
使用基于ARM Cortex-M4核的FRDM-K64F开发板的开发者即可获得发布在Github网站上的Microsoft Azure IoT Suite软件开发工具包(SDK)。这些库(libraries)已通过开发板测试,可用于mbed developer website网站上开放的mbed应用程序,使其与微软Azure 物联网套件直接相连。
Arm Control System of Medical Rehabilitation Robot Based on STM32
Guo Zhiyang,Chen Xueying
(College of Electronic Engineering,University of Electronic Science and Technology,Chengdu 610054,China)
Abstract:The medical rehabilitation robot is a new type of robot in recent years,which helps the patients to complete some motor function recovery training.In the paper,the STM32 microcontroller is used to control the brushless DC motor for controlling the operation of the machine arm.The PID model is established by Simulink,XPCTarget and the control panel are used for communication,so the suitable parameters in the speed control process can be gotten.Then the robotic arm can run more smoothly.The clinical trials prove that the system can complete the medical rehabilitation training on the arm.
Key words:medical rehabilitation robot arm;STM32;PID;Simulink;IR2130
中图分类号:TP332
文献标识码:A