本发明涉及电机控制技术领域,尤其涉及一种电机驱动器的死区补偿方法、电机驱动器及存储介质。
背景技术:
在电机控制领域,为了避免逆变器同一桥臂的上下开关管直通,在每一次上下开关管换流的过程中,都需要人为地设置一段上下开关管都不开通的时间,这段时间就是防止上下开关管直通的死区时间。
由于死区时间的设置会导致逆变器输出电压的占空比丢失,使得实际输出电压低于理论值,导致输出电压波形畸变,进而影响电机控制的精度,因此,如何补偿死区问题对输出电压的影响是近年来学者们研究的热点。从本质上讲,现有的众多死区补偿方法可分为两大类:第一类是针对理想死区时间进行补偿,第二类是考虑开关器件非线性因素后对理想死区补偿电压进行修正。目前,理想死区问题已经得到了完美的解决,然而,在实际应用中,由于开关器件非线性因素的多样性与复杂性,对开关器件的非线性因素的补偿问题,并没有非常完美的解决方案。
在开关器件的非线性因素中,开关管压降、开关管的开通延时与关断延时、门极驱动电路的延时是导致输出电压占空比丢失及输出电压畸变的主要因素。其中,开关管压降这一因素直接导致输出电压脉冲的幅值小于理论值,开关过程中的延时因素直接导致输出电压脉冲的宽度大于理论值。只有将输出电压的脉冲幅值误差、脉冲宽度误差都补偿的很精确,才能实现精确的电机控制。
然而,现有技术在进行死区补偿时,通常是将延时时间差(即开关管的开通延时与关断延时之差)作为一个固定值,而延时时间差会随电流的变化而变化,导致死区补偿不精确,影响电机控制精度。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
技术实现要素:
本发明的主要目的在于提供一种电机驱动器的死区补偿方法、电机驱动器及存储介质,旨在解决现有技术中死区补偿不精确,影响电机控制精度的技术问题。
为实现上述目的,本发明提供一种电机驱动器的死区补偿方法,所述方法包括以下步骤:
获取电机的当前电流值;
根据所述当前电流值确定对应的当前延时时间差;
根据所述当前延时时间差对理想死区补偿电压进行修正。
优选地,所述根据所述当前电流值确定对应的当前延时时间差,具体包括:
根据所述当前电流值采用映射曲线确定对应的当前延时时间差,所述映射曲线为反映延时时间差与电流值对应关系的曲线。
优选地,所述根据所述当前电流值采用映射曲线确定对应的当前延时时间差,具体包括:
查找所述映射曲线中的线性区,根据所述当前电流值采用所述线性区确定对应的当前延时时间差。
优选地,所述根据所述当前电流值采用所述线性区确定对应的当前延时时间差,具体包括:
从所述线性区中选取两个参考点,获取各参考点的参考电流值及参考延时时间差,根据所述当前电流值、各参考点的参考电流值及参考延时时间差确定所述当前延时时间差。
优选地,根据所述当前电流值、各参考点的参考电流值及参考延时时间差通过下式确定所述当前延时时间差,
其中,i为当前电流值,δtdelay(i)为当前延时时间差,t(i1,t0)为参考电流值i1对应的参考延时时间差,t(i2,t0)为参考电流值i2对应的参考延时时间差,t0为预设温度值。
优选地,所述查找所述映射曲线中的线性区,具体包括:
获取所述映射曲线上各点的切线斜率,根据所述切线斜率确定所述线性区。
优选地,所述根据所述切线斜率确定所述线性区,具体包括:
将切线斜率等于预设斜率的点作为分割点;
将所述映射曲线按照所述分割点进行分割,获得至少两个分割区;
判断各分割区是否存在切线斜率大于预设斜率的点,将未存在切线斜率大于预设斜率的点的分割区作为所述线性区。
优选地,所述电机为三相变频电机;
相应地,根据所述当前延时时间差通过下式对理想死区补偿电压进行修正,
其中,
此外,为实现上述目的,本发明还提供一种电机驱动器,所述电机驱动器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的死区补偿程序,所述死区补偿程序配置为实现所述的死区补偿方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有死区补偿程序,所述死区补偿程序被处理器执行时实现所述的死区补偿方法的步骤。
本发明通过获取电机的当前电流值,根据所述当前电流值确定对应的当前延时时间差,根据所述当前延时时间差对理想死区补偿电压进行修正,不再将延时时间差作为一个固定值,而是根据当前电流所确定的延时时间差来对理想死区补偿电压进行修正,使输出电压与理论值更接近,提高了电机控制精度。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的电机驱动器结构示意图;
图2为本发明电机驱动器的死区补偿方法第一实施例的流程示意图;
图3为本发明电机驱动器的死区补偿方法第二实施例的流程示意图;
图4为本发明电机驱动器的死区补偿方法第三实施例的流程示意图;
图5为本发明实施例中延时时间差随电流、温度变化的规律示意图;
图6为本发明实施例中修正后的a相死区补偿电压的示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的电机驱动器结构示意图。
如图1所示,该电机驱动器可以包括:处理器1001,例如cpu,通信总线1002、用户接口1003,存储器1004。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。存储器1004可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1004可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的电机驱动器结构并不构成对电机驱动器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1004中可以包括操作系统、用户接口模块以及死区补偿程序。
在图1所示的电机驱动器中,所述电机驱动器通过处理器1001调用存储器1004中存储的死区补偿程序,并执行以下操作:
获取电机的当前电流值;
根据所述当前电流值确定对应的当前延时时间差;
根据所述当前延时时间差对理想死区补偿电压进行修正。
进一步地,处理器1001可以调用存储器1004中存储的死区补偿程序,还执行以下操作:
根据所述当前电流值采用映射曲线确定对应的当前延时时间差,所述映射曲线为反映延时时间差与电流值对应关系的曲线。
进一步地,处理器1001可以调用存储器1004中存储的死区补偿程序,还执行以下操作:
查找所述映射曲线中的线性区,根据所述当前电流值采用所述线性区确定对应的当前延时时间差。
进一步地,处理器1001可以调用存储器1004中存储的死区补偿程序,还执行以下操作:
从所述线性区中选取两个参考点,获取各参考点的参考电流值及参考延时时间差,根据所述当前电流值、各参考点的参考电流值及参考延时时间差确定所述当前延时时间差。
进一步地,处理器1001可以调用存储器1004中存储的死区补偿程序,还执行以下操作:
根据所述当前电流值、各参考点的参考电流值及参考延时时间差通过下式确定所述当前延时时间差,
其中,i为当前电流值,δtdelay(i)为当前延时时间差,t(i1,t0)为参考电流值i1对应的参考延时时间差,t(i2,t0)为参考电流值i2对应的参考延时时间差,t0为预设温度值。
进一步地,处理器1001可以调用存储器1004中存储的死区补偿程序,还执行以下操作:
获取所述映射曲线上各点的切线斜率,根据所述切线斜率确定所述线性区。
进一步地,处理器1001可以调用存储器1004中存储的死区补偿程序,还执行以下操作:
将切线斜率等于预设斜率的点作为分割点;
将所述映射曲线按照所述分割点进行分割,获得至少两个分割区;
判断各分割区是否存在切线斜率大于预设斜率的点,将未存在切线斜率大于预设斜率的点的分割区作为所述线性区。
进一步地,所述电机为三相变频电机,处理器1001可以调用存储器1004中存储的死区补偿程序,还执行以下操作:
根据所述当前延时时间差通过下式对理想死区补偿电压进行修正,
其中,
本实施例通过上述方案,通过获取电机的当前电流值,根据所述当前电流值确定对应的当前延时时间差,根据所述当前延时时间差对理想死区补偿电压进行修正,不再将延时时间差作为一个固定值,而是根据当前电流所确定的开关延时差来对理想死区补偿电压进行修正,使输出电压与理论值更接近,提高了电机控制精度。
基于上述硬件结构,提出本发明电机驱动器的死区补偿方法实施例。
参照图2,图2为本发明电机驱动器的死区补偿方法第一实施例的流程示意图。
在第一实施例中,所述电机驱动器的死区补偿方法包括以下步骤:
s10:获取电机的当前电流值;
需要说明的是,所述当前电流值即为当前时刻流过电机变频器桥臂上开关管的电流值。
可理解的是,可通过多种方式来获取所述当前电流值,例如:可采用电流传感器来获取所述当前电流值,也可采用电流检测芯片来获取所述当前电流值,本实施例对此不加以限制。
s20:根据所述当前电流值确定对应的当前延时时间差;
在具体实现中,由于所述延时时间差会随电流的变化而变化,因此,可根据所述当前电流值来确定对应的当前延时时间差。
为便于确定所述当前延时时间差,可进行多次试验测试,从而获得映射曲线,所述映射曲线为反映延时时间差与电流值对应关系的曲线,因此,本实施例中,步骤s20可根据所述当前电流值采用映射曲线确定对应的当前延时时间差。
需要说明的是,延时时间差即为关断延时时间与开通延时时间的差值,计算公式可采用δtdelay=tturn_off_delay-tturn_on_delay,其中,δtdelay为延时时间差,tturn_off_delay为关断延时时间,tturn_on_delay为开通延时时间。
s30:根据所述当前延时时间差对理想死区补偿电压进行修正。
需要说明的是,理想死区补偿电压即为现有技术中采用理想死区时间进行补偿后的电压,但由于其未考虑到开关器件非线性因素,会导致死区补偿不精确,影响电机控制精度。
本实施例通过获取电机的当前电流值,根据所述当前电流值确定对应的当前延时时间差,根据所述当前延时时间差对理想死区补偿电压进行修正,不再将延时时间差作为一个固定值,而是根据当前电流所确定的开关延时差来对理想死区补偿电压进行修正,使输出电压与理论值更接近,提高了电机控制精度。
进一步地,如图3所示,基于第一实施例提出本发明电机驱动器的死区补偿方法第二实施例。
本实施例中,步骤s20具体包括:
s20’:查找所述映射曲线中的线性区,根据所述当前电流值采用所述线性区确定对应的当前延时时间差。
可理解的是,由于所述映射曲线中可能存在变化幅度较快的非线性区,若采用非线性区确定所述当前延时时间差,会导致获取的当前延时时间差无法保证精度,因此,本实施例中根据所述当前电流值采用所述线性区确定对应的当前延时时间差,从而提高了当前延时时间差的获取精度。
需要说明的是,由于所述线性区的变化幅度通常较慢,故而,其切线斜率通常较小,为便于查找所述映射曲线中的线性区,本实施例中,可获取所述映射曲线上各点的切线斜率,根据所述切线斜率确定所述线性区。
为对所述线性区实现快速查找,本实施例中,可将切线斜率等于预设斜率的点作为分割点;将所述映射曲线按照所述分割点进行分割,获得至少两个分割区;判断各分割区是否存在切线斜率大于预设斜率的点,将未存在切线斜率大于预设斜率的点的分割区作为所述线性区。
进一步地,如图4所示,基于第二实施例提出本发明电机驱动器的死区补偿方法第三实施例。
本实施例中,步骤s20’具体包括:
s20”:查找所述映射曲线中的线性区,从所述线性区中选取两个参考点,获取各参考点的参考电流值及参考延时时间差,根据所述当前电流值、各参考点的参考电流值及参考延时时间差确定所述当前延时时间差。
当然,在具体实现中,可以直接在所述线性区中查找与所述当前电流值对应的当前延时时间差,但考虑获取当前延时时间差的效率问题,本实施例中,可从所述线性区中选取两个参考点,再根据所述当前电流值、各参考点的参考电流值及参考延时时间差确定所述当前延时时间差。
参照图5,根据实验测试结果可计算延时时间差,根据计算结果可知,延时时间差随电流、温度变化的规律如图5中实线所示,图中的横坐标为电流值,纵坐标为延时时间差。
根据图5中规律,为了简化计算,可以忽略温度变化的影响,只考虑电流变化的影响,因此,温度可选取一个固定值t0,在具体实现中t0可根据需要进行设置,例如在固定值t0为60℃时,t0=60℃对应的曲线即为所述映射曲线,相应地,图5中的方框部分即为所述映射曲线的线性区,相应地,本实施例中,可根据所述当前电流值、各参考点的参考电流值及参考延时时间差通过下式确定所述当前延时时间差,
其中,i为当前电流值,δtdelay(i)为当前延时时间差,t(i1,t0)为参考电流值i1对应的参考延时时间差,t(i2,t0)为参考电流值i2对应的参考延时时间差,t0为预设温度值。
需要说明的是,图5中的虚线即为根据上述公式对方框中各电流值分别计算获得的延时时间差,可理解的是,所述当前电流值需要也需要处于所述线性区中才可采用上述公式准确计算当前延时时间差,若当前电流值不处于线性区中,则需要采用其他方式来确定当前延时时间差,例如:通过直接从所述映射曲线中进行对应查找等方式来确定,当然,还可采用其他方式,本实施例对此不加以限制。
可理解的是,所述电机可以为两相变频电机、三相变频电机或四相变频电机等,本实施例中以所述电机为三相变频电机为例,但不限定本发明的保护范围。
本实施例中,由于所述电机为三相变频电机,而三相变频电机的变频器每一相均会具有桥臂,各桥臂分别具有上开关管和下开关管,故而,对于各相上的桥臂而言,分别具有当前电流值,而各相的当前电流值之间相互独立,互不干扰,因此,各相的当前电流值可根据各相的当前电流值分别采用上述公式计算对应的当前延时时间差,故而,可根据所述当前延时时间差通过下式对理想死区补偿电压进行修正,
其中,
需要说明的是,上述δvan_delay(ia)、δvbn_delay(ib)和δvcn_delay(ic)的上述计算公式可基于一个开关周期内伏秒积相等原则,将延时时间误差折算成分量电压误差获得。
本实施例中通过上述公式对理想死区补偿电压进行修正,改善了在高温、高输入电压、低频、低速工况时的控制精度,本实施例中,修正后的a相死区补偿电压可参照图6。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有死区补偿程序,所述死区补偿程序被处理器执行时实现如下操作:
获取电机的当前电流值;
根据所述当前电流值确定对应的当前延时时间差;
根据所述当前延时时间差对理想死区补偿电压进行修正。
进一步地,所述死区补偿程序被处理器执行时还实现如下操作:
根据所述当前电流值采用映射曲线确定对应的当前延时时间差,所述映射曲线为反映延时时间差与电流值对应关系的曲线。
进一步地,所述死区补偿程序被处理器执行时还实现如下操作:
查找所述映射曲线中的线性区,根据所述当前电流值采用所述线性区确定对应的当前延时时间差。
进一步地,所述死区补偿程序被处理器执行时还实现如下操作:
从所述线性区中选取两个参考点,获取各参考点的参考电流值及参考延时时间差,根据所述当前电流值、各参考点的参考电流值及参考延时时间差确定所述当前延时时间差。
进一步地,所述死区补偿程序被处理器执行时还实现如下操作:
根据所述当前电流值、各参考点的参考电流值及参考延时时间差通过下式确定所述当前延时时间差,
其中,i为当前电流值,δtdelay(i)为当前延时时间差,t(i1,t0)为参考电流值i1对应的参考延时时间差,t(i2,t0)为参考电流值i2对应的参考延时时间差,t0为预设温度值。
进一步地,所述死区补偿程序被处理器执行时还实现如下操作:
获取所述映射曲线上各点的切线斜率,根据所述切线斜率确定所述线性区。
进一步地,所述死区补偿程序被处理器执行时还实现如下操作:
将切线斜率等于预设斜率的点作为分割点;
将所述映射曲线按照所述分割点进行分割,获得至少两个分割区;
判断各分割区是否存在切线斜率大于预设斜率的点,将未存在切线斜率大于预设斜率的点的分割区作为所述线性区。
进一步地,所述电机为三相变频电机,所述死区补偿程序被处理器执行时还实现如下操作:
根据所述当前延时时间差通过下式对理想死区补偿电压进行修正,
其中,
本实施例通过上述方案,通过获取电机的当前电流值,根据所述当前电流值确定对应的当前延时时间差,根据所述当前延时时间差对理想死区补偿电压进行修正,不再将延时时间差作为一个固定值,而是根据当前电流所确定的开关延时差来对理想死区补偿电压进行修正,使输出电压与理论值更接近,提高了电机控制精度。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。