当前位置: 能电机 >> 能电机资源 >> 又开始看电机关于SPWM,SVPWM,F
为什么会重新捡起电机呢?一方面是之前有做过,步进电机的软件细分驱动,在项目即将成功的时候,由于公司决策的一些原因戛然而止。而且但是虽然东西快做完了,但是很多的疑惑依然久久不能驱散。对于强迫症的我来说,这是一道永远过不去的坎。一道深深的裂痕就萦绕心头,挥之不去。为什么选择BLDC作为突破口,原因很简单,资料多。但是步进电机细分驱动就少之又少。
当时做的可能更多的是用SVPWM,但是感觉是野路子出身,少了点什么。所以今天开始记录一下正规知识。
上网找了一些资料,个人感觉这个资料把这三种控制方式讲的很清楚了。简单明了。
1.SPWM和SVPWM2.矢量控制(SpaceVector)1.SPWM和SVPWM
抛开各种控制算法等细节,从最朴素的角度出发。我们只需要在A,B,C三相提供相位差的正弦电压,电机就会稳定的转动起来,调节正弦电压的幅值和频率,就能调节电机的转速和扭矩。这是我们所需要的输出。而我们所提供的输入是稳压直流电源,电机控制中的控制二字指的就是通过6路PWM,控制6个MOS管的开断,来达到直流电源变正弦交流的目的。于是,这就引出了电机控制的核心手段:PWM。接下来介绍SPWM和SVPWM两种技术,这代表了电机控制建模的两种思路。A.SPWM先看图:
SPWM的思路简单粗暴,既然输出你想要正弦波,那还不简单,把正弦电压采个样,当前你要多大的电压,我调调PWM的占空比给你就是了。比如这一秒你要1.2V,我给个10%占空比的PWM,12V的电源输出不就成了你要的1.2V了吗?电机参数,当前状态什么的,我才懒得管。B.SVPWM相比之下,SVPWM考虑问题的视角就完全不一样了。表面上看我们要的输出是三相正弦波,本质上讲是正弦波产生的旋转磁场在带着转子在转动啊。既然要旋转,那还是先看图吧:
图中的(),()什么的代表的是6个MOS管的开关状态,你只需要把6个MOS管调到对应的状态,就能得到该方向的电压,作用到电机的转子上带动其旋转,这里就不深究了,到时候自己查表对着做就行了。这里需要强调的是,SVPWM在控制时已经在考虑电机的状态了,比如电机的转子运动到了某个位置,这时需要一个落在扇区1方向的电压来拖动转子的运动,那我就在()和()之间切换,来合成我们想要的电压呗。相较于SPWM的简单粗暴,SVPWM就考虑的细致入微了。当然SVPWM的好处也是不言而喻的,在所需电压转动,扇区切换的途中(比如电压从扇区1旋转达到了扇区2),我们只需要把之前的()换成(),而()完全不用动,这样就避免的SPWM为达目的,不择手段段,在那疯狂瞎变换MOS开断的疯狂行径,能大大减少MOS开断的损耗。这里提一句,为什么电机控制用的是中心对称PWM而不是边缘触发,因为按着SVPWM的思路走,每次状态变换只需要改变一个MOS管的开关状态,见下图:
2.矢量控制(SpaceVector)不多bb:
什么Park,Clark变换我就不多说了,之所以我们费尽心思在这搞什么矢量控制,坐标变换,把好好的三相变成旋转的两相X,Y坐标系里面去,是因为变过去了以后,你会发现Ia,Ib的幅值固定了,变量被分离到了旋转角θ里面去了。电流的期望值固定了,就可以用PID来控制啦!!!对,折腾了这么久,我们就是想用PID,这就是电机控制的核心,现代控制虽然好,工业界只爱PID:)啰嗦一句,clark还是Park变换里面有个2/3还是2/3的系数变换,是在做相电压与线电压的变化,首先你要知道PMSM在控制时三相是一直在导通的,而不BLDC只有两相同时导通。2/3具体推导见下图:
参考资料1.
转载请注明:http://www.aideyishus.com/lkzp/172.html