凡亿专栏 | MOS管栅极电阻的功耗该如何计算
MOS管栅极电阻的功耗该如何计算

问题起源

我在公众号发的视频一般也会发在B站,最近就有一个小伙伴在我的视频底下面留言了。


11a452d9f2f40c0267124381025b14.jpg

因为这个视频里面有讲MOS管栅极串联电阻的作用,怎么就能抑制谐振,还有电阻的阻值怎么选择,但是我没说这个电阻的功耗怎么计算。

4bde6a276d1448832c534244db1fa3.jpg

考虑到有的小伙伴不知道我之前讲了啥,我就把链接再贴上(看过的就不用浪费时间再看了)

B站是这个链接:

https://www.bilibili.com/video/BV15o4y1o7Ru/

公众号里面的视频链接是这个:

《LC串联谐振的意义》

MOS管串联电阻的问题,在视频的后面。两个链接内容是一样的,看一个就可以了。

 

小伙伴留言的问题是:栅极电阻的功率该如何计算呢?

我看到这个问题的时候,心里想:呀,好问题啊,这个涉及到这个电阻的封装大小。想我以前,这种电路,我都是使用手册推荐的封装的,因为我觉得这个电阻的功率太难算了,也不去计算。

曾经也有人质疑我说:你搞0805这么大封装的干什么,这个电阻就这一个地方用,搞0402的不行吗,物料归一,板子还整齐好看,都是0402的。

我也不是吃素的,反驳道:no!no!no!开关速度快,瞬间电阻功率大,会烧的。

事实上,功率多大,会不会烧,这我哪里知道,汗。。。好在是忽悠过去了。 

不过,事到如今,有了前面的基础,既然有小伙伴提出了这个问题,那还是得解决一下。因为,更重要的是,最近灵感也木有啦,正好借这个机会水一篇文章。

 

提取问题

说干就干。

小伙伴的原问题是:“电阻电路学习中请问一下栅极电阻的功率要怎么计算?比如我10V/2A输出的驱动芯片20欧的栅极电阻。”

句子不是很通顺,想来应该是手机打字留言不方便,不过我看懂了:驱动电压是10V的,驱动电流到输出到2A,栅极串联了20Ω的电阻,请问这个电阻的功率是多少?

这个小伙伴没有给出开关频率,很明显,功率是跟频率相关的,假如1秒钟驱动一次,那这个功率肯定很低,因为只有在切换的时候电阻才会有电流,大部分情况下电压稳定,电阻电流为0。

我们加入开关频率1Mhz,占空比为50%的PWM波,也就是方波。

驱动电流可以达到2A,串联了20Ω电阻,因为不会发生谐振(如果不知道为什么,可以看下前面的视频),所以最大电流不会超过10V/20Ω=0.5A,也就是说驱动电流肯定是够的。这就说明了驱动电压10V不会被拉下来。

我们假定栅极走线为12mil线宽,长度为1cm的寄生电感是9.17nH,为了方便寄生,我们设为10nH吧。功率MOS管的寄生电容大概是1nF左右,我们就取1nF。

最终问题提炼为:驱动电压10V,驱动信号为PWM波,占空比为50%,频率为1Mhz,寄生电感10nH,MOS管寄生电容为1nF,栅极串联电阻为20Ω,请问,这个电阻消耗的功率是多大?

 

建立模型

a17bebe0a0a96ec8ffb59dacb305c6.jpg

我们提取电路模型如图。

那么如何求电阻功率呢?确实不好求,有电感,有电容,阻抗也是随频率变化的,不固定,咋整?

 

理论基础

这个时候,就需要运用到前面学的知识啦,信号在脑子里面是什么样的呢?信号在脑子里面应该被拆解为一个个频率的正弦波,别说你不知道啊,我文章写了,视频也发了,不知道的话你对得起我么?

先将驱动电压波形拆解为各个频率正弦波,然后分别计算各个正弦波分量在电阻上面的功率,再把它们加起来就是总功率了。

What?这么复杂?你在玩我吗?

这么复杂的事情自然是我帮你们干了。

我的思路是使用Matlab工具,这个工具有个好处,那就是我们可以构建任意波形,不一定非得是正弦波,三角波,方波这种,反正都是一序列的点,只要能描述出来,就可以进行处理。

构建驱动序列之后,使用fft函数分析频谱,得到各个频率的幅度值,这个东西其实就是对应频率的电压值啦。如图

440e716d93bb4aef76c64bd49ced0d.jpg

我们知道,电感和电容的阻抗在不同的频率下是不同的,它是频率的函数,jwL和1/jwC。因此,上面的模型,我们很容易就能写出来总的阻抗公式了,之所以要得到阻抗,是因为我们要求电阻每个频率分量的电流。

阻抗Z=Rs jwL 1/jwC。

现在我们有了各个频率分量的电压值,也有了阻抗,那么各个分量的电流值就出来啦。因为是串联的,所以这个电流也是流过电阻的电流。

我们再根据P=I^2*R,就可以求出各个频率分量的功率的,再把它们加起来,那就是总功率了。

最终我们求得,电阻的功耗是P=0.10047W

6309b782b54923e4d62d70dcfda6b2.jpg

 

Matlab代码

上面的过程看起来是很复杂的,其实Matlab代码很简单,也就那么三四十行。真正计算的过程也就不到10行,其它的都是定义变量,画图,设置坐标轴什么的。

建议大家可以运行代码试试,我之前也分享了在线运行Matlab的方法。

Matlab在线执行

看不懂代码也没关系,这个模型最重要的参数就5个,电感,电容,电阻,驱动电压,开关频率。可以自己去尝试修改为不同的值,这样可以算出各种不同情况下电阻的功率。也可以收藏下,在以后真正需要计算的时候,代入相关参数,就可以得到电阻的功率啦。

需要指出的是,这些参数对结果的影响很大,我就不一一说明有啥差别啦。


Fclk=1000000; %PWM频率为1MHzU0 = 10;     %电压幅值10VRs = 20;     %串联电阻为20ΩESL= 10^(-8);  %走线电感10nHC= 10^(-9);  %走线电感为1nF
Fs=1000*Fclk;  %采样率为基频的1000倍Num_T=100;     %分析100个周期的信号L=(Fs/Fclk)*Num_T;   0个周期信号长度(采样总点数)T=1/Fs;    %采样周期t=(1:L)*T; %时间长度
N=length(t);LEN_PWM=zeros(1,N);  %定义PWM信号采样序列for i=1:N            %产生PWM信号-点序列     if  mod(i,(Fs/Fclk))         LEN_PWM(i)=0;     else         LEN_PWM(i)=U0;       endend
figure;subplot(2,2,[1 2]);plot(t,LEN_PWM);      %画出PWM信号title('PWM波形','FontSize',18);set(gca,'XLim',[0 10/Fclk]);%x轴的数据显示范围set(gca,'YLim',[-0.5 10.5]);%y轴的数据显示范围xlabel('时间t (s)','FontSize',18);ylabel('电压/V','FontSize',18);
X_LEN_PWM=abs(fft(LEN_PWM));   t傅里叶变换Fn=Fs*(0:(L/2))/L;          %各个谐波频率序列  An=X_LEN_PWM(1:L/2 1)*2/L;  %每个谐波的幅值序列
Zn=Rs Fn.*ESL.*2.*pi.*1i 1./(Fn.*C.*2.*pi.*1i);  %各个频率对应的总阻抗序列Pn=(((0.707.*An)./abs(Zn)).^2)*Rs;  %各个频率的功率序列,电压有效值除以阻抗得到电流Pall=sum(Pn)   %总功率      
subplot(2,2,3);semilogx(Fn,An);title('PWM频谱','FontSize',18);xlabel('f (Hz)','FontSize',18);ylabel('幅度','FontSize',18);
subplot(2,2,4);semilogx(Fn,Pn);title(['电阻功率谱-总功率=',num2str(Pall),'W'],'FontSize',18);xlabel('f (Hz)','FontSize',18);ylabel('幅度','FontSize',18);



本文就到这里啦,因为都是自己的想法,如有错误,请高手们指出来。

温馨提示:底下可以留言讨论啦!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论