# 三相无刷驱动器电路设计(进行中)
第一章 电源部分:DC-DC电源芯片LM5164DDAR的使用
第二章 电源部分:DC-DC电路之BUCK升压电路总结
第三章 驱动部分:预驱电路和驱动电路的搭建
文章目录
前言
写在前面:
在搭建电路之前,我们需要明白我们要得到的是一个什么样的结果,有了目标,才知道需要往哪个方向去研究,要不就是各种知识在脑子中乱窜,没有清晰的条理,既浪费时间又没有得到好的成果。
我开始搭建电路之前就是这样子,在网络上搜集了很多开源资料,研究他们采用的解决方案,并深入了解其原理,把需要考虑的点都研究一遍后,就发现脑子一片混乱,没有抓住各个参数数据之间的联系,于是花时间把学习到的知识认真梳理一下,写了这篇文章。
该文章包含大量自己的观点和理解,如有错误,欢迎指正,希望大家能够一起进步。
一、关键概念定义
首先我们需要了解一下在电路设计中出现的相关概念,以方便我们进行理解,都熟悉的可以跳过
- PWM频率:
是指1秒钟内信号从高电平到低电平再回到高电平的次数。
控制器输出的脉宽调制信号(PWM)的周期性频率,例如:
f P W M = 20 K H z f_{PWM}=20KHz fPWM=20KHz
- PWM周期
信号从高电平到低电平再回到高电平的时间。
T P W M = 1 f P W M = 1 20 K H z = 50 μ s = 0.00005 S T_{PWM}= \cfrac{1}{f_{PWM}}= \cfrac{1}{20{KHz}}=50μs=0.00005S TPWM=fPWM1=20KHz1=50μs=0.00005S
- PWM占空比
一个脉冲周期内,高电平的时间与整个周期时间的比例:
一个脉冲周期时间50μs
高电平时间 t h i g h = 25 μ s t_{high}=25μs thigh=25μs
低电平时间 t l o w = 25 μ s t_{low}=25μs tlow=25μs
则:
占空比 = 25 μ s 50 μ s = 50 % 占空比 = \frac{25μs}{50μs} = 50\% 占空比=50μs25μs=50%
其实还有别的时间存在,下面会有分析
- MOSFET频率
在BLDC驱动中,实际开关频率与PWM频率相同;
每个PWM周期包含一次MOSFET的开启和关闭动作。
f M O S F E T 开关 = f P W M = 20 K H z f_{MOSFET开关}=f_{PWM}=20KHz fMOSFET开关=fPWM=20KHz
- MOSFET开关时间
t
s
w
i
t
c
h
t_{switch}
tswitch
MOSFET关断到完全导通( t r i s e t_{rise} trise)或导通到完全关断( t f a l l t_{fall} tfall)的时间。
数值通常在几十纳秒到几百纳秒(如 t r i s e = 50 n s t_{rise}=50ns trise=50ns和 t f a l l = 30 n s t_{fall}=30ns tfall=30ns)
- 死区时间
t
d
e
a
d
t_{dead}
tdead
为避免上下桥臂直通,在开关切换时插入的死区时间 t d e a d t_{dead} tdead
因为有开关时间所以存在不确定性死区时间需满足:
t d e a d > t r i s e + t f a l l + t d e l a y t_{dead}>t_{rise}+t_{fall}+t_{delay} tdead>trise+tfall+tdelay
t d e l a y t_{delay} tdelay为驱动电路传播延迟,通常约50ns
通常死区时间设置为200~500ns。
- 一个周期时间分析
在一个PWM周期里面:
T P W M = 1 f P W M = t r i s e + t h i g h + t f a l l + t l o w + t d e a d = 50 μ s T_{PWM}= \cfrac{1}{f_{PWM}}= t_{rise}+t_{high}+t_{fall}+t_{low}+t_{dead}=50μs TPWM=fPWM1=trise+thigh+tfall+tlow+tdead=50μs
其中因为开关时间和死区时间的存在,会影响有效占空比。
例如: t r i s e = 50 n s t_{rise}=50ns trise=50ns和 t f a l l = 30 n s t_{fall}=30ns tfall=30ns和 t d e l a y = 50 n s t_{delay}=50ns tdelay=50ns时占空比只损失了0.42%。
二、硬件电路
写在前面:
我总结了一下,驱动电路都需要考虑那些部分:
- 驱动芯片;
- MOSFET;
- 门极驱动电阻 R g R_g Rg;
- 门极并联二极管;
- 栅源电阻 R g s R_{gs} Rgs;
- 栅源电容 C g s C_{gs} Cgs;
- 自举二极管;
- 自举电阻 R b o o t R_{boot} Rboot;
- 自举电容 C b o o t C_{boot} Cboot;
- 电源滤波电容;
1.确定系统需求
先看核心参数:
1806无刷电机 | 参数 |
---|---|
工作电压 V d c V_{dc} Vdc | 6-24V |
额定负载电流 I r a t e d − l o a d I_{rated-load} Irated−load | 4.5A |
满负载电流 I f u l l − l o a d I_{full-load} Ifull−load | 11.8A |
PWM频率 | 20KHz |
控制方式 | FOC/六步换相 |
2.选择MOSFET
关键参数:
- 漏源电压:
V
d
s
s
V_{dss}
Vdss
选择MOSFET时,先确定MOSFET的漏源击穿电压,需满足:
V d s s ≥ 1.5 × V d c (电机工作电压) V_{dss}\ge1.5\times V_{dc}(电机工作电压) Vdss≥1.5×Vdc(电机工作电压)
通常推荐2倍以上的余量,我的电机工作电压是24V,所以我选60V左右的就可以。
- 连续漏极电流:
I
d
I_{d}
Id
我们根据电机的额定负载电流来选择MOSFET的连续漏极电流。
因为数据手册中的 I d I_{d} Id(连续漏极电流)是在25℃的条件下测的,正常情况下需降额50%-70%。
计算时大多满足:
I d ≥ 2 × I r a t e d − l o a d ( 电机额定负载电流 ) I_d\ge2\times I_{rated-load}(电机额定负载电流) Id≥2×Irated−load(电机额定负载电流)
我的电机额定负载电流为4.5A,我选择MOSFET的连续漏极电流10A左右就可以。
- 峰值电流(脉冲电流):
I
d
m
I_{dm}
Idm
根据电机的满负载电流来选择MOSFET的峰值电流。
I d m ≥ 2 × I f u l l − l o a d ( 电机满负载电流 ) I_{dm}\ge2\times I_{full-load}(电机满负载电流) Idm≥2×Ifull−load(电机满负载电流)
我的电机满负载电流为11.8A,选择MOSFET的峰值电流大于23.6A就可以。
- 栅极电荷:
Q
g
Qg
Qg
尽量选择低的Qg,和低输入电容的MOSFET,减少驱动损耗和开关时间。
- 导通电阻:
R
d
s
(
o
n
)
R_{ds}(on)
Rds(on)
导通电阻决定导通损耗(导通损耗越小越好);
电流值应为负载电流有效值,可以用电机额定负载电流来算:
P 导通损耗 = I r a t e d − l o a d 2 × R d s ( o n ) P_{导通损耗}= I_{rated-load}^{2}\times R_{ds}(on) P导通损耗=Irated−load2×Rds(on)
电机额定负载电流 I r a t e d − l o a d = 4.5 A I_{rated-load}=4.5A Irated−load=4.5A, R d s ( o n ) = 15 m Ω R_{ds}(on)=15mΩ Rds(on)=15mΩ,则导通损耗约为0.3W。
根据以上条件我选择了MSKSEMI(美森科)的AO4266-MS,其参数如下:
3.选择驱动芯片
确定好MOSFET之后,我们就可以选择驱动芯片了。
关键参数:
- 驱动电流
I
d
r
i
v
e
I_{drive}
Idrive:
I d r i v e ≥ Q g t s w i t c h I_{drive}\ge\frac{Q_g}{t_{switch}} Idrive≥tswitchQg
已知:
MOSFET的栅极电荷: Q g = 93 n C ( @ V G S = 10 V ) Qg=93nC(@VGS=10V) Qg=93nC(@VGS=10V)
MOSFET的输入电容: C i s s = C g s + C g d C_{iss}=C_{gs}+C_{gd} Ciss=Cgs+Cgd
阈值电压: V t h V_{th} Vth(确保驱动电压> V t h V_{th} Vth)
先假设目标开关时间
t
s
w
i
t
c
h
=
100
n
s
t_{switch}=100ns
tswitch=100ns则:
I
d
r
i
v
e
≥
93
n
C
100
n
s
=
0.93
A
I_{drive}\ge\frac{93nC}{100ns}=0.93A
Idrive≥100ns93nC=0.93A
- 耐压值:
驱动电压 V d r i v e V_{drive} Vdrive大于 V t h V_{th} Vth确保完全导通;
V d r i v e ≥ 1.2 × V t h V_{drive}\ge1.2\times V_{th} Vdrive≥1.2×Vth
我选的UCC27712DR满足要求:
- PWM输入下拉电阻:
作用:
1:防止输入悬空时的误触发
2:抑制电磁干扰(EMI)
3:提高系统可靠性
选型:
低干扰场景:10kΩ ~ 100kΩ,优先考虑低功耗。
高干扰场景:1kΩ ~ 10kΩ,侧重抗噪能力。
验证关键点:驱动源电流能力、信号边沿速度、实际环境干扰水平。
注意事项:
部分驱动芯片内置下拉电阻,需查阅数据手册避免重复添加。
高速PWM信号需额外注意RC延迟,必要时并联小电容加速边沿。
4.计算门极驱动电阻 R g R_g Rg和栅源电阻、栅源电容
计算过程:
- 门极驱动电阻
R
g
R_g
Rg:
经验公式:
R g = t switch 2.2 × C i s s R_{g}=\frac{t_{\text {switch }}}{2.2 \times C_{iss }} Rg=2.2×Cisstswitch
t s w i t c h t_{switch} tswitch:MOSFET开通时间
C i s s C_{iss} Ciss:MOSFET的输入电容:Vgd+Vgs(可先直接采用MOSFET上的参数)
R
g
=
t
switch
2.2
×
C
i
s
s
=
100
n
s
2.2
×
4.1
n
F
≈
11.1
R
R_{g}=\frac{t_{\text {switch }}}{2.2 \times C_{iss }}=\frac{100ns}{2.2 \times 4.1nF}\approx 11.1R
Rg=2.2×Cisstswitch =2.2×4.1nF100ns≈11.1R
原方程:
R
g
=
t
switch
C
iss
⋅
ln
(
V
drive
V
drive
−
V
th
)
R_{g}=\frac{t_{\text {switch }}}{C_{\text {iss }} \cdot \ln \left(\frac{V_{\text {drive }}}{V_{\text {drive }}-V_{\text {th }}}\right)}
Rg=Ciss ⋅ln(Vdrive −Vth Vdrive )tswitch
- 验证驱动电流:
I d r i v e = V d r i v e R g = 12 V 11.1 R = 1.08 A > 0.93 A ( 符合 ) I_{drive}=\frac{V_{drive}}{R_g}=\frac{12V}{11.1R}= 1.08A>0.93A(符合) Idrive=RgVdrive=11.1R12V=1.08A>0.93A(符合)
若不符合要求,再重新修改电阻值,进行计算,满足条件后修改 C i s s C_{iss } Ciss增加 C g s C_{gs } Cgs的值(并联电容)
注意:驱动电流需要充足的余量(高频PWM(>50kHz)额外增加 20% 余量)
余量系数 | 适用场景 | 设计建议 |
---|---|---|
20%~30% | 低成本消费电子,短时工作 | 确保环境温和、参数稳定 |
50%~100% | 通用工业设备,连续工作 | 关注温度降额和电源波动 |
100%~150% | 汽车、航空、医疗等高可靠性场景 | 结合故障模式分析(如短路保护) |
所以还要进行修改。
- 栅源电容
C
g
s
C_{gs}
Cgs:
我结合标值进行选择选了6.8R的电阻;经计算驱动电流约1.76A;此时 t s w i t c h = 61.336 n s t_{switch}=61.336ns tswitch=61.336ns(小于目标100ns)
所以需要并联小电容Cgs= 0.1 C i s s C_{iss} Ciss~0.5 C i s s C_{iss} Ciss;增加阻尼通常:100pF-10nF。
t s w i t c h = 2.2 × R g × ( C i s s + C g s ) t_{switch}= 2.2\times R_g\times (C_{iss}+C_{gs}) tswitch=2.2×Rg×(Ciss+Cgs)
我加了个2.4nF的, t s w i t c h = 97.24 n s ≈ 100 n s t_{switch}=97.24ns\approx 100ns tswitch=97.24ns≈100ns - 栅源电阻
R
g
s
R_{gs}
Rgs:
作用:为栅极电荷提供放电路径,增加栅极回路阻尼抑制高频震荡,防止栅极悬空导致误触发;
主要参数是放电时间常数 τ = C i s s × R g s \tau=C_{iss}\times R_{gs} τ=Ciss×Rgs,条件就是: τ \tau τ要远小于PWM的周期时间一般选十分之一;
即:
R g s < T P W M 10 × C i s s R_{g s}<\frac{T_{\mathrm{PWM}}}{10 \times C_{i s s}} Rgs<10×CissTPWM
其中 C i s s C_{iss} Ciss为总的电容值(包括后来加上去的)我带入计算50us/(10x6.5)约为0.77kR。选标值750R。
计算验证: τ = C i s s × R g s = 4.875 u s \tau=C_{iss}\times R_{gs}=4.875us τ=Ciss×Rgs=4.875us远小于100us。
5.设计自举电路
自举电路通常用于高边MOSFET或IGBT的驱动,通过自举电容和二极管来提供高于电源电压的驱动电压:
我驱动芯片的电源是12V,当高边MOSFET的源极电压上升到24V时,栅极驱动电压需要相对于源极至少要高10V左右(Vth加上余量),那么栅极电压需要达到24V + 10V = 34V,这显然无法通过12V电源直接提供。这时候必须使用自举电路。
关键参数:
-
先选择自举二极管:
耐压值:防止自举电容高压反灌:
耐压值>电源电压+驱动电压(包含余量的电压差)
通常总的耐压值是电源电压的两倍以上。
正向电流(充电电流)IF:需满足自举电容充电的峰值电流需求
经典值:IF>1A(先选大于1A的后面再进行调整)
反向恢复时间trr:越快越好
快恢复二极管trr<100ns
超快恢复二极管trr<50ns
肖特基二极管trr=0
注意:肖特基二极管的耐压值通常比较低常见在40V左右,24V系统的瞬态电压可能超过40V。
-
自举电容 C b o o t C_{boot} Cboot:
C b o o t ≥ Q g + I l e a k × T O F F Δ V C_{\mathrm{boot}} \geq \frac{Q_{g}+I_{\mathrm{leak}} \times T_{\mathrm{OFF}}}{\Delta V} Cboot≥ΔVQg+Ileak×TOFF
通常取值(通常取1μF∼10μF)
其中
Q g Q_{g} Qg:为栅极电荷量
I l e a k I_{\mathrm{leak}} Ileak:所有的漏电流(栅极漏电流,二极管漏电流,栅极驱动漏电流,自身漏电流)
T O F F T_{\mathrm{OFF}} TOFF:上管关闭状态的时间
Δ V {\Delta V} ΔV:为自举电容允许的电压降通常<0.5V。
上管关闭状态时间,我还存在疑惑,所以我在别的地方看到了这样的一个公式:
Cbs
≥
15
⋅
2
⋅
[
2
⋅
Q
g
+
Q
period
+
I
bs(staic)
f
+
I
bs(leak)
f
]
V
c
c
−
V
F
−
V
d
s
(
L
)
\text { Cbs } \geq 15 \cdot \frac{2 \cdot\left[2 \cdot Q_{g}+Q_{\text {period }}+\frac{I_{\text {bs(staic) }}}{f}+\frac{I_{\text {bs(leak) }}}{f}\right]}{V c c-V_{F}-V_{d s(L)}}
Cbs ≥15⋅Vcc−VF−Vds(L)2⋅[2⋅Qg+Qperiod +fIbs(staic) +fIbs(leak) ]
其中:
Q
g
Q_{g}
Qg上管栅极电荷
Q
period
Q_{\text {period }}
Qperiod :每个周期中电平转换电路的电荷要求,约5nC.
I
bs(staic)
I_{\text {bs(staic) }}
Ibs(staic) :上管栅极漏电流(静态电流)
I
bs(leak)
I_{\text {bs(leak) }}
Ibs(leak) :自举电容漏电流
f
f
f:工作频率
V
c
c
V_{cc}
Vcc:自举二极管充电电压(下管供电电压)
V
F
V_{F}
VF:自举二极管正向导通压降,
V
d
s
(
L
)
V_{d s(L)}
Vds(L):下管导通压降。
- 自举电阻
R
b
o
o
t
R_{boot}
Rboot:
限流防止损坏二极管或电容
减缓充电速度:过快的充电可能引起电压尖峰或振荡
选型时需要平衡时间和功耗:
阻值太大,充电时间过长,可能导致高边驱动电压不足;
阻值太小,限流效果不明显,还可能增加功耗。
先根据下管导通时间
T
o
n
T_{on}
Ton满足充电时间的要求:
(电机工作在6-24V,下管导通最小占空比为25%)
R
b
o
o
t
<
T
o
n
3
×
C
b
o
o
t
R_{boot}<\frac{T_{on}}{3\times C_{boot}}
Rboot<3×CbootTon
其中:
T
o
n
T_{on}
Ton为底边导通时间:根据PWM频率和占空比来算。
计算出来后验证是否满足电流需求
I
p
e
a
k
>
V
c
c
−
V
F
R
b
o
o
t
I_{peak}>\frac{V_{cc}-V_F}{R_{boot}}
Ipeak>RbootVcc−VF
其中:
V
c
c
V_{cc}
Vcc为栅极驱动的工作电压;
V
F
V_{F}
VF为自举二极管的正向压降;
I
p
e
a
k
I_{peak}
Ipeak为二极管或者MOSFET的峰值电流能力(选小的)。
若计算出现
R
b
o
o
t
R_{boot}
Rboot无解,则需调整设计:
1:修改自举电容大小
2:更换高电流二极管,允许更大充电电流。
经计算我选择4.22R
三、仿真
待补充。。。。。