3.5 PI调节模块
PI调节模块是对给定数据和反馈数据进行离散化PI调节。模块的数据宽度统一为14位,即给定数据/反馈数据/控制数据都用14位宽度无符号整型数据表示。本模块实现一个PI控制器功能,如图10所示。

图10 PI控制逻辑框图
PI调节离散化公式如(4)式所示。
I(K)=I(K-1)+KP*(E(K)-E(K-1))+KI*E(K) (4)
其中,1500≤I(K)≤14384,I(0) = 8192,E(K)=IREF-IOUT
模块在收到启动信号后,先寄存给定数据/反馈数据,再对二者扩宽符号位做有符号减法,并启动KI乘法器计算KI乘以误差e的结果。对减法的计算结果取绝对值,并与阀值作比较(常数比较器),比较的结果存入寄存器。计算e的误差增量,即E(K)-E(K-1) ,并用KP乘法器计算KP乘以误差增量的结果。将KI乘法器计算的结果先送入累加器,然后再将KP乘法器计算的结果送入累加器;模块的累加器在每次累加的时候会进行溢出处理和数据超出边界处理,无论哪种情况都会置为边界值(最大/最小值)。 3.6 PWM发生器模块
PWM发生器模块将PI调节后输出的数据转化为PWM波形输出给IGBT模块,通过IGBT的通断切换调整相电压,进而改变相电流按照给定进行变化。PWM波形的生成是通过将给定控制数据和载波数据比较,通过比较二者大小情况确定PWM的高低电平,实现PWM调制,如图11所示。

图11 PWM模块总体框图
锯齿波作为PWM载波,驱动时钟频率为200MHz,14位寄存器宽度。为减少计数器的进位链长度,采用计数器,拆分为3位计数器和11位计数器,减少了组合逻辑延迟。死区保护发生器模块根据给定的死区长度数据,将输入的PWM信号输出为PH和PL信号,分别对应IGBT的上下桥臂,并在PH和PL数据的变沿插入死区保护(同时置为低电平)。插入的死区保护是通过上升计数器和下降计数器来实现的,保证上桥臂和下桥臂不同时导通。
4仿真结果
对PWM模块进行功能仿真,仿真波形如图12所示。经分析,六路PWM波满足时序和死区保护的要求,实现了设计所要达到的目。将图12进行放大可见IGBT死区如图13所示。

图12 PWM功能仿真波形

图13 IGBT控制信号死区
5电机运行波形及分析
把FPGA配置好之后,对系统调试电机运行时三相电流波形如图14所示,电机换向时进行反转查表,电机转速反转波形如图15所示。

图14 步进电机运行时三相电流

图15 步进电机反转时电流波形
实验结果表明步进电机运行时三相电流相位差120度,三相电流为正弦波,电机运行平稳,电机反转时进行反相查表,转换方向时反应时间短,电流波动小。
6结论
本控制器采用Altera 公司嵌入Nios II处理器软核的FPGA实现了步进电机正弦波可变细分控制,大大提高了系统的可靠性,降低了设计成本。
控制部分采用Nios II CPU软核是系统控制更加方便灵活。CPU和各个控制模块集成在单片FPGA内,使驱动器集成度大为提高,减小了驱动器的体积。大大提高了细分精度,实现了步进电机在是低转速下的4096高细分的运行,消除了步进电机存在的低频振荡问题,控制精度显著提高,在高精密数控机床中有广泛的应用前景。
|