RTLinux构建的磁悬浮轴承控制器实验平台
(4) 易于实现网络编程,必要时可通过局域网进行远程监控。
(5) 运算速度以及实时性能随PC机的升级而自然升级,升级成本低,性能提升迅速。
当然,PC机平台在体积、抗环境干扰的稳定性上,相对DSP平台有其劣势。但是,就研究阶段作为控制器实验平台而言,它无疑是比DSP平台更好的选择。
4 软件平台选择
软件平台的选取,应对DOS、Windows及RTLinux进行比较评估,最后确定选择何种平台。
图5 采用PC机与RTLinux开发的控制平台的基本结构
事实上,DOS在“中断响应时间”上无可挑剔,便考虑到其不具备任务调度能力(除非另行开发任务调度代码),并且没有图形开发环境,将来软件开发成本会很高,故不予考虑。
Windows为一多任务操作系统,其多任务的特性不可避免地对其实时性造成不利影响。有相关资料表明,Winodws的中断响应时间会在几百微秒到几百毫秒的范围内波动。Windows下,系统在“任务切换时间”、“中断响应时间”方面,表现均很差。
RTLinux是一硬实时系统,作为一新兴的实时平台,可从网上免费获取,并且基源码是完全公开的。它是由美国新黑西哥理工学院开发的基于标准Linux的嵌入式操作系统。到目前为止,RTLinux已成功应用于从航天飞机的空间数据采集、科学仪器测控到电影特技图像处理等广泛的应用领域[4]。
RTLinux提供了一个精巧的实时内核,并把标准的Linux核心作为实时核心的一个进程,同用户的实时进程一起调度。这样做的好处是好Linux的改动量最小,充分利用了Linux平台现有的丰富的软件资源。其系统结构如图2所示。
这样的结构,一方面保证了它的稳定性,另一方面由于它将实时进程的优先级设为高于标准的Linux进程,从而保证了系统的实时性。并且RTLinux的实时特性与硬件密切相关,只要硬件速度得到提升,它的实时特性将相应提升。这就能保证充分发挥微机平台硬件速度上的优势及硬件升级的便利性。
下面介绍如何对RTLinux的中断响应时间进行测试。测试前将打印机并口的脚2与脚10(中断脚)短接,测试程序每隔100μs在地址0X378上输出0X03,用以在打印机并口脚2、3上获得周期性的+5V触发信号;脚2由低电平变为高电平时会触发中断,编制中断处理程序,在程序中将2、3脚上电平拉低,通过示波器观察脚3上的周期信号即可知系统的中断响应时间。测试原理如图3所示。在CPU为PIII800的PC机平台上的实测表明,系统中断响应时间平均为5μs,最坏响应时间小于10μs,完全能够满足磁轴承控制系统的实时要求。
javascript:window.open(this.src);" style="cursor:pointer;"/>
5 控制平台构建
磁轴承各种数字控制算法的实现从根本上看要依赖于所使用的硬件平台,因此要求其平台具备强大的运算能力与AD/DA吞吐能力。
PC机采用了PIII800 CPU,其强大的浮点运算能力、高速的系统总线能很好满足系统需求。A/D卡可以采用ISA总线,也可采用PCI总线与CPU交换数据。与ISA总线相比,PCI总线速度要高得多。所用PC机上的PCI总线为32位/33MHz,可提供每秒132M字节的突发(Burst)数据传输率。PCI2.1规范已定义了64位/66MHz的PCI总线标准,因此未来可提供每秒512M字节的突发(Burst)数据传输率。而ISA总线的时钟频率率是8MHz,最多实现0.5M字节左右的数据传输率。另外,与ISA总线比较,PCI总线增加了奇偶校验(PERR)、系统错(SERR)、从设备结束(STOP)等控制信号以及超时处理等可靠性措施,使数据传输的可靠性大为增加。
考虑到系统要求很高的数据吞吐能力,以尽量减少A/D采样带来的数据延迟,最终选取了商用高速PCI数采卡。此PCI卡采用ADS7819作为数据采集芯片,最大数采率可达800kHz,支持32路单端或16路差动模拟输入,另配有16路开关量输入,16路开关量输出。磁悬浮控制系统要求5路传感器信号采集,另外需要监测转子速度,此卡提供的硬件完全能够满足需求。而且,它在板上设置了4K的高速FIFO,具有专门的逻辑控制电路,采样时可实现通道的自动切换。这样就为编程时尽可能减少CPU对采样的干预,从而为CPU计算能力的充分利用提供了基础。其结构简图如图4所示。
D/A部分选用了AD公司的高速D/A芯片AD7537,电流建立时间仅1.5μs。D/A板上共放置了5片AD7537,它们可同时进行10路控制信号的D/A转换输出,能达到系统的速度要求。
基于以上选取的硬件,采用了PC机与RTLinux开发的控制平台的基本结构如图5所示。
硬件选择完毕之后,需进行相应的软件编制以实现完整的控制谷仓中。文献[1]中,美国维吉尼亚大学的Hilton提供了一整套的基于RTLinux的软件解决方案——“RTiC”开发平台。但“R-TiC”平台的一些图形功能会影响系统的运行速度,同时考虑到系统的灵活性、高效性、安全性及对软件代码完全有效的控制,因而对软件平台进行了完全自主的开发。
软件在RTLinux下用C语言进行开发,主要完成以下几个功能:(1)数据采集,采样位移传感器信号;(2)转速监测,监测转子转速,向控制算法提供实时转数据;(3)算法实现,完成位移与转速数据到控制量的解算,实时生成控制量;(4)D/A输出,控制D/A卡输出电流控制量,驱动功放输出控制电磁力。与之相适应的软件结构如图6所示。
6 平台应用
平台搭建完成后,对系统性能进行了评测。采用的方式如下:
令系统工作周期为10kHz,每一周期,PC机完成A/D采样、数据处理、D/A输出等功能。A/D、D/A部分所用时间是固定的(与所采用的硬件水平有关),控制算法所能利用的时间(即数据处理部分)可达50μs以上。在评测时,数据处理代码段循环进行如下工作:计数器累加、浮点乘法运算、译码并存储结果到目的数,循环次数可达3000次以上。此评测虽然简单,却很好地反映了系统对磁悬浮数字控制(需要进行大量的译码与浮点乘法运算)的优越性能。
在随后的实验中,使用此平台对一力矩陀螺磁悬浮系统进行了有效控制。PIII800强大的处理能力使复杂的控制算法得以轻松实现,并最终使系统转速超过了20000rpm。
本文介绍了基于PC机与RTLinux构建的新一代磁悬浮系统数控平台相对于DSP控制平台的优越性,并详细说明了构建此系统的情况。此平台的成功构建及实际投入使用,有力地推动了磁悬浮系统研究的深入开展,最终使力矩陀螺转速超20000rpm的目标得以顺利实现。