基于FPGA的电动舵机控制器设计

2016-03-16 06:58悠,
导航定位与授时 2016年5期
关键词:舵机控制算法时钟

韦 悠, 林 凡

(北京理工大学 宇航学院,北京 100081)

基于FPGA的电动舵机控制器设计

韦 悠, 林 凡

(北京理工大学 宇航学院,北京 100081)

针对传统的电动舵机控制器控制周期长的问题,提出了一种基于FPGA的电动舵机控制器设计方案。在完成硬件设计的基础上,通过建立高速浮点运算模块,解决了FPGA无法直接进行浮点运算的问题,从而实现了不完全微分PID控制,并给出了具体的控制周期和控制延迟。与传统的基于DSP的电动舵机控制器进行对比试验,试验结果表明,所提控制器设计方案能够有效缩短控制周期,提高控制效率,优化控制效果。

电动舵机控制器;控制周期;FPGA;浮点运算

0 引言

电动舵机控制系统为导弹的运动执行机构,是导弹制导回路的重要组成部分,决定导弹制导回路的性能,在导弹制导回路中有着重要意义。电动舵机控制系统主要由控制器、驱动器、伺服电机、减速传动机构和位置传感器组成,是一个典型的位置控制系统。

随着电动舵机控制技术的不断发展,对控制器的运行速度、控制周期的要求越来越高,顺序结构的数字信号处理器(DSP)已经不能够满足高速实时控制的要求。而现场可编程门阵列(FPGA)通过硬件语言将控制算法与功能以集成电路的形式实现,严格按照时序控制硬件电路完成各项指令,这种直接通过底层硬件来实现特定功能的方式,比基于软件的实现方式运行速度更快,而且在硬件层面上控制输入和输出能够提高系统的响应速度[1-3]。同时,利用FPGA硬件并行的优势,在每个时钟周期内完成更多的处理任务,使FPGA拥有不逊色于DSP的运算能力。但是,并行结构在实现特定功能时对时序有着严格的要求,尤其是在控制算法的实现过程中,时序控制与运算结果的正确与否有着直接的联系。所以,FPGA在控制算法的实现上相比DSP有一定的难度。对于一些舵机控制器的几何空间相对富裕的应用场合,DSP加FPGA的解决方案是一个较为理想的选择,但空间要求严格的情况下,充分利用FPGA的片上资源,采用单一FPGA为舵机控制器,既缩短了控制周期又节省了空间[4]。

本文主要研究了基于FPGA的电动舵机控制器的设计,在完成硬件设计的基础上,介绍了FPGA实现高速浮点运算的方法,并以此为基础,完成了控制算法的实现,并通过试验验证设计的可行性。

1 控制器硬件结构

基于FPGA的电动舵机控制器的结构如图1所示,控制器由FPGA、串口隔离芯片和ADC组成。FPGA作为核心器件,选择Altera公司的Cyclone IV系列的EP4CE6E22C8芯片,该型号FPGA包括6772个逻辑单元,以9-Kbit模块构成的276Kbits嵌入式存储器,2个锁相环以及30个9×9嵌入式乘法器。内部主要划分为4个模块,接收上位机指令的串行通信接口模块、控制ADC采样并接收其结果的ADC采样控制模块、控制算法模块以及用来给出控制信号的PWM模块。

图1 控制器结构Fig.1 Composing of actuator control

串口隔离芯片实现了RS-422/485标准格式数据的接收与发送,并通过串行通信接口模块完成FPGA与上位机之间的数据传输。这种设计在节约片上资源、简化程序的同时,也保证了通信速率和传输距离。

ADC选用AD7606-4,该芯片是4通道16位双极性输入同步采样ADC,模拟电压出入范围±10V或±5V,能够同时对4路模拟通道进行采样,而且模拟信号输入端还配有二阶巴特沃斯低通滤波器。通过ADC采样控制模块产生1MHz的同步时钟信号,控制AD7606-4工作在4倍过采样模式下,完成1次采样用时22μs。ADC的采样周期通常也代表了控制器的控制周期,采样周期越小,数字控制的效果越接近于连续控制,控制系统的线性度越高。

2 浮点运算及控制算法的实现

2.1 浮点运算子模块的建立

文献[5]中计算过程全部是用整数来完成,在舵偏角解算的时候,容易造成较大的解算误差,影响控制精度。因此,浮点运算对于精确位置控制有着重要意义。

FPGA实现浮点运算需要建立对应的浮点运算模块,这些浮点运算模块采用具有一定输出延迟的流水线结构来搭建,通过增加流水线的级数能够提高单位时间内执行指令的数目,从而提高系统的数据吞吐率。一般来说,离散后的控制算法仅需要加减法和乘法便可实现,由此建立与之相对应的浮点加减法运算模块和乘法运算模块[6-8],同时,由于浮点运算使用IEEE-754标准[9]的单精度浮点数来完成,所以还需要将整数转换为浮点数以及将浮点数转换为整数的转换模块 。

以浮点乘法为例,使用ModelSim对其进行仿真,仿真结果如图2所示。图2中,clk表示时钟信号,dataa和datab表示被乘数和乘数,result表示计算结果。从波形可以看出,该模块具有5个时钟周期的输出延迟。得益于其流水线结构,每个时钟周期均能够开始下一次运算,并在5个时钟周期后得到运算结果。其他浮点运算模块均具有与之相同的特点,仅在输出延迟上有所不同,各模块的端口定义以及输出延迟如图3所示。

图2 浮点乘法运算模块仿真波形Fig.2 Floating point multiply module simulation waveform

图3 浮点运算模块端口及输出延迟Fig.3 Ports and clock cycles of floating point algorithm modules

2.2 不完全微分PID模块设计

首先,控制模块需要将串口指令与ADC采样结果解算成实际角度,不同解算方式在整理后均可以得到式(1)的形式,cmd和ad分别为串口指令和ADC采样结果,θc和θ分别表示指令角度和舵偏角。

(1)

由式(2)可以得到误差e

e=θc-θ=kc·cmd-k·ad+(bc-b)

(2)

由于bc和b均为常数,令be=bc-b可以得到

e=θc-θ=kc·cmd-k·ad+be

(3)

对比式(1)与(3)可以发现,若先分别将θc和θ算出,再计算误差e需要计算2次乘法和3次加减法,而直接计算误差e则可以少进行1次加减法运算。在得到误差e之后,使用不完全微分的PID算法计算得到控制量。

不完全微分的PID算法传递函数如式(4)所示

(4)

其中,kp为比例系数,Ti为积分时间,Td为微分时间,kd为微分增益,将式(4)分为比例积分和不完全微分两部分。

(5)

(6)

(7)

(8)

(9)

综合式(3)和式(9),完成1次PID运算需进行8次加减法和6次乘法运算,通过调用运算子模块,分配运算次序,最终完成1次PID运算耗时75个时钟周期。设计中使用的FPGA时钟频率为50MHz,则完成1次PID运算耗时1.5μs,及在ADC采样结束1.5μs后,控制器给出控制信号。

3 试验结果及分析

试验分别使用基于FPGA和DSP的控制器在空载条件下对舵机进行控制,而且仅对比例系数进行整定。试验使用的DSP型号为TMS320F28335,设计目标是同时对4路舵机进行控制,为了保证在控制周期内完成4路ADC采样结果的读取、滤波以及控制量的解算,控制周期取为200μs。

首先通过测试系统输入频率为1Hz的方波并记录下舵机的位置反馈信号,获得舵机的阶跃特性曲线如图4所示。从图4中可以看出,在DSP的控制下舵机上升时间相对较短,但是超调量超过了0.75°,而在FPGA的控制下舵机的超调量不超过0.5°。

图4 舵机的阶跃响应曲线Fig.4 Actuator’s step responses

分别输入正弦扫频信号,得到舵机的频率特性曲线如图5、图6所示,并且观察时域响应,以输入信号幅值为2°的1Hz正弦信号下的响应曲线如图7所示为例说明。从图5和图6中可以看出,在FPGA和DSP控制下,舵机的幅频宽基本相同,FPGA控制的谐振峰值低于DSP控制,相频宽分别为17Hz和20Hz。DSP控制下舵机的带宽略优于FPGA,但振荡严重。且从图7可以看出,DSP控制下舵机的响应曲线失真率相对较高。结合阶跃特性测试的结果,可以得出结论,基于FPGA的电动舵机控制器控制周期相对较短,控制信号更新速率快,能够较好地抑制超调,控制算法参数的整定也相对简单。对比试验中使用的FPGA体积约为DSP的2/3,价格近似DSP的1/2。

图5 FPGA控制下舵机的频率特性曲线Fig.5 Actuator’s frequency response controlled by FPGA

图6 DSP控制下舵机的频率特性曲线Fig.6 Actuator’s frequency response controlled by DSP

图7 1Hz正弦信号跟踪效果Fig.7 1Hz sine signal tracking responses

4 结论

本文针对电动舵机控制器设计问题,采用高速并行的FPGA作为控制器核心,开展FPGA高速浮点运算方法研究,建立浮点运算子模块,并通过浮点运算模块完成控制算法,实现电动舵机控制,达到了缩短舵机控制周期和提高控制精度的目的。通过对比试验,验证了设计的可行性。由试验结果可以看出,控制周期和控制量更新延迟的缩短,使得控制算法参数整定变得相对容易。

[1] Introduction to FPGA Technology: Top 5 Benefits [EB/OL]. 2012.

[2] Jamali M M, Tran B J. FPGA based sensory/actuation embedded system[C]//2008 IEEE National Aerospace and Electronics Conference,2008:246-249.

[3] 杨海钢, 孙嘉斌, 王慰. FPGA器件设计技术发展综述[J]. 电子与信息学报, 2010, 32(3):714-727.

[4] 杨运, 廖勇, 李凡. 基于FPGA的无刷直流电机舵机控制器设计[J]. 微电机, 2010, 43(3):48-51.

[5] 邓健辉. 基于FPGA的电动舵机控制器设计[D]. 哈尔滨工业大学,2011.

[6] Langhammer M, Pasca B. Design and implementation of an embedded FPGA floating point DSP block[C]//IEEE, Symposium on Computer Arithmetic. IEEE Computer Society, 2015:26-33.

[7] Baesler M, Voigt S O, Teufel T. An IEEE 754-2008 decimal parallel and pipelined FPGA floating-point multiplier[C]//Field Programmable Logic and Applications (FPL), 2010 International Conference on. IEEE, 2010:489-495.

[8] Liu H K, Kang X G, Wang S. The FPGA implementation of single-precision floating-point adder[J]. Advanced Materials Research, 2014, 1008-1009:668-671.

[9] IEEE Standards Committee.IEEE Std 754-2008, IEEE standard for floating-point arithmetic[S].2008.

[10] 张宇河,董宁. 计算机控制系统(修订版)[M]. 北京:北京理工大学出版社, 2007: 108-110.

FPGA-based Electric Actuator Controller Design

WEI You, LIN Fan

(School of Aerospace Engineering, Being Institute of Technology,Beijing 100081,China)

An FPGA based actuator controller design is put forward regarding the problem of long control period for traditional actuator control. After the hardware components were decided, floating point algorithm modules, which are used to solve the problem that most FPGAs do not support IEEE 754 single-precision floating-point natively, were built to realize incomplete differential PID control method. Moreover, the control period and control latency are defined. Compared with the traditional DSP-based actuator controller, the experiment results show that the design approach proposed in this paper can shorten control period and improve control efficiency. At the same time, the actuator’s performance is optimized.

Electric actuator controller; Control period; FPGA; IEEE 754 floating-point arithmetic

10.19306/j.cnki.2095-8110.2016.05.015

2015-06-23;

2015-07-01。

韦悠(1989 - ),男,硕士,主要从事舵机控制系统方面的研究。E-mail:weiyou5905@163.com

TP273

A

2095-8110(2016)05-0075-04

猜你喜欢
舵机控制算法时钟
基于模型预测控制算法的智能密度控制系统在选煤厂的应用
直升机某型舵机自动测试系统设计分析
别样的“时钟”
基于Backstepping的非线性无人船航向控制算法
古代的时钟
基于dsPIC单片机的飞艇舵机控制实现
高精度位置跟踪自适应增益调度滑模控制算法
有趣的时钟
ABS自动优化控制算法及应用
超音速舵机保护器