基于FPGA的直流电机伺服控制系统设计与实现

常怡萍, 刘 琴, 杨 蕾

(中原工学院 电子信息学院 河南 郑州 450007)

摘 要: 为了满足直流电机伺服控制系统实时控制的要求,提高电机跟踪控制的精度,设计了基于单片FPGA的直流电机伺服控制系统.该控制系统采用Nios II内核实现位置环和速度环控制策略,系统的电流环通过并行硬件电路实现.为了减小电机的力矩波动,设计了基于Anti-Windup策略的PI速度控制器;为了减小系统的超调量和调节时间,位置环采用了超前滞后校正器.仿真和实验结果表明,设计的伺服控制系统具有较好的稳态精度和动态性能,满足系统的设计要求.

关键词: FPGA; Anti-Windup; Biss; 伺服控制

0 引言

直流电机以其优异的性能在航空航天、数控机床、汽车电子等领域得到了广泛的应用.传统的直流电机伺服控制系统通常采用基于DSP和FPGA架构的控制器,此类控制器电路结构复杂、灵活性较差,不利于系统的升级和维护.为了简化外围硬件电路设计,近年来基于单片FPGA的伺服控制器成为研究的热点,并且在工业控制领域得到了成功的应用[1-3].文献[4]采用FPGA完成了基于Anti-Windup策略的永磁同步电机速度控制,实现了永磁同步力矩电机转速的快速无超调控制;文献[5]在FPGA中实现了感应电机的神经网络控制,实现了感应电机的集成伺服控制;文献[6]通过硬件语言在FPGA中完成了永磁同步直线电机的自适应模糊控制[6].上述控制算法的实现均采用并行硬件电路实现,调试周期较长,对编程能力要求较强.由于FPGA支持基于C语言的Nios II内核,该内核具有快速的运算性能和灵活的外围接口设计,因此,Nios II内核在伺服控制系统中得到了较多的应用[7].

传统的PI控制器受控制器输出限幅的影响,电机的力矩和转速输出容易出现超调和振荡,文献[8]采用基于Anti-Windup策略的PI控制器,实现了望远镜伺服控制系统的快速、无超调控制.文献[9]通过新型的Anti-Windup策略完成控制器从P到PI的平稳切换,实现了大阶跃信号的无超调控制.

为了提高直流电机伺服控制系统的集成度和系统的实时性,笔者将采用Altera公司的FPGA-EP4C22E22对直流电机伺服控制系统进行设计,在FPGA中实现了速度环和位置环控制策略、电流环策略、电机电流采集、脉宽调制(PWM)、Biss编码器数据采集.相比于传统基于DSP的伺服控制系统,提出的方案在精简硬件电路设计的同时,具有更好的灵活性.针对速度环阶跃响应超调的问题,采用了具有Anti-Windup策略的PI控制器,最后通过仿真和实验对上述设计进行了验证.

1 伺服系统的硬件设计方案

直流电机伺服控制系统的总体硬件设计方案如图1所示,其中电机的位置环和速度环在Nios Ⅱ内核中实现,电流环PI控制器采用并行电路实现,PWM由比较器产生,电机电流数据和Biss编码器数据的采集通过有限状态机实现.在FPGA中采用有限状态机可以更有效地按照芯片AD7656数据手册要求的时序进行AD数据的采样和读取.上述模块的时钟统一由倍频/分频模块产生.硬件设计的难点是电流PI控制器、电流AD采集的有限状态机实现和Biss编码器数据采集,因此,下面重点介绍这两部分的设计.

图1 系统的硬件设计方案
Fig.1 Scheme of hardware design

1.1 电流PI控制器模块

电流控制器采用传统的增量式PI控制器,其表达式如下:

(1)

Δux(k)=kp(ex(k)-ex(k-1))+kiex(k);

(2)

ux(k)=ux(k-1)+Δux(k),

(3)

式中:x代表d轴和q轴;ex(k)为电流误差;Δux(k)为PI控制器增量输出;ux(k)为PI控制器输出.具体实现过程如图2所示,电流环PI控制器中包括采样序列u(k)、u(k-1)以及e(k)、e(k-1),在FPGA硬件控制器中采用D触发器实现采样保持和数据的缓存.为了实现浮点算法并且保证运算的精度,采用Q12算法进行数据的处理.Q算法解决的是FPGA数字电路无法直接进行浮点运算的问题,Q12是用12位二进制定点数来表示浮点数(浮点数范围是 -8≤x≤7.999 755 9).电流环即电机的力矩控制回路,将其采用并行硬件电路实现,优点是:(1)并行硬件电路运算速度更快,有利于电机力矩波动的及时调节;(2)减小Nios II内核运算负担,从而将先进的控制策略嵌入到内核中.

图2 电流控制器的硬件实现 Fig.2 Hardware implementation of current controller

1.2 电流采集模块

电流的采集是通过AD采样芯片AD7656实现的,FPGA对AD7656进行数据的读取需要通过有限状态机实现.状态机根据16位模数转换芯片AD7656的时序进行编写,如图3所示.在FPGA上电完成复位后,在采样信号15kHz的上升沿完成采样触发,等待触发结束;然后AD7656芯片进行电流数据的采样保持,芯片的Busy信号有效,当FPGA时钟扫描到忙信号无效时等待转换结束;最后FPGA读取AD7656数据寄存器中的通道1和通道2内部的16位电流数据,同时输出转换结束信号,完成一次数据采样.在完成电流的采集后,有限状态机输出转换结束信号给电流环,进行电流环控制器的计算.

1.3 Biss编码器数据采集

针对Renishaw公司的32位绝对式编码器进行数据读取实验研究,该编码器是基于Biss-C模式的串行协议,该协议是一种主-从接口模式[10-11].主接口控制位置获取时序和数据传输速度,而绝对式旋转编码器为从接口,接口由两个单向差分线耦组成.MA将位置采集请求和时序信息(时钟)传输到从主接口,SLO将位置数据从编码器传输到与MA同步的主接口,数据传输格式如图4所示.根据图4所示的请求循环进程,在FPGA中设计如图5所示的有限状态机,进行编码器数据的读取.

图3 电机电流采集的有限状态机
Fig.3 Finite state machine sampled by motor current

图4 32位绝对式编码器数据格式
Fig.4 Data mode of 32 bits absolute encoder

图5 32位编码器读取状态机
Fig.5 FSM of 32 bits absolute encoder data reading

图中Ack为应答信号,其持续时间为读数头计算绝对位置的时间;“start”位和“0”位均为1位,“start” 位始终是高电平,“0”位始终是低电平;绝对位置数据为二进制格式,首先发送给最高位.对于旋转编码器来说,每转正好有2n个脉冲,之后脉冲数溢出绕回到零.“error”位低电平有效:“1” 表示传输的位置信息已被读数头的内置安全校验算法校验,结果正确;“0”表示内部检查失败,位置信息不可信.“warning”位低电平有效:“0” 表示应对编码器(及/或读数窗口)进行清洁.“CRC”位为校验位,位置、错误及警告数据的CRC多项式为:x6 + x1 + x0,它先被传输为最高位,然后转换. 起始位和 “0” 位从CRC计算中忽略.

2 位置和速度控制器设计

伺服控制系统采用如图6所示的控制结构,由位置控制器、速度控制器、结构滤波器、速度检测和控制模型组成.其中控制模型包括了电流环和系统的结构模态.为了增加系统的带宽和响应速度,需要设计位置控制器、速度控制器和结构滤波器,位置控制器采用超前滞后补偿的形式,速度控制器采用具有Anti-Windup策略的PI控制器.结构滤波器的应用目的是抑制在谐振频率处的驱动力矩成分,提高控制系统的增益,进而提高系统的带宽和动态性能.结构滤波器的表达式为

WSF(s)=

(4)

式中:ωNF为弹簧质量模型的谐振频率,称为陷波频率;ξZξP分别为结构滤波器的零点和极点阻尼系数.

图6 直流电机伺服控制系统结构图 Fig.6 Dc motor servo control system structure

位置超前滞后补偿控制器形式为

Gpc(s)=

(5)

式中:kp为控制器增益系数;T1T2T3T4为控制器时间常数.具有Anti-Windup策略的速度PI控制器的输出iq

iq=kp·Δω+q

(6)

式中:q表示PI控制器的积分输出ω.控制器输出工作在线性区时,速度环采用PI控制形式;当速度阶跃信号较大时,PI控制器输出会达到饱和,基于反馈计算的积分输出值将以一定的速率复位为零,此时,控制器为纯比例控制.

积分输出q的表达式为

q=kp·Δω+ω-ka·Δiq),

(7)

式中分别为PI控制器的比例时间常数和积分时间常数;ka为PI控制器反馈计算常数.控制算法由电流环、速度环和位置环组成.电流环需要实时、快速、准确地跟踪电流指令信号,因此电流控制器采用PI控制器,以使系统快速响应,消除静态误差.速度环的作用是增强系统的抗负载扰动的能力,抑制速度波动,实现稳态无静差.位置环的作用是实现电机角位置的精确定位,为了保证系统的稳定,位置控制器采用超前 -滞后补偿控制器.

3 实验结果分析

基于上述设计对直流电机驱动的小型转台进行了伺服控制实验,电机参数如下:电阻R=1.6Ω,电感L=6.0 mH,负载转动惯量为J=13 kg·m2;编码器采用32位Biss绝对式编码器,分辨率为0.000 3″.位置环设计参数:kp=150,T1=1.5,T2=0.039, T3=0.29,T4=2.9;速度环设计参数:kp=600,ki=1 500,ka=0.5.位置环和速度环采样周期均为1 000 Hz.实验测得伺服系统的速度、位置阶跃响应曲线如图7、8所示.

图7 伺服系统的位置阶跃响应曲线
Fig.7 Position step response curve of the servo system

图8 伺服系统的速度阶跃响应曲线
Fig.8 Speed step response curve of the servo system

由图7可以看出,位置阶跃具有较快的动态响应能力,位置定位时快速、无超调,稳态时位置误差为±0.02″(20毫角秒),满足伺服系统精确定位的要求.伺服系统在0.5°/s时的速度阶跃响应曲线如图8所示,速度阶跃响应调节时间tslt;0.2 s,稳态速度波动百分比为0.54%,伺服系统的速度阶跃响应曲线说明系统的速度环在采用具有Anti-Windup策略的控制器后,具有较好的动态响应能力和较高的稳态精度.

4 结论

设计了基于单片FPGA的直流电机伺服控制系统,简化了外围硬件设计,在Nios II内核中实现了位置超前滞后控制器;设计了具有Anti-Windup策略的速度控制器和结构滤波器,减小了系统的速度超调量和调节时间.最后,通过实验验证了设计的伺服控制系统的良好性能,为直流电机伺服控制系统的集成化设计提供了较好的设计参考.

参考文献:

[1] ZHANG D, LI H. A stochastic-based FPGA controller for an induction motor drive with integrated neural network algorithms [J].IEEE Trans Ind Electron,2008,55(2):551-561.

[2] KUNG Y S, HUANG C C, TSAI M H. FPGA realization of an adaptive fuzzy controller for PMLSM drive[J].IEEE Trans Ind Electron,2009,56(8):2923-2935.

[3] JEZERNIK K,KORELIC J,HORVAT R. PMSM sliding mode FPGA-based control for torque ripple reduction[J]. IEEE Trans Power Electron,2013,28(7):3549-3556.

[4] HANUS R,KINNAERT M, HENROTTE J L. Conditioning technique, ageneral anti-windup and bumpless transfer method [J]. Automatica, 1987(23):729-739.

[5] JEZERNIK K,KORELI J,HORVAT R. PMSM sliding mode FPGA-based control for torque ripple reduction[J]. IEEE Trans Power Electron,2013,28(7):3549-3556.

[6] LIN F J, TENG L T, CHANG C K. Adaptive backstepping control for linear-induction-motor drive using FPGA [J]. Electr Power Appl, 2006(153):484-492.

[7] KUNG Y S, TSAI M H. FPGA-based speed control IC for PMSM drive with adaptive fuzzy control[J].IEEE Trans Power Electron, 2007(22):2476-2486.

[8] 李洪文.基于内模PID 控制的大型望远镜伺服系统[J].光学精密工程, 2009, 17(2): 328-332.

[9] CHOI J W, LEE S C. Antiwindup strategy for PI-Type speed controller[J]. IEEE Trans Ind Electron, 2009(56): 2039-2046.

[10] 霍海龙. 基于BiSS协议的编码器及其在伺服驱动系统中的应用[J]. 电气自动化, 2011, 33(3):12-15.

[11] 肖鲲,王莉娜. 基于FPGA的BiSS协议光电编码器通信模块设计[J]. 电子测量技术, 2008, 31(7):188-191.

Design and Implementation of Motor Servo Control System Based on FPGA

CHANG Yiping, LIU Qin, YANG Lei

(School of Electronic and Information Engineering, Zhongyuan University of Technology, Zhengzhou 450007, China)

Abstract: In order to meet the real-time control requirement of servo system, a dc motor control system based on FPGA was designed. The position and speed controller were realized in the Nios II, and the current loop was executed in FPGA. In order to reduce the torque ripple, an Anti-Windup PI controller was designed. The lead-lag controller was adopted for the position controller. The simulation and experiment result showed that the servo control system had better steady and dynamic performance, which met the requirement of the servo control system.

Key words: FPGA; Anti-Windup; biss; servo control

收稿日期:2016-05-10;

修订日期:2016-06-28

基金项目:国家自然科学基金资助项目(61501530)

作者简介:常怡萍(1979— ),女,河南周口人,中原工学院讲师,主要从事扩频通信、宽带无线通信研究,E-mail:changyiping@126.com.

文章编号:1671-6833(2017)06-0054-05

中图分类号: TP 273

文献标志码:A

doi:10.3969/j.issn.1671-6833.2017.03.006