首页> 中国专利> 脉冲宽度调制PWM控制延时时间的获取方法和装置

脉冲宽度调制PWM控制延时时间的获取方法和装置

摘要

本发明公开了一种脉冲宽度调制PWM控制延时时间的获取方法和装置,所述方法包括:接收第一PWM信号和第二PWM信号,并根据第一PWM信号对PWM计数器进行控制;根据第二PWM信号生成采样中断;根据PWM计数器的过零时刻生成执行时刻,并根据PWM计数器的计数方向生成属性值;根据采样中断启动计数器,并根据计数器的计数值计算第一延时时间;根据PWM计数器的计数值和PWM计数器的最大计数值和计数周期计算第二延时时间;根据第一延时时间和第二延时时间生成PWM控制延时时间。本发明实施例的方法,可以允许采样时刻、过程处理、PWM计数器三者之间没有严格的同步关系,也能够准确得到PWM控制延时时间,提高了灵活性。

著录项

  • 公开/公告号CN105530004A

    专利类型发明专利

  • 公开/公告日2016-04-27

    原文格式PDF

  • 申请/专利权人 比亚迪股份有限公司;

    申请/专利号CN201410513299.0

  • 发明设计人 汤小华;张鑫鑫;杜智勇;梁岂源;

    申请日2014-09-29

  • 分类号

  • 代理机构北京清亦华知识产权代理事务所(普通合伙);

  • 代理人张大威

  • 地址 518118 广东省深圳市坪山新区比亚迪路3009号

  • 入库时间 2023-12-18 15:54:55

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-11-08

    授权

    授权

  • 2016-08-24

    实质审查的生效 IPC(主分类):H03K7/08 申请日:20140929

    实质审查的生效

  • 2016-04-27

    公开

    公开

说明书

技术领域

本发明涉及控制技术领域,尤其涉及一种PWM控制延时时间的获取方法和装置。

背景技术

在基于PWM(Pulse-WidthModulation,脉冲宽度调制)控制的技术工程中(如逆变器、变频器等),需要明确知道“采样时刻”到“执行时刻”之间的时间(PWM控制延时),并通过一定的算法去补偿这个延时时间,从而获得更好的实时控制性能。

如图1所示,在相关技术的检测方法中,通常将采样时刻、处理过程与PWM.cnt同步,从而可以获得明确的控制延时时间。这样,Tdly就是PWM控制延时,也就是等于PWM周期。图1所示为相关技术中的同步时序,其中,Texe是处理过程时间,Tdly是PWM控制延时,等于Tpwm。执行时刻指的是那些已被写入PWM比较寄存器的控制量,开始被PWM模块处理,并在相应的引脚上产生PWM信号。通常地,执行时刻固定在PWM计数器(PWM.cnt)过零处。处理过程指的是从“开始计算”到“向PWM比较寄存器写入控制量”整个过程。

显然,如果采样时刻、过程处理、PWM计数器这三者之间没有严格的同步关系,那么上述方法将无法直接准确得到Tdly。

发明内容

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的一个目的在于提出一种脉冲宽度调制PWM控制延时时间的获取方法,该方法可以允许采样时刻、过程处理、PWM计数器这三者之间没有严格的同步关系,也能够准确得到PWM控制延时时间,提高了灵活性。

本发明的第二个目的在于提出一种脉冲宽度调制PWM控制延时时间的获取装置。

为了实现上述目的,本发明第一方面实施例的PWM控制延时时间的获取方法,包括以下步骤:接收第一PWM信号和第二PWM信号,并根据所述第一PWM信号对PWM计数器进行控制;根据所述第二PWM信号生成采样中断;根据所述PWM计数器的过零时刻生成执行时刻,并根据所述PWM计数器的计数方向生成属性值;根据所述采样中断启动计数器,并根据所述计数器的计数值和计数周期计算第一延时时间;根据所述PWM计数器的计数值和所述PWM计数器的最大计数值和计数周期计算第二延时时间;以及根据所述第一延时时间和所述第二延时时间生成所述PWM控制延时时间。

根据本发明实施例的PWM控制延时时间的获取方法,可以允许采样时刻、过程处理、PWM计数器这三者之间没有严格的同步关系,该方法也能够准确得到PWM控制延时时间,提高了灵活性。

为了实现上述目的,本发明第二方面实施例的PWM控制延时时间的获取装置,包括:接收模块,用于接收第一PWM信号和第二PWM信号,并根据所述第一PWM信号对PWM计数器进行控制;中断生成模块,用于根据所述第二PWM信号生成采样中断;属性值生成模块,用于根据所述PWM计数器的过零时刻生成执行时刻,并根据所述PWM计数器的计数方向生成属性值;第一计算模块,用于根据所述采样中断启动计数器,并根据所述计数器的计数值和计数周期计算第一延时时间;第二计算模块,用于根据所述PWM计数器的计数值和所述PWM计数器的最大计数值和计数周期计算第二延时时间;以及延时时间计算模块,用于根据所述第一延时时间和所述第二延时时间生成所述PWM控制延时时间。

根据本发明实施例的PWM控制延时时间的获取装置,可以允许采样时刻、过程处理、PWM计数器这三者之间没有严格的同步关系,该装置也能够准确得到PWM控制延时时间,提高了灵活性。

附图说明

图1是相关技术中的DSP芯片运行过程中某一时刻的时序示意图;

图2是根据本发明一个实施例的PWM控制延时时间的获取方法的流程图;

图3是根据本发明一个实施例的DSP芯片运行过程中某一时刻的时序示意图;

图4是根据本发明一个实施例的设置状态标志位的流程图;

图5是根据本发明一个实施例的生成PWM控制延时时间的流程图;

图6是根据本发明一个实施例的PWM控制延时时间的获取装置的结构示意图;

图7是根据本发明另一个实施例的PWM控制延时时间的获取装置的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

下面参考附图2-图7描述本发明实施例的PWM控制延时时间的获取方法和装置。

图2是根据本发明一个实施例的PWM控制延时时间的获取方法的流程图。如图2所示,本发明实施例的PWM控制延时时间的获取方法,包括以下步骤:

S101,接收第一PWM信号和第二PWM信号,并根据第一PWM信号对PWM计数器进行控制。

下面以基于FOC(Field-OrientedControl,为磁场导向控制)算法的PMSM(PermanentMagnetSynchronousMotor)控制工程为例。其中,DSP(DigitalSignalProcessor数字信号处理器)芯片选用TI公司的TMS320F28335。

具体地,使用DSP芯片的EPWM1、EPWM2、EPWM3产生同步的PWM信号(即第一PWM信号,即图3中的EPWMA),其PWM频率随工况变化。使用DSP芯片的EPWM4每隔100us触发一次ADC(Analog-to-DigitalConverter,模拟数字转换器)采样,即第二PWM信号(即图3中的EPWMB)。

更具体地,接收第一PWM信号和第二PWM信号,并根据第一PWM信号对PWM计数器进行控制,例如,控制PWM计数器开启。

S102,根据第二PWM信号生成采样中断。

具体地,根据第二PWM信号生成采样中断,即EPWM4允许产生ADC采样完成中断(ADC_ISR,也就是采样时刻)。

S103,根据PWM计数器的过零时刻生成执行时刻,并根据PWM计数器的计数方向生成属性值。

具体地,如图3所示,执行时刻设定在PWM计数器的过零时刻。将属性值记为DIR,当PWM计数器向上计数时,令DIR=1,当PWM计数器向下计数时,令DIR=0。另外,PWM计数器的最大计数值(顶点)设为TBPRD。PWM计数器的计数周期为Tp(例如,PWM计数器的计数值从1变到2所用的时间)。

如图3所示为异步时序示意图,其中,Ta是“采样时刻”到“处理过程开始时刻”的时间间隔;Texe是“处理过程的执行时间”间隔;Tw是“PWM比较寄存器写时刻”到“执行时刻”的时间间隔;Tb是“处理过程开始时刻”到“执行时刻”的时间间隔。执行时刻,指的是那些已被写入PWM比较寄存器的控制量,开始被PWMM模块处理,并在相应的引脚上产生PWM信号。通常地,这个时刻固定在PWM计数器(PWM.cnt)的过零处。处理过程,指的是从“开始计算”到“向PWM比较寄存器写入控制量”整个过程。其中,使用DSP芯片的CpuTimer0模块每隔100us产生一个定时中断,并在其中断函数(TIMER_ISR)中执行处理过程。

另外,使能中断嵌套功能,并且设置ADC_ISR的优先级大于TIMER_ISR。

S104,根据采样中断启动计数器,并根据计数器的计数值和计数周期计算第一延时时间。

在本发明的实施例中,第一延时时间为采样时刻至处理过程开始时刻的时间。

具体地,使用DSP芯片中的CpuTimer1模块作为计时模块(HwTimer),即计数器,用于计算第一延时时间。其中,计数器的计数周期为Tc。

更具体地,在处理过程开始执行时刻,保存计数器的当前计数值,然后根据计数器的当前计数值计算出第一延时时间。

在本发明的一个实施例中,通过以下公式计算第一延时时间:Ta=HwTimer.Cnt*Tc,其中,Ta为第一延时时间,HwTimer.Cnt为计数器的计数值,Tc为计数器的计数周期。

S105,根据PWM计数器的计数值和PWM计数器的最大计数值和计数周期计算第二延时时间。

在本发明的实施例中,第二延时时间为处理过程开始时刻至执行时刻的时间。

具体地,通过以下公式计算第二延时时间:

Tb=(DIR*TBPRD+TBPRD–PWM.Cnt)*Tp,其中,Tb为第二延时时间,DIR为属性值,DIR的值为0或1,其中,DIR=1表示PWM计数器向上计数,DIR=0表示PWM计数器向下计数,TBPRD为PWM计数器的最大计数值,PWM.Cnt为PWM计数器的计数值,Tp为PWM计数器的计数周期。

S106,根据第一延时时间和第二延时时间生成PWM控制延时时间。

在本发明的一个实施例中,根据第一延时时间和第二延时时间生成PWM控制延时时间,具体包括:

S1、判断第二延时时间是否小于或者等于处理过程的执行时间;

S2、如果是,则将第二延时时间的值加上PWM计数器的计数波形的周期值,继续执行S1;

S3、如果否,则PWM控制延时时间等于第一延时时间与第二延时时间之和。

具体地,首先判断第二延时时间Tb是否小于或者等于Texe(处理过程的执行时间),如果否,则PWM控制延时时间Tdly=Ta+Tb;如果是,则令Tb=Tb+Tpwm,然后继续判断Tb是否小于或者等于Texe,如果是,继续令Tb=Tb+Tpwm,直到Tb>Texe,然后根据Tdly=Ta+Tb得到Tdly。其中,如图3所示,Tpwm为PWM计数器的计数波形的周期值。

本发明实施例的PWM控制延时时间的获取方法,可以允许采样时刻、过程处理、PWM计数器这三者之间没有严格的同步关系,该方法也能够准确得到PWM控制延时时间,提高了灵活性。

在本发明的一个实施例中,为了保证正确的执行顺序,引入一个状态标志位(StFlg,初始化为0),在根据第二PWM信号生成采样中断之后,还包括:读取状态标志位;判断状态标志位是否为零;如果状态标志位为零,则将计数器置零,并将状态标识位修改为1。

具体地,如图4所示,先等待ADC_ISR(即采样中断)产生,此时首先判断状态标志位是否为0;如果状态标志位为零,则令HwTimer.Cnt(计数器的计数值)为零,并将状态标志位修改为1。

在本发明的一个实施例中,在根据第一延时时间和第二延时时间生成PWM控制延时时间之后,还包括:将状态标志位置零。

具体地,如图5所示,在过程处理中,首先判断状态标志是否为1;如果是,则根据当前HwTimer.Cnt计算第一延时时间Ta,即通过公式“Ta=HwTimer.Cnt*Tc”计算得到Ta。接下来,根据公式“Tb=(DIR*TBPRD+TBPRD–PWM.Cnt)*Tp”首次计算Tb。如果Tb<=Texe,则反复执行Tb=Tb+Tpwm,直到Tb>Texe。然后,根据“Tdly=Ta+Tb”得到Tdly,最后,将状态标志位置0。

为了实现上述实施例,本发明还提出一种PWM控制延时时间的获取装置。

图6是根据本发明一个实施例的PWM控制延时时间的获取装置的结构示意图。如图6所示,本发明实施例的PWM控制延时时间的获取装置,包括:接收模块100、中断生成模块200、属性值生成模块300、第一计算模块400、第二计算模块500和延时时间计算模块600。

其中,接收模块100用于接收第一PWM信号和第二PWM信号,并根据第一PWM信号对PWM计数器进行控制。

下面以基于FOC算法的PMSM控制工程为例。其中,DSP芯片选用TI公司的TMS320F28335。

具体地,使用DSP芯片的EPWM1、EPWM2、EPWM3产生同步的PWM信号(即第一PWM信号,即图3中的EPWMA),其PWM频率随工况变化。使用DSP芯片的EPWM4每隔100us触发一次ADC(Analog-to-DigitalConverter,模拟数字转换器)采样,即第二PWM信号。

更具体地,接收模块100接收第一PWM信号和第二PWM信号,并根据第一PWM信号对PWM计数器进行控制,例如,控制PWM计数器开启。

中断生成模块200用于根据第二PWM信号生成采样中断。

具体地,中断生成模块200根据第二PWM信号生成采样中断,即EPWM4允许产生ADC采样完成中断(ADC_ISR,也就是采样时刻)。

属性值生成模块300用于根据PWM计数器的过零时刻生成执行时刻,并根据PWM计数器的计数方向生成属性值。

具体地,如图3所示,执行时刻设定在PWM计数器的过零时刻。将属性值记为DIR,当PWM计数器向上计数时,令DIR=1,当PWM计数器向下计数时,令DIR=0。另外,PWM计数器的最大计数值(顶点)设为TBPRD。PWM计数器的计数周期为Tp。

如图3所示为异步时序示意图,其中,Ta是“采样时刻”到“处理过程开始时刻”的时间间隔;Texe是“处理过程的执行时间”间隔;Tw是“PWM比较寄存器写时刻”到“执行时刻”的时间间隔;Tb是“处理过程开始时刻”到“执行时刻”的时间间隔。执行时刻,指的是那些已被写入PWM比较寄存器的控制量,开始被PWMM模块处理,并在相应的引脚上产生PWM信号。通常地,这个时刻固定在PWM计数器(PWM.cnt)的过零处。处理过程,指的是从“开始计算”到“向PWM比较寄存器写入控制量”整个过程。其中,使用DSP芯片的CpuTimer0模块每隔100us产生一个定时中断,并在其中断函数(TIMER_ISR)中执行处理过程。

另外,使能中断嵌套功能,并且设置ADC_ISR的优先级大于TIMER_ISR。

第一计算模块400用于根据采样中断启动计数器,并根据计数器的计数值和计数周期计算第一延时时间。

在本发明的实施例中,第一延时时间为采样时刻至处理过程开始时刻的时间。

具体地,使用DSP芯片中的CpuTimer1模块作为计时模块(HwTimer),即计数器,用于计算第一延时时间。其中,计数器的计数周期为Tc。

更具体地,在处理过程开始执行时刻,保存计数器的当前计数值,然后第一计算模块400根据计数器的当前计数值计算出第一延时时间。

在本发明的一个实施例中,第一计算模块400通过以下公式计算第一延时时间:Ta=HwTimer.Cnt*Tc,其中,Ta为第一延时时间,HwTimer.Cnt为计数器的计数值,Tc为计数器的计数周期。

第二计算模块500用于根据PWM计数器的计数值和PWM计数器的最大计数值和计数周期计算第二延时时间。

在本发明的实施例中,第二延时时间为处理过程开始时刻至执行时刻的时间。

在本发明的一个实施例中,第二计算模块500通过以下公式计算第二延时时间:

Tb=(DIR*TBPRD+TBPRD–PWM.Cnt)*Tp,其中,Tb为第二延时时间,DIR为属性值,DIR的值为0或1,其中,DIR=1表示PWM计数器向上计数,DIR=0表示PWM计数器向下计数,TBPRD为PWM计数器的最大计数值,PWM.Cnt为PWM计数器的计数值,Tp为PWM计数器的计数周期。

延时时间计算模块600用于根据第一延时时间和第二延时时间生成PWM控制延时时间。

在本发明的一个实施例中,延时时间计算模块600具体用于:判断第二延时时间是否小于或者等于处理过程的执行时间,如果否,则PWM控制延时时间等于第一延时时间与第二延时时间之和,如果是,则将第二延时时间的值加上PWM计数器的计数波形的周期值,直至第二延时时间大于处理过程的执行时间。

具体地,延时时间计算模块600首先判断第二延时时间Tb是否小于或者等于Texe(处理过程的执行时间),如果否,则PWM控制延时时间Tdly=Ta+Tb;如果是,则令Tb=Tb+Tpwm,然后继续判断Tb是否小于或者等于Texe,如果是,继续令Tb=Tb+Tpwm,直到Tb>Texe,然后根据Tdly=Ta+Tb得到Tdly。

本发明实施例的PWM控制延时时间的获取装置,可以允许采样时刻、过程处理、PWM计数器这三者之间没有严格的同步关系,该装置也能够准确得到PWM控制延时时间,提高了灵活性。

在本发明的一个实施例中,为了保证正确的执行顺序,引入一个状态标志位(StFlg,初始化为0),如图7所示,PWM控制延时时间的获取装置,还包括:读取模块700、判断模块800和修改模块900。

其中,读取模块700用于在中断生成模块200根据第二PWM信号生成采样中断之后读取状态标志位;判断模块800用于判断状态标志位是否为零;修改模块900用于在状态标志位为零时将计数器置零,并将状态标识位修改为1。

具体地,先等待ADC_ISR(即采样中断)产生,此时读取模块700首先读取状态标志位,判断模块800判断状态标志位是否为0;如果状态标志位为零,修改模块900则令HwTimer.Cnt(计数器的计数值)为零,并将状态标志位修改为1。

在本发明的一个实施例中,修改模块900还用于:在延时时间计算模块600根据第一延时时间和第二延时时间生成PWM控制延时时间之后,将状态标志位置零。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号