×
单片机 > 单片机程序设计 > 详情

【STM32电机矢量控制】记录5——FOC原理大概

发布时间:2020-07-08 发布时间:
|

FOC控制算法:

FOC控制的其实是电机的电磁场方向。转子的转子力矩正比于定子的磁场向量与转子磁场矢量的矢量积。由矢量的关系可知,若使电机的转矩时刻保持最大,则定子磁场向量应与转子磁场向量相互垂直。又因为磁场的大小与方向与电流的大小与方向有着直接的关系,所以在用FOC控制算法控制BLDC时的关键就是控制三相输入的电流大小与方向。而控制电流产生定子磁场与转子磁场垂直的关键在:控制稳定的三相输入电压及其电流向量,并且我们得知道转子的实时位置。

输入电流的方向控制,FOC给出了空间电流矢量的概念。其实质是将三相的电流矢量结合,再分解为垂直和平行于转子磁体轴方向的两个分量即d-q结构。垂直方向的电流分量所产生磁场正交于转子的磁场,这就产生了旋转力矩。而平行于转子磁轴方向的电流分量,所产生的磁场与转子磁场一致,就不会产生任何的力矩。另外,一个好的控制算法就需要使这个平行于转子磁轴方向的电流分量尽量最小化,因为,这个电流分量只会使电机产生多余的热量,并加剧轴承的磨损。我们需要控制线圈的电流,以使垂直于转子磁轴方向的电流分量达到最大。由此而得到的电机力矩和这个电流分量的大小成比例。

为了使与转子磁场同向的定子电流矢量最小化(为零)且垂直的磁场最大化,定子线圈内的弦波电流需要随着转子的转动角度实时地进行相位调整。控制稳定的三相电流输入可以建立P-I控制器,P-I控制是在不停的调制输入,一旦电机电流被转化成d-q结构,控制将变得非常简单。我们需要两路P-I控制器;一个控制平行与转子磁场的电流,一个控制垂直向电流。因为平行向电流的控制信号为零,所以这就使电机平行向的电流分量也变成零,这也就驱使电机的电流矢量全部转化为垂直向的电流。由于只有垂直向电流才能产生有效的力矩,这样电机的效率被最大化。另一路P-I控制器主要用来控制垂直向的电流,以获得与输入信号相符的需求力矩。这也就使垂直向电流按照要求被控制以获得所需的力矩。

转子的实时位置的确定有两种情况:有位置传感器、无位置传感器。对于有传感器,由于电机的传感器(一般为编码器)能反馈电机转子的位置信息,因此在控制中可以不使用位置估算算法,控制起来相对无传感器简单,但是对带传感器的电机应用来说,往往对控制性能要求较高。对于无传感器,由于电机不带任何传感器,因此不能通过简单读取传感器的测量值来得到电机转子的位置信息,所以在控制中需要通过采集电机相电流,使用位置估算算法来计算转子位置。

FOC控制原理图:


  1. 采集到两相电流 

  2. 经过clarke变换后得到两轴正交电流量, 

  3. 经过旋转变换后得到正交的电流量 Id、Iq,其中Iq与转矩有关,Id与磁通有关。在实际控制中,常将Id置为0。得到的这两个量不是时变的,因此可以单独的对这两个量进行控制,类似直流量控制一样。而不需要知道具体要给电机三相具体的电压为多少。 

  4. 将第3步中得到的Iq与Id量分别送进PI调节器,得到对应的输出Vq和Vd; 

  5. 通过传感器得到电机转过的角度。 

  6. 进行逆park变换,得到二轴电流量。 

  7. 对第6步中的Va,Vb进行逆clarke变换,得到实际需要的三相电压输入给逆变电桥,驱动电机转动。


SVPWM电机驱动方式:

其实现流程大致如下所示:

1. 判断合成矢量所在扇区

将U、V、W三相电压矢量合成矢量电压Uref并在二相坐标系中形成分量Uα、Uβ(在FOC中由逆Pack变换得到)由合成矢量落在各扇区的充分必要条件分析可知合成矢量所属扇区。

2. 计算相邻矢量作用时间

3. 计算各桥臂导通时间及各相PWM占空比


4.  更新相应寄存器值

  将上面计算出的TCM1、TCM2、TCM3送入单片机定时器寄存器即可产生SVPWM

三电阻电流采样的可行性:

由于逆变器三相桥臂的上下桥的IGBT的开通与关断是互补的,则每一桥臂的上下桥臂的控制信号也应均是互补输出。假定对其单一相位,如A相位,进行导通取样。当IGBT2导通,IGBT1必然关断,此时电流流向应与A相电流大小相等方向相反。因此将此时采样到的电流进行取反就能得到A相电流。(由于IGBT的开关频率非常高,从而导致采样频率也就远大于相电流频率,由采样定理可知,此时根据采样电流即可恢复出为A相电流的值)




主要完成任务:

1、初步理解FOC控制算法的原理

2、初步理解SVPWM电机驱动方式

3、了解三电阻电流采样的其可行性



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
如何升级STM32单片机的代码