基于NiosⅡ的超声电机驱动控制电路
该驱动控制器把CPU、DDS模块以及光栅反馈计数模块都集成在一片FPGA中,具有电子元件使用少,功耗低,易修改、易升级等特点,为超声电机的各种运动平台提供了一个良好的闭环控制系统。
超声电机是一种新型微特电机,其工作原理是通过压电材料的逆压电效应,使定子在超声频段微幅振动,依靠摩擦将振动转换成动子的旋转(直线)运动。超声电机具有体积小,重量轻、结构紧凑、响应快、无电磁干扰等优点,在航天宇航和军事装备等领域有着广泛的应用前景。
近些年来,我国在超声电机控制方面,提出了一些控制理论,并搭建了一些用于超声电机驱动的实际驱动与控制电路。2010年,薛雯玉硕士研究了基于DSP芯片的超声电机驱动控制器,但驱动电路仍以传统的模拟电路为主,精度不高,不能实时的调频、调相。2011年,孙霖硕士研究了基于DSP/FPGA的超声电机驱动控制器,利用DDS技术产生数字正弦波,虽然提高了精确度和实时性,但是浪费了很多芯片的逻辑资源,也不利于驱动控制电路的小型化。
本文使用Altera公司的EP3C400240C8芯片设计了一种以FPGA为核心、基于SOPC技术和NiosⅡ软核处理器的新型超声电机驱动控制器。在FPGA内部用SOPC(可编程片上系统)的思想定制了一个NiosⅡ软核处理器作为控制运算部分,用Verilog语言编写出了频率、相位、幅度都可调的DDS模块和光栅反馈计数模块,这样的一个闭环系统在满足控制精度和实时性的同时具有良好的灵活性和可重构性,并且做到了以极少的硬件资源和高度集成的系统结构去控制超声电机运行,便于驱动控制电路的小型化。
1 驱动控制器的设计
1.1 驱动控制电路
本文提出的超声电机驱动控制系统由控制驱动器和功放/升压电路组成。图1是以FPGA为核心构建的超声电机驱动控制电路。超声电机的驱动机理要求驱动器必须提供在超声频段内两相具有一定相位差的同频、等幅正弦交流电,电压在几十伏到几百伏之间。该电路的功能全部由FPGA的软件实现,控制和输出正弦交流电,大大提高了控制系统的稳定性和精确性,并使控制系统电路板的面积大幅度缩小,一块控制板可以同时控制数个超声电机。
此驱动控制系统用FPGA内部编写的DDS模块输出两路具有一定相位差的正弦波数据,然后通过DA芯片转成正弦波信号,经过功率放大之后,最后用变压器抬高电压。
该电路加载超声电机后输出的波形如图2所示,波形变的光滑很多。当超声电机在运行过程中发生频率漂移的情况时,系统也能够从速度的改变量来调整相应的驱动输出,不会出现电机速度不稳定的现象。
1.2 FPGA内部系统
图3是超声电机控制驱动电路中FPGA内部的构架。其设计的核心是可裁剪的Nios II软核和发出正弦信号的DDS模块以及读取光栅编码器反馈脉冲的计数模块。
1.2.1 NiosⅡ系统的搭建
Nios II是Altera公司开发的软核32位的RISC微处器,作为一个采用硬件描述语言编写的软核,Nios II可以通过内带的Avalon总线机制与其他采用HDL语言描述的硬件接口模块组成Nios系统一起嵌入到Altera的Stratix、Cyclone或APEX系列的FPGA中,从而构成一个可编程片上系统设计。
首先要构建一个基于Nios II的最小系统,这个系统的组件都在SOPC Builder提供的IP核中,依次选择Nios II处理器、EPCS控制器、SDR AM控制器、JTAG模块。其中,NiosⅡ实现MCU的功能,SDRAM和EPCS控制器组件用来连接外部存储器,JTAG模块实现程序的调试与下载。除此以外,我们还需要用到串口接收上位机发送来的数据以及定时器中断,因此在系统中添加UART模块和定时器模块。最后,处理器要控制DDS模块的运行并且接收光栅计数模块计算出的脉冲数,还需要添加一些I/O口用作数据的传输。这样,FPGA内部的一个NIOS系统就构建完成了。
1.2.2 DDS模块
直接数字频率合成器(Direct Digital Frequency Synthesizer)是一种基于全数字技术,从相位概念出发直接合成所需波形的一种频率合成技术。基本原理是以数控振荡器的方式,产生频率、相位可控制的正弦波、余弦波、三角波、三角波、方波等波形。图4所示为DDS的基本结构。
[page]
图4中,fc为时钟频率,K为频率控制字,N为相位累加器的字长,D为ROM数据线宽度。
本文的DDS设计主要分为3个模块:控制字接收模块,用来与NIOS系统进行通信,接收来自上位机的控制字;波形存储器模块,用来产生驱动信号所需要的波形,本文只需要产生正弦波;相位累加器模块,用来产生频率和相位,本文是将接收到的频率和相位控制字转化为实际的频率和相位。
1.2.3 脉冲计数模块
脉冲计数模块由滤波和计数两部分构成,主要是为了读取光栅编码器反馈回来的信息,从而实现对电机的精确定位和速度控制。本文使用的光栅编码器,其分辨率为0.5um/count,输出A+/A-、B+/B- 2路差分信号,为将编码器的差分输出转换成单端脉冲信号,本文选用了26LS32AC差分转单端芯片实现差分信号的转换。转换后的两路信号A、B是一组正交脉冲信号,电机朝不同方向运动时,A、B两路信号之间
的相位关系会发生转换,从而判断电机运行的方向。因此,根据这一特性,在FPGA中,用Vetilog语言编写了一个实现正交编码脉冲电路的功能的计数模块。
同时,为了进一步消除光栅反馈信号可能产生的窄脉冲干扰信号,本控制器将转换后的单端信号进一步滤波。主要过程是:在采集某一状态信号时,利用比该状态信号更高频率的采样时钟对其进行多次重复采集,直到多次采集结果完全一致时才视为有效信号输出。然后再将滤波过后的信号发送给正交编码脉冲电路进行辨向和计数。
1.3 驱动控制器的控制方式
电机工作时,FPGA通过串口接收来自上位机发送的数据至Nios II处理器中,经过程序处理之后,得出电机运行的方式(步进、连续)、运行的距离等信息,NiosⅡ处理器通过控制DDS模块的起停时间来控制驱动信号的有无进而控制电机的运动过程。电机运行时的位移和速度的实际信息可以从光栅编码器的反馈信号中得出,计数器模块计算出脉冲数的值发送给Nios II处理器,处理器通过具体的控制算法改变DDS输出信号的幅值、频率、相位从而对电机的运行状态做出进一步的调整。这样,一个完整的闭环控制系统就由一块FPGA芯片实现了。
2 实验分析
2.1 超声电机速度稳定性研究
由于超声电机在一定的频率范围内,它的速度随着频率的增大而减小,因此我们可以通过控制正弦信号的频率来保证超声电机速度的稳定性。
本实验使用的直线超声电机在33.8 kHz附近运行的比较稳定,所以选用33.8 kHz作为直线超声电机的实验频率。首先研究直线超声电机在不加入任何的控制算法时,它的速度稳定性,实验结果如图5所示。
由上图可以看出不加控制算法直接运行,超声电机的速度不是很稳定。如果在Nios II处理器中加入一些控制算法去控制电机运行时的频率,速度的稳定性会有显著的改善。以增量式PID算法为例:
△u(k)=A1e(k)+A2e(k-1)+A3e(k-2)
u(k)是频率,e(k)是第K次采样时目标速度与当前速度的差值。通过上面的公式算出频率的改变量,发送新的频率控制字给DDS模块,改变驱动信号的频率,从而达到控制电机运行速度的效果。图6为加入PID算法后电机的速度曲线。
由此可见,引入控制算法的超声电机驱动,电机的速度波动要远远的小于直线超声电机在不引入算法时的波动。这很好的解决了直线超声电机在运动过程中的速度稳定性问题。
2.2 定位精度测试
对一个单轴直线超声电机运动平台进行精确定位实验。此精密运动平台在脉冲宽度为3.5μs时有着比较稳定的输出特性,步进距离大约在100 nm左右。使用“连续+步进”的方式进行精度测试,连续运动至预定目标处,然后利用微小步进进行调整。英国REN-ISHAW公司的XL-80激光干涉仪系统作为本次实验的测定系统,将激光干涉仪显示数据与定位距离进行比较。实验表明,此超声电机直线运动平台的定位精度可以达到1μm。
3 结论
文中利用SOPC技术,将波形发生模块和微处理器模块以及脉冲计数模块巧妙地集成到一片FPGA内部,利用可编程逻辑的灵活性和Nios II的强大处理能力,实现了超声电机驱动控制电路的设计。采用SOPC方案进行系统设计,充分利用FPGA的可编程性,整个开发过程变得灵活方便,在不改变任何外围电路的情况下可以对系统进行软硬件升级,延长系统的寿命周期,同时大大提升了系统的性能和系统的集成度,降低了系统的开发成本,这正是相对于其他方案的优势,也符合当今科技的发展方向。
本文由大比特收集整理(www.big-bit.com)
暂无评论