具备学习功能的电动按摩椅控制系统的研制
吴永明,罗海据
(广东工业大学机电工程学院,广州510090)
摘要:为了提高电动按摩椅的操作便利性和安全性,研究了按摩椅控制系统。在硬件上采用互锁电路,保证了电路系统的安全性;在软件上实现了按响应时间分类的电机控制系统,提供自动按摩和个性化按摩等模式,并通过保存和复原用户设定的个性化按摩模式,实现按摩椅的学习功能。利用Petri网对该控制系统进行建模和分析,以保证所要实现的功能之间没有死锁和冲突。该控制系统已经用于上市的产品中,获得了用户的好评。
关键词:电动按摩椅;控制系统;学习功能;Petri网
中国分类号:TM33 文献标识码:A 文章编号:1004—7018(2008)04—0038—04
0引言
随着我国经济的迅速发展和人们生活水平的不断提高,电动按摩椅越来越受到大众的欢迎。目前,在电动按摩椅市场上,进口、合资以及国产产品并存。相对而言,进口产品功能强大、按摩方式丰富、外观优美,但同时其价格也非常昂贵。而国内产品功能较简单,产品知名度也相对较低,但是其价格比较低廉。
为了提高电动按摩椅在市场上的竞争能力,本文研究出一套自主研发的中档电动按摩椅的控制系统。该控制系统能完成一般电动按摩椅的自动按摩模式和定点按摩模式,并增加学习功能以实现和保存用户个性化自动按摩模式。
本文先介绍学习功能的概念,再论述控制系统的硬件系统和软件系统,然后再结合硬件系统和软件系统介绍学习功能的实现。
1学习功能说明
按摩椅的自动按摩模式实际上是按时间顺序对揉捏、捶打、推拿这三个电动机模块接口的设置集合,它固化在程序里,用户不能改变它们;定点按摩模式是用户按自己的意愿选择按摩手法。
由于每个人的生理特点,如身体结构、身高体重等是不一样的,对于按摩手法、力度等的感受就不一样,自动按摩模式很难满足所有用户的需要。而定点按摩模式要求用户每次都要选择按摩手法,略显麻烦。如果按摩椅能够“学习”用户的按摩手法,形成一套个性化的按摩流程并保存下来,提供给用户在以后使用,既有自动按摩模式的方便又有定点按摩模式的舒服,无疑会提高用户的满意度,提高产品的市场竞争能力。
实现学习功能的技术路线是:在用户选择个性化自动按摩功能设定时,系统按时间顺序依次将用户的按键消息保存下来;当用户选择个性化自动按摩模式进行按摩时,系统按时间顺序依次模拟发射这些消息,复原这些操作和控制。其中系统还增加了对这些消息的删除、调整等功能,提高操作界面的友好性。
2硬件系统的设计
2.1硬件系统的组成
控制系统主要包括了Mcu、电源模块、I2c接口的E2PROM、液晶屏、无线遥控模块、键盘输入手控板、直流电动机驱动电路等。Mcu采用PIC16F77单片机,这种单片机具有成本低、功能丰富、抗干扰能力强等优势而广泛用于电动机控制系统。E2PROM用来保存用户输入的信息,并且PICl6F74单片机内部集成了I2c和SPI电路,接口方便。
直流电动机由MOsFET管构成桥式电路驱动,实现正反转。而MOsFET采用IR2110来驱动,该电路成熟稳定[2],应用在本产品上比较合适,如图1所示。
2.2硬件系统的工作原理
控制系统首先完成硬件软件的初始化,然后扫描键盘的输入,根据键码设定的模块接口,完成各种功能。软件设定了各个电动机的连续运行时间不得超过15 min,即使用户忘记关闭按摩椅,系统也能将按摩椅关闭以保安全。
直流电动机用PWM进行驱动。用单片机的一个时间定时器产生一个单位脉宽,然后用多个计数器来对这个脉宽进行计数,分别产生多个PWM驱动多个电动机。通过改变计数器的范围而改变PWM的脉宽,实现电动机的调速。由图1可知,脉冲从LEFT输入时,Q2和Q3截止,Q1和Q4导通,实现正转;脉冲从RIGt佃输入时,Ql和Q4截止,Q2和Q3导通,实现反转。
2.3硬件系统的安全措施
在驱动大功率直流电动机时,器件的安全性很重要,对于IR2110驱动电路的保护措施,很多文献已经有论述[2-3]。在实际应用中,由于受到干扰导致程序处于一个未知状态,使LEFT和RIGHT同时为高电平,或者LEFT和RIGHT进行切换时时间延时过短等,它们都会导致MOSFET管的烧毁。因而本系统增加了如图2所示的互锁电路。R1、C1、Dl、D2组成缓冲电路,当Direction由高电平向低电平转换时,C1向R1放电,X2A先停止输出,过一段时间后x1A才能输出;当Direction由低电平向高电平转换时,c1通过R1充电,XlA先停止输出,过一段时间后x2A才能输出。在实际应用中,软件先把Mo-torPulse置为低电平,再切换Direction的状态。互锁电路解决了H桥有可能同时导通的问题,保证了电机驱动电路的安全可靠。
3软件系统的设计
3.1软件的整体架构
按摩手法的实现实际上是对这些电动机的起停、加速、点动、变速、换向等控制功能的组合。实现学习功能,系统至少要保证两点:一是多个电动机能够并行工作而且系统对它们的响应时间要短,二是设定的各种电机控制功能在运行的时候不存在冲突。
多模块并行工作的实现,一般方法是先将嵌入式实时操作系统移植到单片机,然后开辟多个任务来管理多个模块的运行。目前流行的多任务单片机实时操作系统基本上都通过改变单片机的程序计数器(Pc)来进行任务调度,同时需要比较多堆栈来实现,例如uc/Os、VxWorks、uc/Linux等。由于PIc系列的单片机的Pc和堆栈特性,这些系统都不能胜任,如何让PIc单片机完成一个多任务的控制过程是解决此问题的关键所在。
相对于传统面向过程的编程方法,本文提出了另一种的解决方案。首先,整个系统的软件架构分为前台运行的程序和后台运行的程序,前台负责的任务有:依照键码完成各种功能的调用和自动按摩流程、定点按摩或者个性化自动按摩流程等对模块接口的设置,后台负责完成模块的驱动。在后台,采用按构成系统的实体对象分类:按键模块、揉捏电动机驱动模块、行走电动机驱动模块、锤打电动机驱动模块、存储模块等。其次,以行走电动机的控制为例,控制包括运行时间、运行速度、是否可以换向、换向时间等,它们构成了一个电动机控制系统。这个电机控制系统提供对外接口,其他程序能够通过这个接口的参数完成电动机的操作,而不用关心这些功能的实现。
3.2模块的建构
对这些模块的功能构成的分析可知,每个模块都有一些子功能,有些要求系统的响应时间比较短,有些要求比较长。为了提高控制系统的实时性,系统采用了按响应时间要求对这些功能进行分类,并分别去完成,以达到多个任务运行的效果。换言之,对于一些要求实时性比较高的功能,控制系统可以配更多的时间去运行它们。
在代码组织上,首先保证主循环程序不管在什么情况下每循环一周用的时间不超过lO ms。其次,每个模块按照各个子功能实际要求的响应时间设置子功能的扫描时间。为了减少单片机的内存消耗,一般至多分为4个等级。以行走电动机的控制为例可以设定两个等级:Tc子功能是每100 ms扫描一次的,Tc完成运行总时间的监控;Mc子功能是主程序每循环一次扫描一次,它包含了起动功能、以预设速度运行功能、换向功能、停止功能,如图3所示。由此可见,电动机的换向功能、停止功能等响应时间最迟也是主程序扫描一周的时间,大概也在lO ms内;电动机可设定的最小运行总时间是100ms。试验证明,在运行中,系统的所有模块的响应时间都在预设的范围内。
3.3电机模型的验证
在众多模块中,电动机的控制模型最为重要,为了节省篇幅,本文只对行走电动机的模型进行模拟验证。为了能对电动机控制模型进行动态模拟以及了解电机运行状况,本文引入一种建模工具:Petri网。它是基于信息流模型的,特别适合描述异步、并发、冲突、资源共享等现象。它不仅有严格的数学基础,有各种分析方法,对系统性能进行分析和形式化
验证;而且有直观的图形表示,易于理解,是不同知识背景工程技术人员间的一种“共同语言”。本文采用Petri网对电动机的控制进行建模,借此了解电动机的运行状态,判断电动机的各种功能是否存在死锁和冲突。
以行走电动机的控制为例建立Petri网模型,它们的定义参照Petri网的原型[4]。在原型的基础上,定义一种控制弧:
其中:(S x T)cF,表示权值为O的权值函数。在Peti网上,用起始带圆圈末端带箭头的弧表示,如图4b所示的(P1,T1)。
这种CW(s,t)=O的弧所表征的意义是:对某一变迁t,s参与t的变迁,但是s的token并没有发生变化,如图4b所示。很显然,图4a和图4b中T1发生的条件和结果是等价的,这种带有控制弧的Petri网在功能上等价于Petri5网原型。因此,可以运用Petri网的一些基本原理和分析方法判断建立模型的性质。带控制弧的Petri网增加了可以描述分层,而且层与层之间的tokert包含不同资源的Petri网的功能,方便电动机控制模型的分析。
在毫秒级执行的子功能Mc要实现的电动机控制功能有:
(1)由于电动机起动瞬间需要比较大功率,处于起动阶段P3;
(2)电动机以预设速度运行的状态P4;
(3)由于电动机的换向对电路的冲击比较大,在控制上先停止电机几十毫秒后再换向,以减少冲击,处于间隙停止换向状态P5;
(4)停止状态P6。
在秒级执行Tc的功能有:
(1)计算行走电动机运行的总时间P2;
(2)运行时间结束状态P1。
在系统上电时,电动机的初始态为停止状态,Pl和P6有token,即M0={l,0,O,O,O,1},则行走电动机控制的Petri网模型如图5所示。
下对于任一个变迁T,都有可能发生,因而这是个活的Petri网,并且是一个有界的安全网。也就是说,电动机运行的每一个状态都是可达的,不存在死锁等情况。
当T1发生,P2具有token,T3发生,然后T4、T5、T6将循环发生,电机正常运行。当T2发生,Pl具有token,那么T7、T8、T9的其中之一发生,电动机停止。也就是说T1、T2成了 T3到四的发生变迁的开关。在软件的处理上面,Mc和Tc的token包含的信息是不同的。P2里的token包含一个时间计数器,当Tc每被执行一次,这个计数器就被减100ms,设置时间初始值就可以控制电动机的运动时间。当P2里的时间计数器等于O时,T2发生,Pl有token,电动机在任何状态下都进入停止状态,等待下一次起动。P3、P4、P5里面的token也包含一个时间计数器,只不过Mc每执行一次,计数器减一对应的时间减少大约lO ms。
4学习功能的实现
在前面介绍的硬件系统和软件系统基础上,本节简要介绍实现学习功能的流程。首先,用户按学习功能键进入学习状态。系统将行走电动机、捶打电动机、揉捏电动机复位。在液晶显示屏的提示下,用户开始按键设定各种按摩手法。这时定义一个计时器,开始以100 ms为单位记录用户的按键操作。用户设定过程如表1所示,以四个操作为例
在第1 s时,用户按了推拿键开始推拿;程序按时间顺序在第一个消息序列里将10和推拿键的键码10保存到E2PROM;用户按下其他按键,程序也一样依次记录下来,如表1中保存的信息。在设定的过程中,用户有可能产生误动作或者对所设定的按摩手法不满意,因此系统提供了对这些信息的删除、调整等功能。
当用户调用个性化自动按摩模式时,系统将保存在E2PROM的第一个信息读出来放在比较器,然后起动一个以100ms为单位的计时器。当计时器增加到与比较器有匹配的时间后,将键码赋值给键盘模块的接口,由键盘模块完成电动机模块的设置。然后将读取第二个信息放在比较器,等待执行下一个命令。个性化自动按摩模块跟其他模块相类似,它是每100ms扫描一次,如图3所示。例如当计时器从O增加到10时,发现有匹配的时间,于是起动推拿功能。如果读出的信息是零,则表示按摩流程结束,退出个性化自动按摩模式。
5结语
本文研究的按摩椅控制系统,在软件方面,提供了三种按摩模式,并实现了学习功能;各种模块通过接口进行信息交换,模块之间耦合程度低;电动机运行时的状态通过Petri网进行了模拟,是安全而没有冲突的,即使是用户任意设置按摩功能,电动机都能一一实现。在硬件方面,电动机的驱动采用了互锁电路,即使用户在很短的时间设置电动机的换向、点
动等操作,也能保证电动机驱动器件的安全性。该系统已经运行在实际按摩椅产品上,具备个性化自动按摩功能的按摩椅投放市场后,受到了消费者的一致好评。今后要做的工作是,在用户日常使用按摩椅的过程中,采用智能模糊算法记录用户的输入,简化学习功能的设定而自动建立个性化自动按摩模式。