当前位置:文档之家› 第五章 电动轮椅运动控制系统的软件设计

第五章 电动轮椅运动控制系统的软件设计

第五章 电动轮椅运动控制系统的软件设计
在本系统的控制方案中,作者采用 TMS320LF2407A DSP 控制芯片作为系统的
核心控制芯片。它具有很快的运行速度,丰富的片内外设等系统资源和强大的中断
功能以及灵活丰富的指令集、高速运算能力、内部操作的灵活性、低功耗等特点,
使得在系统的软件设计中,可以实现复杂的控制算法。
系统软件设计的终极目的是:实现两个电机平滑稳定的协调运动控制,实现轮
椅控制器的人机交互功能,具备完善的故障保护功能,且可以和 PC 机通讯的功
能,使得轮椅能够在各种允许路况下都具有非常平稳舒适的运行性能。
5.1 系统的软件设计方案
5.1.1 系统的控制方块图
由第二章可知,本系统是采用电压负反馈、电流截止负反馈和电流正反馈补偿
的控制算法实现两台直流电机的协调运动控制。调节器是数字 PI 调节器。系统的
控制方块图如图 5-1 所示:

图5-1 轮椅运动控制系统控制方块图
由图 5-1 可知,操纵杆的输出信号 X、Y 经过 S 曲线和左/右电机给定发生
器后合成为左/右电机的给定信号,取电机两端电压以及电流采样电阻电压作为反
馈信号。为了防止轮椅起动或堵转时电机电流过大,本文采用了具有电流截止负反
馈的电压闭环调速系统。电流正反馈补偿环节是为了补偿由于电枢电阻引起的速降
以提高系统的机械特性。当轮椅运行在比较糟糕的路况时,轮椅的左/右电机在相
同的给定下,负载大小可能不同,这时当用户本想径直前进时,轮椅可能由于左/
右电机负载的不同,而转弯,图 5-1中的“负载不平衡时电流正反馈补偿”环节
就是为克服这种情况而设计的。S 曲线的设置使得轮椅在起/制动时都能够非常平
滑和舒适,保证了安全性。速度给定发生器和负载补偿仲裁器是两台电机协调控制
的核心指挥部,它们保证了轮椅在二维平面上的自由运行。
5.1.2 本系统软件控制的时序
对于一个以 TMS320LF2407A 为核心控制芯片的控制系统来说,首要的任务是
确定系统的时钟系统,其次是合理决定软件中的中断数量和顺序。
本系统在硬件上采用的是外部晶体振荡器,其频率是 10MHz,在软件中设定
CPU时钟为 40MHz,PWM 载波频率为 20KHz,系统的中断频率和 AD 采样频率也都
是20KHz。
5.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取 8。
4)电池电量检测子程序
电池电量检测子程序将 AD 采样得到的电池电压值换算成用户可以识读的十进
制电压值并由液晶显示器显示。在电池电压不足时向用户鸣笛警示,同时液晶显示
电池电压不足,给出充电提示。当电池电压低于某下限时,控制器会报警一段时间:
如果轮椅此时正在运行,则控制器报警一分钟后封管抱闸,以给用户足够的时间停
车;如果轮椅静止,则控制器报警五秒后封管抱闸。当轮椅在起/制动时,负载电流
较大,此时 AD 采样所得到的电压值比正常时要小得多,显然不是真实的电池电压
值,这就需要对采样值进行滤波处理。本文采用程序判断滤波法[44],根据经验判
断确定两次采样允许的最大偏差 Y ,若先后两次的采样值的差值大于 Y ,则表明输
入信号是干扰信号,应该去掉,而将上次采样值作为本次采样值;若小于 Y ,则本
次采样值有效。在本文中取 Y 5 V。
5)睡眠模式子程序
当轮椅处在开机状态且三分钟内没有接收到用户对速度键和操纵杆的任何操
作, 则轮椅进入休眠模式。在进入休眠模式的最后十秒内,每隔一秒将鸣笛一次
以向用户警示轮椅即将进入休眠模式,在此期间如果用户对速度键或操纵杆有任何
动作,轮椅将重新开始休眠时间倒计时,否则轮椅将进入休眠模式。要想控制器从
休眠模式中退出,只有复位控制器或重新上电。
6)锁存模式子程序
在某些特殊场合为了防止对控制器的误动作或为了防止非用户本人使用轮椅,
需要将轮椅置于锁存模式。要使得轮椅进入锁存模式,长按加速键听到一声长鸣
后,轮椅即进入锁存模式;解锁时,长按减速键约五秒听到一声长鸣后,轮椅即退
出锁存模式。需要注意的是:只有当操纵杆在中心位置时轮椅才可以被锁定。进入
锁存模式后,轮椅封管、抱闸、关继电器。
7)鸣笛子程序
鸣笛子程序主要是供其它程序在需要给用户以蜂鸣器的方式警示时调用的子程
序。控制鸣笛计时器可以控制蜂鸣器鸣笛时间的长短。
8)加速度曲线给定子程序
为了使得轮椅在起/制动时能够平滑稳定安全,本文设计了具有 S 曲线特性的

速度给定子程序。
9)速度按键处理子程序
速度按键处理子程序是用来接收处理来自加减速键的信号,使得轮椅的最大速
度能够按照加减速键的状态变化。轮椅的速度共分五个档位,每个档位对应着轮椅
的一个最大速度。
10)速度按键鸣笛子程序
速度按键鸣笛子程序是用在当用户按下加减速键时蜂鸣器发出一声短鸣以示按
键有效,值得注意的是当速度档是一挡或五档时蜂鸣器不叫。
11)PI 调节器子程序。
12)延时子程序
在本轮椅控制系统的软件设计中,所有的延时子程序,均采用 NOP 空指令的
循 环,而不是 RPT 指令,这是由于 RPT 指令不可以被中断打断[45],这会造成
系统的误动作和一些别的软件故障。
13)显示模块
显示模块主要用于显示电池电压值、速度档值、轮椅的相关工作模式以及故障
报 警显示。
4.3 轮椅运动控制系统总的流程图
轮椅运动控制系统总的流程图如图 4-2 所示
4.4 系统软件的中断结构
本系统主要使用了外部中断 XINT1 和 T1 定时器周期中断。
其中外部中断 XINT1 主要完成的任务是:对功率管的故障检测与保护;T1 定时
器周期中断则主要完成对两个电机的协调控制、AD 采样、过流保护、速度按键处
理等。
(1)XINT1 中断程序流程图,如图 4-3 所示
(2)T1 定时器周期中断程序流程图,如图 4-4 所示
这里对程序流程图做几点说明。
1)程序中需要对操纵杆的位置和轮椅的运行状态进行判断,当操纵杆在中心位
置且轮椅静止时(二者缺一不可),可以对轮椅进行封管、抱闸的操作。 2)电流控
制。在本系统中,电流分别以三种方式参与了控制。第一,电流截止 负反馈环
节,起限流保护的作用。第二,电流正反馈补偿环节,起提高电机机械特性作用。
第三,负载不平衡补偿,顾名思义,起协调两台电机平衡的作用。

相关主题