
第五章 电动轮椅运动控制系统的软件设计.doc
8页第五章电动轮椅运动控制系统的软件设计在本系统的控制方案中,作者采用TMS320LF2407ADSP控制芯片作为系统的核心控制芯片它具有很快的运行速度,丰富的片内外设等系统资源和强大的中断功能以及灵活丰富的指令集、高速运算能力、内部操作的灵活性、低功耗等特点,使得在系统的软件设计中,可以实现复杂的控制算法系统软件设计的终极目的是:实现两个电机平滑稳定的协调运动控制,实现轮椅控制器的人机交互功能,具备完善的故障保护功能,且可以和PC机通讯的功能,使得轮椅能够在各种允许路况下都具有非常平稳舒适的运行性能5.1 系统的软件设计方案5.1.1 系统的控制方块图由第二章可知,本系统是采用电压负反馈、电流截止负反馈和电流正反馈补偿的控制算法实现两台直流电机的协调运动控制调节器是数字PI调节器系统的图5-1轮椅运动控制系统控制方块图由图5-1可知,操纵杆的输出信号X、Y经过S曲线和左/右电机给定发生器后合成为左/右电机的给定信号,取电机两端电压以及电流采样电阻电压作为反馈信号为了防止轮椅起动或堵转时电机电流过大,本文采用了具有电流截止负反馈的电压闭环调速系统电流正反馈补偿环节是为了补偿由于电枢电阻引起的速降以提高系统的机械特性。
当轮椅运行在比较糟糕的路况时,轮椅的左/右电机在相同的给定下,负载大小可能不同,这时当用户本想径直前进时,轮椅可能由于左/右电机负载的不同,而转弯,图5-1中的“负载不平衡时电流正反馈补偿”环节就是为克服这种情况而设计的S曲线的设置使得轮椅在起/制动时都能够非常平滑和舒适,保证了安全性速度给定发生器和负载补偿仲裁器是两台电机协调控制的核心指挥部,它们保证了轮椅在二维平面上的自由运行5.1.2 本系统软件控制的时序对于一个以TMS320LF2407A为核心控制芯片的控制系统来说,首要的任务是确定系统的时钟系统,其次是合理决定软件中的中断数量和顺序本系统在硬件上米用的是外部晶体振荡器,其频率是10MHz,在软件中设定CPU时钟为40MHz,PWM载波频率为20KHz,系统的中断频率和AD采样频率也都是20KHz5.2 系统软件的主要功能模块本轮椅运动控制系统软件主要包括以下一些功能模块:(1) 初始化模块;(2) 上电时操纵杆中心位置检测程序;(3) AD采样子程序;(4) 电池电量检测子程序;(5) 睡眠模式子程序;(6) 锁存模式子程序;(7) 鸣笛子程序;(8) 加速度曲线给定子程序;(9) 速度按键处理子程序;(10) 速度按键鸣笛子程序;(11) 防积分饱和PI调节器子程序;(12) 延时子程序;(13) 显示模块。
1) 初始化模块本系统初始化模块主要包括:DSP芯片初始化、液晶显示器初始化、参数初始化其中DSP芯片初始化主要的任务是关中断、定义堆栈宏、配置数据存储空间、禁止看门狗、配置系统寄存器、配置I/O口、配置模数转换(AD)模块、配置事件管理器、串行通信接口(SCI)初始化、变量初始化、初始化成功鸣笛等液晶显示器初始化主要包括:定义液晶时序、指令集范围、擦除液晶显示屏,为显示数据做好准备参数初始化主要是为本系统软件所使用的一些重要参数,例如PI调节器参数,休眠时间,最大正反向、转向加速度等2) 上电时操纵杆中心位置检测程序当操纵杆不在中心位置时,为了防止用户突然上电开动轮椅造成安全隐患,在上电系统初始化后即对操纵杆是否在中心位置进行检测,若操纵杆在中心位置,则程序继续往下执行;否则每隔一秒鸣笛一次报警,以示操纵杆不在中心位置,如果十秒内用户释放操纵杆到中心位置则鸣笛结束,程序继续往下执行,否则程序便进入死循环,用户将无法开动轮椅,此时的唯一解决办法是:关了电源,把操纵杆放到中心位置,重新上电3) 模数转换(AD)子程序AD采样子程序主要是对操纵杆输出、电机两端电压、电机电流、电池电压进行采样。
TMS320F2407ADSP的AD具有十位精度,系统在软件计算中一般将采样值变换为Q12格式对于轮椅运动控制系统,由于硬件中存在大量的感性元件,以及本文在硬件设计中并没有将功率驱动部分和控制部分进行信号隔离,所以电路中存在大量的干扰信号,尤其是与采样周期同频率的干扰信号为此,对电机电流和电压采样值采用了递推平均滤波法[44]递推平均滤波法是把N个测量数据看成一个队列,队列的长度为N,每进行一次新的测量,就把测量结果放入队尾,而扔掉原来队首一个数据,这样在队列中始终有N个“最新”数据计算滤波值时,只要对队列中的N个数据进行平均,就可以得到新的滤波值递推平均滤波法对周期性干扰具有良好的抑止作用,而且还有平滑度高和灵敏度低的特点在本轮椅运动控制系统中,N取84)电池电量检测子程序电池电量检测子程序将AD采样得到的电池电压值换算成用户可以识读的十进制电压值并由液晶显示器显示在电池电压不足时向用户鸣笛警示,同时液晶显示电池电压不足,给出充电提示当电池电压低于某下限时,控制器会报警一段时间:如果轮椅此时正在运行,则控制器报警一分钟后封管抱闸,以给用户足够的时间停车;如果轮椅静止,则控制器报警五秒后封管抱闸。
当轮椅在起/制动时,负载电流较大,此时AD采样所得到的电压值比正常时要小得多,显然不是真实的电池电压值,这就需要对采样值进行滤波处理本文采用程序判断滤波法[44],根据经验判断确定两次采样允许的最大偏差Y,若先后两次的采样值的差值大于Y,则表明输入信号是干扰信号,应该去掉,而将上次采样值作为本次采样值;若小于Y,则本次采样值有效在本文中取Y5V5)睡眠模式子程序当轮椅处在开机状态且三分钟内没有接收到用户对速度键和操纵杆的任何操作,则轮椅进入休眠模式在进入休眠模式的最后十秒内,每隔一秒将鸣笛一次以向用户警示轮椅即将进入休眠模式,在此期间如果用户对速度键或操纵杆有任何动作,轮椅将重新开始休眠时间倒计时,否则轮椅将进入休眠模式要想控制器从休眠模式中退出,只有复位控制器或重新上电6)锁存模式子程序在某些特殊场合为了防止对控制器的误动作或为了防止非用户本人使用轮椅,需要将轮椅置于锁存模式要使得轮椅进入锁存模式,长按加速键听到一声长鸣后,轮椅即进入锁存模式;解锁时,长按减速键约五秒听到一声长鸣后,轮椅即退出锁存模式需要注意的是:只有当操纵杆在中心位置时轮椅才可以被锁定进入锁存模式后,轮椅封管、抱闸、关继电器。
7)鸣笛子程序鸣笛子程序主要是供其它程序在需要给用户以蜂鸣器的方式警示时调用的子程序控制鸣笛计时器可以控制蜂鸣器鸣笛时间的长短8)加速度曲线给定子程序为了使得轮椅在起/制动时能够平滑稳定安全,本文设计了具有S曲线特性的加速度给定子程序9)速度按键处理子程序速度按键处理子程序是用来接收处理来自加减速键的信号,使得轮椅的最大速度能够按照加减速键的状态变化轮椅的速度共分五个档位,每个档位对应着轮椅的一个最大速度10)速度按键鸣笛子程序速度按键鸣笛子程序是用在当用户按下加减速键时蜂鸣器发出一声短鸣以示按键有效,值得注意的是当速度档是一挡或五档时蜂鸣器不叫11)PI调节器子程序12)延时子程序在本轮椅控制系统的软件设计中,所有的延时子程序,均采用NOP空指令的循环,而不是RPT指令,这是由于RPT指令不可以被中断打断[45],这会造成系统的误动作和一些别的软件故障13)显示模块显示模块主要用于显示电池电压值、速度档值、轮椅的相关工作模式以及故障报警显示4.3 轮椅运动控制系统总的流程图轮椅运动控制系统总的流程图如图4-2所示谨re4耳-*■丘乂中斷冈皑孜花1ST;-DSKP,'Mi1tJl1,*iV-1.S-氓屯柏雀出7:-LIE崔宣在直序H胸n出腕■-1CD.1;:.I遇昭TF相适曲然标基卓垃見体枪■診I■住莘捋」故强r苗.吨寸已人死命障.也撼眾如ngF电耶■PWM古空出的山曰计产“氐;TfT.^讯42邪閤廷戒拧制緘疔总•卅中讹軒圉4.4 系统软件的中断结构本系统主要使用了外部中断XINT1和T1定时器周期中断。
其中外部中断XINT1主要完成的任务是:对功率管的故障检测与保护;T1定时器周期中断则主要完成对两个电机的协调控制、AD采样、过流保护、速度按键处理等2)T1定时器周期中断程序流程图,如图4-4所示这里对程序流程图做几点说明1)程序中需要对操纵杆的位置和轮椅的运行状态进行判断,当操纵杆在中心位置且轮椅静止时(二者缺一不可),可以对轮椅进行封管、抱闸的操作2)电流控制在本系统中,电流分别以三种方式参与了控制第一,电流截止负反馈环节,起限流保护的作用第二,电流正反馈补偿环节,起提高电机机械特性作用第三,负载不平衡补偿,顾名思义,起协调两台电机平衡的作用<;h>•,心.-TH"fA昨:•『ilh-LIti.ri㈣II*站口刖鼻占.2li'.7iiH.L^-.tt1…rJCJ-••■.・€■-"■B;1*4.L^I,-rFI砒11旳1-3R1-rlS.-.甲1MJ-P5;nr比N■-1-」・:・営'.j卜trAvciiL;■=■-li'L.-l■iH,i-'-1TM;.HT-Vr!-ni,FI13・r!--l^=i呗rilH-P.-u:l-£l:。
