基于FPGA的永磁同步电机控制器设计

出处:catdriver 发布于:2010-03-17 10:36:53

  摘要:提出一种基于FPGA的永磁同步电机控制器的设计方案,该设计可应用于具有高动态性能要求的永磁同步电机伺服控制系统。为提高伺服控制系统的实时性,简化电路及节省成本,该系统设计采用Ahera公司生产的CycloneIII EP3C25Q240C8型FPGA器件实现电机控制器。嵌入NiosⅡCPU软核配合片内硬件乘法器及可编程逻辑门阵列,实现软硬件协同工作。通过QuartusⅡ软件自带的SignalTaplI嵌入式逻辑分析仪进行板上调试验证,得到带有死区输出的PWM波形。该PWM波形可用于电机驱动。

  1 引言

  国内普遍采用TM320系列的DSP器件作为永磁同步电机控制系统的主控制器,因CPU负载过重导致系统实时性降低的问题日益显著。采用具有并行工作特性的FPGA器件作为主控制器能够提高系统实时性。因此,这里给出一种基于FPGA的永磁同步电机控制器设计方案。

  FPGA器件内嵌NiosⅡCPU软核的SoPC是Altera公司首创的SoC解决方案。将SoPC应用到电机控制中,是当前的研究热点。FPGA依靠硬件逻辑门工作,NiosⅡ处理器依靠执行软件程序工作。而在电机控制中实现软硬件协同工作则是设计的难点和创新之处。本设计需要特别注意软硬件协同工作的时序控制。软硬件之间信号的交换需按严格时序进行控制。

  2 片上系统规划

  片上系统功能总体规划为电机硬件驱动和NiosⅡ系统模块两部分,前者主要完成速度外环,电流内环的双闭环运算;而后者主要完成按键输入、LED数码管显示、电机驱动器参数设置和传输以及上位机通信。

  3 系统硬件设计

  3.1 NioslI系统模块

  3.1.1 Nios lI系统模块的设计

  在QuaauslI的SoPC builder中调出nioslI软核。调用4个用于输出的PIO核,挂接到Avalon总线上,作为信号输出I/O端口,这4个PIO核分别是start(启动电机信号),Data(16位,电机参数值),ec(8位,参数寄存器使能信号),choice(3位,多路选择信号)。调用6个作为输入的PIO核用以按键输入。设置中断掩码寄存器为中断有效,边沿捕获寄存器为上升沿检测。按键经FPGA引脚,用户设计硬件防抖动后,产生一个上升沿信号,启动NioslI处理器中断,执行相应中断功能。调用异步串口UART内核,实现与上位机通信,设置其波特率同定,UART通过中断请求实现数据通信功能。图1和图2分别给出Niosll系统结构框图和其电路原理图。



  3.1.2 NiosⅡ系统软件设计

  该系统设计的软件程序主要在Nios IED软件中编辑调试,实现按键中断程序,按键如下:reset(复位),start/stop(启动和暂停),choose(参数选择),increase(参数值的增量),de-crease(参数值的减量),transmit(参数的传输);并实现串口通信中断程序。图3为NiosⅡ处理器软件执行流程。


  这里只给出 stait按键中断软件程序代码,而choose,in-crease,decrease,transmit程序与之相同。

  int main(void)

  { alL_irq_register(start_IRQ,start_BASE,start_ISR);//按键

  start的中断注册

  IOWR_ALTERA_AVALON_PIO_IRQ_MASK(start_BASE,

  0x01);//开启中断使能;

  IOWR_ALTERA_AVALON_PIO_EDGE_CA(start_BASE,

  0x00)://清除捕获寄存器;

  //只给出start变量(用于启动电机)初始化,并写入输出

  寄存器:其他变量初始化相同;

  Unsigned start=0;

  . IOWR_ALTERA_AVALON_PIO_data(start_BASE,start);

  //变量写入输出PIO寄存器;

  While()

  }

  3.2 电机硬件驱动模块

  电机硬件驱动模块实现clark,park,i_park坐标变换,PI调节器,SVPWM产生器,转速检测等硬件模块等双闭环结构。由于上述各个模块设计比较简单常见,因此,这里主要介绍SoPC时序控制部分。Reset按键为全局复位。复位后系统软件从主程序入口开始执行;而此时硬件驱动模块中的两个状态计数器为“-1”。这两个计数器计数时间对应50μs和1 ms,分别对应于电流环和速度环的采样时间。一旦检测到来自NiosⅡ处理器的start高电平信号,该信号作为计数使能信号,这两个计数器从“0”开始计数,计数为“0”时产生一个高电平脉冲信号,电流环计数器脉冲用于锁存SVPWM中的Ta,Tb,Tc(三相占空比信号),并启动A/D转换。速度环的计数器脉冲锁存一个反馈速度信号,然后计数器循环计数。

  4 仿真结果

  该系统设计对电机驱动部分进行开环验证。给定uq(旋转坐标中的力矩分量)为2 048(16位Q12的定点),ud(旋转坐标中的励磁分量)为0。正余弦两个查找表各有720个地址,相邻地址相差0.5°。每相隔50μs查找地址增量为l,即电机每隔50μs转过0.5°,约为1 666 r/m。在QuartusⅡ中进行时序仿真可得到如图4和图5所示的波形。

  由图4可知,A相上桥臂在每个PWM周期的占空比不同,具有从增到减,从减到增的规律;从图5可知,器件实际工作时,上下桥臂死区时间为2μs,而且死区时间可采用NiosⅡ处理器设置。由于有死区时间的控制,该PWM可接入电机进行开环调试。

  5 结论

  本设计的SoPC器件已产生PWM波,用于开环验证,为后续闭环验证提供条件。FPGA在高速数字信号处理领域逐显优越,且SoC已成为集成电路发展的主流,而SoPC是SoC一种灵活的解决方案。其具有软硬件协同工作,合理分配软硬件功能等特点,从而能够快速灵活实现系统设计。SoPC控制电机可提高电机动态响应,缩小系统面积,节省成本。(电子设计工程 陈平,曾岳南,杨志平)


  

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!