基于FPGA的永磁同步电机矢量控制时序与资源协同优化策略

刘鲲鹏 ,  汪华章

西南民族大学学报(自然科学版) ›› 2026, Vol. 52 ›› Issue (3) : 304 -315.

PDF (1727KB)
西南民族大学学报(自然科学版) ›› 2026, Vol. 52 ›› Issue (3) : 304 -315. DOI: 10.26978/j.cnki.xnmdzk.2026.03.009
信息科学

基于FPGA的永磁同步电机矢量控制时序与资源协同优化策略

作者信息 +

Timing and resource co-optimization strategy for FPGA-based PMSM vector control

Author information +
文章历史 +
PDF (1767K)

摘要

针对永磁同步电机矢量控制在现场可编程门阵列(Field Programmable Gate Array,FPGA)实现中存在的时序收敛困难与资源占用冗余问题,提出了一套对时序与资源协同优化的设计策略.首先,针对底层算力资源,通过移位加法逻辑替代常数乘法释放数字信号处理器(Digital Signal Processor,DSP)资源;其次,在算法实现上,提出多环路间分时复用结构的PI调节器设计与基于有限状态机的折叠式坐标旋转数字计算机算法,以大幅降低资源占用;最后,于系统架构层面,构建运算与驱动解耦的并行流水线以优化时序.实验结果显示,相较于仅采用全流水线展开架构的策略,优化后的系统在实现50 kHz控制频率的同时,DSP资源占用减少66.7%,查找表资源占用减少41.9%,动态功耗降低25.5%,系统最差负时序裕量优化幅度达237.2%.综上,提出的策略显著提升了矢量控制系统于FPGA实现时的时序收敛能力,并有效降低了资源占用.

Abstract

To address the issues of difficult timing convergence and resource redundancy in the Field Programmable Gate Array (FPGA) implementation of Permanent Magnet Synchronous Motor( PMSM) vector control, a design strategy for timing and resource co-optimization was proposed. First, regarding underlying hardware resources, constant multiplications were replaced by shift-add logic to release Digital Signal Processor (DSP) resources. Second, in terms of algorithm implementation, a multi-loop time-division multiplexing PI regulator design and a folded Coordinate Rotation Digital Computer algorithm based on a Finite State Machine were proposed to significantly reduce resource occupation. Finally, at the system architecture level, a parallel pipeline architecture with decoupled calculation and driving was constructed to optimize timing. The experimental results showed that, compared with the strategy adopting a fully pipelined unfolded architecture, the optimized system reduced DSP utilization by 66.7%, decreased Lookup Table usage by 41.9%, lowered dynamic power consumption by 25.5%, but improved the Worst Negative Slack by 237.2% while achieving a control frequency of 50 kHz. In summary, the proposed strategy significantly improved the timing convergence capability and effectively reduced resource occupation of the vector control system implemented on FPGA.

Graphical abstract

关键词

永磁同步电机 / 矢量控制 / 时序收敛 / FPGA / ZYNQ

Key words

permanent magnet synchronous motor / vector control / timing closure / FPGA / ZYNQ

引用本文

引用格式 ▾
刘鲲鹏,汪华章. 基于FPGA的永磁同步电机矢量控制时序与资源协同优化策略[J]. 西南民族大学学报(自然科学版), 2026, 52(3): 304-315 DOI:10.26978/j.cnki.xnmdzk.2026.03.009

登录浏览全文

4963

注册一个新账户 忘记密码

永磁同步电机(Permanent Magnet Synchronous Motor,PMSM)凭借着优越的能效表现与高功率密度的优势,已广泛应用于航空航天、工业伺服、新能源汽车等领域1-3.近几年来,PMSM的设计与工况适配需求日益多元,从而推动着控制策略随之迭代升级.其中,矢量控制通过坐标变换解耦电流分量,实现对转矩和磁链的独立控制,是高性能的PMSM驱动系统的核心算法支撑4-5.矢量控制等一系列PMSM控制算法的工程实现,依赖于硬件平台对其数字信号的处理.通过提升硬件平台的运算速度,可以直接提升控制环路的执行频率以增加系统带宽.亦可使硬件平台在面对更加复杂的改进算法时,更易达成时序收敛,从而保障系统的实时性,并使控制策略展现出更好的效果.
基于微控制器(Micro Controller Unit,MCU)、DSP芯片的电机控制算法实现受限于计算性能和代码串行执行的固有局限性,不及兼具高实时性、并行处理能力和模块化特点的FPGA6.这使得于FPGA上实现的矢量控制算法,有着比前两者更快的控制频率,使系统拥有更高的控制精度与响应速度.与此同时,FPGA还拥有着可根据需求配置内部电路结构的设计灵活性、运行时的较低功耗、可快速迭代验证带来的较短专用电路开发周期等优势,都促使FPGA在高性能PMSM控制系统的应用量持续增加.
在将矢量控制算法移植至FPGA的研究方面,文献[7]对矢量控制中的空间矢量脉宽调制(Space Vector Pulse Width Modulation,SVPWM)部分的正余弦计算进行了基于查表法和一次线性补偿的设计,并设计了对有符号数的3乘法计算模块.验证了针对性的改进设计在FPGA实现上对比在STM32F429实现上运算速度的优势,该方案可减少资源占用量,但并未进行进一步的时序优化设计.文献[8]设计并于FPGA上实现了完整的矢量控制,进行了资源使用情况以及性能上的对比.实验证明FPGA上的实现在12.5 kHz的控制频率下还有着优于STM32的8 kHz控制频率下的控制精度.同时进行了资源占用量的对比验证,但并未详细说明优化手段.研究人员没有在时序优化层面与同型号FPGA进行对比实验,系统的控制频率也存在进一步提升的空间.
综上,尽管FPGA具备并行运算的加速优势,但在矢量控制算法的移植过程中,仍存在资源利用效率与时序收敛的优化空间,应兼顾二者以提升系统整体性能.于是,本文在完成矢量控制于FPGA实现的同时,提出了一种对时序收敛与资源占用展开协同优化的设计.针对FPGA内部的资源分布特点,结合移位乘法、分时复用等优化手段,降低FPGA内查找表(Look-Up Table,LUT)、触发器(Flip-Flop,FF)、DSP资源的占用率.同时,使用多级流水线、状态机、运算与驱动解耦并行的设计,优化运算速度.以此将研究重点从矢量控制在FPGA的移植复现与单点优化层面,扩展到兼顾时序与资源占用优化的,多约束条件共同限制的创新设计层面.

1 矢量控制原理与FPGA实现

PMSM的矢量控制是一种串级闭环控制系统,其由内向外依次包含电流环、速度环、位置环这三个闭环,分别实现对电机电磁转矩、转速及转子位置(转角)的闭环控制.针对PMSM这一多变量的强耦合、非线性系统,矢量控制的核心便在于通过坐标变换实现控制量的解耦与线性化9-10.矢量控制首先使用Clarke变换,将非线性变化的三相电流IaIbIc 映射到静止直角坐标系中,转化为α-β轴上的两个分量,变换所用的公式如式(1)

IαIβ=231-12-12032-32IaIbIc .

但此时IαIβ 这对交流分量仍以正弦规律波动,需要进行Park变换,通过式(2)α-β轴下的静止坐标系,转化为跟随PMSM转子电角度θe 旋转的同步旋转坐标系,以解耦得到dq轴上线性变化的直流分量IdIq

IdIq=cosθesinθe-sinθecosθeIαIβ.

在完成Park变换基础上,本文使用Id =0控制,此时所有的定子电流都用来产生转矩,使电机的电磁转矩与Iq 成严格的线性关系,实现类似直流电机的转矩与磁场的解耦控制.随后,将电流环的目标值Id、Iq* 与电流环反馈值的偏差输入到PI调节器中,计算得到电压控制量VdVq .最终,经过式(3)的反Park变换还原回静止坐标系.

VαVβ=cosθe-sinθesinθecosθeVdVq.

在完成反Park变换后,执行SVPWM环节,得到六路三相互补的PWM信号.最终使用PWM信号驱动三相逆变电路,完成电流环的闭环控制.在最外层的位置环,会将转子实际位置与目标位置的偏差输入到PI调节器,得到目标转速作为速度环的输入.将速度环的输入与转子实际速度的偏差再次输入PI调节器,得到q轴电流目标值Iq*,作为最内层电流环的输入.综上,PMSM矢量控制的整体流程如图1所示:

图1可见,多环路下多个PI调节器的分别例化,会导致FPGA内资源的冗余占用.并且PI调节器在控制周期内存在大量的闲置时间,进一步降低了资源的利用率.另外,坐标变换中涉及的三角函数解算,也带来了大量资源开销与解算耗时.在矢量控制中,每步运算的依次执行,会使控制系统形成冗长的数字信号处理链路.这一链路再叠加占用大量时钟周期的PWM信号输出,极易形成过长的组合逻辑关键路径,而严重制约系统的时序收敛与主频提升空间11-12.因此,针对关键模块进行时序与资源的协同优化设计便显得尤为必要.

2 关键模块时序与资源协同优化策略

本设计使用Verilog语言,自顶向下地完成了各功能的模块化设计与IP核封装.设计顶层主状态机管理全局时序,使用“使能-完成”的握手信号进行驱动.主状态机首先发出特定使能信号,启动对应子模块的运算.之后,主状态机实时监测对应子模块的完成信号,以驱动系统向下一状态跳转,使数据在各子模块之间有序流转.

本章依照由点及面的优化策略,展开设计与论述.从改进底层运算逻辑以减少单一资源的占用开始;到算法实现层面,设计分时复用、折叠式迭代等策略降低算法整体的资源占用;最终,在总体架构上,通过状态机与并行流水线等设计,完成整个系统的时序与资源协同优化.

2.1 基于移位加法逻辑的常数乘法器

为提高系统整体的运算速度,需合理分配FPGA内资源的占用,降低非必要的DSP资源消耗,从而将宝贵的DSP资源保留于处理复杂数学运算.因此,设计基于移位加法逻辑的常数乘法器代替DSP,完成编码器回传的量化值到转子角度与速度的计算.并在小节最后,分析移位加法逻辑的适用场景.

在PMSM的矢量控制系统中,获取转子位置信息是完成闭环控制的必要条件.本设计中使用了绝对值编码器,其优势在于上电瞬间即可读取转子的绝对角度,无需执行转子初始位置校准.然而,不同于增量式编码器和霍尔位置传感器所传回的三相脉冲或电平信号,绝对值编码器的数据回传需在通信端口接收对应的数据帧.本设计通过串行外设接口(Serial Peripheral Interface,SPI)协议,读取包含了14位二进制原始数据的数据帧.由14位的原始数据可知,对应的角度量化范围为0~16 383.为适配FPGA内部算术逻辑,并避免计算过程中的精度丢失,系统采用Q16定点数格式对解算出的角度值进行运算,并将该格式设置为有效数值的统一位宽标准.通过统一的数据格式和位宽,保证运算的准确.在增加位宽以提高数据的量化精度时,储存数据所占用寄存器资源也会相应增加,Q16格式是本系统平衡资源占用与量化精度的折中选择.根据编码器分辨率与Q16格式下的位宽映射关系,可进行如式(4)换算:

θin=Draw360214216=1 440Draw.

式中θin为归一化后的Q16格式转子机械角度,Draw为编码器输出的14位原始量化数据,乘以360将比例值转化为实际的机械角度.214为编码器分辨率,216为Q16格式的定点化缩放系数.可见,将原始采样数据归一化为Q16格式转子机械角度的过程,在数学上等价于乘以常数系数1 440.于是,设计基于移位加法逻辑的常数乘法器,将1 440等效分解为210+28+27+25.具体而言,在硬件实现上将一路原始数据Draw并行复制四份,通过硬连线分别左移10位、8位、7位与5位,再送入流水线加法器级联求和,即可等价于1 440·Draw的运算.该方法仅占用少量的LUT与进位链资源,即可在两个时钟周期内完成θin的计算.

同理,在转子速度的计算中,使用提前计算好的固定的速度换算系数,乘以采样周期内的累计角度变化量,即可得出速度值.这一涉及速度换算系数的乘法,也可通过移位加法逻辑实现.另外,需要对速度值进行滑动平均滤波,以降低高频噪声的干扰.通过设计8级移位寄存器组,构建先进先出队列(First Input First Output,FIFO),在每个采样周期边沿更新一个新数据,并移出最旧数据.从而通过计算窗口内数据的算术平均值,得到速度值的滤波输出Yk]:

Y[k]=18i=07X[k-i].

其中的系数18,通过右移3位等效,以释放DSP资源.而8个数据的累加使用两级流水线计算:第一级将8个数据按每组4个分2组并行求和;第二级将两组中间量相加,右移3位后输出Y[k].该种滤波器的实现,充分利用了FPGA的并行处理优势,将长路径运算拆解为流水线操作,有利于时序快速收敛,降低了计算链路的延迟.

由于顶层状态机设计为同时触发模数转换器(Analog to Digital Converter,ADC)与磁编码器采样,且本系统中磁编码器的转换速度快于主通道转换的ADC.于是,在等待ADC模数转换结果的间隙,即可并行完成磁编码器部分移位加法逻辑的计算,以此抵消了多步移位加法带来的额外时延.但是,Clarke变换涉及与无理数系数的乘法,为使计算精度达标,需要多步的移位加法逻辑逼近,这会耗费多个时钟节拍,不利于时序收敛.而Park变换存在随电角度变动而变三角函数值乘法,使用固定的移位加法无法计算时变的数值.此外,PI调节器的增益系数则需根据工况灵活配置,也不适合使用加法逻辑运算.综上,基于计算精度、动态性与电流环运算速度的考量,Clarke变换、Park变换、PI调节器的乘法运算使用FPGA内部的DSP资源执行.

2.2 多环路PI调节器分时复用设计

为满足多环路串级控制的高实时性要求,同时降低FPGA的资源开销,以实现时序与资源的协同优化,设计了一种基于分时复用(Time-Division Multiplexing,TDM)架构的PI调节器IP核.由于位置式PI输出的控制量与执行机构的实际状态(如转矩、转速、转角)具有一一对应的关系,从而能实时反映受控对象的当前状态,故将其选用为该部分的核心算法.在分时复用的架构下,仅需例化单一的PI调节器,即可按照数据流向依次完成位置环、速度环及电流环的控制量运算.由于三闭环中每个PI调节器设置的增益系数KpKi及输出限幅值各不相同,且位置式PI还需维护其历史积分状态.于是,在FPGA内部,设置单独存储每个PI调节器KpKi、输出限幅以及历史积分数据的寄存器组.在运行过程中,当运算核心切换到下一控制环路时,将通过多路选择器在一个时钟周期内,并行加载下一环路对应的增益系数、输出限幅与历史积分状态,同时记录当前环路下的积分状态至对应寄存器,以在不同环路间使用同一套PI调节器,且使各环路的运算状态相互独立、切换前后连贯.

电流环作为控制最内层,需在每个PWM载波周期内执行,以跟踪快速变化的定子电流.而位置环与速度环的动态响应带宽远低于电流环,它们的执行周期通常被设置为电流环执行周期的整数倍13.为了匹配三环之间执行周期的差异,分时复用的调度逻辑被设计为内环触发外环的级联模式,即执行N次电流环控制后,触发位置环与速度环的控制,触发时序如图2所示.

设计有限状态机(Finite State Machine,FSM)控制多环路PI调节器分时复用的时序,在每一个控制周期,FSM首先读取电流环的PI执行次数计数器,判断电流环是否经过了N个控制周期,达到N个则为外环执行的时刻,清零计数器重新开始计数,并且FSM会按照位置环、速度环、电流环的顺序依次触发跳转,从而依次加载对应参数,启动每个环路的PI运算.若未到外环执行的时刻,则外环的PI调节器保持上次运算的输出值,直接跳转至最内层的电流环PI运算.多环路PI调节器分时复用的FSM调度流程如图3所示,顶部字代表状态名.

具体到PI调节器的实现上,使用计数器控制节拍的流水线级联,将运算过程拆解为四级,完成基于以下公式的离散化位置式PI计算:

u(k)=Kpe(k)+Kii=0ke(i).

流水线第一级(STAGE 1)计算当前误差ek),同时读取寄存器中的历史积分值.第二级(STAGE 2)并行执行两路计算,即比例环节的ek)与Kp相乘、积分项i=0kei的计算和限幅.第三级(STAGE 3)计算积分环节,即积分项与Ki相乘.第四级(STAGE 4)将比例环节与积分环节求和,得到输出值uk),并进行输出限幅处理.最终输出控制量并同步发出运算完成应答信号.四级流水线的流程如图4所示.

在PI调节器内部,利用四级流水线拆分长组合路径,优化关键路径时序;在其应用层面,通过单一例化结合分时复用,完成多环路协同处理.这样的设计,兼顾了提升时序性能与减少资源开销的协同优化.

2.3 基于FSM的折叠式CORDIC算法设计

式(2)可知,在Park变换与反Park变换中,需要对电角度θe 的三角函数值进行实时计算,而这步计算在工程中的主流实现方案,分为LUT法与坐标旋转数字计算机(Coordinate Rotation Digital Computer,CORDIC)算法.其中,LUT法具备响应速度快的优势,但该方法在提升三角函数计算精度的同时,会导致其对存储资源的占用呈指数级增长14.相比之下,CORDIC算法仅需增加少量迭代次数,即可显著提升三角函数的计算精度,且不会过多占用储存资源.另外,CORDIC算法对逻辑资源占用较多的问题,也可通过设计对应的优化策略加以改善.两种方法的对比如表1所示:

基于更低资源占用与更快计算速度之间的权衡,故在本系统中,选用CORDIC算法计算三角函数.但在CORDIC算法的实现过程中,需要拆分其中的长组合逻辑路径,以确保时序收敛.若以全流水线展开架构实现路径的拆分,CORDIC算法中的多次迭代运算便会导致大量资源的冗余占用.为此,设计了一种基于FSM的折叠式CORDIC算法,通过核心迭代部分的分时复用设计,降低资源占用.该部分将输入的电角度θe,通过旋转迭代得出sin θe 与cos θe,供Park与反Park变换使用.

CORDIC算法通过操作一系列逐步缩小的、固定的角度值进行旋转,以逼近目标旋转角15.在CORDIC算法中,若将二维平面内的矢量(xi,y i )通过旋转角度φ,得到旋转后的矢量(xi+1,yi+1),则旋转变换关系可表示为:

xi+1yi+1=cosφ-sinφsinφcosφxiyi .

提取公因数cos φ式(7)可重写为:

xi+1=cosφ(xi-yitanφ)yi+1=cosφ(yi+xitanφ) .

为减少FPGA实现式(8)时执行乘法运算的次数,以提升运算速度并节省DSP资源,迭代过程中仅对式(8)括号中的部分进行计算.最后再将多次迭代累乘出的余弦值,视为模长缩放因子进行一次性的修正.若将迭代开始时的初始矢量,设置为基准位置的单位矢量(1,0),则旋转φ后的矢量终点坐标将直接对应目标角度的(Acos θAsin θ).其中,A为仅对式(8)括号中的部分进行旋转迭代,而带来的模长放大量.若设置每次迭代时旋转的角度值φi 符合tan φi = 2-i 的规律,那么,tan φ项便可转化为与2-i 的乘法,从而在FPGA中通过右移运算简单实现,进一步节省大量DSP资源.此时,对于第i次迭代,其旋转迭代方程可表示为:

xi+1=xi-diyi2-iyi+1=yi+dixi2-izi+1=zi-diarctan(2-i) .

其中,zi 为剩余未旋转的角度.旋转方向di zi 的符号决定:若zi ≥ 0,则di =1,顺时针旋转以减小角度偏差,反之则di =-1. arctan(2 -i )项在各个迭代次数下的取值,则作为固定参数固化于FPGA中,计算时可直接调用.CORDIC算法将从初始的单位矢量(1,0)开始,依据zi 的符号开始旋转并迭代,随着迭代次数N的增加,剩余角度zi 趋近于0.此时,由于在式(8)中提出了cos φ项,使其不参与迭代计算,使得每次旋转时矢量模长都会放大1cosφi倍.根据三角恒等式:

1cosφi=1+tan2φi .

将前文规定的tan φi = 2-i 带入,从而得到经过N次迭代后的总矢量模长放大倍数AN

AN=i=0N-11+2-2i .

使用缩放因子KN 还原完成迭代的xi+1yi+1,即可根据还原后的结果,得到输入角度的余弦与正弦值.当迭代次数N足够大时:

KN=1AN0.607 25 .

本设计选择迭代次数N=16,从而在不占用过多时钟周期用于旋转迭代的同时,使迭代得到的三角函数值满足系统运算所需的精度.基于上述流程,设计了一个四状态FSM以控制CORDIC算法的时序,将FSM分为待机(IDLE)、预处理(PRE)、迭代计算(ROT)和输出应答(ACK)阶段,跳转流程如图5所示:

由于CORDIC算法的收敛区间在[-90°,90°],而PMSM转子的电角度θe覆盖[0°,360°]区间.所以,需在PRE状态中进行象限判断与预旋转处理:若输入的θe超出第一象限(θe >90°),则逐步循环减去90°,直至旋转到第一象限.与此同时,通过象限计数器记录减法的执行次数,得到原始θe所在象限的值.这一过程仅涉及简单的补码反转与数据交换,不占用额外的算术资源,但可有效保证CORDIC迭代的收敛.

跳转至ROT状态后,系统通过时分复用架构的折叠式迭代设计,共享同一组加法器与移位器开始旋转迭代,以减少资源占用.系统设置迭代次数计数器作节拍控制,并在每个时钟周期根据计数器当前的数值i,同步取移位位数为i,之后根据zi 的符号位选择旋转方向.系统将每一轮迭代得到的矢量坐标(xi,y i )更新到中间寄存器,作为下一次旋转迭代时的初始坐标.经过16个时钟周期的迭代(N=16)后,输出运算结果.之后根据PRE阶段象限计数器的值,对运算结果进行符号恢复,以执行象限还原.在ROT状态的最后,进行模长补偿.由式(12)可知,16次迭代后的KN 已接近0.607 25,对于这一涉及常数的乘法,采取与2.1节相同的策略,即使用移位加法逻辑进行运算,以节省DSP资源.最终,FSM跳转至ACK状态,输出运算结果.

2.4 运算与驱动解耦的并行流水线设计

STM32等传统微处理器在工作时,存在着指令串行阻塞的问题,导致系统控制的延迟较大且带宽受限.针对此问题,本设计利用FPGA的并行运算特性,构建了一种运算与驱动解耦的并行流水线,将矢量控制的运算与PWM信号的生成分离,设计顶层主状态机负责矢量控制内部各个模块间的调度,底层的PWM信号发生逻辑则独立运行.以此提升控制频率,从而提高系统带宽,消除计算延迟对波形连续性的影响,使PWM信号的占空比在每个载波周期无缝更新.

综上,设计并例化了四个独立的计数器模块,其中三个计数器模块作为载波计数器,各负责一相PWM信号的生成.这三个计数器设计为中央对齐模式,在0值和重装载值之间往复计数,以生成三角载波,并通过实时比较计数值与占空比值的大小,控制PWM信号输出高低电平.第四个计数器模块设置为计数到重装载值时,输出矢量控制算法的使能信号,以驱动顶层状态机从空闲状态跳转至采样状态.通过四个定时器的同时计数与配合,生成了四组相位与幅值完全一致的三角载波.这使系统会在载波周期的峰值时刻(计数器计数至重装载值时),启动ADC与磁编码器的同时采样,对该组采样数据进行矢量控制的运算,从而得出下一个载波周期应使用的占空比数据.通过以上设计,使三相PWM信号生成的周期与矢量控制算法的运算周期相位锁定,但两者的执行却互不干扰,二者的时序关系如图6所示:

将三角载波的中心相位(峰值)作为采样时机,即可避开在载波周期交替前后,三相逆变电路功率管执行开关动作而引起的电磁干扰,从而在低噪声环境中完成相电流采样.并且,在三相逆变电路驱动PMSM这一RL负载特性的系统中,在载波中心相位时刻采样所得到的相电流瞬时值,等效于该载波周期内相电流的平均值,能够代表该周期内的相电流信息.

另外,在PWM信号生成的过程中,若占空比数据临时更新,将导致逻辑误判与PWM电平的错误翻转.于是,设计在定时器模块加入影子寄存器机制,以规范占空比数据的更新时刻.在SVPWM模块完成计算并输出三相占空比数据时,这些数据仅被写入预加载寄存器,而不会直接用于当前载波周期的PWM信号生成.仅在载波计数器的计数值递减到1(载波周期的波谷)时,也就是当前载波周期的PWM信号即将生成完毕时,才将预加载寄存器内的占空比数据更新至影子寄存器,并进入下一轮PWM信号输出.以此,适配占空比数据的间隔更新,与波形的连续输出间的差异.占空比寄存器的更新时刻在图6中标出.

对于三相互补PWM信号驱动的三相逆变电路,依赖外部的功率管驱动芯片插入的硬件死区,便可以防止功率管直通而短路.但PCB的走线延迟或FPGA的输出偏移等因素,仍可能导致一对互补PWM信号在驱动芯片的输入端出现瞬时逻辑重叠.从而引发信号传输路径上的竞争冒险,产生高频毛刺或逻辑误判16.应配置软件死区,规避这种风险.于是,系统将一对互补PWM信号的输出逻辑设计为:正向PWM正常生成,而在互补的反向PWM翻转点,插入固定时钟周期的死区时间.

3 实验结果与分析

在完成关键模块的优化设计,以及对应Verilog代码的编写后,还需加入矢量控制的其余必需功能,以及FPGA与编码器及ADC的通信功能,从而构成完整且可用的控制系统核心.整个系统的设计,在Vivado开发环境中完成逻辑综合,基于Zynq-7000系列的XC7Z020-CLG400型FPGA开展实际验证.

在实验过程中,设计的对照组仅使用全流水线展开架构构建,并未引入本文提出的优化策略,以对比验证改进设计的成效.为了对比实验的严谨性,两组设计均在完全一致的约束条件下完成综合与布局布线,并将系统全局时钟频率配置为100 MHz.对于实验流程的设计,则以资源占用情况、时序与功耗分析、验证矢量控制功能为顺序开展,从单一资源占用到系统整体表现,逐步验证本文资源与时序协同优化策略的改进及实现效果.

3.1 资源占用验证

在Vivado中依次完成综合与布局布线步骤之后,调用软件内置的资源占用报告工具,读取矢量控制算法部分的实际资源占用信息,工具的输出截图如图7,图(a)为未经优化的设计、图(b)为经过优化的设计:

其中,图7中顶部括号内的数字为XC7Z020-CLG400型FPGA对应资源的总量.Slice Registers项代表总体寄存器资源,根据Vivado的设计,在综合后将映射为FF.由图7的对比可见,在合理的寄存器位宽设置、分时复用PI设计、折叠式CORDIC算法三种优化策略的共同作用下,LUT、FF的资源的占用量均有所降低.图8为优化前后,三种资源的使用量占FPGA各项资源总量的百分比:

图8可见,DSP资源的占用量百分比显著降低,这是移位运算逻辑代替DSP进行常数系数的乘法运算,而达成的优化效果.综上,本文提出的资源与时序协同优化策略,在降低资源占用的层面,取得了明显的成效.

3.2 时序与功耗验证

在获取资源占用报告后,随即通过Vivado的时序汇总报告与功耗报告工具,获取系统在完成综合与布局布线后的最差负时序裕量(Worst Negative Slack,WNS)与功耗表现,报告截图如图9所示:

WNS反映了布局布线后,系统在时钟周期内,信号抵达目标寄存器时最小的时间裕量.WNS通常出现在最长路径中,数值为正代表信号传输满足建立时间的要求;数值为负则说明存在时序违例.WNS为负,会导致目标寄存器无法按时地、正确地获取数据,致使系统功能异常.相反地,正裕量越大,代表系统时序收敛的余量越充足,运行时的稳定性就越强.

改进后的设计得益于流水线深度的平衡,以及基于FSM的分时复用调度和折叠式迭代,使逻辑布局更加紧凑,布线延迟显著降低.因此,WNS从0.575 ns提升至1.939 ns,系统的时序收敛能力显著增强.此外,资源占用量的降低带动了端点总数(图9中Total Number of Endpoints项)的减少,这意味着系统内需要时序锁存的寄存器端口数量减少.于是在FPGA的布局布线阶段,竞争时钟与布线资源的节点数大幅下降,相应降低了时序收敛的难度.资源占用量的减少,也降低了FPGA内部时钟网络等部分的负载,从而降低能量消耗,表现为系统的动态功耗(图9中Dynamic项)有了相应降低.上述各项指标的具体变化情况汇总于表2.

通过表2在资源占用量、WNS以及动态功耗三类指标上的综合对比,可见,本文提出的资源与时序协同优化策略达到了预期的效果.本设计在降低资源占用量的同时,兼顾了时序的优化,并降低了FPGA的动态功耗.

3.3 矢量控制功能实现验证

在验证改进策略达到了预期的效果后,还需编写Testbench文件,以在Vivado中进行波形验证,检验CORDIC算法、坐标变换、SVPWM占空比计算、运算与驱动解耦的并行流水线这四部分的输出逻辑是否准确,是否实现了相应的功能.最后,进行板级的实际运行与验证,检验作为最终输出的PWM信号是否正常生成.

首先,进行CORDIC算法的功能验证,由图10可见,随着输入的需解算角度以0°至360°的范围变化,CORDIC算法准确输出了对应的正、余弦值,形成了完整的正、余弦曲线.以图10中垂直的时间轴为参考,可见正余弦值随角度变化时的相位正确.

在坐标变换的验证中,将Testbench设计为:根据输入角度的变化,生成三个相位差120°的三相电流,以模拟Clarke变换的输入.由图11可见,以垂直的时间轴为参考,Clarke变换得到的α-β轴上的两个分量IαIβ 相位差90°,证明Clark变换正确实现.再经Park变换,可见成功得到dq轴上线性的直流分量IdIq .

接着进行SVPWM部分扇区切换与输出占空比数值的验证.由图12可见,随着反Park变换输出的VαVβ 的变化,SVPWM输出的三相占空数值比也随之变化,扇区(顶部sector项)变换连续,占空比数值的变化呈现马鞍波的形状,这是SVPWM在正弦基波中叠加了零序分量的直观特征.由图12的波形可见,SVPWM部分设计正确,功能可用.

之后,进行三相互补PWM信号输出的验证,由图13可见,PWM信号的占空比可以跟随SVPWM给出的占空比数值而变化.在占空比数值较低时,正向的PWM占空比很小,呈尖刺状,而反向互补PWM占空比较大,证明负责PWM信号生成的计数器模块功能正常.

而在图14中,对图13进行局部放大,可以看到死区时间的设置.时间轴的标尺显示,这对互补PWM的高电平输出之间有着25 ns的间隔,这足以消除一对PWM信号的竞争冒险.

在运算与驱动解耦的并行流水线验证中,系统将SVPWM三角载波的峰值(计数器重装填值)设置为1 000,且触发寄存器的逻辑电路在运行过程中,存在一个时钟周期的固有延迟.于是,由图15可见,在计数器从波峰翻转且计数值减1过后(CNT为999时),才触发了使能信号.结果证明,PWM信号与矢量控制算法的使能信号相位一致,触发时序正确.

由于计数器的重装填值设置为1 000,且随时钟周期而增减计数,则载波计数器经一次完整的翻转计数,以生成一个三角载波后,耗费的时钟周期数为2 000.结合配置为100 MHz的系统全局时钟频率,可知三相PWM信号的频率为50 kHz.系统设置矢量控制算法的使能信号触发与载波中心对齐,则系统控制频率也为50 kHz.

最后,开展FPGA实际执行矢量控制时的板级验证.将FPGA输出的三相互补PWM信号,选取一对接入示波器.根据示波器右下角的参数显示(图16)可知,PWM信号的频率为50 kHz,符合设计.且有一定的死区时间(图17).这证明,经本文策略优化后的矢量控制,可在100 MHz的系统全局时钟下、以50 kHz的控制频率稳定运行,时序收敛.

4 结论

本文针对PMSM矢量控制在FPGA实现中的资源占用与时序收敛问题,提出了时序与资源协同优化的设计策略.在实现过程中,设计了实现方法的改进与架构的优化,并开展了多层次的实验验证.分析了布局布线后的时序与功耗报告,以量化对比优化前后的效果.对CORDIC、SVPWM等关键模块,进行了寄存器传输级(Register-Transfer Level,RTL)的逻辑波形验证.并最终使用示波器完成了对输出信号的板级测试.结果表明,该设计策略不仅优化了矢量控制算法在FPGA实现时的时序收敛性能,还一并减少了对FPGA资源的占用量,成功达成二者协同优化的设计目标.

这种兼顾了低资源占用量与高时序收敛裕量的均衡设计,具有较强的工程落地价值与使用前景.其紧凑的资源占用为单FPGA芯片实现多电机并行驱动,提供了充足的资源裕量.在后续的研究中,可依据此优化设计,改进PMSM多轴协同控制的实现方案,在单片FPGA上实现多路复用的多关节运动控制功能,从而在工业机器人、多旋翼无人机等领域,设计出精度与集成度更高、成本与功耗更低的控制系统.

参考文献

[1]

FANG S HLIU HWANG H Tet al.High power density PMSM with lightweight structure and high-performance soft magnetic alloy core[J].IEEE Transactions on Applied Superconductivity201929(2): 1-5.

[2]

关涛,刘大猛,何永勇.永磁轮毂电机技术发展综述[J].电工技术学报202439(2):378-396.

[3]

杨天.永磁同步电机干扰抑制与补偿控制技术研究[D].长春:中国科学院大学(中国科学院长春光学精密机械与物理研究所), 2024.

[4]

付兴贺,顾胜东,熊嘉鑫.永磁同步电机交直轴电流解耦控制方法综述[J].中国电机工程学报202444(1):314-331.

[5]

汪华章,何涛,刘鲲鹏,.永磁同步电机控制策略综述[J].西南民族大学学报(自然科学版)202551(2):177-192.

[6]

GOU M RWANG B JZHANG X L.Development of multi-motor servo control system based on heterogeneous embedded platforms[J].Electronics202413(15): 2957.

[7]

邵乐乐,刘恒,邵建龙.基于FPGA的永磁同步电机SVPWM的数字电路设计[J].中国电子科学研究院学报202419(4):315-322.

[8]

包朝伟,范维,熊庚帆,.基于FPGA的PMSM矢量控制技术设计实现[J].集成电路与嵌入式系统202525(6):58-67.

[9]

WANG Z XWANG R KLIU W Get al.Improved sliding-mode speed control of permanent magnet synchronous motor based on working condition identification[C]//2022 IEEE Transportation Electrification Conference and Expo,Asia-Pacific(ITEC Asia-Pacific).Haining:IEEE,2022:1-5.

[10]

王子辰,胡春鹤.基于改进黑翅鸢算法的永磁同步电机自抗扰控制[J].电机与控制应用202552(3):262-271.

[11]

DARVISHI M.Practical timing closure in FPGA and ASIC designs:Methods,challenges,and case studies[EB/OL].2025arXiv: 2510.26985.

[12]

SHI J QWANG BDU P Cet al.FPGA implementation of high-bandwidth vector control for PMSM based on parallel processing technology[C]//2023 26th International Conference on Electrical Machines and Systems(ICEMS). Zhuhai:IEEE,2023:1587-1591.

[13]

丁签华,纪科辉,吴昊,.高响应交流永磁伺服系统快速电流环带宽扩展方法[J].浙江理工大学学报202451(1):91-99.

[14]

黄治.基于CORDIC算法的SPWM控制器研究与设计[D].西安:西安科技大学,2019.

[15]

姚亚峰,杨金岷,周群群,.高精度低消耗CORDIC算法设计[J].湖南大学学报(自然科学版)202350(12):69-75.

[16]

周斌.数字电路与逻辑设计[M].2版.武汉:华中科技大学出版社,2023:93-95.

基金资助

西南民族大学研究生创新型科研项目(YCYB2024086)

AI Summary AI Mindmap
PDF (1727KB)

173

访问

0

被引

详细

导航
相关文章

AI思维导图

/