从零开始制作一个推挽开关电源

写在前面

笔者也是开关电源新手,第一次做电源,浅浅记录一下,方便后面查阅,也可给其他的新手提供一些帮助,如有不对的地方,还请指出。文中涉及的商家是本次买材料的商家,非广告,仅供参考。

设计目标

  • 输入电压:24V固定
  • 输出电压:数控可调,最大100V
  • 最大输出功率:50W@100Ω
  • 开关频率:30KHz

理论计算

变压器

目录

写在前面

设计目标

理论计算

变压器

磁芯的选择

初级匝数

次级匝数

初级线材

次级线材

绕制变压器

开关管选择

输入电容

输出电容

输出电感


磁芯的选择

询问了豆包给出的答案是选用PC40铁氧体材质的EE25磁芯,笔者这里选用了这款还有骨架

初级匝数N_p

根据法拉第电磁感应定律计算:

N_p = \frac{Vdc\times t_{on}}{A_{e}\Delta B}

其中:

  • V_{dc},单位取伏特(V),它是加在变压器两端的电压,由于我们的输入电压是固定的24V,所以V_{dc}= 24
  • t_{on},单位取微秒(us)是开关管导通的时间,我们的开关频率f=30KHz,因此T=\frac{1}{f}=\frac{1}{30KHz}=33.3us同时推挽拓扑的开关管是互补导通的,需要预留一定的死区时间,避免同时导通,所以我们取t_{on}=0.8\times \frac{T}{2}=0.8\times \frac{33.3us}{2}=13.32us
  • A_e ,单位取平方毫米(mm^2)是磁芯的磁通面积,可以在商品界面找到,因此A_e=38.4mm^2 
  • \Delta B单位取特斯拉(T),一般铁氧体的最大磁场感应强度取300mT,由于是推挽拓扑,可以取到反向的一边,因此\Delta B=2\times 300mT=600mT=0.6T
  • 因此可以计算出N_p = \frac{Vdc\times t_{on}}{A_{e}\Delta B}=\frac{24\times 13.32}{38.4\times 0.6}=13.875\approx 14,匝数向上取整。

次级匝数N_s

因为最大输出电压V_{omax}是100V,因为推挽电源是类似于buck的,输入输出电压比等于占空比,当取到最大电压的时候对应占空比最大约等于1,因此大概可以得到\frac{N_s}{N_p}=\frac{V_{omax}}{V_{in}}=\frac{100V}{24V}=4.17,所以N_s=4.17\times N_p=4.17\times 14=58.38\approx 59同样的向上取整。

初级线材

因为在理想清况下任意时刻都有P_{out}=P_{in},可以考虑一定的效率问题,即有P_{out}=0.8\times P_{in},由于输出的功率最大是50W,同时输入电压固定是24V,所以可以求出输入的电流的有效值I_{rms}=\frac{P_{in}}{V_{in}}=\frac{1.25P_{out}}{V_{in}}=\frac{1.25\times50W}{24V}=2.6A。按照经验,导线中的电流密度(J)取5A/mm^{2},所以可以求出需要的线材的总的截面积S_p=\frac{Irms}{J}=\frac{2.6A}{5A/mm^2}=0.52mm^2,此时的线径D=\sqrt{\frac{4\times S_p}{\pi}}=\sqrt{\frac{4\times 0.52}{3.14}}=0.814mm

由于我们是开关电源,电流在导线中是脉动的,要考虑趋肤效应,因此实际使用的导线的总的截面积是要大于算出的0.52mm^2的,也可以使用多股细导线绞成一根来绕制。这里需要考虑穿透深度(\Delta这个参数,可以直接查表获取穿透深度,一般是需要让单根线径小于两倍的穿透深度(\Delta为最佳,也就是说D< 2\Delta,上面我们计算出的线径为0.814mm 大于 2\Delta,是不满足要求的,所以要用多股细的导线绕制。

这里就用两股0.3mm^2的绕制初级绕组好了,那么总的线截面积就是2\times 0.3mm^2 = 0.6mm^2 > 0.52mm^2,那么0.3mm^2对应的线径为0.62mm。为了方便先用两股直径0.5mm试试看,应该问题不大。

次级线材

根据能量守恒,变压器前后功率不变,电压比等于匝比,电流则成反比,线截面积和电流成正比,所以,次级选取的线截面积可以是初级的\frac{1}{4.17},即为\frac{0.52mm^2}{4.17}=0.124mm^2,对应的线径为0.39mm,为了方便也直接用0.5mm的线绕制。

绕制变压器

使用三明治绕发,不多解释了,成品后面补充

开关管选择

由于是推挽拓扑,MOS的耐压至少是两倍的输入电源电压也就是48V,考虑到可能会有一定的漏感尖峰,就取3倍的电源电压好了,也就是取72V以上。至于Ids的话先往大的取好了,先取个20A以上的好了。逛了一圈淘宝,这颗IRFB4115PBF参数挺好的,150V的耐压,电流可达到恐怖的104A,错错有余了。

输入电容

输入电容按照1000uF/A的标准选取,输入的电流约为2.6A,那么电容就应该取1000uF/A\times 2.6A=2600uF,可以使用多个小容值并联来减小ESR,以降低输入的电源纹波。由于输入电压是24V,耐压35V以上也可以,可以选择固态电容,容量大,ESR还小,是个不错的选择。笔者就选两个1000uF的固态电容和一个680uF的固态电容好了,固态电容价格小贵。

输出电容

问了豆包,说选75uF以上即可,耐压选择150V以上。那就直接两个100uF 250V的电解电容给他整上去先试试看。由于固态电容的高耐压的似乎没找着,先电解电容凑合用用看看。

输出电感

在额定负载100Ω的时候功率最大为50W,此时的电流为Io=\sqrt{\frac{50W}{100\Omega}}=0.707A,输出的电压为70.7V,对于推挽电路其实和BUCK电路类似,所以选取电感和BUCK电源类似。由于电压是可调的,不好确定电感的工作模式是连续还是断续,那就全用断续模式好了,让最大电流的时候处于临界导通模式,那么此时的电感电流纹波\Delta I=2\times I_o=1.414A,同时此时的导通时间取到最大t_{on}=13.32us,根据电感电流公式,\Delta I =\frac{ \Delta U\times t_{on}}{L},其中\Delta U是电感两端的压差,\Delta t_{on}us得到的结果就是uH,所以L= \frac{ \Delta U\times t_{on}}{\Delta I}=\frac{(24\times 4.17-70.7)\times 13.32}{1.414}=276uH。额定电流在1A以上即可。笔者这里选了个330uH电流3A的电感,电感稍微大一些电流纹波会小一些,电流3A也是够用了。

控制芯片

电源芯片

电源控制芯片选择TI 的UC3846,这颗芯片具有电流模式,可以很好的保护电流过大。同时输出采用的是推挽结构,驱动电流可达到500mA可以说是非常好了,就是价格略贵。

DAC芯片

计划使用一颗DAC芯片来实现电压数字可调,就用个12位DAC好了,价格也还不贵。

### 推挽电源电路的设计及工作原理 #### 工作原理概述 推挽电路是一种常见的功率转换拓扑,广泛应用于开关电源中。其核心思想是通过两个交替工作的晶体管(通常是一个NPN型和一个PNP型或者MOSFET),驱动变压器实现能量传递[^1]。这种设计能够有效提高效率并减少磁芯饱和的风险。 具体来说,在典型的推挽电路中,输入电压被施加到初级绕组两端,而次级绕组则负责向负载提供所需的输出电压。当其中一个晶体管导通时,电流流经对应的一半初级绕组;另一个晶体管关闭期间,则由另一半初级绕组完成同样的功能。这样可以确保整个周期内都有稳定的磁场变化,从而提升工作效率。 #### 设计要点分析 ##### 1. 变压器的选择与设计 变压器作为推挽电路中的关键元件之一,需满足特定参数需求以保证正常运行。主要包括匝数比设定、铁心材料选取等方面考量: - **匝数比**:依据目标输出电压水平计算得出合适的匝数比例关系; - **铁心材料**:应选用高频性能良好的软磁合金或其他专用材质制作而成,以便降低损耗并增强稳定性。 ##### 2. 开关器件选型 对于构成推挽结构的核心部件——即那两颗分别位于上下位置上的半导体开关而言,它们各自承担着不同的角色使命。因此在实际操作过程中要充分考虑到如下几个方面因素的影响作用: - **耐压能力**:所选型号必须具备足够的击穿电压阈值以防止单侧过载情况下造成永久损坏现象发生; - **导通电阻**:较低的Rds(on)有助于减小功耗进而优化整体效能表现。 ##### 3. 驱动信号生成机制 为了使上述提到过的这两只晶体管按照预定规律轮流开启闭合动作起来形成所谓的“推”、“拉”的效果模式的话就需要借助专门定制化的PWM波形来进行精确控制管理才行啦!一般会采用专用IC芯片配合外围元器件搭建起完整的脉宽调制单元模块来达成这一目的哦~ ```python import numpy as np def generate_pwm(frequency, duty_cycle): t = np.linspace(0, 1/frequency, int(1e6)) pwm_signal = (t % (1 / frequency)) < (duty_cycle * (1 / frequency)) return pwm_signal.astype(int) frequency = 50e3 # Example PWM Frequency in Hz duty_cycle = 0.5 # Duty Cycle of the signal pwm_output = generate_pwm(frequency, duty_cycle) print(pwm_output[:10]) # Print first ten samples for demonstration purposes. ``` 以上代码片段展示了一个简单的Python函数用于生成指定频率和占空比的PWM信号模拟过程。 --- #### 总结说明 综上所述可知,合理规划好各个组成部分之间的相互协作关系乃是成功构建一款高效可靠的推挽式直流变换装置不可或缺的前提条件所在之处啊朋友们!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值