嵌入式开发--无刷电机学习4--SVPWM

SVPWM空间矢量脉宽调节

嵌入式开发--无刷电机学习4--SVPWM_第1张图片
这张图是基于α和β坐标系,也就是定子磁场坐标系,图中的Uout就是定子磁场的空间矢量,它的角度表示定子线圈产生磁场的方向,长度表示磁场的强度,以电机匀速旋转为例,FOC控制的目标就是让这个矢量的长度保持不变,角度匀速变化。

图上以60度为间隔,划分了6个区,其意义类似于6步换向,也就是在不同的区域,相应的开启或关闭相应的驱动桥的上下臂,以及上下臂的导通时间,来实现的。

分区控制

为啥要分为6个区来控制呢?因为我们控制电路,只能控制它的输出电流(电压)的强度,而有些时候它的电流是负的,所以此时我们就通过控制另外两相来间接实现,这也是6区控制的意义。

6个扇区的输出规则是:U4(100), U6(110), U2(010), U3(011), U1(001), U5(101)。分别代表的是3路半桥的上下开关状态,1表示上桥通下桥断,0表示上桥断下桥通。以U4(100)为例,A相是在左边那个1,B相是中间那个0,C相在右边那个0,意味着A相的上桥通,下桥断,BC相都是上桥断,下桥通,很直观。于是共有8种可能的状态,其中000和111无法产生电流,也就无法产生磁场,不用它。
剩下6种状态用来驱动电路。

特别注意的是,任何时候,上下桥绝对不能同时导通,否则电源会被上下桥短路到地,会烧电源,或炸MOS管。还要在定时器输出

驱动端3路半桥能输出的最大圆形磁场是上述6个点组成正6边形的内切圆。不什么不用满整个6边形呢?因为那样的话,就画不了完整的圆,也就不能输出恒定的力矩,在6边形外的区域就要比6边形内部要大,从而不能恒力矩控制,也就意味着在不同的位置转子的角速度不是一个定值,说白一点就是转速不稳。而恒力矩控制是FOC系统最基础,也是最优越的地方,因此我们略微缩小一点控制区域,来做到恒力矩控制。

通过θ的角度,即θ∈[0, 2π],可以判断出当前所在的分区,也就能以驱动不同的方式来驱动半桥了。再给三个半桥提供6路互补输出的PWM波,于是就可以驱动电机了。

写程序的时候也很简单,先判断区域,再根据区域来个switch,写出6段逻辑就好了。

你可能感兴趣的:(嵌入式开发,FOC,BLDC,无刷电机,STM32,嵌入式)