打印
[电机应用]

SPWM电机控制原理

[复制链接]
5349|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 AutochipsMCU 于 2020-9-3 13:29 编辑

三相交流异步电机转动原理

当在三相交流异步电机三相绕组施加相位相差120度的对称正弦电压时,电机内将产生旋转磁场。

定子的三相绕组同时施加相位相差120度的正弦电压时,会在电机内产生旋转磁场,转子线圈切割磁力线,产生感应电动势,从而在转子线圈内产生电流,转子线圈的电流又会产生转子磁场与旋转磁场互相作用,产生电磁力,形成转子转动的转矩,这样转子就跟随旋转磁场旋转起来。但是转子的转速和旋转磁场的转速不能相等,否则转子无法切割磁力线,也就无法转动。
SPWM正弦脉宽调制原理
SPWM(正弦脉宽调制)的目的就是期望在永磁同步电机的三相绕组上施加跟交流异步电机的三相绕组上相同的相位相差120度的正弦电压。
SPWM(正弦脉宽调制)就是将要产生的正弦波电压变成宽度渐变的脉冲波,脉冲波的宽度变化规律完全符合正弦的变化规律。其产生的原理是采用一组等腰三角形波信号(载波)与正弦波信号(调制波)进行比较,其交点时刻作为开关管的导通和关闭时刻,当调制波(正弦波)大于载波(三角波)时,逆变桥的开关管导通;反之,则关断,这样逆变桥就产生一组等幅不等宽的脉冲序列。
MCU中如何实现SPWM发波呢?
普通的MCU不具备处理三角函数的能力,而SPWM发波需要正弦计算,可以通过查表解决。
正弦表制作
0-90度的正弦值用离线的方式计算出来,90-180度的正弦值和0-90度相同,180-360度的正弦值等于0-180度正弦值的负数,我们将0-360度的正弦值预先写入MCU的flash中,需要哪个角度对应的正弦值可在程序中通过查表的方式查找即可。
若使用16位无符号数表示0度-360度,则可用以下公式进行转换:
16位无符号数表示的角度 = (对应的角度数 / 360度) * 65535
例:16384 = 90 / 360 * 65535
若使用16位有符号数表示0度-180度,0度-(-180)度,则可用以下公式进行转换:
16位有符号数表示的角度 = (对应的角度数 / 180度) * 32767
例: 16384 = 90 / 180 * 32767
   -16384 = -90 / 180 * 32767

若使用16位无符号数表示0-1之间的小数,则可用以下公式进行转换:
16位无符号数表示的小数 = 对应的小数 * 65535
例:32768= 0.5 * 65535
若使用16位有符号数表示0-1或(-1)-0之间的小数,则可用以下公式进行转换:
16位有符号数表示的小数 = 对应的小数 * 32767
例: 16384= 0.5 * 32767
  -19660= -0.6 * 32767
程序中的正弦表定义:
#define SIN_TABLE_SIZE  128
int16_t SinTableC[SIN_TABLE_SIZE]=
{
    0,    1608,   3212,   4808,   6393,   7962,   9512,   11039,
    12539,  14010,  15446,  16846,  18204,  19519,  20787,  22005,
    23170,  24279,  25329,  26319,  27245,  28105,  28898,  29621,
    30273,  30852,  31356,  31785,  32137,  32412,  32609,  32728,
    32767,  32728,  32609,  32412,  32137,  31785,  31356,  30852,
    30273,  29621,  28898,  28105,  27245,  26319,  25329,  24279,
    23170,  22005,  20787,  19519,  18204,  16846,  15446,  14010,
    12539,  11039,  9512,   7962,   6393,   4808,   3212,   1608,
    0,            -1608,  -3212,  -4808,  -6393,  -7962,  -9512,  -11039,
   -12539, -14010, -15446, -16846, -18204, -19519, -20787, -22005,
   -23170, -24279, -25329, -26319, -27245, -28105, -28898, -29621,
   -30273, -30852, -31356, -31785, -32137, -32412, -32609, -32728,
   -32767, -32728, -32609, -32412, -32137, -31785, -31356, -30852,
   -30273, -29621, -28898, -28105, -27245, -26319, -25329, -24279,
   -23170, -22005, -20787, -19519, -18204, -16846, -15446, -14010,
   -12539, -11039, -9512,  -7962,  -6393,  -4808,  -3212,  -1608,
};
霍尔信号与转子N方向角度的确定
通常规定Eu/aEv/b角度变化为0-120度,所以可确定如下图所示坐标系。

正弦波生成角度的确定
对于交流异步电机而言,下图中的三个式子中Um是固定的,W是交流电供电的频率,所以交流异步电机的转速是固定的。
对于永磁同步电机而言,如果我们使用有霍尔控制,那么wt是跟霍尔信号的变化频率同步的,Um可以由用户进行调整,从而可以调节永磁同步电机的速度。令θ= wt,则有:

θ就是三相正弦电压合成电压与坐标轴(0度)的夹角,转子N指向的角度由霍尔信号确定,但是霍尔信号从上一个跳变沿到相邻的下一个跳变沿,转子N指向的角度将旋转60度,而对于一个正弦波而言,还需要确定60度之间的角度增量,才能得到每一个60度内的转子N指向的角度。
对于纯电压控制,三相正弦电压合成电压要超前转子90度,所以θ最终的确定公式:θ = α + 90
其中α代表转子N指向的角度。α = α + △α (α1用来在发生霍尔信号跳变沿时更新α)
其中α1代表由霍尔跳变确定的基础角度,△α为相邻两个霍尔跳变沿间60度内的一个PWM周期的角度增量。△α可由以下式子确定:△α = △t / T * 60,其中△t为PWM周期时间,T为相邻两个霍尔信号跳变沿之间的时间。

上述原理的代码实现,参考附件。
环境:AC7801电机demo板。
电机:demo小电机,线序:电机端出线分两部分,一部分为电机功率驱动线 3 根,颜色黄,红,黑依次接 Demo 板 J17 接口的 U,V,W 信号;另一部分为霍尔工作接口共 5 根线,颜色红,黑,黄,绿,蓝依次接 Demo 板 J5 接口上第 5,4,3,2,1 号引脚。
实现功能:SPWM发波方式恒压控制(25%)HALL电机运行。

SPWM.rar (45.55 KB)





使用特权

评论回复

相关帖子

沙发
戊戌变法| | 2020-9-4 08:34 | 只看该作者
喜欢这种 说明加程序的 讲解

使用特权

评论回复
板凳
也做个国产的。因为开源。另外知名的Proteus最新版也是基于QT5开发的。

使用特权

评论回复
地板
marginer| | 2020-9-9 15:18 | 只看该作者
专业!!!professional!!

使用特权

评论回复
5
zhengshuai888| | 2020-9-9 19:40 | 只看该作者
这个才是技术贴啊!

使用特权

评论回复
6
毛驴想飞| | 2021-11-25 16:26 | 只看该作者
感谢大佬,膜拜

使用特权

评论回复
7
毛驴想飞| | 2021-11-26 14:32 | 只看该作者
看,这他妈的才叫专业

使用特权

评论回复
8
dvacos| | 2023-9-20 18:17 | 只看该作者
学习 mark!

使用特权

评论回复
9
砥砺| | 2023-9-20 20:55 | 只看该作者
很详细,学起来

使用特权

评论回复
10
uboot| | 2023-11-26 10:04 | 只看该作者
记号,spwm的产生

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:合肥杰发科技有限公司
简介:四维图新全资子公司 全球多地布局;专注于汽车电子芯片及相关系统的研发与设计 车规级芯片覆盖整车;客户遍及海内外 全球超过8000万辆车搭载杰发科技芯片。

59

主题

268

帖子

11

粉丝