基于FPGA 的步进电机正弦波细分驱动器设计


时间: 2024-05-19 13:31:25 |   作者: 华体会娱乐体育首页

  不是很理想随着高性能数字信号处理器DSP的出现以DSP为控制核心以软件方式实现电机控制一度成为研究的热点近年来随着可编程逻辑器件的快速的提升使得可编程逻辑器件功能越来越强大从而促使高集成化高精度驱动器的出现因此本文提出了一种基于SOPC片上可编程的全数字化步进电机控制管理系统本系统是以FPGA为核心控制器件将驱动逻辑功能模块和控制器成功地集成在FPGA上实现充分的发挥了硬件逻辑电路对数字信号高速的并行解决能力可以使步进电机绕组电流细分达到4096且细分数可以自动调节极大地提高了控制精度和驱动器的集成度减小了驱动器体积2步进电机细分驱动原理步进电机的细分控制本质上是对步进电机励磁绕组中的电流来控制在普通驱动方式下驱动电路只是通过对电动机绕组激磁电流的开和关使步进电动机转子以其本身的步距角分步旋转步进电动机靠定子转子磁极间的电磁力来进行工作当它处于双拍状态工作时其定位位置是正好位于两通电磁极的中间即依靠两通电磁极电磁吸引力的平衡而获得的由此能够推论若能够进一步仔细地控制两磁极电磁吸引力的大小使转子磁极获得更多种由于两相定子磁极的电磁吸引力差异而形成的平衡定位位置步进电机细分驱动方式是应用了这一原理在细分驱动时细分控制器经过控制各相激磁绕组电流的逐步增大及逐步减小让转子处于多个磁力平衡状态使电机内部的合成磁场为均匀的圆形旋转磁场实现步距角变小电动机的旋转得到细化的目的合成的磁场矢量的幅值决定了电机旋转力矩的大小相邻两个合成磁场矢量的夹角大小决定了该步距角的大小对于三相步进电机而言向ABC绕组分别通以相位相差23π而幅值相同的正弦波电流图1则合成的电流矢量在空间做幅值恒定的旋转运动其对应的合成磁场矢量也作相应的旋转从而形成旋转力矩图2ABC三相瞬时电流值如式123所示cosamiItω12cos3bmπiItω−24cos3cmπiItω−3AABBCCFiaibicω1Osθ图1步进电机正弦细分三相绕组电流波形图图2旋转力矩图细分驱动方式下由于步距角小步进电机的控制精度显著提升同时这种驱动方式又有效抑制低速运行中产生的噪声和振荡现象3控制器总体设计的具体方案步进电机三相绕组的电流是正弦阶梯电流通过改变给定电流的每一次变化的阶梯数能轻松实现可变细分功能驱动器的任务就是控制绕组的电流使之按正弦阶梯波的规律变化每给一个步进脉冲ABC三相绕组的电流沿正弦阶梯波前进一步电机转动一个步距角步进电动机驱动主回路图如图3所示IAIB为两个霍尔元件图中6个IGBT集成在电源控制模块IPM内图3步进电动机驱动主回路图步进电机控制管理系统框图如图4所示采用FPGA作为主控制芯片将控制器与驱动器的数字电路部分集成在一片FPGA上实现为了控制绕组电流在设计中引入电流跟踪型闭环反馈反馈电流与给定的正弦电流离散的正弦表经过改进的比例积分PI调节后进行SPWM调制输出6路PWM波来控制驱动电路三个桥臂上的6个IGBT开通关断如果忽略死区时间控制每个桥臂的上下半桥的两路PWM波互补即上半桥PWM波为高低电平时下半桥PWM波为低高电平系统采用14位宽度200MHz计数器产生PWM载波载波频率122KHz电流数据全部采用14位精度进行离散化200MHz时钟由50MHz时钟经PLL倍频产生FPGA输出的PWM波经功率模块放大后控制

  步进电机运行步进电机运作时的状态转速和转向通过LED指示步进电机转速是由查表速度决定的CP是用来决定查表频率在细分等级一定的情况下CP速度越高电机转速越快如果电机在高细分下非常快速地旋转则CP脉冲频率就会很高导致PWM脉宽过小使功率模块IGBT控制桥臂频繁开关其结果是开关损耗大为增加功率模块过热而高细分在步进电机非常快速地旋转时其优势并不明显所以在不影响电机运行精度的情况下系统根据转速对细分精度在2561286432之间自动调节使电机更加平稳可靠的运行NiosIIPIPWMADMLED图4控制管理系统框图31FPGA结构设计本系统是由集成在系统采用层次化开发方式顶层模块由多个子模块组合而成FPGA设计系统框图如图5所示系统由NiosII微处理器模块和数字逻辑模块组成图5FPGA设计系统框图控制器采NiosII的32位CPU软核由SOPCBuilder生成用来接收外界控制信号并把信号处理后送给脉冲发生器并通过输出端口控制LED来指示系统工作情况系统顶层设计图如图6所示系统由CPU软核stepmotor_controllerCP发生器PatternGenerator正弦查表控制模块interfaceAD电流采样模块currenttopC相电流计算模块Current_c调节模块PI调节模块pimodulePWM发生模块PWM组成各模块功能如下CPU接受外界控制信号把信号处理后得到相应的细分等级和与速度对应的控制信号送给CP发生器把转向信号处理后送到查表控制模块并把转速和转向信号送到LED数码管和发光二极管来指示电机运作情况CP发生器接受转速控制信号发出与转速相对应的CP脉冲并给出相应转速下对应的最佳细分等级正弦查表控制模块根据CP脉冲和细分等级进行查表产生参考电流根据转向控制信号来决定查表方向来实现转向控制AD电流采样模块采集步进电机AB两相电流值C相电流计算模块根据基尔霍夫电流定律ABC三相电流之和为零由AD采集的AB两相的电流计算出C相电流PI调节模块将参考正弦电流与反馈电流差值进行PI调节把调节后的控制信号为避免IPM内上下半桥的IGBT同时导通导致IPM短路PI模块内设置的了死区时间VCCrotate_dircINPUTVCCresetINPUTVCCenableINPUTVCCAD_in_bINPUTVCCAD_in_aINPUTVCCsetspeed[20]INPUTVCCin_clkINPUTpl_aOUTPUTph_aOUTPUTpl_cOUTPUTph_cOUTPUTpl_bOUTPUTph_bOUTPUTAD_CE_aOUTPUTAD_CE_bOUTPUTAD_RD_bOUTPUTAD_RD_aOUTPUTled_indicator[70]OUTPUTspeed_display[70]OUTPUTled_sel[20]OUTPUTclkresetcurrent_a[130]current_b[130]donecurrent_c[130]current_cinst12rstPWM[130]DeadProtect[50]clkenablephplPWMpwm_arstP

  CWSubLevel[30]REFA[130]REFB[130]REFC[130]Interfaceinst13clkEnableSpeed[90]resetCPSubLevel[30]PatternGeneratorinst6图8CP发生器模块和查表控制模块查表控制模块interface内部例化了一个只读存储器存放一个周期的正弦数据表正弦表数据宽度与系统数据流数据宽度一致因此选择14位宽度正弦表深度决定了驱动器的最大细分等级关系式表示为NMAX2N当N12时达到最高细分等级4096细分外部输入CP和CCW信号后通过顺序的给出三相绕组对应的地址数据即可查得三相相电流的给定数据并同时更新三个给定数据寄存器送入下一个环节转向交换也在本模块实现输入的CCW信号将控制一个路选择器控制正弦表的查表方向来改变步进电机转向本模块通过输入的细分等级信号和CP脉冲信号共同决定三相绕组的地址数据的每次增量大小当细分等级最高时地址计数器每次增1或减1当处于非最高细分精度时地址计数器每次递增2的N次幂N由当前的细分等级确定34AD采样模块与C相电流计算模块步进电机AB两相电流通过霍尔元件进行采集AD采样模块通过采集采样电阻上的电压来将电机AB两相电流的模拟量转换为数字量C相电流模块由基尔霍夫电流定律iaibic0计算得到图9为两模块的端口clkresetcurrent_a[130]current_b[130]donecurrent_c[130]current_cinst13clkAD_STSpwm_in[110]resetdoneAD_RDAD_CECurrentOut[130]currenttopAD图9AD采样模块与C相电流计算模块35PI调节模块PI调节模块是对给定数据和反馈数据来进行离散化PI调节模块的数据宽度统一为14位即给定数据反馈数据控制数据都用14位宽度无符号整型数据表示本模块实现一个PI控制器功能如图10所示图10PI控制逻辑框图PI调节离散化公式如4式所示IKIK-1KPEK-EK-1KIEK4其中1500≤IK≤14384I08192EKIREF-IOUT模块在收到启动信号后先寄存给定数据反馈数据再对二者扩宽符号位做有符号减法并启动KI乘法器计算KI乘以误差e的结果对减法的计算结果取绝对值并与阀值作比较常数比较器比较的结果存入寄存器计算e的误差增量即EK-EK-1并用KP乘法器计算KP乘以误差增量的结果将KI乘法器计算的结果先送入累加器然后再将KP乘法器计算的结果送入累加器模块的累加器在每次累加的时候会进行溢出处理和数据超出边界处理无论哪种情况都会置为边界值最大最小值36PWM发生器模块PWM发生器模块将PI调节后输出的数据转化为PWM波形输出给IGBT模块通过IGBT的通断切换调整相电压进而改变相电流按照给定进行变化PWM波形的生成是通过将给定控制数据和载波数据比较通过比较二者大小情况确定PWM的高低电平实现PWM调制如图11所示图11PWM模块总体框图锯齿波作为PWM载波驱动时钟频率为200MHz14位寄存器宽度为减少计数器的进位链长度采用计数器拆分为3位计数器和11位计数器减少了组合逻辑延迟死区保护发生器模块根据给定的死区长度数据将输入的PWM信号输出为PH和PL信号分

  本文档为【基于FPGA 的步进电机正弦波细分驱动器设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。

  [版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件,我们尽快处理。

  本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。

  网站提供的党政主题相关联的内容(国旗、国徽、党徽..)目的是配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。