基于fpga的无刷直流电机舵机控制器设计
杨运,廖勇,李凡
(重庆大学输变电装备及系统安全与新技术国家重点实验室,重庆400030)
摘要:针对无刷直流电机的运行特点,建立了以ⅱ,ga芯片为核心的相互独立的四轴无刷直流电机舵机伺服控制系统。利用vhdl语言设计了各功能硬件模块和mos软核处理器,并用c语言编程在软核中实现了针对无刷直流电机的带前馈的电流、速度和位置三闭环软件控制算法。整个控制系统体
积小、可靠性高、灵活性强,实现了全数字控制。通过实验验证了基于fpga芯片的无刷直流电机舵机全数字化控制器的先进性。
关键词:fi,ga;无刷直流电机;伺服系统;前馈
中圈分类号:tm36 +1 文献标志码:a 文章编号:1001-6848(2010)03-0048-04
0引 言
舵机伺服系统的控制器目前主要采用模拟控制器和基于单片机或dsp的数字控制器。模拟控制器体积和重量大,易受干扰,难于调试,难以控制无刷直流电机,且其不易于与上位机构成控制系统;基于单片机或dsp的数字控制器,其体积也比较大,由于控制程序既要进行逻辑处理又要进行控制算法处理,因此控制周期较长,使用一套控制器往往难以控制多台电机,另外,其也存在外部硬件设计不灵活、可靠性不高等缺点。
sopc技术采用软硬件相结合的方式,目标是将尽可能大而完整的电子系统在一块fpga中实现,使得所设计的电路在规模、可靠性、体积、功能、性能指标、上市周期、开发成本、产品维护及其硬件升级等多方面实现****化。本文采用altera公司的芯片为控制核心,利用sopc思想,采用硬件实现逻辑处理,软核处理器实现算法控制四台相互独立的无刷直流舵机,所设计的控制系统体积小、重量轻、可靠性高以及控制速度快,井通过实验验证了相关性能指标。
1无刷直流电机的控制策略
在传统的电机伺服控制三环系统中,由电压(或上位机通过通信方式)给出位置给定与位置反馈信号o作差经过位置pid调节得到速度给定vg,与测得的速度反馈v作差经过速度pid调节得到电流给定t,t与此时刻通电相的相反馈电流作差经过电流pid调节得到电压给定u。用此ug输出调节占空比,从而达到电机的伺服控制[4,5]。但是此方法中的占空比调节需要三环调节完后才起作用,动态响应速度较慢。本设计在传统的方法中加上前馈,即由速度给定经前馈调节得到反电势e,再与u相加得到输出,如图1所示。前馈可显著提高系统的动态响应速度。
2系统硬件设计
为了尽量减小系统体积和成本,主控制芯片fpga采用altera公司的cyclone系列器件。电流反馈由采样电阻和ir2175芯片组成。位置检测由电位器实现,信号经rc滤波再由ad7863将模拟信号转换成数字信号,构成位置反馈。为了减霍尔信号中的干扰,将霍尔信号经滤波和施密特触发器整形后输入cpu,作为速度反馈和换相信号。整个硬件还包括数字通信电路rs232(422),ir2101驱动,mosfet全桥电路,程序存储器epcs4,参数存储器eeprom等。如图2所示。
3 fpga的系统设计
用fpga进行电机控制,可以采用纯硬件电路搭建控制器进行控制或搭建片上处理器采用纯软件方式控制。采用纯硬件电路可以实现并行控制,控制速度快,可靠性高,但是这样占用系统资源太大,普通fpga的资源难以满足控制多台电机,且难以实现复杂算法。采用纯软件方式节约硬件资源却难以发挥fpga的并行处理能力,控制速度慢。本系统采用硬件功能模块与构建软核实现软硬件相结舍的方式,以软核为控制核心,硬件模块独立工作,当软核需要相应值时才去读取或者输出相应值,这样既使用了较少的逻辑门又实现了较快的控制速度,硬件模块采用vhdl和verilog |