矢量引擎和矢量控制

矢量控制技术是高效低功耗驱动电机的关键技术之一。我们将介绍可在矢量控制过程中降低软件工作量的矢量引擎。

近年来,矢量控制在空调等电机控制领域得到了广泛的应用。它是一种能有效控制电机从低速到高速旋转的先进技术。如果不使用矢量控制,就不可能实现低速平稳的电机控制。由于矢量控制使用一个非常复杂的过程,因此需要一定的数学知识才能理解。但我们会尽量使用较少的数学表述来解释矢量控制。

这里我们以3相电机为例。
我们先来解释一下3相电机及其驱动电路。

3相电机和驱动电路

3相交流波形由3个互相移动120°的正弦波组成。3相电机将这3个交流电流分别提供给三个端子,以旋转转子。电机旋转的次数由交流电流的频率控制。也就是说,需要降低交流电流的频率,使电机缓慢旋转。同理,需要增加频率才能使电机高速旋转。

3相电机

为了给这台3相电机提供3相电压(或电流),我们使用了一种称为电机驱动电路的IC。对于矢量控制的情况,电机驱动电路的基本电路由6个晶体管(与晶体管并联的二极管)组成。6个晶体管的通断控制分别有6个输入信号:u、v、w、x、y和z。3相直流电机的电流驱动有3个输出端:U、V和W。此外,端子a、b和c分别有1个输出端口,用于监测输出端口U、V和W的每个驱动电流。

驱动IC和电机

什么是矢量控制?

下图是矢量控制的全貌。首先,矢量控制从监测驱动电机的U、V和W的波形开始。监视器的信号来自电机驱动电路的a、b和c端输出。由于a、b和c的信号幅度很小,所以需用放大器将其放大并输入到AD转换器中。通过AD转换器将3相信号a、b和c转换为数字电流值Iu、Iv和Iw后,它们转换为2相电流值Iα和Iβ。然后进行静止坐标到旋转坐标的坐标变换,将这些2相电流转换为电流Id和Iq。矢量控制的目的是使这些Id和Iq分别与预先固定的理想值Idref和Iqref相重合。Id和Iq监测着电机的电流,由于它们是由电流转换而来的值,所以它们已经偏离了理想值。但为了减小偏差,我们采用PI控制进行校正。补偿值不是电流而是电压的Vd和Vq。然后执行反向坐标变换,将旋转坐标转换为静止坐标,得到Vα和Vβ。虽然电机驱动电路的3相输入信号u、v和w是从该2相Vα和Vβ的电压中提取的,但此时是执行空间矢量调制而不是简单的2相3相转换以获得这些输入信号。通过这种转换,获得电机驱动电路的输入信号u、v和w以及负相位的信号x、y和z。U,V,W的信号被传送至电机。以上即完成了1个矢量控制周期。这个周期是重复的,最终可获得理想的旋转状态。

矢量控制02

这里我们以3相电机为例。
我们先来解释一下3相电机及其驱动电路。

(1)监测驱动电流U、V、W,以及从3相转换为2相

通过监视器端子a、b和c监测3个驱动电流U、V和W。但由于这些监视器信号的值非常小,因此需要使用放大器对信号进行放大,并将它们输入到AD转换器中,并转换为数字值。转换后的数字电流值Iu、Iv和Iw将用于后续计算。现在通常很难同时处理三个信号。这是因为三个信号之间有一定的相互关系,所以需要在三维空间中进行计算。因此为了便于计算,需要将3相变为2相。在这种转换中,将利用理想的3相交流电的特性,即三个正弦波之和为零。即:

Iu+Iv+Iw=0

尽管基于此条件将3相变为了2相,但假设变为2相后的两轴直接相互交叉(假设它们以90度交叉)。这种转换称为克拉克(Clarke)转换。

将3相变为2相

克拉克转换
假设3相电流为Iu、Iv和Iw,2相转换后的电流为Iα和Iβ,则结果是:

Iu+Iv+Iw=0
Iα=Iu
Iβ=(Iu+2Iv)/√3

上述公式是矢量控制中的第一个3相到2相的转换。

(2)旋转坐标轴转换

矢量控制的第二个转换是从静止坐标到旋转坐标的转换。实际上,由3相变为2相的电流值是流过转子的电流值,它与转子一起旋转。当从外面看向电机时,转子在转个不停。但是,如果你能坐在转子上,就会感觉转子是停止的。而且你会觉得周围的一切在转个不停。也就是说,在与转子旋转相同的坐标上,转子上的2相电流看起来是停止的。电流似乎静止不动,可以当作直流电来处理。因此,如果从静止坐标转换到旋转坐标,将大大简化计算。从静止坐标到旋转坐标的转换称为帕克(Park)转换。

坐标轴转换

帕克转换

假设静止坐标中的电流为Iα和Iβ,旋转坐标中的电流为Id,Iq,并且旋转角度为θ,则结果将是:

Id=Iα・cosθ+Iβ・sinθ
Iq=-Iα・sinθ+Iβ・cosθ

另外,为了从静止坐标转换成旋转坐标,需要获得转子的旋转角度θ值。这就是说,如果没有转子旋转多少次的相关数据,就无法转换为旋转坐标。实际上,旋转角度的信息可以通过另一种方法获得。例如,转子的旋转角度和转速可以通过增量式编码器等旋转传感器来确定。
我们假设旋转角度已知。

(3)PI控制

矢量控制的一半过程已完成。此时,矢量控制将检查2相电流Iq和Id的值是否大于或小于每个理想值。如果结果大于理想值,矢量控制将减小电流。如果结果小于理想值,就会增加电流。这一部分一般采用PI控制。PI控制将并行执行P控制(比例控制)和I控制(积分控制)。P控制将根据理想值与实际测量值的差值进行放大控制。I控制将根据差值的积分值(Iq和Id的理想预设值设置为Iqref和Idref)执行放大控制。虽然PI控制的输入为2相电流值,但输出是2相电压值。为什么输出是电压值而不是电流值?因为矢量控制最后输出的电机驱动电路的输入信号不是电流值而是电压值。接下来,通过PI控制获得的2相电压值Vq和Vd从旋转坐标返回到静止坐标。为此,现在我们从旋转坐标上下来,在旋转坐标中计算的电压值应该通过静止坐标重新计算。之前是从静止坐标系到旋转坐标系的转换,这次是进行方法的反向转换。此转换称为反向帕克转换。此时需要获得旋转角度。当执行从静止坐标到旋转坐标的转换时,我们已经获得了这一角度。

反向帕克转换

反向帕克转换

Vα=Vd・cosθ-Vq・sinθ
Vβ=Vd・sinθ+Vq・cosθ

(4)空间矢量调制

矢量控制已经进入最后阶段了。最后的转换是空间矢量调制。

让我们看一下空间矢量调制是什么样的转换。
目标就在眼前,但这是最困难的部分。

通过空间矢量调制,将2相电压反向变换到3相电压。结果将得到电机u、v、w的3相输入波形和x、y、z的反相波形。控制电机的3相交流电由三个互相移动120︒的正弦波组成。所以首先准备三个仅移动120︒的轴。使用三维矢量表示法,将每个轴设置为(100),(010)和(001)。接下来,每个轴从起点(原点)以相反方向延伸。然后,(100)延伸至(010)和(001)的中间,这个延伸轴被设置为矢量(011)。类似地,对于(010)的延伸,延伸轴被设置为(101),(001)的延伸轴被设置为(110)。这样就形成了六个象限。每个象限称为一个扇区。

三维矢量
六个象限

下面,在此空间上施加2相电压Vα和Vβ,由Vα和Vβ的矢量合成矢量V。由于合成电压V与转子一起旋转,它将按顺序从一个扇区移动到另一个扇区。

电压矢量

让我解释一下划分空间的六个轴。
现在,当扇区0具有电压矢量V时,该V被分解为两个轴(100)和(110)的矢量。
如果(100)的分量设置为t1,而(110)的分量设置为t2,则将获得左下角的数字。

象限0的电压矢量

实际上,矢量(100)、(010)和(001)的3相对应于电机驱动电路的(u、v和w)。由于(100)是u,而(110)是u和v,所以获得了下面的表达式… 

u=t1+t2
v=t2

那w是什么?因为扇区0的轴是(100)和(110),所以它总是w=0。但考虑到最终波形,w按以下确定。

首先请注意,在六个扇区的图中,矢量(000)和(111)没有轴。如果(000)为u=v=w=0,因为驱动电路VDC侧的晶体管都处于关断状态,驱动电路不能向电机提供电流。另一方面,(111)为u=v=w=1。此时反向输入为x=y=z=0。也就是说,由于GND侧的3个晶体管全部关断,驱动电路也无法提供电流。因此,(000)(111)是“对电机没有任何作用”的操作。此外,为了使波形在空间矢量调制中输入驱动电路,需要确定某个固定周期T。虽然电压矢量V与转子一起旋转,但周期T很短,并且在该周期中,电压矢量V被认为是静止的。
现在,扇区0中的电压矢量V被分解为t1和t2。

周期T定义为…

T=t1+t2+t3

时间t3是扇区0中的“无操作的时间”。此时(uvw)设置为(000)或(111)。因此,计算得到的u、v和w的波形如下图所示。因为波形是根据波的对称性来组合的,所以t1和t2的计算单位是一半,t3的计算单位是四分之一。在整个1周期内,u、v和w为1的时间如下。

u=t1+t2+t3/2
v=t2+t3/2
w=t3/2

u、v和w的t3/2分量是指u=v=w=1时的时间,这是无操作的时间。另一方面,u=v=w=0时也有t3/2的时间,这是对电机无操作的时间。总的来说,t3是固定的无操作的时间。

空间矢量调制后的波形

现在,通过空间矢量调制,将电压矢量V(2相)转换为(u,v,w)的3相信号。空间矢量调制完成,获得一个电压矢量。让我们进一步旋转电压矢量V。如下图所示,当电压矢量V依次旋转通过每个扇区时,u、v的t1和t2值,以及w的t3值会发生变化。此外,可分别获得x、y和z作为u、v和w的反转波形。

旋转角01

最后,通过空间矢量调制转换获得了u、v、w、x、y和z的信号波形。以上就是整个矢量控制过程。你可以大致了解矢量控制是如何通过复杂的过程对电机进行控制的。

这是不是太复杂了?
由于出现了用于电机控制的微控制器,
使得矢量控制可以方便有效地进行。

(5)正弦波

U、V和W的实质电流分别为u-v、v-w和w-u。如果把这些电流画在转子旋转角的图上,就可以得到相位相差120︒的三相正弦波形。

旋转角02

现在我们知道空间矢量调制是产生用于驱动电机驱动电路晶体管的u、v、w信号的有效方法。通过空间矢量调制,3相电机的输入信号U、V、W可以画出良好的正弦波波形。

矢量引擎是做什么的?

我们已了解了矢量控制。接下来,解释矢量引擎的作用。矢量引擎本身是通过矢量控制而不是CPU来处理部分工作的硬件。但是将这个硬件嵌入到微控制器中,它就可以在更大的“矢量控制”框架中发挥更大的作用。它是对矢量控制中所需要的外围电路“矢量引擎(VE)、电机控制电路(PMD)和模数转换器(ADC)”进行联锁和操作,而不通过CPU。也就是说,矢量引擎将自动执行每个外围电路的数据传送,并通过判断每个外围电路的启动定时来进行自动处理。对于CPU来说,处理矢量控制的工作可以大大减少,这是一个很大的优点。让我们在整个矢量控制图中找出负责各项工作的部分。

矢量引擎框图

[1] 将目标电流值Iqref和Idref以及转子的旋转角θ设置到矢量引擎。
      ⇒ CPU

[2] 相位输出电压(脉冲宽度等于U、V和W的输出电压)的值设置到PMD。计算AD转换器的转换开始定时并将该定时设置为PMD。
      ⇒ VE

[3] PMD电路将输出电压(PWM)提供给新U、V和W,并将转换开始信号发送给AD转换器。
      ⇒ PMD

[4] 在结束转换之后,AD转换器将结束信号发送给矢量引擎。
      ⇒ ADC

[5] 输入一个AD转换结果,计算反馈电流Id和Iq,并要求中断CPU。
      ⇒ VE

[6] 针对中断,用软件计算转子的角度和新的电流指令值。
      ⇒ CPU

其它是矢量引擎硬件本身的工作。在矢量控制中,需要进行静止坐标转换、空间矢量调制、3相2相转换、旋转坐标转换等复杂的操作。为了使CPU利用软件完成这些复杂的操作,需要编制一个复杂的程序。而且,CPU的执行时间也会占用很长的时间,并且会对CPU的各种工作造成很大的负担。那么,矢量引擎实际执行的工作是什么呢?

  • SIN/COS计算
  • 电流控制(PI控制)
  • 静止坐标转换
  • 空间矢量控制
  • 2相3相转换
  • 旋转坐标转换

这六项工作由矢量引擎完成。

矢量控制02

因此,矢量引擎是可以非常方便执行矢量控制的硬件。

你明白了吗?
这些是相当难的内容,
但如果你想知道更多关于矢量控制的细节,
请参阅相关技术书籍。
东芝半导体与存储产品株式会社还组织微控制器研讨会。欢迎参与。

产品介绍

TX03系列M370组TMPM375FSDMG

采用东芝原创的硬件“矢量引擎”,使这些微控制器能够执行矢量控制所必需的基本处理(坐标转换、相位转换、SIN/COS操作)和电流控制所需的PI控制。它还可以大大减少软件的工作量。

联系我们

技术咨询

联系我们

联系我们

常见问题

常见问题(FAQ)
在新窗口打开