0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用LTspice进行BUCK电源环路仿真实验验证

硬件工程师炼成之路 来源:硬件工程师炼成之路 作者:硬件工程师炼成之 2022-05-09 10:37 次阅读

前面花了三节内容,把Buck各个级的传递函数给推导出来了,只需要把它们相乘,就可以得到环路的开环传递函数了。

e9645c30-cf2b-11ec-bce3-dac502259ad0.png

那有没有办法验证它们是否正确呢?这一节就来干这个事情。

验证方法

我打算使用LTspice进行仿真验证,方法是这样的:

1、搭好电路

使用分立器件搭建一个Buck电路,设定好输入电压,选定好电感,电阻电容等器件。

2、根据公式直接画波特图

根据前面推导的公式,我们可以直接列出这个电路的开环传递函数的表达式,有了表达式,我们就可以直接根据表达式画出波特图。

3、测试得到波特图

我们直接仿真前面搭建的buck电路,从FB输入小信号,就跟我们现实中测试波特图一样,测量出环路的波特图。

4、对比

如果根据公式得到的波特图和测试出的波特图一样的话,就说明我们先前推出的公式是没问题的,即完成了验证。

下面开始验证

搭建buck电路

e9739146-cf2b-11ec-bce3-dac502259ad0.png

我们根据buck的系统框图,搭建电路如下:

e990c266-cf2b-11ec-bce3-dac502259ad0.png

锯齿波RAMP使用电压源产生,锯齿波与放大和补偿后的信号做比较就能得到PWM了。周期为10us,即开关频率为100Khz,也就是说我这个buck的开关频率固定为100Khz。

类似于我们常用的buck芯片,Vfb设定为0.8V,我搭建电路的时候,是想输出3.3V电压的,所以设定R3=10K,R2=31.25K,根据分压,可以计算得到输出电压:Vout=0.8*(1+R2/R3)=3.3V

R5=100K,C2=2.2nF的取值我比较随意,只是随便试了几个值,看输出电压能够正常输出我想要的值就没有再改了,兄弟们也可以自己去试试别的值看看。

图中除了电阻、电容、电感之外,还用到了PMOS管Si4403,高速比较器LT1720,放大器AD8031,这几个器件选型也并没有特别的挑选。不过需要注意,比较器不要用放大器替代,速度会不够,无法正确的产生PWM信号。

我们运行下,输出波形如下图

e9a82a28-cf2b-11ec-bce3-dac502259ad0.png

可以看到,输出在3ms之后稳定在3.3V,跟我们的设定值是一致的,说明这个搭建的电路算是正常跑起来了。

不过,也许会觉得刚上电的时候输出电压会飙到8V有问题,这个其实因为我们对初始状态并没有额外的处理。另外一方面,我们测量环路,只测量稳定状态时的,因此,我们只需要测上电3ms后的环路就行,也不影响我们的目的。

电路已经搭起来了,那就进入第2步——根据公式得到波特图。

根据公式直接画波特图

根据“两种误差放大器的传递函数”这一章节可知,反馈级和误差放大级的传递函数表达式如下:

e9bc8d42-cf2b-11ec-bce3-dac502259ad0.png

代入到前面构建的电路中就可以求得采样和放大补偿级的传递函数如下图:

e9dad6bc-cf2b-11ec-bce3-dac502259ad0.png

由前面章节“脉冲调制级传递函数Gpwm(s)”可知,传递函数表达式如下:

e9efd3aa-cf2b-11ec-bce3-dac502259ad0.png

我构建的电路的锯齿波幅值为12V,即VM=12,所以调制级传递函数表达式为:

ea0df1be-cf2b-11ec-bce3-dac502259ad0.png

再根据上一节“开关变换器的传递函数Gvd(s)”可知,开关级的传递函数Gvd表达式如下:

ea29b44e-cf2b-11ec-bce3-dac502259ad0.png

这里面L为电感,C为输出滤波电容,Vi为输入电压,R为负载。代入到我们构建的BUCK电路,那么就是L为L1=33uH,C为C1=100uF,R为R1=1Ω,即Gvd表达式为:

ea40e2c2-cf2b-11ec-bce3-dac502259ad0.png

好了,我们现在4个级的传递函数已经求出来了,我们把它们全部乘起来就是开环传递函数了。

ea528bd0-cf2b-11ec-bce3-dac502259ad0.png

有了表达式,我们就可以直接画出开环传递函数的波特图了,这里我们可以直接使用LTspice就能达到目的,具体方法我专门写了个小文章介绍,见下面链接。

如何使用LTspice画已知传递函数的波特图

我们使用LTspice直接画出上面开环传递函数的表达式对应的波特图,需要代入电路图中的各个参数值(L1=33uH,C1=100uF,C2=2.2nF,R1=1Ω,R2=31.25K,R5=100K)。

最终波特图如下图:

ea71688e-cf2b-11ec-bce3-dac502259ad0.png

从图中可以看到,穿越频率是5.56Khz

eaaf9870-cf2b-11ec-bce3-dac502259ad0.png

以上就是先计算出开环传递函数的公式,然后根据公式直接画图得到的波特图。写的比较啰嗦,主要是希望想亲自试一下的同学,能照着步骤很快能搞出结果来。

公式法已经有了,下面使用测试的方法来得到波特图。

测试得到波特图

使用LTspice测试得到波特图有点费劲,我在这里卡了很久,这也是我最近一段时间没有更新的原因之一,不过最终也总算是在一位网友的帮助下解决了我的问题。

为了让兄弟们不至于在这一步卡住,我尽量说得清楚一些。

测试得到波特图的原理,其实就跟我们现实工作中拿仪器测试环路一样。

通过给环路注入正弦波小信号,然后测量输出信号,输出信号与输入信号幅度的比值就是环路的增益,两者之间的相位差异就是环路的相移。

注意,小信号的频率是变化的,因为我们的波特图,描述的就是在不同频率下,环路的增益和相移的关系。所以我们需要测量很多的频点,分别测量每一个频点对应的增益和相移,然后将它们连成线,就构成了波特图。如果正弦波小信号只有一个频率,那么只能得到一个点。

这是不是有点类似AD采样?如果我们想得到非常平滑的曲线,那么就需要采样更多的点,那么也就意味着更高的采样率。

使用LTspice也是一样,如果参数设置不合理,可能会造成仿真时间特别的长,这一点需要特别注意,我后面也会详细介绍。

具体现实中怎么测试环路,我在B站上面看到一个视频,说得还比较清楚,链接是这个:

https://www.bilibili.com/video/BV1tt4y117vL?spm_id_from=333.337.search-card.all.click

感兴趣可以去瞅瞅,还比较好

下面是视频的一章截图,测试原理是一目了然的了。

ead0e48a-cf2b-11ec-bce3-dac502259ad0.png

以上就是现实工作中通过测试的方法得到波特图的原理。

下面进入正题:LTspice如何通过测试方法,得到前面构建的Buck电路的波特图呢?

首先,在Vout与上面的分压电阻之间加一个电压源,用于注入正弦波小信号。注意,里面的频率是一个变量freq,因为我们要测很多频率点,幅度是20mV,不能太大,太大会影响电路正常工作。

电路图如下图所示:

eaf5577a-cf2b-11ec-bce3-dac502259ad0.png

如果细心的话会发现,我还加了一个0.01Ω的电阻R4,之所以加这个,就是我踩的一个坑。如果没有R4,那么网络a就和网络out是一个网络,后面执行的时候就一直有问题,所以这个R4仅仅起一个隔离的作用,不让同一个网络被取了两次名字。

右面的spice命令加了很多,看着有点费劲,其实也不难,意思大致是这样的:

.measAavgavgV(a)-----测量a点电压平均值Aavg.measBavgavgV(b)-----测量b点电压平均值Bavg.measAreavg(V(a)-Aavg)*cos(360*time*Freq)-----测量a点交流电压实部平均值Are.meas Aim avg-(V(a)-Aavg)*sin(360*time*Freq)-----测量a点交流电压虚部平均值Aim.measBreavg(V(b)-Bavg)*cos(360*time*Freq)-----测量b点交流电压实部平均值Bre.measBimavg-(V(b)-Bavg)*sin(360*time*Freq)-----测量b点交流电压虚部平均值Bim.measGainMagparam20*log10(hypot(Are,Aim)/hypot(Bre,Bim))-----测量增益.meas GainPhiparam mod(atan2(Aim,Are)-atan2(Bim,Bre)+180,360)-180-----测量相位

如果不懂也没关系,只需要将电路上面的2个测量点命名为a和b,然后将这一段spice命令粘上即可。

Freq是频率,是一个变量,因为会测量很多频率点。

.paramt0=3m-----设置参数t0=3ms.tran0 {t0+20/freq}{t0}-----运行t0=3ms后开始测试,测试20个周期.step oct paramFreq 1K 10K 4-----测量频率范围为1K~10Khz,每倍频程测量4个点

t0是系统开始运行到达到稳定状态所需要的时间长度。前面我们运行的时候,已经知道了3ms后系统达到稳定,所以我们这里设置为3ms。注意,不同的系统达到稳定的时间是不同的,要根据实际情况来。不过也需要注意,设置太长会造成仿真时间太长。

频率测量范围我选定的是1K~10K,之所以是这个范围,是因为我已经提前知道了穿越频率是5K左右,所以没有把频程设置很大,因为设太大会造成仿真时间比较长。当然,兄弟们可以自己改一改试一试。

仿真运行

一切准备就绪,我们运行一下,基于当前的设置,我计时了一下,运行时间大概是3分钟(不同电脑配置可能不同)。

运行过程中,我们可以在窗口左下方看到仿真进度,左下角可以看到Run:1/15;

15表示的是会测量15个频点,1表是正在测量第一个频点。

eb148ed8-cf2b-11ec-bce3-dac502259ad0.png

运行结束之后,波形窗口看不到任何波形,因为还需要操作下面几步:

1、在波形窗口点击鼠标右键,选择“View”菜单下面的“SPICE Error Log”

eb338018-cf2b-11ec-bce3-dac502259ad0.png

2、在弹出的log窗口里面,点击鼠标右键,选择“Plot .step’ed .meas data”,在弹出的窗口选择“是”

eb503280-cf2b-11ec-bce3-dac502259ad0.png

3、在弹出的窗口中点击鼠标右键,选择“View”菜单下面的“Visible Traces”

eb92113c-cf2b-11ec-bce3-dac502259ad0.png

4、在弹出的窗口里面选择“gain”,就可以生成波特图了

ebb2393a-cf2b-11ec-bce3-dac502259ad0.png

生成的波特图如下:

ebcf9eb2-cf2b-11ec-bce3-dac502259ad0.png

以上就是采用测试的方法得到波特图的全过程了,有点繁琐,我也是折腾了比较久,感兴趣的同学可以自己玩一玩,相关源文件我文末会分享出来。

至此,公式直接画出的波特图和测试法得到的波特图都已经出来了,我们下面对比看看它们的差别。

波特图对比

ebe799b8-cf2b-11ec-bce3-dac502259ad0.png

可以看到,二者波形基本一样,验证了我们开篇的目的:我们推导的传递函数是正确的。

小结

本节内容就写到这里了,主要是使用LTspice进行仿真验证前面推导的公式,不过这个仿真相对于以前来说还是比较复杂的,需要折腾一下。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开关电源
    +关注

    关注

    6468

    文章

    8354

    浏览量

    482677
  • 函数
    +关注

    关注

    3

    文章

    4338

    浏览量

    62773
  • buck电路
    +关注

    关注

    28

    文章

    484

    浏览量

    46516

原文标题:开关电源环路学习笔记(7)-BUCK电源环路仿真实验验证

文章出处:【微信号:gh_3a15b8772f73,微信公众号:硬件工程师炼成之路】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    分享使用 LTspice 进行电源电路设计的技巧

    LTspice 是一款功能强大、简单易用且免费的 SPICE 仿真工具,在业界得到广泛应用。 列出了用于电源电路设计的 LTspice 的典型用例,并提供了
    发表于 10-28 14:24 1.8w次阅读
    分享使用 <b class='flag-5'>LTspice</b> <b class='flag-5'>进行</b><b class='flag-5'>电源</b>电路设计的技巧

    怎么使用LTspice教程进行噪声分析?

    LTspice的一个功能是能够对电路中的噪声进行建模。本文介绍了用LTSPICE进行基本电路仿真之外的噪声分析和结果显示的基本知识。
    的头像 发表于 10-02 16:33 2719次阅读
    怎么使用<b class='flag-5'>LTspice</b>教程<b class='flag-5'>进行</b>噪声分析?

    LTspice噪声仿真要点

    这里是以LTspice为例看下如何进行噪声仿真,以及相关要点。因为LTspice非常容易上手,最重要的,它是免费软件,所以用它进行电路
    的头像 发表于 11-01 11:24 5258次阅读
    <b class='flag-5'>LTspice</b>噪声<b class='flag-5'>仿真</b>要点

    教学验证BUCK电路仿真验证

    方案匹配您的科研/教学模式。今天为大家分享的是基于EasyGo实时仿真平台的PPEC-HIL BUCK仿真实验,并将其与BUCK电路的实际实验
    发表于 09-05 10:47

    怎么用ADL5317进行multisim仿真实验

    怎么用ADL5317进行multisim 仿真实验?没找到spice model.
    发表于 11-23 08:10

    开关电源Buck电路)的小信号模型及环路设计

    开关电源Buck电路)的小信号模型及环路设计 摘要:建立了Buck电路在连续电流模式下的小信号数
    发表于 07-11 10:43 7608次阅读
    开关<b class='flag-5'>电源</b>(<b class='flag-5'>Buck</b>电路)的小信号模型及<b class='flag-5'>环路</b>设计

    环路计算补偿和仿真教材

    本示例从简单的BUCK电路入手,详细说明了如何进行电源环路的计算和补偿,并通过saber仿真验证
    发表于 03-15 15:04 0次下载

    BUCK电路与反馈环路设计

    这篇文章讲什么? 主要讲环路稳定设计,或者说怎么算误差放大器的参数,略带 buck 电路的其他方面。 为什么要讲环路设计? 当我还是一个电源初学者的时候,
    发表于 12-09 10:41 554次下载
    <b class='flag-5'>BUCK</b>电路与反馈<b class='flag-5'>环路</b>设计

    BUCK电路的环路计算补偿仿真

    本示例从简单的BUCK电路入手,详细说明了如何进行电源环路的计算和补偿,并通过saber仿真验证
    发表于 04-24 15:05 224次下载
    <b class='flag-5'>BUCK</b>电路的<b class='flag-5'>环路</b>计算补偿<b class='flag-5'>仿真</b>

    戴维南定理的验证仿真实验

    利用Multisim7软件对电路图进行仿真,利用自带仪表测出电压、电流值,与应用戴维南定理计算出的电压、电流值进行对比,验证戴维南定理的正确性。
    发表于 02-18 11:55 11次下载

    电源技术的仿真实验详细资料说明

    本文档的主要内容详细介绍的是电源技术的仿真实验详细资料说明包括了:单相整流电路仿真实验,全桥整流电路实验,DC-DC 变换器实验
    发表于 02-02 11:59 31次下载
    <b class='flag-5'>电源</b>技术的<b class='flag-5'>仿真实验</b>详细资料说明

    新型折线形共面EBG电源的噪声抑制仿真实验

    新型折线形共面EBG电源的噪声抑制仿真实验
    发表于 07-02 10:11 2次下载

    直流交流全桥逆变器仿真实验报告

    直流交流全桥逆变器仿真实验报告(现代电源技术基础杨飞参考答案)-直流交流全桥逆变器仿真实验报告             
    发表于 08-31 19:50 20次下载
    直流交流全桥逆变器<b class='flag-5'>仿真实验</b>报告

    开关电源(Buck电路)的小信号模型及环路设计

    开关电源(Buck电路)的小信号模型及环路设计(实用电源技术答案)-开关电源(Buck电路)的小
    发表于 09-18 10:03 82次下载
    开关<b class='flag-5'>电源</b>(<b class='flag-5'>Buck</b>电路)的小信号模型及<b class='flag-5'>环路</b>设计

    LTspice仿真Buck输出电压反馈

    仿真电路如下图所示,电路中的模型,一部分是从网络上找的,剩下的使用LTspice自带的模型。
    的头像 发表于 03-10 15:22 4536次阅读
    <b class='flag-5'>LTspice</b><b class='flag-5'>仿真</b><b class='flag-5'>Buck</b>输出电压反馈