一种基于FPGA的三轴伺服控制器的设计优化
扫描二维码
随时随地手机看文章
目前伺服控制器的设计多以DSP或MCU为控制核心,但DSP的灵活性不如FPGA,且在某些环境比较恶劣的条件如高温高压下DSP的应用效果会大打折扣,因此以FPGA为控制核心,对应用于机载三轴伺服控制平台的控制器进行了设计与优化。 1 总体方案 FPGA(Field-Prograromable Gate Array,现场可编程门阵列)是在PAL,GAL,CPLD等可编程器件的基础上进一步发展的产物。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一,因此在设计中采用FPGA为控制核心。FPGA的基本特点主要有:采用FPGA设计ASIC电路,用户不需要投片生产,就能得到可用的芯片;FPGA可做其他全定制或半定制ASIC电路的中试样片;FPGA内部有丰富的触发器和I/O引脚;FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一;FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 整个控制器由控制和驱动两部分组成,其结构如图1所示。控制部分由FPGA及一些附件组成,该控制器能够独立完成三轴控制器的电机驱动波形发生、闭环运算与控制、与上位机通信等任务,附件主要用来完成电枢电流的反馈等功能。驱动模块由光电耦合器件和放大驱动芯片等组成。该控制器的最终控制目标为对驱动三轴的力矩电机进行高精度定位与驱动。力矩电机的位置和速度反馈由光电编码器实现。 由于本控制器所应用的机载平台为三轴结构,因此,控制器采用独立式控制,即每个轴都具有图1所示的控制功能,三个相对独立的分控制器组成整体的三轴控制器。该基于FPGA的三轴伺服控制器的基本控制方案就是这种反馈式的高精度控制,其中速度环使用PD控制算法,位置环使用PID控制算法。调整PID参数,通过控制电压来控制跟踪瞄准精度,使得跟踪瞄准精度逐渐提高,达到所需盼精度要求。 2 控制器硬件与软件的设计与实现 本伺服控制器以FPGA为核心,在硬件设计中主要进行了驱动模块设计、控制模块设计和通信模块设计。驱动模块能够根据外部给定的驱动角度产生驱动信号,控制模块则能够对光电编码器测得的角度信号和速度信号进行分析、反馈及运算,最终给出PWM脉宽值驱动整个系统,在这期间还需要功放的放大作用,而通信模块的主要功能是实现与上位机的有效通信,并能够实现控制器的在线编程功能和上位机对三轴系统中力矩电机的远程控制功能。 驱动模块主要包括控制波产生单元、力矩电机光电编码器信号采集与处理、可编程死区发生器等部件。驱动模块中的信号功率放大部分和隔离措施的应用也是该部分中的重要设计内容,在此设计中功率放大采用普通的晶体管放大电路,而光电隔离器件的应用能够有效防止强电模块对弱电部分的影响。在驱动模块中辅助芯片采用可编程器件EPlK30QC208,它采用可重构的CMOS SRAM工艺,把连续的快速通道与独特的嵌入式阵列(EAB)相结合,同时结合众多可编程器件的优点来完成普通门阵列的宏功能,主要完成伺服控制器的各种硬件逻辑接口功能。 EPlK30QC208主要完成4个接口的逻辑功能,即:主机接口、D/A接口、码盘接口、I/O接口。D/A转换器件采用双通道DAC芯片DAC5573,相对TLC2543来说,硬件的连接简单很多,因为它采用标准的I2C总线,同时S3C4510里包含I2C的控制器,所以DAC5573只需接到4510的SDA和SCL这两个引脚,就可以实现两者之间的通信。需要注意的是,SDA和SCL这两个引脚需要上拉电阻值为10 kΩ的电阻来确保I2C总线能够释放出来。 控制模块方面速度环节和位置环节分别采用PD和PID控制。因此在控制器设计中需要在这方面有所体现。由于本控制器以控制直流力矩电机为最终目的,因此在控制模块的设计方面需要研究力矩电机的驱动及其电压值获取。在本控制器设计过程中需要对上述各项进行综合控制与处理,以达到合理地控制开销和控制精度的平衡。在三轴伺服装置中选用PID控制算法。引入通常的PID控制算法,并考虑功率放大、位置检测环的增益和速度环的PD控制算法,给定三轴电枢电压。
以FPGA作为控制核心对某机载三轴运动平台的伺服控制器进行设计,主要对其硬件中的控制、驱动、通信模块进行了设计,同时给出了其软件控制流程和部分中断、复位等软件程序。通过后续的仿真测试验证了该控制器的有效性。