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