一种dsp矢量控制系统脉宽调制策略代码执行时间测量方法

文档序号:7391755阅读:274来源:国知局
一种dsp矢量控制系统脉宽调制策略代码执行时间测量方法
【专利摘要】本发明提出了一种DSP矢量控制系统脉宽调制策略代码执行时间测量方法,具体涉及一种基于DSP的电机矢量控制系统中,脉宽调制方法代码实时执行时间的测量方法,其特征是:可以在电机控制系统运行的情况下实时测量代码段的执行时间;电机矢量控制系统稳态运行条件下,通过设定一电角度变化步长,可以对脉宽调制方法代码段在单个电角度周期内各个电角度值下的执行时间进行测量;无需其他外围设备,利用DSP本身的资源实现整个测量过程。本发明提出的方法具有测量结果精确、实时性好、测量方法简单等优点。
【专利说明】一种DSP矢量控制系统脉宽调制策略代码执行时间测量方法

【技术领域】
[0001]本发明涉及电机控制领域,尤其是利用DSP控制器自身的资源实现基于DSP的电机矢量控制系统脉宽调制策略代码执行时间的实时测量。

【背景技术】
[0002]在电机矢量控制系统中,脉宽调制技术是实现整个控制过程中的重要一环,国内外的众多学者都对脉宽调制技术进行了研究,提出了不同的脉宽调制方式。在使用DSP实现电机的矢量控制算法时,可以采用不同的脉宽调制调制方式。实际应用中,为了提高DSP的执行效率,在实现相同控制效果的前提下,希望脉宽调制算法代码段的执行时间尽量短。因此,为了比较不同脉宽调制方法的执行效率,需要对DSP控制系统中脉宽调制方法代码段执行时间进行精确测量。电机矢量控制系统中,脉宽调制方法的作用是根据给定的参考电压矢量计算得出逆变器的三相桥臂占空比,进而控制逆变器的开关管动作,使实际电压矢量逼近参考电压矢量。在基于DSP的矢量控制系统中,脉宽调制算法用到的输入变量有四个:直轴参考电压Udref、交轴参考电压Uvrf、转子电角度Θ、逆变器直流母线电压Ud。。在电机矢量控制系统稳态运行时,直轴参考电压Udref、交轴参考电压Utffrf、逆变器直流母线电压Ud。近似处于稳定值,转子电角度随转子位置变化,则转子电角度成为影响脉宽调制算法代码段执行时间的重要因素,因此,需要对脉宽调制算法代码段执行时间在一个电角度周期内(O到2π)进行测量。现有的测量DSP代码段执行时间的方法为:在CCS软件中,在某段代码的起始和结束位置处设置断点,给定一初始状态,单步运行来测量代码段的执行机器周期数。但是,上述方法存在以下缺点,第一、不能在电机矢量控制系统实际运行的情况下,对所测代码段的执行时间进行实时测量;第二、不能连续测量,需要每次更改给定条件然后单次测量,测量过程繁琐。如果想要对电机矢量控制系统脉宽调制算法在O到2π电角度周期内的执行时间进行测量,则需选定一步长,进行多次测量,测量过程耗时,并且不能完全模拟电机实际运行状况。
[0003]综上所述,目前亟需一种可以在基于DSP的电机矢量控制系统实时运行的条件下,对代码段的执行时间进行精确测量的方法,尤其是一种电机矢量控制系统处于稳态运行时,脉宽调制方法代码段在一个电角度周期内(O到2π)执行时间的测量方法。


【发明内容】

[0004]发明目的:本发明的目的是提出一种基于DSP的电机矢量控制系统处于稳态运行时,脉宽调制方法代码段在单个电角度周期内(O到2π)执行时间的测量方法。
[0005]技术方案:本发明的一种DSP矢量控制系统脉宽调制策略代码执行时间测量方法,通过利用DSP本身的内部资源,实现在单个电角度周期内对电机矢量控制系统脉宽调制策略代码段执行时间的测量。首先,在程序中对所测程序段的开始位置与结束位置处对GP1x 口输出电平进行取反,通过对捕获模块CAPy的配置,实现对GP1x 口输出的的周期方波信号中代表代码段执行时间的电平持续时间进行捕获测量,达到代码段单次运行的执行时间;利用电机矢量控制系统电机稳态运行转速η、电机极对数P、开关频率计算出单个电角度周期内脉宽调制策略代码段执行时间采样点数M1,从而可以在电机稳态运行时,对影响调制算法代码段执行时间的转子电角度值在O到2π范围内进行全面计算。具体步骤如下:
[0006]I)对DSP的捕获模块CAPy进行初始化,使之工作于捕获状态;
[0007]2)对DSP的GP1x 口进行配置,使其工作在输出电平可控的状态,可以使用#define预处理宏定义命令,定义GP1x 口为T_flag ;
[0008]3)对DSP中需要测量执行时间的代码段进行设置,在电机矢量控制系统中,在脉宽调制算法代码段的开头处配置GP1x 口输出低电平,即T_flag = 0,在脉宽调制算法代码段的结尾处配置GP1x 口输出高电平,即T_flag = I JUGP1x 口输出的周期方波信号中,每周期中低电平的时间即为脉宽调制算法代码段的执行时间;
[0009]4)将GP1x 口输出的信号接入到捕获模块CAPy,通过CAPy模块先后对GP1x 口输出的周期方波信号的下降沿和上升沿进行捕获,并在捕获中断服务程序中,计算GP1x 口输出的周期方波信号每周期的低电平时间值,用机器周期数表示,所述的捕获中断频率配置与GP1x 口输出的周期方波信号频率相同;
[0010]5)根据电机矢量控制系统的开关频率f1;即系统主控制中断的频率、电机稳态运行的转速η、电机的极对数p,算出单个电角度周期内,即转子电角度O到2π范围内,脉宽调制算法代码段执行时间测量的采样点数札。其中,单个电角度周期的时间T为:T = 60/ηρ,则所述单个电角度周期内脉宽调制算法代码段执行时间测量的采样点数M1的计算式为=M1 = T^f1 = 60*;^/即;
[0011]6)步骤5)所述单个电角度周期内脉宽调制算法代码段执行时间测量的采样点数的计算式是在矢量控制系统中每个开关周期内都进行一次代码段执行时间测量的前提下得到的,由于开关周期相对于电角度周期值要小很多,为了减少单个电角度周期内代码执行时间的采样点数,在主控制中断中设置一分频系数K,即K个开关周期才进行一次脉宽调制算法代码段执行时间的测量,则单个电角度周期内,所述脉宽调制算法代码段执行时间测量的采样点数M2为=M2 = Mi/K,则对脉宽调制方法代码段执行时间进行测量所选取的转子电角度变化步长为:S = 2 π /M2 ;
[0012]所述在主控制中断中设置分频系数K的具体方法为:定义一计数变量count,一标志变量Cap_F,两者初始化均为0,在脉宽调制算法代码段的开头处,设置Cap_F = O,count++,只有当count = = K时,配置GP1x 口输出低电平,即T_flag = O。在给T_flag赋O之前,给Cap_F赋I,即Cap_F = I,给count赋O,即count = O ;在脉宽调制算法的结尾处,设置判断语句,只有当Cap_F == I时,GP1x 口输出高电平,即T_flag = 1,这样便可以设置捕获中断每K个开关周期进行一次脉宽调制策略代码段执行时间计算;
[0013]7)定义两个数组Time [M2]和Posn [M2],在CAPy的捕获中断服务程序中设置一标志位Time_Cap,定义一时间计算次数计数变量Cap_count,当Time_Cap = = I时,捕获中断开始进行代码执行时间的计算,并对计算次数进行计数,即Cap_COunt++,将代码执行时间存入变量Time[Cap_count],同时记录下此次脉宽调制算法计算所用的电角度值Θ,存入变量POSn[Cap_COunt]。当采样点数达到目标值M2后,则停止代码执行时间的计算以及Cap_count值的更新;
[0014]所述数组Time [M2]、Posn [M2],标志位Time_Cap,计数变量Cap_count的初始值均为O。
[0015]有益效果:本发明适用于基于DSP的电机矢量控制系统中,能够在电机稳态运行的状态下,实现单个电角度周期内对脉宽调制算法代码段的执行时间进行测量。具体到本发明的技术方案,具有以下优点:
[0016]1、可在电机运行的状态下实时测量。在电机矢量控制系统实时运行的情况下,对代码段的时间进行测量,从而更能反映实际运行中代码段的执行效率。对电机矢量控制系统,可实现单个电角度周期内脉宽调制方法代码段执行时间的测量,从而可评估转子电角度值与代码段执行时间的关系。
[0017]2、测量方法简单,无需其他外围设备。整个测量过程只需要一台DSP控制器,利用DSP自身的资源实现整个测量过程,无需借助其他设备。
[0018]3、测量结果精确,测量结果用机器周期数表示,精确到单个机器周期。

【专利附图】

【附图说明】
[0019]图1是程序中对所测代码段进行相关设置的流程图;
[0020]图2是捕获模块捕获中断服务程序流程图;
[0021]图3是具体实施例永磁电机矢量控制系统SVPWM调制策略代码段执行时间测量结果O

【具体实施方式】
[0022]下面结合具体实施例和附图来详细说明本发明。
[0023]具体举例来说:基于DSP28355搭建永磁电机矢量控制系统实验平台,DSP28335的主频为150MHz,脉宽调制算法采用传统七段式SVPWM调制方式,永磁电机的极对数P =4,控制系统的开关频率为4kHz,给定稳态运行状态为:转速n = 300r/min,负载转矩I;=lON.m。定义GP1ll 口为T_flag,在SVPWM调制方式的程序开头处设置GP1ll 口输出低电平,即T_flag = 0,在SVPWM调制方式的程序结束处设置GP1ll 口输出高电平,即T_flag=1,设定脉宽调制算法代码段执行时间在单个电角度周期内(O到2π)的测量点数为25个,则电角度变化步长为2 π/25 ^ 0.25,可计算分频系数K = 8,采用上述设置后,程序的流程图如图1所示。配置捕获模块1,即eCAPl工作于捕获模式,对捕捉事件I (CEVTl)和捕捉事件2(CEVT2)进行配置,在下降沿(FE)触发捕捉事件I,在上升沿(RE)触发捕捉事件2。配置eCAP控制寄存器2,在连续模式下,捕捉事件2之后返回,同时配置eCAPl中断使能寄存器(ECEINT),允许捕捉事件2作为中断源,则eCAPl模块捕获中断的频率与GP1ll 口输出的周期方波信号的频率相同。eCAPl捕获中断的中断服务程序流程图如图2所示。当开始捕获的标志位Time_Cap == I时,开始对GP1ll 口输出的周期方波信号中的下降沿和上升沿分别进行捕获,并计算出低电平的持续时间,将时间值存入数组Time[25],同时将此次脉宽调制算法计算所用的转子电角度Θ值存入数组Posn[25],从而实现在单个电角度周期内(O到2π)对脉宽调制算法代码段的执行时间的测量。具体步骤如下:
[0024]I)对DSP28335的捕获模块eCAPl进行初始化,使之工作于捕获状态;
[0025]2)对DSP28335的GP1ll 口进行配置,使其工作在输出电平可控的状态,使用#define预处理宏定义命令,定义GP1ll 口为T_flag ;
[0026]3)对DSP28335中脉宽调制算法代码段进行相关设置,在脉宽调制算法代码段的开头处配置GP1ll 口输出低电平,即T_flag = 0,在脉宽调制算法代码段的结尾处配置GP1ll 口输出高电平,即T_flag= 1,则GP1ll输出的周期方波信号中,每周期中低电平的时间即为脉宽调制算法代码段的执行时间;
[0027]4)将GP1l I输出的信号接入到捕获模块eCAPl,通过eCAPl模块先后对GP1l I输出的周期方波信号的下降沿和上升沿进行捕获,并在捕获中断服务程序中计算GP1ll输出的周期方波信号每周期的低电平时间值,用机器周期数表示,所述的捕获中断频率配置与GP1ll输出周期方波信号频率相同;
[0028]5)根据电机矢量控制系统的开关频率= 4kHz,电机稳态运行的转速n = 300r/min,电机的极对数P = 4,算出单个电角度周期内,即转子电角度O到2 π范围内,脉宽调制算法代码段执行时间测量的采样点数M115其中,电角度周期的时间T为:T = 60/np = 50ms,则所述脉宽调制算法代码段执行时间测量的采样点数M1的计算式为=M1 = T^f1 = 200 ;
[0029]6)为了减少单个电角度周期内代码执行时间的采样点数,在主控制中断中设置一分频系数K = 8,即8个开关周期才进行一次脉宽调制算法代码段执行时间的测量,则单个电角度周期内,所述脉宽调制算法代码段执行时间测量的采样点数M2为=M2 = Mi/8 = 25,则对脉宽调制方法代码段执行时间进行测量所选取的转子电角度(弧度值)变化步长为:S = 2 31 /25 ^ 0.25 ;
[0030]所述在主控制中断中设置分频系数K = 8的具体方法为:定义一计数变量count,一标志变量Cap_F,两者初始化均为0,在脉宽调制算法代码段的开头处,设置Cap_F = O,count++,只有当count == K (K = 8)时,配置GP1ll 口输出低电平,即T_flag = O。在给T_flag赋O之前,给Cap_F赋I,即Cap_F = I,给count赋O,即count = O ;在脉宽调制算法的结尾处,设置判断语句,只有当Cap_F== I时,GP1ll 口输出高电平,即T_flag = 1,这样便可以设置捕获中断每8个开关周期进行一次脉宽调制策略代码段执行时间计算;
[0031]7)定义两个数组Time [25]和Posn [25],在eCAPl的捕获中断服务程序中设置一标志位Time_Cap,定义一时间计算次数计数变量Cap_count,当Time_Cap = = I时,捕获中断开始进行代码执行时间的计算,并对计算次数进行计数,即Cap_COunt++,将代码执行时间存入变量Time[Cap_count],同时记录下此次脉宽调制算法计算所用的电角度值Θ,存入变量POSn[Cap_COunt]。当采样点数达到目标值25后,则停止代码执行时间的计算以及Cap_count值的更新,中断服务程序的流程图如图2所示。本实施例中,M2 = 25 ;
[0032]所述数组Time [25]、Posn [25],标志位Time_Cap,计数变量Cap_count的初始值均为O。在基于DSP28335的永磁电机矢量控制系统中,给定一稳态运行状态,给定转速η =300r/min,负载转矩IY = 10Ν.m,在系统进入稳态运行后,给Time_Cap赋1,即eCAPl捕获中断开始对脉宽调制算法代码段的执行时间进行测量,测量结果如图3所示。由于程序中的三角函数采用查表法计算,精度为电角度弧度值的小数点后一位,因此作图中只对转子电角度值精确到小数点后一位。
[0033]以上所述仅为本发明的一种实施方式,本发明的保护范围并不以上述实施方式为限,但凡本领域普通技术人员根据本发明所揭示内容所作的等效修饰或变化,皆应纳入权利要求书中记载的保护范围内。
【权利要求】
1.一种数字信号处理DSP控制器代码实时执行时间的测量方法,其在电机矢量控制系统处于稳态运行的情况下,对转子电角度在O到2 π范围内变化时相应脉宽调制算法代码段的执行时间进行测量,所述稳态运行条件是指电机的转速为稳定值,电机的负载转矩为稳定值,所述测量方法包含以下步骤: 1)对DSP的捕获模块CAPy进行初始化,使之工作于捕获状态; 2)对DSP的GP1x口进行配置,使其工作在输出电平可控的状态,使用#define预处理宏定义命令,定义GP1x 口为T_f lag ; 3)对DSP中需要测量执行时间的代码段进行设置; 在电机矢量控制系统中,在脉宽调制算法代码段的开头处配置GP1x 口输出低电平,即T_flag = 0,在脉宽调制算法代码段的结尾处配置GP1x 口输出高电平,即T_flag = 1,则GP1x 口输出的周期方波信号中,每周期中低电平的时间即为脉宽调制算法代码段的执行时间; 4)将GP1x口输出的信号接入到捕获模块CAPy,通过CAPy模块先后对GP1x 口输出的周期方波信号的下降沿和上升沿进行捕获,并在捕获中断中,计算GP1x 口输出的周期方波信号每周期的低电平时间值,用机器周期数表示,所述的捕获中断频率配置与GP1x 口输出的周期方波信号频率相同; 5)根据电机矢量控制系统的开关频率,即系统主控制中断的频率、电机稳态运行的转速η、电机的极对数p,算出单个电角度周期内,即转子电角度O到2π范围内,脉宽调制算法代码段执行时间测量的采样点数M1,其中,单个电角度周期的时间T为:T = 60/ηρ,则所述单个电角度周期内脉宽调制算法代码段执行时间测量的采样点数M1的计算式为=M1 =T^f1 = BO^f1Znp ; 6)步骤5)所述单个电角度周期内脉宽调制算法代码段执行时间测量的采样点数的计算式是在矢量控制系统中每个开关周期内都进行一次代码段执行时间测量的前提下得到的,由于开关周期相对于电角度周期值要小很多,为了减少单个电角度周期内代码执行时间的采样点数,在主控制中断中设置一分频系数K,即K个开关周期才进行一次脉宽调制算法代码段执行时间的测量,则单个电角度周期内,所述脉宽调制算法代码段执行时间测量的采样点数M2为=M2 = Mi/K,则对脉宽调制方法代码段执行时间进行测量所选取的转子电角度变化步长为:S = 2 π /M2 ; 所述在主控制中断中设置分频系数K的具体方法为:定义一计数变量count,一标志变量Cap_F,两者初始化均为0,在脉宽调制算法代码段的开头处,设置Cap_F = O, count++,只有当count = = K时,配置GP1x 口输出低电平,即T_flag = O。在给T_f lag赋O之前,给Cap_F赋I,即Cap_F = I,给count赋O,即count = O ;在脉宽调制算法的结尾处,设置判断语句,只有当Cap_F== I时,GP1x 口输出高电平,即T_flag = 1,这样便可以设置捕获中断每K个开关周期进行一次脉宽调制策略代码段执行时间计算; 7)定义两个数组Time[M2]和Posn [M2],在CAPy的捕获中断服务程序中设置一标志位Time_Cap,定义一时间计算次数计数变量Cap_count,当Time_Cap = = I时,捕获中断开始进行代码执行时间的计算,并对计算次数进行计数,即Cap_COunt++,将代码执行时间存入变量Time[Cap_count],同时记录下此次脉宽调制算法计算所用的电角度值Θ,存入变量Posn[Cap_count],当采样点数达到目标值M2后,则停止代码执行时间的计算以及Cap_count值的更新; 所述数组Time [M2]、Posn [M2],标志位Time_Cap,计数变量Cap_count的初始值均为O。
2.根据权利要求1所述的基于DSP代码实时执行时间的测量方法,其中对DSP中需要测量执行时间的代码段进行设置时,电机矢量控制系统中脉宽调制算法代码段的开头处配置GP1x 口输出高电平,即T_flag = 1,在脉宽调制算法代码段的结尾处配置GP1x 口输出低电平,即T_flag = O JUGP1x 口输出的周期方波信号中,每周期中高电平的时间即为脉宽调制算法代码段的执行时间,捕获模块CAPy则配置为先后对GP1x 口输出的周期方波信号的上升沿和下降沿进行捕获,获取高电平持续时间。
【文档编号】H02P21/14GK104333287SQ201410624554
【公开日】2015年2月4日 申请日期:2014年11月7日 优先权日:2014年11月7日
【发明者】程明, 王亚, 王伟 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1