第五章 电动轮椅运动控制系统的软件设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章电动轮椅运动控制系统的软件设计在本系统的控制方案中,作者采用 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)睡眠模式子程序
当轮椅处在开机状态且三分钟内没有接收到用户对速度键和操纵杆的任何操作,则轮椅进入休眠模式。在进入休眠模式的最后十秒内,每隔一秒将鸣笛一次以向用户警示轮椅即将进入休眠模式,在此期间如果用户对速度键或操纵杆有任何