网站首页 > 电机控制> 文章内容

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

※发布时间:2018/4/7 3:27:12   ※发布作者:habao   ※出自何处: 

  控制系统的主控制器,因CPU负载过重导致系统实时性降低的问题日益显著。采用具有并行工作特性的FPGA器件作为主控制器能够提高系统实时性。因此,这里给出一种基于FPGA的

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

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

  在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系统结构框图和其电原理图。

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

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

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

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

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