可编程逻辑
1、引言
步进电机是一种离散运动的装置,步进电机驱动器通过外加控制脉冲,并按环形分配器决定的分配方式,控制步进电机各相绕组的导通或截止,从而使电机产生步进运动。在单片机出现以前步进电机控制完全由硬件实现,不同类型电机和不同工作方式需要不同的环形分配器。如果更换电机类型或改变工作模式,则整个硬件电路就要重新设计。随着单片机的出现和普及,采用软件实现环形分配器获得广泛的应用。此类环形分配器只需改变软件即可适应各种电机,具有极大的灵活性。但也存在以下缺点:由于计算机是一种非并行执行的器件,各信号的同步将受到影响。采用单片机的控制电路,可靠性不高,抗干扰能力不强。如果出现问题,程序本身虽然可以通过软件陷阱等方式复位单片机使它回到正常工作状态,但是对于驱动器则意味着无法纠正的时序错误,这将导致失步的产生。本文提出了一种基于FPGA的新型集成式步进电机驱动系统实现方案,该方案采用模糊自组织PID调节方法实现对步进电机驱动系统的闭环控制,极大地提高了系统的自适应能力,同时利用FPGA上嵌入的微处理器PicoBlaze将步进电机驱动系统的控制器和驱动器集成在一片FPGA芯片上,实现了可编程片上系统设计,极大地提高了控制性能。这种新型的控制器体积小,结构简单,成本低,抗干扰能力强,一旦投入使用必将扩大步进电机的应用范围,降低系统的成本。
2 、步进电机的细分驱动原理
步进电机细分驱动本质上是对电机励磁绕组中的电流进行控制,使电机内部的合成磁场为均匀圆形旋转磁场,从而实现对步进电机步距角细分。合成磁场矢量的幅值决定了步进电机旋转力矩的大小,相邻两合成磁场矢量的夹角大小决定了该步距角的大小。对于三相混合式步进电机而言,向A、B、C三相绕组分别通以相位相差2/3π而幅值相同的正弦波电流,则合成的电流矢量在空间做幅值恒定的旋转运动,其对应的合成磁场矢量也作相应的旋转。
在细分驱动方式下,由于步距角小,步进电机的分辨率得到大幅度提高,同时这种驱动方式又可有效抑制单步运行中所产生的噪声和振荡现象。
3 、模糊自组织PID调节控制算法
由于步进电机调速系统具有非线性等特点,参数变化范围较大,因此要获得良好的性能,就需要对PID的比例增益、积分和微分时间常数按某种优化方式作在线调整,因此在设计中采用一种模糊自组织PID控制器对传统PID调节方法进行优化。
一般PID调节器的离散表达式如下:
依次类推可得模糊
推理规则如表1所示。
4、 驱动系统硬件设计
本系统采用交-直-交电压型电路,分为功率驱动电路和控制电路两大块。功率驱动电路主要有整流桥、滤波电容及IPM功率模块组成;控制电路以Xilinx公司的FPGA芯片为核心,包括电流检测电路、驱动电路及保护电路。驱动系统框图如图1所示。
图1 驱动系统框图
驱动系统的核心是FPGA控制芯片的设计,采用层次化开发方式,顶层模块由多个子模块组合而成,采用自底向上的方式进行开发,FPGA内部硬件原理图如图2所示。用户输入在PicoBlaze微处理器中进行处理,将控制信号送入CP脉冲发生器,产生CP脉冲和细分等级数,同转向信号CCW共同送入正弦表数据接口模块中,通过内部逻辑产生三相相电流给定数据,与电流反馈模块测试的反馈电流,经过PID调节,产生控制信号送入PWM发生器中,PWM模块将输出六路PWM控制信号,控制IGBT通断,以实现对电机控制。
图2 FPGA内部硬件原理图
(1) ClockMnger模块将输入的晶振时钟进行倍频,输出CLK50,CLK100,CLK200三个时钟信号。DCM锁定信号后,三个时钟信号均通过BUFGMUX切换到稳定后的时钟源上去。本模块输出一个G_Reset信号,在所有时钟都完全稳定后才置G_Reset为无效。为了消除异步Reset导致部分DFF的建立时间不够的现象,模块使用一个DFF在时钟的上升沿同步Reset信号,提供足够的时间裕量。
(2) Interface模块例化了一个单端口只读存储器存放一个周期的正弦数据表。输入CP和CCW信号后,通过顺序给出三相绕组对应的地址数据,即可查得三相电流的给定数据,并同时更新三个给定数据寄存器,送入下一个环节。转向交换也在本模块实现。输入的CCW信号将控制一个多路选择器,控制是否进行换相。本模块通过输入的细分信号和CP脉冲信
号共同决定三相绕组的地址数据的每次增量大小,当细分层次最高时,地址计数器每次递增1;当处于非最高细分精度时,地址计数器每次递增2的N次幂,N由当前的细分精度确定。
(3) kcpsm3_wrapper模块采用FPGA上嵌入的Picoblaze 8位微处理器作为设计的主控制器,接受用户输入,协调内部模块的工作。PSM代码程序定义了多个I/O地址,通过端口例化,实现处理器模块与外部模块的数据交换,当用户通过按键进行速度设置后,处理器进入中断,输出各种控制命令到接口模块和CP脉冲发生模块,控制电机状态,其中DIP用于拨码按钮的输入,LED用于发光二级管的输出,Btn用于按钮的输入,Set用于设定CP Pattern模块的速度输入寄存器,PAOC、PBOC来自外部过流信号的输入。Picoblaze模块中包含了一个内部复位控制电路,确保Picoblaze在器件配置和全局复位后的正确启动。
(4) PatternGenerator模块实现转速与CP脉冲对应的功能,给定一个转速信号后,通过查表得到对应的计数溢出数据。内部的计数器计数溢出时即产生一个CP脉冲。查找表输出的数据分为两部分,低位是CP计数器的计数数据,高位是对应转速的最佳细分等级,这两个信号都将输出给Interface模块,决定三相地址数据的改变。
(5) Solutions模块实现PWM控制、电流反馈测试和PID调节,通过状态机协调所有模块的工作起始和完成:检测A/D的转换标志位,当标志位为低时表明转换完成,分别启动两个电流模块进行反馈电流测量;等待两相电流测量都完成后同时启动三个PID模块进行PID调节;等待调节完成后将计算得到的控制值/死区数据同时更新到三相PWM模块的PWM寄存器以及死区寄存器中。
PWM模块采用三角波作为PWM载波,为减少计数器的进位链长度,采用Prescaled计数器,拆分为3位计数器和11位计数器,减少组合逻辑延迟。死区保护发生器模块根据给定的死区长度数据,将输入的PX信号输出为PH和PL信号,分别对应IGBT的上下桥臂,并在PH和PL数据的变沿插入死区保护。插入的死区保护是通过上升计数器和下降计数器来实现的,保证上下桥臂不会同时导通。时序等于比较器内部存在一级DFF,比较结果需要延迟一个时钟周期才能够输出,减少了组合逻辑延迟。
5、 功能仿真
图3 驱动系统功能仿真
驱动系统功能仿真如图3所示。其中feeda和feedb信号是通过PLI接口调用链接库模拟生成的,全面模拟实际情况。图中包含了6个IGBT控制脚的输出波形,以及三相独立的状态机、给定、反馈、控制数据。经计算,功能仿真数据完全符合预期设计。
6、 结论
本文所设计的基于FPGA的新型集成式步进电机驱动系统,采用模糊自组织PID调节方法实现对步进电机驱动系统的闭环控制,提高了系统的自适应能力。本文作者创新点是利用FPGA上嵌入的微处理器PicoBlaze将步进电机驱动系统的控制器和驱动器集成在一片FPGA芯片上,充分发挥了FPGA的高速并行和微处理器软件可编程的优势,实现了可编程片上系统设计,达到了对步进电机驱动系统的数字化控制,极大地提高了系统可靠性,增强了抗干扰能力,降低了设计成本。
责任编辑:gt
全部0条评论
快来发表一下你的评论吧 !