DSPF28335无刷直流电机六步换向法的代码生成
·
直流无刷电机的六步换向法控制原理可以看其他的文章视频学习。本文采用24V直流无刷电机,驱动板采用集成的IPM(高电平导通)。通过直流无刷电机输出的三路霍尔信号,经过处理4A+2B+C=Hall,根据Hall的值即可判断出当前电机转子的位置,根据Hall的值,给定一定的PWM占空比按照六步换向法的基本原理,及时调整三相桥式电路的通电顺序,即可带动无刷直流电机的持续转动。
|
顺时针转动 |
101 |
100 |
110 |
010 |
011 |
001 |
|
4A+2B+C |
5 |
4 |
6 |
2 |
3 |
1 |
主程序如下图所示:

三相霍尔输入:

六步换向法:
function [pwm1a,sfa1,pwm1b,sfb1,pwm2a,sfa2,pwm2b,sfb2,pwm3a,sfa3,pwm3b,sfb3] = SixStepForBLDC(sector,pwm)
%顺时针转动
switch sector
case 1
pwm1a = 0;
sfa1 = 1;
pwm1b = 0;
sfb1 = 2;
pwm2a = pwm;
sfa2 = 0;
pwm2b = 0;
sfb2 = 1;
pwm3a = 0;
sfa3 = 1;
pwm3b = 0;
sfb3 = 1;
case 2
pwm1a = pwm;
sfa1 = 0;
pwm1b = 0;
sfb1 = 1;
pwm2a = 0;
sfa2 = 1;
pwm2b = 0;
sfb2 = 1;
pwm3a = 0;
sfa3 = 1;
pwm3b = 0;
sfb3 = 2;
case 3
pwm1a = 0;
sfa1 = 1;
pwm1b = 0;
sfb1 = 1;
pwm2a = pwm;
sfa2 = 0;
pwm2b = 0;
sfb2 = 1;
pwm3a = 0;
sfa3 = 1;
pwm3b = 0;
sfb3 = 2;
case 4
pwm1a = 0;
sfa1 = 1;
pwm1b = 0;
sfb1 = 1;
pwm2a = 0;
sfa2 = 1;
pwm2b = 0;
sfb2 = 2;
pwm3a = pwm;
sfa3 = 0;
pwm3b = 0;
sfb3 = 1;
case 5
pwm1a = 0;
sfa1 = 1;
pwm1b = 0;
sfb1 = 2;
pwm2a = 0;
sfa2 = 1;
pwm2b = 0;
sfb2 = 1;
pwm3a = pwm;
sfa3 = 0;
pwm3b = 0;
sfb3 = 1;
case 6
pwm1a = pwm;
sfa1 = 0;
pwm1b = 0;
sfb1 = 1;
pwm2a = 0;
sfa2 = 1;
pwm2b = 0;
sfb2 = 2;
pwm3a = 0;
sfa3 = 1;
pwm3b = 0;
sfb3 = 1;
otherwise
sfa1=0;
sfb1=0;
sfa2=0;
sfb2=0;
sfa3=0;
sfb3=0;
pwm1a=0;
pwm1b=0;
pwm2a=0;
pwm2b=0;
pwm3a=0;
pwm3b=0;
end
PWM输出如下所示,通过输入state控制PWM开通与关断:

PWM模块的设置如下:



PWM模块的死区时间设置根据自己的驱动板自行给定。
更多推荐
所有评论(0)