计算在控制电机操作中使用的电压提前的方法、系统和装置转让专利

申请号 : CN201310355700.8

文献号 : CN103516277B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : S·E·舒尔斯M·J·格里默K·S·马贾罗夫W·R·考索恩

申请人 : 通用汽车环球科技运作有限责任公司

摘要 :

本公开的实施方式涉及用以计算在控制电机的操作中使用的方法、系统和装置。

权利要求 :

1.一种计算在控制电机操作中使用的电压提前的方法,包括:迭代地执行慢速任务处理循环,其在第一任务处理周期(TTASK2)中以相对较慢的速度执行;

迭代地执行中速任务处理循环,其在第二任务处理周期(TTASK1)中以中速执行,其中,迭代地执行中速任务处理循环的步骤包括:以中速(TTASK1)计算新的瞬时开关频率(fSW_new);以及计算用于PWM电压提前延迟时间的三态值,其中,用于PWM电压提前延迟时间的三态值包括:用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss);用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates);以及用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss);

迭代地执行快速任务处理循环,其在第三任务处理周期(TTASK0)期间以相对较快的速度执行,其中,迭代地执行快速任务处理循环包括:

计算用于PWM电压提前角(Δθ)的三态值,所述用于PWM电压提前角(Δθ)的三态值在当前实际开关频率(fSW)改变至新的瞬时开关频率(fSW_new)时的转变状态期间使用,其中,用于PWM电压提前角(Δθ)的三态值的计算基于:用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss)和转子角速度(ωr)的乘积;用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)和转子角速度(ωr)的乘积;以及用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss)和转子角速度(ωr)的乘积。

2.如权利要求1的方法,其中,迭代地执行慢速任务处理循环的步骤包括:在第一任务处理周期(TTASK2)期间计算一次平均开关频率(fSW_avg)和高频振动跨度频率(fspan),其中,高频振动跨度频率(fspan)对应于当开关频率(fSW)高频振动以产生施加于逆变器模块的开关信号时所允许的频率变化量。

3.如权利要求2的方法,其中,迭代地执行中速任务处理循环的步骤进一步包括:在执行预快速任务处理循环之前在中速任务处理循环的执行期间以中速(TTASK1)计算伪随机数(Krand),以及

其中以中速(TTASK1)计算新的瞬时开关频率(fSW_new)的步骤包括:基于平均开关频率(fSW_avg)、高频振动跨度频率(fspan)和缩放形式的伪随机数(Krand),以中速(TTASK1)计算新的瞬时开关频率(fSW_new);以及进一步包括:

基于新的瞬时开关频率(fSW_new)规律地且连续地再初始化在快速任务处理期间使用的时变参数值,使得在快速任务处理期间使用的时变参数值将被表示新的瞬时开关频率(fSW_new)的正确值更新。

4.如权利要求1的方法,进一步包括:

将用于PWM电压提前延迟时间的三态值存储于包括第一页面和第二页面的双缓冲区,其中,双缓冲区的内容在每次开关频率(fSW)变换时更新两次。

5.如权利要求4所述的方法,其中,计算用于PWM电压提前延迟时间的三态值的步骤包括:

在以初始开关周期(TSW_initial)操作的同时,在中速任务处理循环期间计算用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss);

基于初始开关周期(TSW_initial)和下一个开关周期(TSW_next)计算用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates),其中,在开关频率(fSW)变换状态期间计算中间值,该开关频率(fSW)变换状态发生在中速任务处理循环的执行中;以及基于下一个开关周期(TSW_next),在第二任务处理周期期间计算用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss)。

6.如权利要求5的方法,其中,储存用于PWM电压提前延迟时间的三态值的步骤包括:在执行预快速任务处理循环之前,将用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss)存储于第一页面;

将用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)存储于第二页面,以供电动机控制模块使用,其中中间值用于当第一指数在预快速任务处理循环的执行期间被触发时使同步帧电压指令变换回固定帧;以及

将最终稳态值存储于临时变量中。

7.如权利要求6的方法,其中,执行后快速任务处理循环的步骤进一步包括:用已经存储于临时变量中的最终稳态值来盖写保持在双缓冲区的第二页面中的用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)。

8.如权利要求1的方法,其中,相对较慢的速度低于中速,其中,中速低于相对较快的速度。

9.如权利要求8的方法,其中,快速任务处理是不可由中速任务处理和慢速任务处理中断的,并且其中,中速任务处理是不可由慢速任务处理中断且可由快速任务处理中断的,其中,慢速任务处理是可由快速任务处理和中速任务处理中断的。

10.一种计算在控制电机操作中使用的电压提前的系统,包括:慢速任务处理器模块,其构造为在慢速任务处理循环中迭代地执行低速任务处理,所述慢速任务处理循环在第一任务处理周期(TTASK2)中以相对较慢的速度执行,中速任务处理器模块,其构造为在中速任务处理循环中迭代地执行中速任务处理,所述中速任务处理循环在第二任务处理周期(TTASK1)中以中速执行,其中,中速任务处理器模块包括:计算模块,其构造为计算新的瞬时开关频率(fSW_new),且计算用于PWM电压提前延迟时间的三态值,其中,用于PWM电压提前延迟时间的三态值包括:用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss);用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates);

以及用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss);以及快速任务处理器模块,构造为在快速任务处理循环中迭代地执行快速任务处理,所述快速任务处理循环在第三任务处理周期(TTASK0)中以相对较快的速度执行,其中,快速任务处理循环构造为,计算在当当前实际开关频率(fSW)变为新的瞬时开关频率(fSW_new)时的转变状态中使用的用于PWM电压提前角(Δθ)的三态值,其中,用于PWM电压提前角(Δθ)的三态值的计算基于:用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss)和转子角速度(ωr)的乘积;用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)和转子角速度(ωr)的乘积;以及用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss)和转子角速度(ωr)的乘积。

11.如权利要求10的系统,其中,慢速任务处理器模块进一步包括:第二计算模块,其在每个第一任务处理周期(TTASK2)期间计算一次平均开关频率(fSW_avg)和高频振动跨度频率(fspan),该高频振动跨度频率对应于当开关频率(fSW)高频振动时所允许的频率变化量。

12.如权利要求11的系统,其中,计算模块构造为在中速任务处理循环的执行期间以中速(TTASK1)计算:

伪随机数(Krand),以及

基于平均开关频率(fSW_avg)、高频振动跨度频率(fspan)和缩放形式的伪随机数(Krand)的新的瞬时开关频率(fSW_new);以及进一步包括:

参数再初始化模块,其基于新的瞬时开关频率(fSW_new),规律地且连续地再初始化将由快速任务处理器使用的时变参数值。

13.如权利要求10的系统,进一步包括:

双缓冲区,用于存储用于PWM电压提前延迟时间的三态值,其中,双缓冲区的内容在每一次开关频率(fSW)变换时更新两次。

14.如权利要求13的系统,其中,双缓存区包括第一页面和第二页面,并且其中,中速任务处理器模块进一步包括:

PWM电压提前计算模块,其构造为:在以初始开关周期(TSW_initial)操作的同时在中速任务处理循环期间计算用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss),其中,用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss)在预快速任务处理循环的执行之前存储于第一页面。

15.如权利要求14的系统,其中,PWM电压提前计算模块构造为,基于初始开关周期(TSW_initial)和下一个开关周期(TSW_next),计算用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates),其中,在开关频率(fSW)变换状态中计算中间值,所述开关频率(fSW)变换状态发生在中速任务处理循环的执行期间,其中,用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)随后存储于第二页面以供电动机控制模块使用,从而当第一指数在预快速任务处理循环的执行期间被切换时使同步帧电压指令转换回固定帧。

16.如权利要求15的系统,其中,PWM电压提前计算模块构造为,基于下一个开关周期(TSW_next)在第二任务处理周期中计算用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss),其中,最终稳态值被临时存储于临时变量中,并且其中后快速任务处理器模块进一步包括:

PWM电压提前更新模块,其构造为,使用已经存储于临时变量中的最终稳态值盖写保持在双缓冲区的第二页面中的用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)。

17.如权利要求10的方法,其中快速任务处理是不可由中速任务处理和慢速任务处理中断的,并且其中中速任务处理是不可由慢速任务处理中断且可由快速任务处理中断的,其中慢速任务处理是可由快速任务处理和中速任务处理中断的。

18.一种计算在控制电机操作中使用的电压提前的处理器,包括:计算模块,其构造为计算新的瞬时开关频率(fSW_new)和计算用于PWM电压提前延迟时间的三态值,其中,用于PWM电压提前延迟时间的三态值包括:用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss);用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates);以及用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss);以及快速任务处理器模块,其构造为计算在当当前实际开关频率(fSW)改变至新的瞬时开关频率(fSW_new)时的转变状态中使用的用于PWM电压提前角(Δθ)的三态值,其中,用于PWM电压提前角(Δθ)的三态值的计算基于:用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss)和转子角速度(ωr)的乘积;用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)和转子角速度(ωr)的乘积;以及用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss)和转子角速度(ωr)的乘积。

说明书 :

计算在控制电机操作中使用的电压提前的方法、系统和装

技术领域

[0001] 技术领域主要涉及用于控制多相系统操作的技术,并且更特别地,涉及用于计算在控制电机操作中使用的脉宽调制(PWM)电压提前的方法、系统和装置。

背景技术

[0002] 电机有广泛的应用。例如,混合动力/电动车辆(HEV)典型地包括电力牵引驱动系统,其包括交流(AC)电机,其由功率逆变器和直流(DC)电源(例如蓄电池)驱动。AC电动机的电动机绕组可被连接至功率逆变器模块(PIM)的逆变器子模块。每一个逆变器子模块包括一对开关,其以互补的方式切换,以执行快速切换函数将DC功率转换为AC功率。这一AC功率驱动AC电动机,AC电动机又驱动HEV传动系的轴。
[0003] 一些传统的HEV应用两个三相脉宽调制(PWM)逆变器模块和两个三相AC电机(例如,AC电动机),每一个均由连接到其的三相PWM逆变器模块中的相应一个驱动。在一些系统中,电压指令信号被施加至脉宽调制(PWM)模块。PWM模块将PWM波形施加至相位电压指令信号,以控制相位电压指令信号的脉宽调制且产生被提供给PWM逆变器模块的开关信号。
[0004] 很多现代的高性能AC电动机驱动使用磁场定向控制(FOC)或“矢量”控制的原理来控制AC电动机的控制操作。特别地,矢量控制通常用于变频驱动中以通过控制馈至AC电动机的电流来控制施加于AC电动机的轴的转矩(并因此控制其速度)。简而言之,定子相位电流被测量并转换为对应的复杂空间矢量。这一电流矢量随后被变换至随AC电动机的转子旋转的坐标系。
[0005] 近来,研究者已经在包括电动车辆的多种应用中使用多相电机。如在此使用的,术语“多相位”表示两个或多个相位,且可被用于表示具有两个或多个相位的电机。多相电机典型地包括多相PWM逆变器模块,其驱动一个或多个多相AC电机。这样的多相电机的一个示例是三相AC电机。在三相系统中,一相PWM逆变器模块驱动一个或多个三相AC电机。
[0006] 在这样的多相系统中,电压指令信号被施加至脉宽调制(PWM)模块。为了控制电压指令信号的脉宽调制,PWM模块产生PWM波形,其等效于时均意义的即将到来的电压指令信号。PWM波形具有可控占空比及可变PWM周期,且被用于产生提供给PWM逆变器模块的开关言号。
[0007] PWM逆变器模块使用脉宽调制(PWM),以高效率地产生可变电压/频率输出。PWM电压波形被电动机阻抗有效地过滤,得到转向电动机的正弦曲线基频电流。然而,PWM固有地导致在转向电动机的AC输出相电流上以及在高压DC链路输入上产生波纹电流。这些谐波电流又产生噪声、电磁干扰(EMI)、总线共振、或甚至是转矩波动问题。谐波电流典型地处于第一或第二开关频率载波群及其边带。谐波谱可以具有在不同谐波频率处具有大振幅的尖锐且明显的波峰。这些大振幅波峰通常是最差情形的元凶,就噪声、EMI、总线共振、以及转矩波动而言。
[0008] 减小电流频谱中不同谐波的幅度的一个传统方法是,以固定的速率快速地改变逆变器的开关频率。这被称为“高频振动”。高频振动已经被应用于AC逆变器以及很多其它类型的电气系统,在这些系统中需要传播由于某周期循环(例如系统时钟或PWM)引起的发射光谱。
[0009] 尽管有这些改进,但是当试图在实际的系统中实施高频振动技术时还出现很多问题。
[0010] 需要提供一种改进的方法、系统和装置,用以在电动机驱动系统中实施高频振动,用于控制多相电机的操作。还需要提供改进的方法、系统和装置,用以计算在控制电机的操作中使用的PWM电压提前。本发明的其它期望特征和特性将通过下面结合附图和前面的技术领域和背景技术部分的详细描述和所附权利要求而变得清楚。

发明内容

[0011] 本公开的实施方式涉及用于控制包括驱动电机的逆变器模块的电动机驱动系统中的电机的操作的方法、系统和装置。
[0012] 依照一些公开的实施方式,提供一种系统,其包括慢速任务处理器模块、中速任务处理器模块和快速任务处理器模块。
[0013] 慢速任务处理器模块用于在慢速任务处理循环期间迭代地执行慢速任务处理,在第一任务处理周期中以相对慢速执行(TTASK2)。中速任务处理器模块用于在中速任务处理循环中迭代地执行中速任务处理,在第二任务处理周期中以中速执行(TTASK1)。快速任务处理器模块用于在快速任务处理循环中迭代地执行快速任务处理,其在第三任务处理周期中以相对快速执行(TTASK0)。相对慢速低于中速,且中速低于相对快速。在一个实施方式中,快速任务处理是不可被中速任务处理和慢速任务处理中断的,中速任务处理是不可被慢速任务处理中断且可被快速任务处理中断的,且慢速任务处理是可被快速任务处理和中速任务处理中断的。
[0014] 慢速任务处理器模块包括第一计算模块,其在第一任务处理周期期间计算一次(TTASk2)平均开关频率(fSW_avg)和高频振动跨度频率(fspan),所述高频振动跨度频率(fspan)对应于当开关频率(fSW)高频振动时允许的频率变化量。
[0015] 中速任务处理器模块包括第二计算模块,其构造为计算新的瞬时开关频率(fSW_new),并且计算用于PWM电压提前延迟时间的三态值,其中,用于PWM电压提前延迟时间的三态值包括:用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss);用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates);以及用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss)。在一个实施方式中,第二计算模块包括构造为在中速任务处理循环期间以中速计算(TTASK1):伪随机数(Krand)和基于平均开关频率(fSW_avg)、高频振动跨度频率(fspan)和缩放形式的伪随机数(Krand)的新的瞬时开关频率(fSW_new)。在一个实施方式中,中速任务处理器模块包括参数再初始化模块,其基于新的瞬时开关频率(fSW_new)规律地且连续地再初始化将由快速任务处理器使用的时变参数值。
[0016] 快速任务处理循环构造为计算用于PWM电压提前角(Δθ)的三态值该三态值在当当前实际开关频率(fSW)改变至新的瞬时开关频率(fSW_new)时的过渡状态期间使用。基于下述计算用于PWM电压提前角(Δθ)的三态值:用于PWM电压提前延迟时间的初始稳状值(tPWM_Adv_inital_ss)和转子角速度(ωr)的乘积;用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)和转子角速度(ωr)的乘积;以及用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss)和转于角速度(ωr)的乘积。
[0017] 在一个实施方式中,该系统还包括双缓冲区,用来存储用于PWM电压提前延迟时间的三态值,其中双缓冲区的内容每开关频率(fSW)转变更新两次。双缓冲区可以包括第一页面和第二页面。
[0018] 在一个实施方式中,中速任务处理器模块还可以包括PWM电压提前计算模块,其构造为在以初始开关周期(TSW_initial)操作的同时计算在中速任务处理循环期间用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss)。用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss)在预快速任务处理循环的执行之前被存储于第一页面。PWM电压提前计算模块还构造为,基于初始开关周期(TSW_initial)和下一开关周期(TSW_next)计算用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)。在发生于中速任务处理循环的执行期间的开关频率(fSW)转变状态期间计算中间值。用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)随后存储于第二页面,用于由电动机控制模块使用,以当在预快速任务处理循环的执行期间第一指数反复切换时将同步帧电压指令变换回固定帧。PWM电压提前计算模块还构造为,基于下一个开关周期(TSW_next)计算在第二任务处理周期期间的用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss)。最终稳态值暂时地存储在临时变量中。后快速任务处理器模块可以包括PWM电压提前更新模块,其构造为使用已经存储于临时变量中的最终稳态值盖写保持在双缓冲区的第二页面中的用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)。
[0019] 本发明提供以下技术方案。
[0020] 技术方案1.一种方法,包括:
[0021] 迭代地执行慢速任务处理循环,其在第一任务处理周期(TTASK2)中以相对较慢的速度执行;
[0022] 迭代地执行中速任务处理循环,其在第二任务处理周期(TTASK1)中以中速执行,其中,迭代地执行中速任务处理循环的步骤包括:
[0023] 以中速(TTASK1)计算新的瞬时开关频率(fSW_new);以及
[0024] 计算用于PWM电压提前延迟时间的三态值,其中,用于PWM电压提前延迟时间的三态值包括:用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss);用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates);以及用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss);
[0025] 迭代地执行快速任务处理循环,其在第三任务处理周期(TTASK0)期间以相对较快的速度执行,其中,迭代地执行快速任务处理循环包括:
[0026] 计算用于PWM电压提前角(Δθ)的三态值,所述三态值在当当前实际开关频率(fSW)改变至新的瞬时开关频率(fSW_new)时的转变状态期间使用,其中,用于PWM电压提前角(Δθ)的三态值的计算基于:用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss)和转子角速度(ωr)的乘积;用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)和转子角速度(ωr)的乘积;以及用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss)和转子角速度(ωr)的乘积。
[0027] 技术方案2.如技术方案1的方法,其中,迭代地执行慢速任务处理循环的步骤包括:
[0028] 在第一任务处理周期(TTASK2)期间计算一次平均开关频率(fSW_avg)和高频振动跨度频率(fspan),其中,高频振动跨度频率(fspan)对应于当开关频率(fSW)高频振动以产生施加于逆变器模块的开关信号时所允许的频率变化量。
[0029] 技术方案3.如技术方案2的方法,其中,迭代地执行中速任务处理循环的步骤进一步包括:
[0030] 在执行预快速任务处理循环之前在中速任务处理循环的执行期间以中速(TTASK1)计算伪随机数(Krand),以及
[0031] 其中以中速(TTASK1)计算新的瞬时开关频率(fSW_new)的步骤包括:
[0032] 基于平均开关频率(fSW_avg)、高频振动跨度频率(fspan)和缩放形式的伪随机数(Krand),以中速(TTASK1)计算新的瞬时开关频率(fSW_new);以及
[0033] 进一步包括:
[0034] 基于新的瞬时开关频率(fSW_new)规律地且连续地再初始化在快速任务处理期间使用的时变参数值,使得在快速任务处理期间使用的时变参数值将被表示新的瞬时开关频率(fSW_new)的正确值更新。
[0035] 技术方案4.如技术方案1的方法,进一步包括:
[0036] 将用于PWM电压提前延迟时间的三态值存储于包括第一页面和第二页面的双缓冲区,其中,双缓冲区的内容在每次开关频率(fSW)变换时更新两次。
[0037] 技术方案5.如技术方案4所述的方法,其中,计算用于PWM电压提前延迟时间的三态值的步骤包括:
[0038] 在以初始开关周期(TSW_initial)操作的同时,在中速任务处理循环期间计算用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss);
[0039] 基于初始开关周期(TSW_initial)和下一个开关周期(TSW_next)计算用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates),其中,在开关频率(fSW)变换状态期间计算中间值,该开关频率(fSW)变换状态发生在中速任务处理循环的执行中;以及
[0040] 基于下一个开关周期(TSW_next),在第二任务处理周期期间计算用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss)。
[0041] 技术方案6.如技术方案5的方法,其中,储存用于PWM电压提前延迟时间的三态值的步骤包括:
[0042] 在执行预快速任务处理循环之前,将用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss)存储于第一页面;
[0043] 将用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)存储于第二页面,以供电动机控制模块使用,其中中间值用于当第一指数在预快速任务处理循环的执行期间被触发时使同步帧电压指令变换回固定帧;以及
[0044] 将最终稳态值存储于临时变量中。
[0045] 技术方案7.如技术方案6的方法,其中,执行后快速任务处理循环的步骤进一步包括:
[0046] 用已经存储于临时变量中的最终稳态值来盖写保持在双缓冲区的第二页面中的用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)。
[0047] 技术方案8.如技术方案1的方法,其中,相对较慢的速度低于中速,其中,中速低于相对较快的速度。
[0048] 技术方案9.如技术方案8的方法,其中,快速任务处理是不可由中速任务处理和慢速任务处理中断的,并且其中,中速任务处理是不可由慢速任务处理中断且可由快速任务处理中断的,其中,慢速任务处理是可由快速任务处理和中速任务处理中断的。
[0049] 技术方案10.一种系统,包括:
[0050] 慢速任务处理器模块,其构造为在慢速任务处理循环中迭代地执行低速任务处理,所述慢速任务处理循环在第一任务处理周期(TTASK2)中以相对较慢的速度执行,[0051] 中速任务处理器模块,其构造为在中速任务处理循环中迭代地执行中速任务处理,所述中速任务处理循环在第二任务处理周期(TTASK1)中以中速执行,其中,中速任务处理器模块包括:计算模块,其构造为计算新的瞬时开关频率(fSW_new),且计算用于PWM电压提前延迟时间的三态值,其中,用于PWM电压提前延迟时间的三态值包括:用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss);用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates);以及用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss);以及[0052] 快速任务处理器模块,构造为在快速任务处理循环中迭代地执行快速任务处理,所述快速任务处理循环在第三任务处理周期(TTASK0)中以相对较快的速度执行,其中,快速任务处理循环构造为,计算在当当前实际开关频率(fSW)变为新的瞬时开关频率(fSW_new)时的转变状态中使用的用于PWM电压提前角(Δθ)的三态值,其中,用于PWM电压提前角(Δθ)的三态值的计算基于:用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss)和转子角速度(ωr)的乘积;用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)和转子角速度(ωr)的乘积;以及用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss)和转子角速度(ωr)的乘积。
[0053] 技术方案11.如技术方案10的系统,其中,慢速任务处理器模块进一步包括:
[0054] 第二计算模块,其在每个第一任务处理周期(TTASK2)期间计算一次平均开关频率(fSW_avg)和高频振动跨度频率(fspan),该高频振动跨度频率对应于当开关频率(fSW)高频振动时所允许的频率变化量。
[0055] 技术方案12.如技术方案11的系统,其中,计算模块构造为在中速任务处理循环的执行期间以中速(TTASK1)计算:
[0056] 伪随机数(Krand),以及
[0057] 基于平均开关频率(fSW_avg)、高频振动跨度频率(fspan)和缩放形式的伪随机数(Krand)的新的瞬时开关频率(fSW_new),;以及
[0058] 进一步包括:
[0059] 参数再初始化模块,其基于新的瞬时开关频率(fSW_new),规律地且连续地再初始化将由快速任务处理器使用的时变参数值。
[0060] 技术方案13.如技术方案10的系统,进一步包括:
[0061] 双缓冲区,用于存储用于PWM电压提前延迟时间的三态值,其中,双缓冲区的内容在每一次开关频率(fSW)变换时更新两次。
[0062] 技术方案14.如权利要求13的系统,其中,双缓存区包括第一页面和第二页面,并且其中,中速任务处理器模块进一步包括:
[0063] PWM电压提前计算模块,其构造为:在以初始开关周期(TSW_initial)操作的同时在中速任务处理循环期间计算用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss),其中,用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss)在预快速任务处理循环的执行之前存储于第一页面。
[0064] 技术方案15.如权利要求14的系统,其中,PWM电压提前计算模块构造为,基于初始开关周期(TSW_initial)和下一个开关周期(TSW_next),计算用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates),
[0065] 其中,在开关频率(fSW)变换状态中计算中间值,所述开关频率(fSW)变换状态发生在中速任务处理循环的执行期间,
[0066] 其中,用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)随后存储于第二页面以供电动机控制模块使用,从而当第一指数在预快速任务处理循环的执行期间被切换时使同步帧电压指令转换回固定帧。
[0067] 技术方案16.如权利要求15的系统,其中,PWM电压提前计算模块构造为,基于下一个开关周期(TSW_next)在第二任务处理周期中计算用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss),
[0068] 其中,最终稳态值被临时存储于临时变量中,并且其中后快速任务处理器模块进一步包括:
[0069] PWM电压提前更新模块,其构造为,使用已经存储于临时变量中的最终稳态值盖写保持在双缓冲区的第二页面中的用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)。
[0070] 技术方案17.如技术方案10的方法,其中快速任务处理是不可由中速任务处理和慢速任务处理中断的,并且其中中速任务处理是不可由慢速任务处理中断且可由快速任务处理中断的,其中慢速任务处理是可由快速任务处理和中速任务处理中断的。
[0071] 技术方案18.一种处理器,包括:
[0072] 计算模块,其构造为计算新的瞬时开关频率(fSW_new)和计算用于PWM电压提前延迟时间的三态值,其中,用于PWM电压提前延迟时间的三态值包括:用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss);用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates);以及用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss);以及[0073] 快速任务处理器模块,其构造为计算在当当前实际开关频率(fSW)改变至新的瞬时开关频率(fSW_new)时的转变状态中使用的用于PWM电压提前角(Δθ)的三态值,其中,用于PWM电压提前角(Δθ)的三态值的计算基于:用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss)和转子角速度(ωr)的乘积;用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)和转子角速度(ωr)的乘积;以及用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss)和转子角速度(ωr)的乘积。

附图说明

[0074] 下文将结合下面的附图描述本发明的实施方式,其中相同的序号表示相同的部件,并且
[0075] 附图1是依照所公开的实施方式的电动机驱动系统的一个示例的框图。
[0076] 附图2是电动机驱动系统的一部分的框图,其包括连接至三相AC电动机的二三相PWM电压源逆变器模块。
[0077] 附图3A是依照所公开的一些实施方式的用于高频振动开关频率(fSW)的系统的框图,用于产生施加于三相PWM电压源逆变器模块的开关信号。
[0078] 附图3B是附图3A的第一双缓冲区和第二双缓冲区的一个示例的概念框图。
[0079] 附图3C是示出了依照所公开实施方式的一个应用的附图3A的第一双缓冲区操作方法的流程图。
[0080] 附图4是示出了依照所公开的一些实施方式的慢速任务处理的流程图。
[0081] 附图5是示出了依照所公开的一些实施方式的中速任务处理的流程图。
[0082] 附图6A是示出了依照所公开的一些实施方式的快速任务处理的流程图。
[0083] 附图6B是示出了电流取样点的图,该电流取样点用于计算具有时段(Ts)的PWM电压信号的占空比,以说明在离散时间控制系统中经历的PWM电压延迟时间的概念和PWM电压提前的概念。
[0084] 附图6C示出了在开关周期(TSW)的阶跃变化和补偿在该阶跃变化期间实施延迟所需的PWM电压提前的三个对应值。
[0085] 附图7A是一组图形,示出了当使用现有技术的具有高频振动的AC电动机控制算法以相对较高的电动机速度操作时的电机速度、所命令的转矩和电动机的相位电流。
[0086] 附图7B是一组图形,示出了当使用依照所公开实施方式的具有高频振动时的AC电动机控制在相对较高的电动机速度下操作时的电动机速度、所命令的转矩和电动机的相位电流。

具体实施方式

[0087] 如在此使用的,词语“示例性”意味着“用作示例、举例或说明”。下面的详细描述实际上仅是示例,且并不意欲限制本发明或应用和本发明的使用。在此描述为“示例性”的任何实施方式并不需要被解释为比其它实施更优选或有利。在这一具体实施方式部分描述的所有实施方式是提供给本领域技术人员使其能制造或使用本发明的示例性实施方式,且并不限制由权利要求确定的本发明的范围。此外,不受在前述技术领域、背景技术、发明内容或下面的详细描述中存在的仟何明示或暗示的理论限制。
[0088] 在详细描述依照本发明的具有实施方式之前,可以观察到,所述实施方式主要在于关于控制多相系统的操作的方法各步骤和装置部件的结合。可以理解的是,在此描述的本发明的实施方式可以使用硬件、软件或其结合而实施。在此描述的控制电路可以包括多个部件、模块、电路和其它逻辑,其可以使用模拟和/或数字电路的组合、分离或集成的模拟或数字电子电路或其组合来实施。如在此使用的,术语“模块”表示基于用于执行任务的装置、电路、电气元件、和/或基于软件的部件。在一些实施方式中,当实施这种电路中的部分或全部控制逻辑时,在此描述的控制电路可以使用一个或多个特定用途集成电路(ASIC)、一个或多个微处理器、和/或一个或多个基于数字信号处理器(DSP)的电路而实施。可以理解的是,在此描述的本发明的实施方式可以包括一个或多个传统的处理器和唯一一存储的程序指令,这些指令控制一个或多个处理器结合特定的非处理器电路来实施用于控制多相系统的操作的函数中的一些、大部分或全部,如在此描述的一样。这样,这些函数可以被解释为用于控制多相系统的操作的方法的步骤。替代地,一些或全部函数可以由不具有存储的程序指令的状态机来实施,或实施于一个或多个特定用途集成电路(ASIC)内,其中每个函数或某些函数的一些组合实施为定制逻辑。当然,可以使用两个方法的组合。因此,用于这些函数的方法和装置将在此描述。此外,可以预期的是,本领域技术人员在此处公开的概念和原则的引导下,尽管可能要付出辛苦努力和被例如可用时间、现有技术和经济性考虑等激发的多个设计选择,还是能够容易地通过最少的试验而得到这样的软件指令和程序和IC。
[0089] 概述
[0090] 本发明的实施方式涉及用于控制多相系统的操作的方法、系统和装置。在一个示例性实施方式中,多相电机可被实施于例如混合动力/电动车辆(HEV)的操作环境中。在将被描述的示例性实施方式中,控制科技和技术将被描述为应用于混合动力/电动车辆。然而,本领域技术人员可以理解的是,相同或相似的科技和技术可以应用于其它系统的环境中,在这些系统中当期望降低PWM开关频率对噪声、EMI、总线共振和转矩波动的负面影响时期望控制多相系统的操作。就这一点而言,在此公开的任何概念可以大体应用于“车辆”,并且如在此使用的,术语“车辆”广泛地表示具有AC电机的非生命的运输机械。此外,术语“车辆”并不受任何特定的推进技术限制,例如汽油或柴油燃料。相反,车辆还包括混合动力车辆、电池电动车辆、氢动力车辆、以及使用多种其它替代燃料操作的车辆。
[0091] 正如在此使用的,术语“交流(AC)电机”通常表示“将电能转化为机械能或反之亦然的装置或设备”。AC电机可以总体地被分类为同步AC电机和异少AC电机。同步AC电机可以包括永磁电机和磁阻电机。永磁电机包括表贴式永磁电机(SMPMM)和内部永磁电机(IPMM)。异步AC电机包括感应电机。虽然AC电机可以是AC电动机(例如,用于转变在其输入的AC电能动力以产生机械能或动力的装置),AC电机并不被限制为AC电动机,也可包括发电机,其用于将在其原动机处的机械能或动力转换为在其输出处的AC电能或动力。任何所述的电机可以是AC电动机或AC发电机。AC电动机是由交流电驱动的电动机。在一些实施方式中,AC电动机包括固定的外定子和内转子,所述定子具有被提供有交流电以产生旋转的磁场的绕组,所述内转子连接至被旋转的磁场赋予转矩的输出轴。根据使用的转子类型,AC电动机可以分类为同步的或异步的。
[0092] 附图1是依照所公开实施方式的电动机驱动系统100的一个示例的框图。该系统100经由连接至三相AC电机120三相脉宽调制(PWM)电压源逆变器模块110控制三相AC
电机120,使得三相AC电机120能通过调整控制三相AC电机120的电流122-124有效地使用提供给三相PWM电压源逆变器模块110的DC输入电压(Vdc)139。在一个示例性实施方式中,电动机驱动系统100可以用于在HEV中控制转矩。
[0093] 在以下描述的一个特定的非限制实施中,三相AC电机120被实施为三相AC驱动的电动机120;然而,可以理解的是,示出的实施方式仅是所公开的实施方式可以应用于其的AC电机的类型中的一个非限制示例,并且进一步地,所公开的实施方式可以应用于包括更少或更多相位的任意多相AC电机。
[0094] 三相AC电动机120经由三个逆变器电极连接至三相PWM电压源逆变器模块110且基于从三相PWM电压源逆变器模块110接收的三相正弦电流信号122…124产生机械动力(转矩×速度)。
[0095] 在描述系统100的操作细节之前,将参考附图2提供三相PWM电压源逆变器模块110的一个示例性实施的更详细描述(包括其如何连接至三相AC电动机120)。
[0096] 附图2是是电动机驱动系统100的一部分的框图,其包括连接至三相AC电动机120的三相PWM电压源逆变器模块110。值得注意的是,附图1中的三相PWM电压源逆变器模块110和三相电动机120并不限制于这一实施;相反,附图2仅示出了附图1中的三相PWM电压源逆变器模块110和三相电动机120如何可以以一特定实施方式而实现的示例。
[0097] 如附图2所示,三相电动机120具有三个定子或电动机绕组120A、120B、120C,它们连接至电动机接线端A、B、C和三相PWM电压源逆变器模块110。三相PWM电压源逆变器模块110包括电容180和三个逆变器子模块115、117、119。在这一特定实施方式中,在相位A逆变器子模块115连接至电动机绕组120A,在相位B逆变器子模块117连接至电动机绕组120B,并且在相位C逆变器子模块119连接至电动机绕组120C。进入电动机绕组A120A的电流流出电动机绕组B、C120B-120C,进入电动机绕组B120B的电流流出电动机绕组A和C、
120A、120C,并且进入电动机绕组C120C的电流流出电动机绕组A和B、120A、120B。
[0098] 合成的相位或定子电流(Ias-Ics)122、123、124流经相应的定子绕组120A-120C。在定子绕组120A-120C中的每一个上的相位-中性电压分别标示为Van、Vbn、Vcn,且在定子绕组120A-120C的每一个中产生的反电动势(EMF)电压分别表示为电压Ea、Eb、Ec,由理想电压源产生,每一个分别示出与定子绕组120A-120C串联连接。正如已知的一样,这些反EMF电压Ea、Eb、Ec是在相应的定子绕组120A-120C中由永磁转子的旋转而感应出的电压。虽然没有示出,电动机120可以被连接至传动轴。
[0099] 三相PWM电压源逆变器模块110包括电容180、具有双开关182/183、184/185的第一逆变器子模块115、具有双开关186/187、188/189的第二逆变器子模块117、以及具有双开关190/191、192/193的第三逆变器子模块119。这样,三相PWM电压源逆变器模块110具有六个固态可控制开关装置182、184、186、188、190、192和六个二极管183、185、187、
189、191、193,以适当地切换复合电压(VDC),以及提供三相AC电动机120的定子绕组120A、
120B、120C的三相激励。
[0100] 闭环电动机控制器108能从电动机120接收电动机指令信号和电动机操作信号并产生控制信号109,用于控制逆变器子模块115、117、119中的固态开关装置182、184、186、188、190、192的开关。通过向各个逆变器子模块115、117、119提供适当的控制型号109-1…
109-3,闭环电动机控制器102控制逆变器子模块115、117、119内的固态开关装置182、184、
186、188、190、192的开关且由此控制分别提供给电动机绕组120A-120C的逆变器子模块
115、117、119的输出。由三相PWM电压源逆变器模块110的逆变器子模块115、117、119产生的合成定子电流(1as…Ics)122-124被供给电动机绕组120A、120B、120C。电压Van、Vbn、Vcn和节点N处的电压随时间根据三相PWM电压源逆变器模块110的逆变器子模块115、117、
119中的开关182、184、186、188、190、192的开/关状态而波动,如下文所述。
[0101] 再次参考附图1,电动机驱动系统100包括控制器102。控制器102包括电动机控制模块104、开关频率计算模块105和脉宽调制(PWM)模块108。
[0102] 在一个示例性实施方式中,电动机控制模块104可以包括下列模块,例如,转矩-电流映射模块、abc坐标系-至-αβ坐标系转换模块、稳态-至同步转换模块、同步坐标系电流调节模块、同步至稳态转换模块、αβ坐标系至abc坐标系(α-abc)转换模块,等等,它们共同操作以产生发送至PWM模块108的稳态坐标系电压指令信号(Vas*...Vcs*)107(也称为“相位电压指令信号”)。这些模块的细节在本领域是已知的,且出于简洁的考虑而不详细描述。
[0103] 开关频率计算模块105产生开关频率(fSW)信号106。
[0104] 三相PWM电压源逆变器模块110连接至PWM模块108。PWM模块108用于相位电压指令信号(Vas*...Vcs*)107的脉宽调制(PWM)的控制。PWM模块108中实施的特定调制算法可以是任何已知的调制算法,包括空间矢量脉宽调制(SVPWM)技术,以控制脉宽调制(PWM)来基于DC输入139产生以变化的速度驱动三相AC驱动的电极120的交流(AC)波
形。
[0105] 为此,PWM模块108处理开关频率(fSW)信号106和稳态坐标系电压指令信号(Vas*...Vcs*)107,以产生驱动三相PWM电压源逆变器模块110的开关装置182、184、186、
188、190、192的开关信号109。开关信号109基于占空比波形而产生,其未在附图1中示出,但相反地在PWM模块108内生成以在每一个PWM周期具有特定的占空比。PWM模块108基于开关频率(fSW)修改相位电压指令信号(Vas*...Vcs*)107以产生占空比波形(附图1中未示出)和开关信号(Sa…Sc)109,其提供给三相PWM电压源逆变器模块110。开关信号
109是PWM波形,其在每一个PWM周期具有特定的占空比,该特定的占空比由在PWM模块内部产生的占空比波形确定。
[0106] 开关信号109控制三相PWM电压源逆变器模块110中的开关的开关状态,以在每一个相位A、B、C产生三相电压。三相PWM电压源逆变器模块110必须被控制以使得在相同逆变器子模块115、117、119(附图2)中不存在两个开关或“支脚”均接通的时间以防止DC电源短路。这样,在相同逆变器子模块115、117、119(附图2)中的开关以互补的方式操作,使得当一个断开时另一个接通,反之亦然。为了进一步描述,在任何特定时刻的给定相位(A…C)中,开关中的一个断开且开关中的另一个接通(也就是,在一个具体的逆变器子模块中的两个开关必须具有相反的接通/断开状态)。例如相位A而言,当开关182接通时,开关184断开,且反之亦然。这样,对于特定的逆变器子模块,在该逆变器子模块中的两个开关的接通/断开态可以被表示为二进位1或二进位0。例如,当在给定相位中上开关接通(且下开关断开)时,二进制位的值将为一(1),并且当在给定相位中下开关接通(且上关断开)时,二进制位的值将为零(0)。
[0107] 三相PWM电压源逆变器模块110接收DC输入电压(Vdc)139和开关信号109,且使用它们以在逆变器电极产生三相交流(AC)电压信号波形,其以变化的速度(ωr)驱动三相AC电机120。三相电极120接收由三相PWM电压源逆变器模块110产生的三相电压信号且以所指令的转矩(Te*)产生电动机输出。虽然没有在附图1中示出,系统100还可以包括连接至且由三相AC电机120的轴驱动的齿轮。
[0108] 离散时间控制和不同处理速率
[0109] 大部分的PWM电压源逆变器模块实施为离散时间控制系统。在高生能应用中,存在闭环电流控制,例如场定向控制或矢量控制。电动机控制算法被写入软件且以特定速度执行。
[0110] 例如,一些任务或函数(例如电流调节控制和PWM产生)可以一循环来执行或实施,该循环以相对较快的速度执行(例如,对于一些系统以1千赫至20千赫的范围执行的循环)。执行这一循环的相对较快的速度可通常同步于PWM频率,或在一些应用中可能地处于PWM频率的子谐波。
[0111] 另一些任务或函数(例如转矩指令处理和电流指令确定)可以一循环来执行或实施,该循环以低于所述相对较快速度的中速执行(例如,对于一些系统每2毫秒执行的循环)。
[0112] 还有一些任务或函数(例如平均逆变器频率的计算或其它缓慢变化参数)可以一循环执行,该循环以低于中速的慢速执行(例如,对于一些系统每10毫秒执行的循环)。
[0113] 很多电动机控制算法需要知道逆变器开关频率/周期(或PWM速度或取样速度)以正确地执行特定计算。一些示例可以是离散时间过滤系数、PI调节器增益、延迟补偿、逆变器死区补偿,等等。
[0114] 在传统系统中,逆变器频率根据驱动系统操作情况(例如,输入DC电压、电动机速度、负载转矩、逆变器温度,等等)缓慢地改变。在没有任何特定的预防措施或算法的情况也可能实现良好的系统性能。
[0115] 高频振动
[0116] 如上所述,高频振动是通过以固定速率快速改变逆变器的开关频率来降低在电流谱中的不同谐波的幅度的一种传统方法。高频振动已经被应用至AC逆变器和多种其它类型的电气系统,其中期望传播由于某周期循环(例如系统时钟或PWM)而引起的发射谱。
[0117] 对于电动机驱动系统的给定操作条件(例如,输入DC电压、电动机速度、负载转矩和逆变器温度),逆变器将以预定的平均开关频率操作。这一平均频率可以基于多个标准而选择,例如,可控性、噪声、效率,等等。
[0118] 当采用高频振动时,频率在围绕平均值的一个特定波段内被周期调整。方程式(1)示出了包括高频振动的瞬时逆变器开关频率:
[0119] fsw=fsw_avg+Krand·fspan (1)
[0120] 其中,fsw是以Hz为单位的瞬时开关频率,fsw_avg是以Hz为单位的时间平均开关周期,fspan是以Hz为单位的由高频振动引起的开关频率中的总峰值-峰值变化,并且Krand是在范围-0.5→+0.5的伪随机数。伪随机数发生器用于计算可以从-0.5至+0.5改变的Krand。这一数字以高频振动速率(frate)更新。因此,瞬时开关频率将在每一个frate跳至新的随机值。确定关于传播所述谱的高频振动生能的关键参数是高频振动跨度和高频振动速率(分别是fspan和frate)。增加高频振动跨度在更宽的频率范围上传播每一个谐波。增加高频振动速率使得频率调整更为迅速,因而降低了逆变器在任意给定瞬时频率下的操作时间。典型的高频振动速率可以是2-10毫秒,同时高频振动跨度可以在平均开关频率的峰值-峰值的10%的范围内。确切值将根据应用而改变。
[0121] 传统高频振动的缺点
[0122] 当高频振动技术应用至AC电动机驱动系统时,开关频率以更快的速度改变且改变显著的量。这样会导致在实际开关频率和用以计算控制算法中使用的参数值(滤波器系数、调整器增益、延迟补偿等)的开关频率之间的不匹配。
[0123] 这样,控制算法的性能会退化除非算法采用特定修改。例如,在电流调节系统中,电动机驱动电流会振荡。电流振荡会导致不希望的转矩振荡、噪声、或甚至是不稳定性(例如,电流控制的损失和过电流停止)。这些退化是不能接受的的,并且应该在采用高频振动之前被解决。
[0124] 一些公开的实施方式提供了用于在电动机驱动系统中实施高频振动的方法、系统和装置,其使得多相电机的控制对于由于高频振动引起的开关频率的频繁且显著的变化而言强健。
[0125] 附图3A是依照公开的一些实施方式的用于使开关频率(fSW)高频振动的系统300的框图,其用于产生应用于三相PWM电压源逆变器模块110的开关信号109。附图3B是附图3A的第一双缓冲区和第二双缓冲区的一个示例的概念框图。附图3A的系统300包括慢速任务处理器模块310、中速任务处理器模块320、和快速任务处理器模块340。
[0126] 慢速任务处理器模块310以相对较慢的速度(TTASK2)或频率(例如,在一个示例性实施中,近似地为每10毫秒一次)迭代地实施或执行慢速任务处理函数。
[0127] 中速任务处理器模块320以中速(TTASK1)或频率(例如,在一个示例性实施中,近似地为每2毫秒一次)迭代地实施或执行中速任务处理函数。
[0128] 快速任务处理器模块340以快速(TTASK0)或频率(例如,在一个示例性实施中,近似地为每0.1毫秒或100微秒一次)迭代地实施或执行快速任务处理函数。在一些实施方式中,快速任务处理器模块340以PWM速率或开关频率(fSW)实施或执行快速任务处理,所述PWM速率或开关频率(fSW)在一些系统中可以处于1kHz至20kHz的范围内。在其他系统中,PWM速率为快速任务处理或取样速率的较高倍数。
[0129] 快速任务处理是不可中断的。快速任务处理能中断中速任务处理和慢速任务处理二者。中速任务处理能中断慢速任务处理。
[0130] 慢速任务处理器模块310包括计算模块312,其计算平均开关频率(fSW_avg)和高频振动跨度频率(fspan)(或允许的频率改变量)。此外,模块314可以执行或计算其它慢速函数,例如,温度测量、滤波或缓慢改变的信号等等。
[0131] 中速任务处理器模块320包括执行中速任务计算的计算模块322、再初始化将由快速任务处理器340使用的参数值的参数再初始化模块324、计算用于PWM电压提前的三态值的可选PWM电压提前计算模块326、设置标记变量以传给快速任务处理器340的标记变量控制模块328、以及模块329,其中模块329能执行或计算其它中速函数,例如转矩指令处理、电流指令产生、场弱化、系统建模等等。
[0132] 计算模块322接收由慢速任务处理器模块310计算的平均开关频率(fSW_avg)和高频振动跨度频率(fspan)。计算模块322计算伪随机数(Krand)且对其进行缩放或标准化以使其落入-0.5至+0.5的范围内。计算模块322使用平均开关频率(fSW_avg)、高频振动跨度频率(fspan)和缩放的伪随机数(Krand)来计算瞬时开关频率(fSW_new),该瞬时开关频率以可以与高频振动速率(frate)相同的相当快的中速更新。在一个实施方式中,计算模块322按照上面的方程式(1)计算新的瞬时开关频率(fSW_new)。
[0133] 参数再初始化模块
[0134] 电动机控制计算中使用的一些类型的参数是开关频率(fSW)或取样速率的函数(也就是,快速任务处理周期)。快速任务处理器340以比中速任务处理器模块320高得多的频率操作。这样,存在中速任务处理器模块320和中速任务处理可能被快速任务处理器340多次中断的可能性,且因此中速任务处理器模块320可以在参数再初始化计算的中间被中断。因此可能的是,在快速任务处理600期间无一、一些或全部的所使用的时变参数将不被表示实际开关频率(fSW)的正确值更新,这可能导致不正确的控制。这样,当开关频率(fSW)在操作期间动态地改变时,这些参数需要被更新以反映实际开关频率(fSW)。
[0135] 为此,参数再初始化模块324使用计算模块322计算的新的瞬时开关频率(fSW_new)规律地对在快速任务处理器340期间将被使用的所有时变参数值进行再初始化。在一个实施方式中,参数再初始化模块324在设置标记变量(在328)之前规律地且连续地再初始化所有时变参数值以改变至新的开关频率(fSW)(与在不同时间执行再初始化相反)。换句话说,执行参数再初始化的软件模块在整个中速任务计算过程中紧密地聚合在一起且不分散。这样有助于减少时变参数值(其将在快速任务处理期间被使用)没有被表示实际开关频率(fSW)的正确值更新的机会。
[0136] 双缓冲区和敏感或临界参数的双缓冲
[0137] 相比之下,一些临界的时变参数对开关频率(fSW)中的错误更为敏感,并且需要额外的处理以确保参数值与实际开关频率(fSW)的正确对准。所述参数中对开关频率(fSW)中的错误敏感的一些示例可包括那些与占空比钳位(duty cycle clamping)、死区补偿等等。
[0138] 对于这些敏感或临界的时变参数,可以使用双缓冲区330以避免参数值错误。在这一双缓冲区方法中,每一个敏感参数的参数值由两个值的阵列表示。应注意到的是,双缓冲区330是可选的且并不需要被实施于所有的实施方式中。
[0139] 双缓冲区330包括第一双缓冲区334和第二双缓冲区336。第一双缓冲区334保持第一组参数值,且第二双缓冲区336保持第二组参数值。例如,在一个实施方式中,在特定的瞬时,双缓冲区334保持用于这样的参数的参数值,该参数具有应反映下一个/即将到来的快速任务处理周期(TTASK0)的值,而第二双缓冲区336保持用于这样的参数的值,该参数具有应反映当前/现有的快速任务处理周期(TTASK0)的值。
[0140] 在一个实施方式中,第一双缓冲区334和第二双缓冲区336每一个都具有两个页面(在这一示例中,第一页面334-A/第二页面334-B、和第三页面336-A/第四页面336-B)。例如,第一双缓冲区334具有在下面将被称为第一页面334-A和第二页面334-B的两个页面。每一个页面包括许多单元。每一个单元用于储存特定敏感参数的参数值。附图3B示出第一双缓冲区334具有两个页面334-A、334-B,为说明的目的每一个均被示出为列,并且附图3B还示出第二双缓冲区336具有两个其他页面336-A、336-B,为说明的目的每一个均被示出为列。第一双缓冲区334的每一个页面334-A、334-B(或列)包括多个单元,所述单元在该页面或列内成排表示。每一排相应于一个单元,用以存储用于特定敏感参数的参数值。例如,第一排可以存储特定滤波增益系数,第二排可以存数占空比限值,等等。同样,第二双缓冲区336包括表示为列的两个页面336-A、336-B。每一个页面336-A、336-B(或列)包括多个单元,其在该页面或列内成排表示。每一排相应于一个单元,用以存储用于特定敏感参数的参数值。
[0141] 第一双缓冲区334和第二双缓冲区336以相似的方式操作,但是为了简洁,在下文将参考附图3C仅提供第一双缓冲区334的操作的描述。
[0142] 在任何瞬时时刻,电动机控制算法(例如,电动机控制模块104和PWM模块108)将利用页面334-A、334-B中一者(例如,第一页面334-A)的内容。同时,中速任务处理器模块320可以基于即将到来的开关频率来更新另一缓冲页面(例如,第二页面334-B)。在任何给定时间,一个页面的参数值被控制算法(例如,在块360中的计算)使用,同时另一页面的参数值被更新以备未来使用。通过触发指数1的值,指数1每一中速任务处理周期(TTASK1)改变一次其所指向的页面。在上面的示例中,一旦在第二页面334-B中所有的新参数值都已被更新,实际开关频率可以被改变。在这一瞬时,两个页面的角色将被转换。
[0143] 为了进一步描述,在快速任务处理期间,快速任务处理器340以中速任务处理速率设置并触发指示器以交替地指向第一双缓冲区334的第一页面334-A和第二页面334-B。指示器告知适用的控制算法页面334-A、334-B中的哪一者将被用于所述适用的控制算法以及页面334-A、334-B中的哪一者将被更新以备未来使用。因此,保持于一个页面的一组参数值将由快速任务处理器340在实际控制算法或函数中使用,同时存储于另一页面的参数值可以根据由计算模块322计算出的新的瞬时开关频率(fSW_new)被参数再初始化模块
324再初始化。
[0144] 所以,对于一个中速任务处理周期(TTASK1),指数1指向一个页面,并且其在接下来的中速任务处理周期(TTASK1)中指向另一页面。在上面的示例中,电动机控制算法现在将利用第二页面334-B中的内容,同时中速任务处理器可以基于新的开关频率更新第一页面334-A。因此,每次开关频率改变,第一页面334-A和第二页面334-B的角色就颠倒。
[0145] 双缓冲区的模作
[0146] 附图3C是示出了依照所公开的实施方式的一个实施的第一双缓冲区334的操作方法385的流程图。将参考附图3A和3B描述附图3C。
[0147] 在步骤386,中速任务处理器模块320确定指数1的值是否是逻辑一或逻辑零。
[0148] 当指数1的值是逻辑一(1)时,该方法进行至步骤387,并且电动机控制算法使用储存于(第一双缓冲区334的)第一页面334-A中的参数值,该参数值反映了下一个/即将到来的快速任务处理周期(TTASK0)。
[0149] 在步骤388,中速任务处理器模块320确定新的/下一个中速任务处理周期(TTASK1)是否已经开始。
[0150] 当中速任务处理器模块320确定新的或下一个中速任务处理周期(TTASK1)还未开始时,方法385循环回到步骤387。
[0151] 当中速任务处理器模块320确定新的或下一个中速任务处理周期(TTASK1)已经开始时,方法385进行至步骤389。在步骤389,中速任务处理器模块320在每一中速任务处理周期(TTASK1)基于由中速任务处理器模块320计算的新的(或即将的/未来的)开关频率(fSW_new)更新一次存储于第二页面334-B中的参数值。
[0152] 在步骤390,中速任务处理器模块320确定储存于第二页面334-B中的所有参数值是否已被更新。当中速任务处理器模块320确定了储存于第二页面334-B中的所有参数值还未被更新时,方法385循环回到步骤387。
[0153] 当中速任务处理器模块320确定储存于第二页面334-B中的所有参数值已经被更新时,方法385进行到步骤391。在步骤391,快速任务处理器模块340将(实际/当前)开关频率(fSW)改变至新的开关频率(fSW_new),触发指数1至逻辑零(0),并且方法385随后循环回到步骤386,此时指数1将被切换至逻辑零(0)。触发指数1至逻辑零(0)颠倒了第一页面334-A和第二页面334-B的角色,使得控制算法将使用第二页面334-B的参数值且基于新的开关频率(fSW_new)更新第一页面334-A的参数值。
[0154] 当方法386循环回到步骤386时,中速任务处理器模块320再次确定指数1的值是否是逻辑一或逻辑零。
[0155] 在这一迭代中,指数1的值是逻辑零(0),并且方法385进行至步骤392,其中电动机控制逻辑使用存储于(第一双缓冲区334的)第二页面334-B的参数值,其反映下一个/接下来的快速任务处理周期(TTASK0)。
[0156] 在步骤393,中速任务处理器模块320确定新的/下一中速任务处理周期(TTASK1)是否已经开始。
[0157] 当中速任务处理器模块320确定新的/下一中速任务处理周期(TTASK1)还未开始时,方法385循环回到步骤392。
[0158] 当中速任务处理器模块320确定新的/下一中速任务处理周期(TTASK1)已经开始时,方法385进行到步骤394。在步骤394,中速任务处理器模块320在每一中速任务处理周期(TTASK1)基于由中速任务处理器模块320计算的新的开关频率(fSW_new)更新一次存储于第一页面334-A中的参数值。
[0159] 在步骤395,中速任务处理器模块320确定储存于第一页面334-A中的所有参数值是否已被更新。当中速任务处理器模块320确定储存于第一页面334-A中的所有参数值还未被更新时,方法385循环回到步骤392。
[0160] 当中速任务处理器模块320确定储存于第一页面334-A中的所有参数值已经被更新时,方法385进行到步骤396。在步骤396,快速任务处理器模块340将(实际/当前)开关频率(fSW)改变至另一个新的开关频率(fSW_new),触发指数1至逻辑一(1),并且方法385随后循环回到步骤386,此时指数1将被切换至逻辑一(1)。触发指数1至逻辑一(1)颠倒了第二页面334-B和第一页面334-A的角色,使得控制算法将使用第一页面334-A的参数值且基于下一新的开关频率(fSW_new)更新第二页面334-B的参数值。
[0161] 用于实施双缓冲区334/336的处理逻辑可以依照特定的实际应用而以多种不同方式实施。
[0162] 例如,在一个实施中,可以使用异算符OR(XOR),如表1所示,其示出了输入B为固定值的情况下的按位异算符OR(XOR)。
[0163]输入A 输入B 异算OR(A^B)
0 1 1
1 1 0
[0164] 表1
[0165] 如本领域技术人员已知的和如表1所示,输入A与等于1的固定输入B的按位异算OR等于主要用于转换输入A。
[0166] 在一个示例性实施中,双缓冲区334/336可以在使用C语言的软件中实施。在C语言中,引用开始于元素0的阵列。对于二元阵列,转换为阵列的指数可以是0或1,这取决于要访问的元素。使用所述参数值的控制函数将访问由指数1指向的页面,并且可以在另一页面上执行再初始化。例如,在一个实施中,在一个特定的瞬时,一些控制算法计算(例如死区补偿)可以访问指向缓冲区334的第一页面334-A的参数值,而没有被使用的存储于缓冲区334的第二页面334-B中的参数值可以通过使用XOR(指数1)作为指数在下一开关周期的参数值变得可用时利用该参数值被再初始化。
[0167] PWM电压提前计算
[0168] 可选的PWM电压提前计算模块326计算用于PWM电压提前延迟时间的三态值,正如下文将参考附图6B和6C描述的。这些三态值在下文将表示为:用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss),用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates),以及用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss)。这些三态值在信号开关频率(fSW)转换期间使用。为了考虑该三态行为,可以使用双缓冲区,并且缓冲区的内容在每一开关频率(fSW)转换更新两次。
[0169] 当PWM电压提前计算模块326向第一双缓冲区334提供用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)以存储于第一双缓冲区334的新单元中时,发生第一次更新。PWM电压提前计算模块326计算用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss),并且将其存储在临时变量中。利用正常的双缓冲区处理,当第一指数(指数1)在354被触发时,将从第一双缓冲区334使用用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)。
[0170] 当PWM电压提前更新模块376使用存储于临时变量中的用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss)来盖写第一双缓冲区334的内容时,在后快速任务处理期间发生第二次更新。在下文将参考附图5和6A-6C更详细地描述PWM电压提前。
[0171] 标记变量用于在中速任务处理周期(TTASK1)和快速任务处理周期(TTASK0)之间同步新的开关频率的更新。当所有必须的中速任务计算准备好时,中速任务处理器模块320的标记变量控制模块328设置标记为TRUE,并且当快速任务处理器模块340的374已经更新了实际开关频率时,快速任务处理器模块340设置标记为False。标记变量控制模块328设置标记变量为TRUE且将其传至快速任务处理器模块340。逆变器操作的实际频率以快速任务处理的速率(其相应于快速任务处理周期(TTASK0))被设置。为此(在中速任务处理器模块320计算新的瞬时开关频率(fSW_new)之后),中速任务处理器模块320设置标记变量为“真(true)”。设置标记变量为真,这指示快速任务处理器340新的瞬时开关频率(fSWnew)准备好在快速任务处理期间在快速任务处理器340处被使用/实施。当快速任务处理器340确定标记变量被设置为真时,它可以触发第一和第二指数(例如,指数1在PreTask0被触发且指数2在PostTask0被触发),以使指示器改变向缓冲区334、336,使实际开关频率(fSW)变为新的瞬时开关频率(fSW_new),并且继续其正常计算(在另一任务0函数模块360)。
[0172] 模块329可以执行或计算其它中速任务处理函数,例如,转矩指令处理、电流指令产生、场弱化、系统建模等等。当在模块329完成所有的中速任务处理函数后,中速任务处理器模块320等待中速任务处理的下一个预定的迭代将被执行的信号,并且一旦接收到该信号,执行中速任务处理的下一个预定的迭代。
[0173] 在快速任务处理器模块340中以处于预快速任务处理器模块350、快速任务控制模块360以及后快速任务处理器模块370的三个不同阶段实施或执行快速任务处理。
[0174] 预快速任务处理器模块350执行预快速任务处理函数。预快速任务处理器模块350在352检查标记变量的值。当标记变量被设置为假(false)时,不再执行进一步的预快速任务处理函数。
[0175] 相反,当标记变量被设置为真时,预快速任务处理器模块350在块354触发第一指数(指数1),以改变指示器至双缓冲区334,使得指示器指向其先前指向的相反页面。第一双缓冲区334包括未来参数值,其将被用于需要使用下一个(即将的)周期(其由瞬时开关频率(fSW_new)确定)的控制计算中。为了进一步解释,一些控制计算或函数,例如死区补偿或占空比钳位,需要使用用于下一个或“即将来到的”PWM周期的将来参数值来执行它们的快速任务处理计算,该下一个或“即将来到的”PWM周期将被应用于下一个取样周期。这些参数值存储于第一双缓冲区334中。这样,在执行使用这些参数值的计算之前,用于这些参数值的指数1在预快速任务处理中被触发。这样,第一指数(指数1)在预快速任务处理中被触发,以选择存储于第一双缓冲区334内的、将用在需要使用下一个/即将的PWM周期的控制计算中的将来参数值。在块356,预快速任务处理器模块350产生频率改变指令以将操作频率(fSW)改变为在块322计算的瞬时开关频率(fSW_new)。这一频率改变指令将不起作用直至随后的PWM周期。
[0176] 在预快速任务处理的处理完成之后,快速任务控制模块360执行另一个快速任务处理函数,其用于为接下来的PWM周期设置参数。其它快速任务处理函数通常与矢量控制算法相关,并且可以包括,例如,Clarke/Park转换、同步帧电流调整、逆变换、PWM占空比计算、诊断检查等等。如下文所述,在其它快速任务处理函数中由快速任务控制模块360计算的参数值并不实施于逆变器中直至随后的在PWM周期。
[0177] 后快速任务处理器模块370执行后快速任务处理函数。在模块372,后快速仟务处理器模块370检查标记变量的值。当标记变量为假时,不执行后快速任务处理函数。相反,当标记变量为真时,则在模块374处,后快速任务处理器模块370用新的瞬时开关频率(fSW_new)更新开关频率(fSW)参数。对于直接访问开关频率(fSW)参数的一些计算,该值将反映用于当前PWM循环的PWM周期。
[0178] 在一些实施方式中,在可选模块376中,后快速任务处理器模块370使用已经存储于临时变量中的用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss)更新存储于缓冲区334中的PWM电压提前单元。
[0179] 后快速任务处理器模块370随后在块378设置标记变量为假,并且随后触发第二指数(指数2)以改变指示器,使得其指向缓冲区336内的更新页面336-X,其包括计算为新的开关频率(fSW_new)的函数的当前参数值。这样,需要使用当前/现有PWM循环的周期的函数可以选择存储于双缓冲区336的页面336-X的单元,使得对应于当前/现有PWM周期的参数值用在任何相关的控制计算中。这些函数的一些示例可以是低通滤波器、电流调节器增益、电流预报器,等等。
[0180] 在所有的快速任务处理函数完成之后,后快速任务处理器模块370然后等待直到实施或执行下一个快速任务处理迭代的时刻,此时,快速任务处理器模块340循环回到预快速任务处理器模块350。
[0181] 现在将参考附图4、5和6A-6C描述软件构架300的操作细节。
[0182] 附图4是示出了依照一些所公开的实施方式的慢速任务处理400的流程图。慢速任务处理函数以相对慢速或频率实施或执行。
[0183] 慢速任务处理开始于410,并且在420,慢速任务处理器模块310计算平均开关频率(fSW_avg)。逆变器的平均开关频率(fSW_avg)不会非常快速地改变,并且因而可以在慢速任务处理循环中在附图4的420被计算。平均开关频率(fSW_avg)可以根据基于实际应用而改变的多个参数和当前操作条件,例如电动机速度、负载转矩、逆变器温度,等等来计算。
[0184] 在430,慢速任务处理器模块310计算高频振动跨度频率(fspan),其对应于允许的频率改变量。例如,高频振动跨度频率(fspan)可以计算为电动机速度和/或其它操作条件的函数。
[0185] 在440,其它慢速函数可以被执行或计算。例如,其它慢速函数可以包括,温度测量、缓慢变化的信号的滤波,等等。
[0186] 当所有的慢速函数已经在440执行之后,慢速任务处理400进行到450,其中,慢速任务处理器模块310等待慢速任务处理的下一个预定的迭代。
[0187] 附图5是示出了依照所公开的一些实施方式的中速任务处理500的流程图。中速任务处理函数以中等的速率或频率实施或执行。
[0188] 中速任务处理500开始于510,并且在520,中速任务处理器模块320的计算模块322使用任何已知方法计算伪随机数(Krand)。在530,计算的伪随机数(Krand)被缩放或标准化为落入-0.5至+0.5的范围内。
[0189] 为了使高频振动有效,瞬时开关频率(fSW_new)应以相当迅速的速度被更新。为此,在附图5的530,计算模块322在中速任务处理500期间以中速计算瞬时开关频率(fSW_neW)。因此,在一个实施方式中,高频振动速率(frate)是与中速任务处理500相同的速率。在一个实施方式中,中速任务处理器模块320在附图5的530按照上述方程式(1)使用在慢速任务处理400的420计算出的平均开关频率(fSW_avg)、在慢速任务处理400的430计算出的高频振动跨度频率(fspan)以及在中速任务处理500的520计算出的伪随机数(Krand)计算新的瞬时开关频率(fSW_new)。
[0190] 参数再初始化
[0191] 在电动机控制计算中使用的一些类型的参数是开关频率(fSW)或取样速率的函数(也就是,快速任务处理周期)。如果开关频率(fSW)在操作期间动态地变化,则当逆变器开关频率(fSW)变化时需要更新这些参数以反映实际开关频率(fSW)。例如,中速任务处理可以多次被快速任务处理600中断,因为快速任务处理600通常处于比中速任务处理500高得多的频率(根据定义)。这样,存在这样的可能性,在中速任务处理500期间的参数再初始化计算的过程中间,快速任务处理600将中断中速任务处理500。因此,可能的是,在快速任务处理600期间使用的时变参数中的无一、一些或全部未被表示实际开关频率(fSW)的下确值更新。无法更新这些类型的参数以反映实际开关频率(fSW)将导致不正确的控制。
[0192] 这样,在中速任务处理500的540,中速任务处理器模块320使用在530计算出的新的开关频率(fSW_new)再初始化快速任务处理的所有时变参数。所有的再初始化可以中速任务处理500中恰好在设置标记变量(在560)之前连续也在执行(在540),以变为新的开关频率(fSW)(与在围绕中速任务处理500计算分散的不同时刻执行再初始化相反)。在540连续地执行全部的再初始化可以帮助降低在快速任务处理600期间使用的时变参数不被表示实际开关频率(fSW)的正确值更新的机会。虽然在540连续地执行全部再初始化没有完全地消除在参数值和实际开关频率(fSW)之间某种不匹配的可能性,但是其确实很大程度地缓解问题。对开关频率(fSW)中的错误并不非常敏感的参数可以在一个步骤中再初始化且以这种简单的方法进行处理。
[0193] 相反,对于一些对开关频率(fSW)中的错误更为敏感的时变参数(在上文描述为临界或敏感参数),可以使用可选的双缓冲区334/336,如上所述,来帮助确保所述参数值与实际开关频率(fSW)的正确对准。
[0194] 在550,中速任务处理器模块320计算用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss),其可以存储于暂存变量中,如下文参考附图6B和6C描述。
[0195] 以快速任务处理600的速率设置逆变器操作的实际频率。为此(在已经计算了新的瞬时开关频率(fSW_new)(在530)之后),在中速任务处理的560,中速任务处理器模块320设置标记变量为“真”。设置标记变量为真,这通知快速仟务处理600指示新的开关频率(fSW_new)(在530计算得到的)准备好在快速任务处理600中使用/实施。如下文将要参考附图6A的描述,当快速任务处理600在612确定标记变量被设置为真时,可以触发第一和第二指数(指数1和指数2)以使相应的指示器变为指向双缓冲区334、336(在附图6的
614或640),改变实际开关频率(fSW)(在附图6的616),和继续其正常计算(在620)。
[0196] 在570,中速任务处理器模块320执行任何其它的中速任务处理函数,例如,转矩指令处理、电流指令产生、场弱化、系统建模,等等。
[0197] 在所有的中速任务处理函数在580完成之后,中速任务处理器模块320等待表示下一个预定的迭代中速任务处理将被执行的信号。当中速任务处理器模块320接收到表示是时候执行中速任务处理的下一个预定迭代的信号时,其循环回到520。
[0198] 附图6A是示出了依照所公开的一些实施方式的快速任务处理600的流程图。快速任务处理函数以快的速度或频率实施或执行。
[0199] 快速仟务处理开始于605。在附图6A,块610示出了由快速任务处理器模块340执行的预快速任务处理函数,并且块630示出了由快速任务处理器模块340执行的后快速任务处理函数。
[0200] 在612,快速任务处理器模块340检查标记变量的值。当标记变量为假时,没有其他预快速任务处理函数,并且快速任务处理器模块340可以直接进行到620。
[0201] 相反,当标记变量是真时,随后在614,快速任务处理器模块340如上所述的触发第一指数(指数1)以改变指示器指向第一双缓冲区334。在614使用第一指数(指数1)的触发导致指示器指向第一双缓冲区334的最近更新的页面,其包括将被用在需要使用在
530计算出的下一个即将的瞬时开关频率(fSW_new)的控制计算中的未来参数值。
[0202] 为了进一步描述,一些控制计算或函数,例如死区补偿或占空比钳位,需要使用用于下一个或“即将的”PWM周期的、将应用于下一个取样周期的未来参数值而执行它们的快速任务处理600计算。这些参数值存储于第一双缓冲区334。这样,在执行使用这些参数值的计算之前,用于这些参数值的指数1在预快速任务处理600的614被触发。因此,在614,第一指数(指数1)在预快速仟务处理610中被触发,以选择存储于第一双缓冲区334的、将用于需要使用下一个/即将的PWM周期的控制计算中的未来参数值。
[0203] 在616,快速任务处理器模块340产生实际频率改变指令以改变操作频率(fSW)。在一些实施方式中,这一频率改变指令将不起作用直到后来的PWM周期。
[0204] 在用于预快速任务处理的处理完成之后,快速任务处理器模块340进行至620,其中快速任务处理器模块340执行其它快速任务处理函数。这些函数通常与矢量控制有关。例如Clarke/Park转换、同步帧电流调整、逆变换、PWM占空比计算、诊断检查等的函数可以在620执行。这些被用来设置用于随后的PWM周期的参数。
[0205] 块630示出了后快速任务处理函数。
[0206] 在632,快速任务处理器模块340检查标记变量的值。当标记变量是假时,没有其他的后快速任务处理函数,并且快速任务处理器模块340可以直接进行到650。
[0207] 相反,当标记变量是真时,随后在634,快速任务处理器模块340在软件中使用在530计算出的新的瞬时开关频率(fSW_new)来更新开关频率(fSW)。由于软件中的一些计算直接读取开关频率(fSW)参数,因此这样做是必要的。在这一情形中,该值应反映用于当前PWM循环的PWM周期。
[0208] 在636,快速任务处理器模块340使用用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss)(存储于临时变量中)更新存储于双缓冲区334的PWM电压提前单元。
[0209] 在638,快速任务处理器模块340设置标记变量为假,等待开关频率(fSW)中的下一个改变。
[0210] 在640,快速任务处理器模块340如上所述触发第二指数(指数2)以改变指示器指向第二双缓冲区336,其包括被计算为新的开关频率(fSW_new)的函数的当前参数值。这样,需要使用用于当前/现有的PWM循环的周期的函数可以选择存储于第二双缓冲区336中的单元,使得对应于当前/现有的PWM周期的参数值用在任何相关的控制计算中。这种函数的一些示例是低通滤波器、电流调节器增益、电流预报器,等等。
[0211] 在所有的快速任务处理函数完成之后,快速任务处理器模块340进行至650,在这里等待直到进行下一个快速任务处理迭代的时刻,此时快速任务处理器模块340循环回到612。
[0212] PWM由压提前
[0213] 在本领域中已知的是,PWM延迟应被补偿,以在高的电动机速度下保持稳定的电流控制。
[0214] 在620,在快速任务处理600期间计算的占空比指令不被实施于逆变器中直到后来的PWM周期。
[0215] 附图6B是示出了电流取样点的图,其用于计算具有周期(Ts)661的PWM电压信号的占空比。附图6B表明在离散时间控制系统中经历的PWM电压延迟时间的概念和PWM电压提前的概念。
[0216] ]平均输出电压可以被认为是处于PWM周期的中心662。因此,从在t0的取样瞬时664,在取样时刻664和在668的实际电压指令实施(其平均值是中心点662)之间,存在近似1.5Ts的延迟665,在这个1.5Ts延迟665期间,电动机将旋转一定的角度。为了考虑在该延迟时间665期间的这个角旋转,在该处应用电压指令的角度由对应的PWM电压提前角(ΔθPWM_Adv)来调整,该对应的PWM电压提前角可以使用如下的方程式(2)来计算:
[0217] ΔθPWM_Adv=TPWM_Adv*ωr (2)
[0218] PWM电压提前角(ΔθPWM_Adv)基于转子角速度(ωr)和用于PWM电压提前延迟时间的值(tPWM_Adv)的乘积来计算,其具有将在下面解释的多个不同值。实质上,这考虑了时间差以及在电流取样664和相关的电压指令占空比被实施的时间(大约在下一PWM周期的中点附近)之间的旋转。当执行同步帧电压指令回到稳态坐标系的逆变换时,所述补偿实施为角度调整,其中角度与速度乘以延迟时间665成正比。
[0219] 在标准的AC电动机驱动中,其中开关频率(fSW)缓慢变化,其通常适当地计算PWM电压延迟为1.5Ts。
[0220] 然而,当采用如上所述的高频振动技术且开关频率(fSW)快速改变显著量时,必须使用更精确的方法来确保电流稳定性。
[0221] 对于开关频率(fSW)中的阶跃变化,其发生在初始开关周期(TSW_initial)和下一个开关周期(TSW_next)之间的开关频率(fSW)转换期间,为补偿实施延迟所需的PWM电压提前通过下面的方程式(3)给出:
[0222]
[0223] PWM电压提前延迟时间(tPWM_Adv)是初始开关周期(TSW_initial)的函数,该PWM电压提前延迟时间(tPWM_Adv)是在初始开关周期(TSW_initial)期间的开关频率的倒数,PWM电压提前延迟时间(tPWM_Adv)是下一个开关周期(TSW_next)的函数,该PWM电压提前延迟时间(tPWM_Adv)是在下一个开关周期(TSW_next)期间将使用的开关频率的倒数。
[0224] 因此,对于在开关频率中的任何改变,PWM电压提前必然经历如下一系列的三个状态:
[0225] ·用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss),其在初始开关周期期间使用初始开关周期(TSW_initial)来计算得到,
[0226] ·用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates),其在转换状态期间使用初始开关周期(TSW_initial)和下一个开关周期(TSW_next)二者来计算得到,以及
[0227] ·用于PWM电压提前的最终稳态值(tPWM_Adv_final_ss),其仅使用下一个开关周期(TSW_next)来计算得到。
[0228] 附图6C示出了在开关周期(TSW)中的阶跃变化和为补偿在这一阶跃变化期间的实施延迟所需的PWM电压提前的三个对应值的示例。在这一特定示例中,假设开关周期(TSW)从初始开关周期(TSW_initial)681期间的100μs672变为下一个开关周期(TSW_next)685期间的200μs676。
[0229] 在初始开关周期(TSW_initial)681期间,用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss)计算为1.5和初始开关周期(TSW_initial)的乘积。这样,在这一示例中,用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss)是150μs(也就是,100μs+1/2*100μs=1.5*100μs)。
[0230] 在发生在开关频率(fSW)转换期间的转换状态683期间,用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)使用初始开关周期(TSW_initial)681和下一个开关周期(TSW_next)685二者来计算。在这一示例中,初始开关周期(TSW_initial)681是100μs672,并且下一个开关周期(TSW_next)685是200μs676,并且因此用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)计算为200μs(100μs+1/2*200μs)。
[0231] 用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss)仅使用下一个开关周期(TSW_next)685来计算。如上所述,在550,用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss)可以存储在临时变量中(将在后快速任务处理600期间被取回)。在这一示例中,用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss)是300μs(200μs+1/2*200μs=1.5*200μs)。
[0232] 因此,只要开关频率(fSW)改变,就需要具有关于三个可能的PWM电压提前延迟时间值的信息。由于PWM电压提前延迟时间值的这一三态特性,之前描述的双缓冲区方法并不胜任。考虑到了所述三态行为,使用双缓冲区,并且每一开关频率(fSW)变换更新两次缓冲区内容。
[0233] 当中速任务处理器模块320的参数再初始化模块324在第一双缓冲区334中存储用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)时,在中速任务处理500期间发生第一次更新。
[0234] 在中速任务处理500的550,中速任务处理器模块320的PWM电压提前计算模块326计算用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss),并且将其存储在临时变量中。使用正常的双缓冲区处理,用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)将由电动机控制算法从第一双缓冲区334被使用,使得一旦第一指数(指数1)在预快速任务处理610中的614被触发就使同步帧电压指令转换回固定帧。
[0235] 当快速任务处理器模块340的PWM电压提前更新模块376使用存储在临时变量中的用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss)盖写第一双缓冲区334的内容(在附图6A的636)时,在后快速任务处理630期间发生第二次更新。
[0236] 因此,在单个开关频率(fSW)转换期间使用PWM电压提前延迟时间的三个不同值(也就是,用于PWM电压提前延迟时间的初始稳态值(tPWM_Adv_inital_ss)、用于PWM电压提前延迟时间的中间值(tPWM_Adv_intermediates)以及用于PWM电压提前延迟时间的最终稳态值(tPWM_Adv_final_ss))。
[0237] 附图7A是一组图形,示出了当电动机使用利用高频振动的现有技术的AC电动机控制算法在相对较高的电动机速度下操作时的电动机速度710-A、命令转矩720-A和电动机的相位电流730-A。附图7A示出相位电流730-A不稳定且振荡(也就是,呈现出显著的振荡)。这是由于在软件中的控制算法实施中没有正确考虑快速变化的逆变器频率。
[0238] 附图7B是一组图形,示出了当电动机使用依照所公开的实施方式的利用高频振动的AC电动机控制在相对较高的电动机速度下操作时的电动机速度710-B、命令转矩720-B和电动机的相位电流730-B。附图7B和附图7A的比较示出了流向电动机的电流
730-A呈现出明显减小的振荡(例如,没有可观察到的振荡的干净的正弦曲线),因此说明了所公开的实施方式的效果。
[0239] 结论
[0240] 因此,已经描述了用于控制在矢量控制的电动机驱动系统中的多相电机的操作的多个实施方式。
[0241] 依照一些所公开的实施方式,提供了这样的方法、系统和装置,用于当开关频率改变时对任何任务0时变电动机控制参数进行双缓冲以使得所述参数中的每一个有多个值可用。这一双缓冲在多个不同的可能应用中具有新颖性。
[0242] 依照一些所公开的实施方式,提供了这样的方法、系统和装置,用于在开关频率改变的任何时刻使用旧的/当前的、中间的、以及未来/最终的稳态值来产生/计算PWM电压提前。换句话说,在开关频率改变的任何时刻,在单个开关频率转换期间使用PWM电压提前的三个不同的或三态值。在一些实施中,这些实施方式可以在计算PWM电压提前的方法中实施一些双缓冲区技术/工艺。在另一实施方式中,三缓冲区技术可以用于计算PWM电压提前而不使用高频振动或双缓冲区技术。
[0243] 依照一些公开的实施方式,提供了这样的方法、系统和装置,用于使PWM算法使用的开关频率高频振动。可以采用以三个不同速度执行的三个不同的嵌套循环。例如,平均开关频率(fSW_avg)和高频振动跨度可以以慢速(慢速任务处理速率)来计算,并且瞬时频率或高频振动速率可以以更快的速度(中速任务处理速率)来计算。在一个实施方式中,平均开关频率(其随着相对缓慢变化的系统参数而改变,例如速度、转矩、温度)以慢速来计算,随机数、高频振动值和新的开关频率可以以中速来计算,并且实际操作频率可以以较快的速度来更新。在一个实施中,所公开的高频振动技术可以用于电动机驱动的控制器环境中以使HEV产生的不变音调的噪声随机化。
[0244] 在一些实施方式中,双缓冲区可以与高频振动一起使用。例如,双缓冲区可以用于存储任务0时变参数,并且可以以中速来更新。指数可以用于在实际控制正在使用的那个缓冲区页面与被更新的缓冲区页面(或双缓冲区)之间触发。当所有计算完成并且参数值已经被更新时,可以设置标记;这一标记用作交换信号,以使快速任务处理器知道缓冲区已经被更新且它可以改变实际开关频率。在一些实施方式中,预任务0和后任务0函数用于触发指数、更新PWM电压提前后任务0以及设置开关频率。对于未经由双缓冲区处理的任务0时变参数,任务1参数再初始化函数可以被聚集到一起,使得它们在一个步骤中执行,最小化在这些计算过程中发生中断的机会。在一些实施方式中,可以使用两组双缓冲区,这取决于所关注的参数是否需要在其计算中使用当前或未来任务0周期信息。
[0245] 本领域技术人员将进一步明白,结合在此公开的实施方式描述的各个说明性逻辑块、模块、电路和算法步骤可以实施为电子硬件、计算机软件或二者的组合。根据函数和/或逻辑块部件(或模块)以及各种处理步骤在上文描述了一些实施方式和实施。然而,可以理解的是,这样的块部件(或模块)可以通过任意数量的构造为执行特定函数的硬件、软件和/或固件部件来实现。
[0246] 为了清晰地示出硬件和软件的这种可互换性,在上文已经就多种说明性部件、块、模块、电路和步骤的函数对它们进行了大体上的描述。这样的函数是否实施为硬件或软件取决于特定的应用和施加于整个系统的设计约束。技术人员可以针对每一个特定应用以不同的方式实施所描述的函数,但是这样的实施判定不应被解释为导致偏离了本发明的范围。例如,系统或部件的实施方式可以使用各种集成电路部件,例如,记忆元件、数字信号处理元件、逻辑元件、查阅表或类似的,其可以在一个或多个微处理器或其它控制装置的控制下执行多种函数。此外,本领域技术人员应理解在此描述的实施方式仅是示例性的实施。
[0247] 结合在此公开的实施方式而描述的多个说明性的逻辑块、模块和电路可以通过下述来实施或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件部件或它们的任何用于执行在此描述的函数的组合。通用处理器可以是微处理器,但是备选地,处理器可以是任何传统的处理器、控制器、微处理器或状态机。处理器还可以被实施为计算装置的组合,例如DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核心或任何其它这样的结构。
[0248] 结合在此公开的实施方式描述的方法或算法的步骤可以直接嵌入硬件、由处理器执行的软件模块或二者的组合。软件模块可以驻留于RAM存储器、闪存存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM或本领域已知的任何其它形式的存储媒介。典型的存储媒介连接至处理器,使得处理器可以从存储媒介读取信息并向其写入信息。可替代的,存储媒介可以一体化至处理器。处理器和存储媒介可以驻留于ASIC中。ASIC可以位于用户终端中。可替代地,处理器和存储媒介可以作为离散部件存在于用户终端中。
[0249] 在本文中,例如第一和第二以及类似的关系术语可以仅用于区分一个实体或动作与另一个实体或动作,而不一定要求或暗示这些实体或动作之间的任何实际的这种关系或次序。例如“第一”、“第二”、“第三”等等的数字序数仅表示多个中的不同单个,并不指示任何顺序或次序,除非由权利要求的语言明确定义了。在任意权利要求中文字的次序并不指示必须以依照这样的次序的时间或逻辑顺序来执行处理步骤,除非由权利要求的语言明确定义了。处理步骤可以以任意顺序交换,而不偏离本发明的范围,只要这样的交换不与权利要求的语言矛盾且在逻辑上是无意义的。
[0250] 此外,取决于环境,用于描述不同元件之间关系的词语例如“连接”或“连接至”并不指示在这些元件之间必须进行直接的物理连接。例如,两个元件可以物理地、电子地、逻辑地或以其它任何方式通过一个或多个额外元件而相互连接。
[0251] 虽然在前面的详细描述中已经描述了至少一个示例性实施方式,应当理解的是,存在大量的变形。还应当理解的是,示例性实施方式或多个示例性实施力式仅是示例,且并不意欲以任何方式限制本发明的范围、应用或结构。相反,前面的详细描述将为本领域技术人员提供方便的捷径来实施示例性实施方式或多个示例性实施方式。可以理解的是,在函数和元件的布置中可以采用多种改变,而不偏离在所附权利要求中陈述的范围及其法律等效物。