单路/多路伺服电机的高速矢量控制方法及装置与流程

文档序号:12037335阅读:513来源:国知局
单路/多路伺服电机的高速矢量控制方法及装置与流程
本发明涉及伺服驱动控制领域,特别是涉及一种基于fpga实现单路/多路伺服电机的高速矢量控制方法及装置。
背景技术
:工业机器人控制器的核心在于伺服电机的实时运动控制,而伺服电机驱动与运动控制核心是高性能的电流环矢量控制器。在工业机器人和数控机床的运动控制器中,往往需要实现多路电流环的高速实现。目前国内大多数机器人控制器对各路伺服电机采用独立的伺服驱动,有独立的电流环矢量控制。华中科技大学伍庆学位论文《基于fpga的交流伺服系统电流环设计》提出一种基于流水线结构的多轴同步电机电流环控制时序调度方案,在固有运算资源的基础上缩短多轴电流环控制运算时间,技术组成包括时序规划模块、矢量变换模块、电流调节器模块、空间矢量pwm模块、电流传感器接口模块、编码器反馈信号处理模块等。然而上述技术的缺点在于:①随着控制伺服电机数量的增多,系统控制的实时性就会快速降低,原因在于该技术中的关键流水线结构实现稍显复杂,所有模块都是复用的,并没有最优的充分利用fpga资源,这样随着控制伺服电机数量的增多,流水线处理周期就会随之快速增长,降低系统的实时性;②另外,上述技术的容错性、稳定性有待提高,主要是因为在其实技术实现上,采用的是简单循环处理机制,为增进处理速度,裁掉了相应的异常处理机制。技术实现要素:为克服上述现有技术存在的不足,本发明之目的在于提供一种单路/多路伺服电机的高速矢量控制方法及装置,通过基于fpga的硬件电流环控制提高传统基于dsp纯软件电流环的实时性限制,本发明通过核心计算单元的fpga高速并行实现和fpga资源紧张模块的分时复用机制的系统综合设计提高矢量控制的实时性、缩短多路伺服电机实时控制的整体周期,通过状态机机制设计在保证控制频率最优的同时加入异常处理机制,增进了系统的稳定性和可靠性,从而实现真正的驱控一体,既能提高控制性能,又能有效节省硬件成本。为达上述及其它目的,本发明提出一种单路伺服电机的高速矢量控制方法,包括如下步骤:步骤一,设计四个独立并行运算的专用乘法器和两个独立的并行加法器实现共享的基本快速运算单元;步骤二,利用该基本快速运算单元对分别对该伺服电机的矢量控制算法的各步骤进行归一化处理。步骤三,设计单路电机伺服矢量控制状态时序控制基本快速运算单元完成单路电机矢量控制。进一步地,于步骤一中,设计四个独立乘法器和两个加法器实现如下两个共享的基本快速运算单元:y1=c1×x1+c2×x2y2=c3×x3+c4×x4,其中,c和x为由多路选择器在不同的状态时选择对应的量。进一步地,于步骤二中,利用状态机在控制节拍时钟的触发下,根据实际fpga器件完成矢量控制算法的各步骤所需时间提供该矢量控制算法各步骤相应的状态量以控制该基本快速运算单元,进而实现分别对矢量控制算法的各步骤的归一化处理。为达到上述目的,本发明还提供一种单路伺服电机的高速矢量控制装置,包括:乘加计算核心单元,用于设计四个独立乘法器和两个加法器以实现共享的基本快速运算单元;第一状态机,在控制节拍时钟的触发下,根据实际fpga器件完成矢量控制运算模块的每个运算步骤所需的时间给出矢量控制运算模块的各步骤对应的状态量,以控制该乘加计算核心单元的输入选择和输出的存储;参数选择单元,连接于该矢量控制运算模块与该乘加计算核心单元,以在该第一状态机输出的状态量的控制下选择矢量控制运算模块各步骤所需的参数。进一步地,该控制装置还包括中间变量存储单元,用于对该乘加计算核心单元的输出进行存储并输出至矢量控制运算模块。进一步地,该乘加计算核心单元设计四个独立乘法器和两个加法器实现如下两个共享的基本快速运算单元:y1=c1×x1+c2×x2y2=c3×x3+c4×x4,其中,c和x为由多路选择器在不同的状态时选择对应的量。为达到上述目的,本发明还提供一种多路伺服电机的高速矢量控制装置,包括:单路矢量控制核心单元,以单路伺服电机的高速矢量控制单元为核心,通过时分复用来实现多路电机的矢量控制第二状态机,在系统控制节拍时钟的控制下,给出该多个单路矢量控制核心单元对应的多路伺服电机的分时控制节拍以及相应的目前受控伺服电机的电机号,由电机号来控制多路选择单元;多路选择单元,在该第二状态机的控制下选择与目前受控伺服电机相对应的各参数至单路矢量控制核心单元以分时实现相对应的伺服电机的高速矢量控制。进一步地,该装置还包括历史变量存储单元,用于在第二状态机的控制下存储该单路矢量控制核心单元对多路伺服电机分时控制时输出的历史变量值。进一步地,该多路选择单元在该第二状态机的控制下选择与目前受控伺服电机相对应控制参数、电机转角、电机相电流以及控制调节器所需的历史变量值至该单路矢量控制核心单元以实现对多路伺服电机的分时实时控制。为达到上述目的,本发明还提供一种多路伺服电机的高速矢量控制方法,包括如下步骤:步骤一,在系统控制节拍时钟的控制下,利用第二状态机给出多路伺服电机的分时控制节拍以及相应的目前受控伺服电机的电机号,由电机号来控制多路选择单元选择与目前电机相对应的控制参数、电机转角、电机相电流以及控制调节器所需的历史变量值;步骤二,根据多路选择单元选择的各参数值,在多路电机的分时控制节拍的触发下,通过单路矢量控制核心完成对多路电机的分时矢量控制;步骤三,在单路矢量控制核心单元完成对当前路电机的矢量控制后,更新与目前电机号相对应的内部寄存器来存放下一个系统控制节拍所需的历史变量值。与现有技术相比,本发明一种单路/多路伺服电机的高速矢量控制方法及装置通过设计四个独立乘法器和两个加法器以实现共享的基本运算单元,利用快速基本运算单元分别对矢量控制算法的各步骤进行归一化处理,既能保证算法的快速实时性,提高计算精度,又能有效减少对资源的需求,同时,本发明通过核心计算单元的fpga高速并行实现和fpga资源紧张模块的分时复用机制的系统综合设计有效缩短了多路伺服电机实时控制的整体周期及减少了对fpga紧张资源的占用率。附图说明图1为常用的永磁同步电机空间矢量控制结构图;图2为本发明一种单路伺服电机的高速矢量控制方法的步骤流程图;图3为本发明具体实施例之单路伺服电机的高速矢量控制装置的系统架构及功能示意图;图4为本发明单路伺服电机的高速矢量控制装置的状态机的状态时序图;图5为本发明具体实施例之多路伺服电机的高速矢量控制装置的系统架构及功能示意图;图6为本发明多路伺服电机的高速矢量控制装置的状态机的状态时序图;图7为本发明一种多路伺服电机的高速矢量控制方法的步骤流程图。具体实施方式以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。图1显示了常用的永磁同步电机空间矢量控制框图。在图中θe,n分别是电机电转角,电机转速;p,i分别是电流环的比例、积分调节器。电流环首先采集相电流,经过clarke和park变换进行磁链解耦,从而实现当采用isdref=0的转子磁链定向控制后,通过isqref来线性控制电机转矩。整个算法可以分为以下几步:1)clarke变换:其中,iaib分别是流过电机u相和v相的电流。2)park变换:其中,θe是电机电转角。3)pi控制器(用增量式来实现):其中,kd_new,kd_old,kq_new,kq_old是由pi调节器的参数kpki决定;vsd(k),vsq(k),ed(k),eq(k)是当前控制节拍值;vsd(k-1),vsq(k-1),ed(k-1),eq(k-1)是上一控制节拍的值。4)park逆变换:5)空间矢量脉宽调制(svpwm)所在空间扇区:6)计算svpwm各相理论开关时间:其中,pwmprd是脉宽调制周期。vdc是母线电压。7)计算svpwm各相实际脉宽调制时间:表1在不同扇区各相调制时间sect_no123456cmpatbontaontaontcontcontboncmpbtaontcontbontbontaontconcmpctcontbontcontaontbontaon对于以上各步骤,(1)(2)(3)(4)(5)(6)(7)必须是依次运算,在所有的计算步骤里,最多需要4个乘法器。为了能够在最短时间内完成每一步的计算,同时满足动态精度要求,又能节省fpga的dsp资源,在fpga实现中采用了四个独立专用的32位乘法器和两个独立的并行32位加法器构成一个基本的快速运算单元。为了有效节省fpga资源,这个基本的快速运算单元为以上几个步骤的运算所共享。图2为本发明一种单路伺服电机的高速矢量控制方法的步骤流程图。如图2所示,本发明一种实现多路伺服电机的高速矢量控制方法,基于fpga实现,包括如下步骤:步骤201,设计如下四个独立乘法器和两个加法器以实现共享的快速基本运算单元,y1=c1×x1+c2×x2y2=c3×x3+c4×x4(8)c和x为由多路选择器在不同的状态时选择对应的量。步骤202,利用该快速基本运算单元对分别对矢量控制算法的各步骤进行归一化处理。步骤203,设计单路矢量控制状态机如图4所示时序图,在单路控制节拍时钟的触发下,产生与矢量控制7个步骤相对应的状态量s[2..0],以及用于存储中间变量的锁存信号(每个下降沿,锁存当前状态的中间变量到由状态量选择对应的寄存器);状态量也用于控制选择器选择对应当前状态的输入到快速基本运算单元,以完成当前步骤的矢量计算。在本发明的具体实施例中,可根据实际fpga完成矢量控制算法个步骤所需时间来优化状态机的参数设置以达到最快速的完成各步骤。(1)clarke变换:c1=1;c2=0;x1=ia;x2=0;isα=y1;isβ=y2;(2)park变换:c1=cos(θe);c2=sin(θe);x1=isα;x2=isβ;c3=-sin(θe);c4=cos(θe);x3=isα;x4=isβ;isd=y1;isq=y2;(3)pi控制器(用增量式来实现):c1=kd_new;c2=kd_old;x1=ed(k);x2=ed(k-1);c3=kq_new;c4=kq_old;x3=eq(k);x4=eq(k-1);vsd(k)=vsd(k-1)+y1;vsq(k)=vsq(k-1)+y2;(4)park逆变换:c1=cos(θe);c2=-sin(θe);x1=vsd;x2=vsq;c3=sin(θe);c4=cos(θe);x3=vsd;x4=vsq;vsα=y1;vsβ=y2;(5)空间矢量脉宽调制(svpwm)所在空间扇区:va=vsβ;vb=y1;vc=y2;逻辑判断和sect_no另外独立运算。(6)计算svpwm各相理论开关时间:x=y1+y2;y=y1;z=y2;(7)计算svpwm各相实际脉宽调制时间:t1sat=y1;t2sat=y2;其中是由独立的除法器运算。taontbontcon及逻辑判断另外独立运算。图3为本发明一种单路伺服电机的高速矢量控制装置的系统架构图。如图3所示,本发明一种单路伺服电机的高速矢量控制装置,包括:乘加计算核心单元301、第一状态机302、参数选择单元303以及中间变量存储单元304。其中,乘加计算核心单元301,用于设计共享的快速基本运算单元,在本发明具体实施例中,乘加计算核心单元301设计四个独立乘法器和两个并行加法器以实现以下两个共享的基本运算单元:y1=c1×x1+c2×x2y2=c3×x3+c4×x4第一状态机302,在控制节拍时钟的触发下,根据实际fpga器件完成矢量控制运算模块的每个运算步骤所需的时间给出矢量控制运算模块的各步骤对应的状态量,以控制乘加计算核心单元301的输入选择和输出的存储;参数选择单元303,连接于内部连接模块305与乘加计算核心单元301以在状态机输出的状态量的控制下选择矢量控制运算模块各步骤所需的参数给核心快速基本运算单元以完成矢量控制。具体地,矢量控制运算模块各步骤及其参数如下:(1)clarke变换:c1=1;c2=0;x1=ia;x2=0;isα=y1;isβ=y2;(2)park变换:c1=cos(θe);c2=sin(θe);x1=isα;x2=isβ;c3=-sin(θe);c4=cos(θe);x3=isα;x4=isβ;isd=y1;isq=y2;(3)pi控制器(用增量式来实现):c1=kd_new;c2=kd_old;x1=ed(k);x2=ed(k-1);c3=kq_new;c4=kq_old;x3=eq(k);x4=eq(k-1);vsd(k)=vsd(k-1)+y1;vsq(k)=vsq(k-1)+y2;(4)park逆变换:c1=cos(θe);c2=-sin(θe);x1=vsd;x2=vsq;c3=sin(θe);c4=cos(θe);x3=vsd;x4=vsq;vsα=y1;vsβ=y2;(5)空间矢量脉宽调制(svpwm)所在空间扇区:va=vsβ;vb=y1;vc=y2;逻辑判断和sect_no另外独立运算。(6)计算svpwm各相理论开关时间:x=y1+y2;y=y1;z=y2;(7)计算svpwm各相实际脉宽调制时间:t1sat=y1;t2sat=y2;其中是由独立的除法器运算,taontbontcon及逻辑判断另外独立运算,这都包含在内部连接模块305。中间变量存储单元304,用于对乘加计算核心单元301的输出进行存储并输出至内部连接模块305。内部连接模块305,用于实现额外逻辑、加减运算和内部连接功能。在本发明具体实施例中,该单路伺服电机的高速矢量控制装置基于fpga实现伺服电机的高速矢量控制,本发明采用乘加计算核心单元设计四个独立乘法器和两个加法器以实现以下两个共享的基本运算单元:y1=c1×x1+c2×x2y2=c3×x3+c4×x4基于前述分析,在fpga实现上,一个完整的矢量控制运算模块的矢量控制周期分为七个状态,因此,需要实现一个状态机,用来控制两路共享的乘加计算核心单元的输入输出,参数选择单元包括c选择器与x选择器,如图3中,状态机,如图4,在控制节拍时钟的触发下,根据实际fpga器件完成以上每个运算步骤所需时间给出矢量控制运算模块的7个步骤相对应的状态量来控制乘加计算核心单元的输入选择和输出的存储。在本发明具体实施例中,该单路伺服电机的高速矢量控制装置在fpga上的实现能在少过5us内完成整个矢量控制的7个步骤,而高性能数控系统的运动系统控制节拍都只要求20khz以内,因此可以以上述单路矢量控制为核心,通过分时来实现多达10路伺服电机的分时矢量控制。图5为本发明一种多路伺服电机的高速矢量控制装置的系统架构和功能图。如图5所示,本发明一种多路伺服电机的高速矢量控制装置,包括一个单路矢量控制核心单元501、第二状态机502、多路选择单元503以及历史变量存储单元504。其中,单路矢量控制核心单元501,即为如图3所示的一个完整的单路伺服电机的高速矢量控制单元。第二状态机502,如图6所示,在系统控制节拍时钟的控制下,给出多路伺服电机的分时控制节拍以及相应的状态量,即目前受控伺服电机的电机号(1~7,以七路为例),由电机号来控制多路选择单元503选择与目前电机相对应的控制参数、电机转角、电机相电流以及控制调节器所需的历史变量值在多路电机的分时控制节拍的触发下,通过单路矢量控制核心完成对多路电机的分时矢量控制。如图6中,由状态机产生的历史变量锁存时钟,在单路矢量控制核心完成当前受控电机的矢量控制后,锁存当前的计算结果以及下个系统控制节拍所需的历史值(如vsd(k-1),vsq(k-1),ed(k-1),eq(k-1)等)至与当前电机号对应的寄存器中。多路选择单元503,用于在第二状态机502的控制下,选择与目前电机相对应的控制参数、电机转角、电机相电流以及控制调节器所需的历史变量值至单路矢量控制核心单元501以实现当前路伺服电机的高速矢量控制。历史变量存储单元,用于存储当前受控电机矢量控制核心单元501输出的变量值。图7为本发明一种多路伺服电机的高速矢量控制方法的步骤流程图。如图7所示,本发明一种多路伺服电机的高速矢量控制方法,包括如下步骤:步骤701,在基本时钟的控制下,利用第二状态机给出多路伺服电机的分时控制节拍以及相应的目前受控伺服电机的电机号(1~7,以7路为例),由电机号来控制多路选择单元选择与目前电机相对应的控制参数、电机转角、电机相电流以及控制调节器所需的历史变量值;步骤702,根据多路选择单元选择的各参数值,在多路电机的分时控制节拍的触发下,通过单路矢量控制核心完成对多路电机的分时矢量控制。步骤703,在单路矢量控制核心单元完成对当前路电机的矢量控制后,更新与目前电机号相对应的内部寄存器来存放下一个系统控制节拍所需的历史变量值。综上所述,本发明一种单路伺服电机的高速矢量控制方法及装置通过设计四个独立乘法器和两个并行加法器以实现共享的快速基本运算单元,利用基本运算单元分别对矢量控制算法的各步骤进行归一化处理,既能保证算法的快速实时性,计算精度,又能有效减少对资源的需求,同时,本发明通过分时复用高性能的单路伺服电机的高速矢量控制来实现多路电机的实时矢量控制,从而进一步减少对fpga资源的占用。与现有技术相比,本发明具有如下优点:1)单路伺服电机控制运算速度快,计算精度高通过算法分时,并行分解,基于fpga全硬件电流环控制突破传统基于dsp纯软件电流环的实时性限制,在fpga的实现时充分利用fpga并行计算的特点,有效结合并行计算和分时计算,由有限的专用dsp资源来实现多位并行运算实现高性能核心计算单元,这样既能保证算法的快速实时性,提高计算精度,又能有效减少对资源的需求。2)多路伺服电机控制整体周期短、频率高通过分时复用高性能单路伺服电机矢量控制,来实现多路伺服电机的矢量控制,这样进一步有效地节省fpga资源。在系统的整体设计时,通过fpga资源紧张模块的分时流水复用机制和核心单元同步并行实现机制的综合设计缩短了多路伺服电机实时控制的整体周期。3)系统稳定性、可靠性高通过状态机机制设计在保证控制频率最优的同时加入异常处理机制,增进系统的稳定性和可靠性。4)硬件成本低不管是单路还是多路的矢量控制实现上,都充分采用了分时实现,因此极大的降低了对fpga硬件资源(如专用的寄存器,专用的高速dsp,逻辑单元等),整体的实现方案就可以在相对小容量价格低的fpga芯片上完成。上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1