开关电源环路学习笔记(6)-开关变换器传递函数Gvd(s)推导过程

2023-11-15

终于到了最关键的环节,也是最难的环节,如何求出开关级的传递函数?

 

也就是下图这一级。

哎,不得不说,太难了。。。

不过没办法,先前夸下海口,跟兄弟们说我要把环路搞清楚,现在搞不动也得搞啊。

这一级之所以这么难,主要是有开关元器件,本身是非线性的。当然了,前面第2小节我们已经阐明了,在满足低频,小信号等条件下,也可以看成是线性的,这里就不再说了。

那么如何求解传递函数呢?

求解方法

求的方法有很多种,常见的有下面这几种:

1、小信号模型的建模思路——基本建模法

2、状态空间平均法

3、开关元件平均模型法

4、开关网络平均模型法

上面这几种方法在《开关变换器的建模与控制+张卫平编著》这本书中都有非常专业详细的讲解。其实我此章也主要是看这本书进行的一个总结。

        

我个人觉得最好的应该是4种——开关网络平均模型法,或者说这是我最喜欢的方法吧,也是我深入去看的一种方法。

不过原书中的方法会画出有变压器的等效电路,我不喜欢引入变压器,所以我下面介绍的过程是没有引入变压器的,直接推导出的公式。

BuckCCM模式求解过程

求解过程主要有这么几步:

1、二端口等效

2、端口参数关系,推导出两个式子

3、代入电路,结合原理推导出传递函数

二端口等效

先来看二端口等效是怎么回事,下面是buck的拓扑。

最难搞的就是里面这个MOS管和二极管了,那咋整呢?

干脆就把它看作一个整体,对外有四根线,同时底下两根线接地,所以也就是说有两个端口,是一个二端口网络

那么电路变成下面这样的了

按照上图一等效,好像也没什么卵用,反而更加不熟悉了。先不着急

我们需要先对i1(t),i2(t),v1(t),v2(t)取开关周期的平均值,注意,是开关周期平均值,而不是总时间平均值。因为如果是总时间的平均值,那就只是直流等效了。

这里多一嘴,说说开关周期平均值和总时间平均值有什么差别,因为我在这里想了比较久,并且看起来两个值好像是一样的。

确实,如果是稳态,没有干扰信号,负载恒定,上述变量在每一个开关周期内的平均值都是一样的,并且等于总时间的平均值。

但是如果有干扰信号,那么可能上一个周期的平均值跟下一个周期的平均值不一样,也就是它是时间的函数。我们现在分析传递函数,就是分析干扰信号的影响,自然不能只看直流等效了,所以求的是开关周期的平均值。

那问题来了?求开关周期的平均值合理吗?

其实这里就有用到前面所说的线性化条件——低频信号假设,我们研究的信号大大低于开关频率,因此求开关周期的平均值是合理的。

取的周期平均值我们用新符号表示,分别为:I1(t),I2(t),V1(t),V2(t),它们都是时间的函数。那么电路就变成了下面这样:

现在我们需要分析下我们引入二端口的4参数I1(t),I2(t),V1(t),V2(t),他们之间到底有啥恩怨情仇?

端口参数关系,推导出两个式子

假如没有任何干扰信号,那么I1(t),I2(t),V1(t),V2(t)周期平均值和全时间的平均值是一样的,每个周期都一样,每个周期的平均值自然和全部时间内的平均值一样,这应该没毛病。

好,我们假设没有干扰信号时,平均值分别是I1I2V1V2,它们是个常量。此时开关信号的占空比也是恒定的,我们用D表示

现在我们将干扰信号加进去,我们知道,系统只有满足小信号条件的时候,才能将之近似看成线性系统。

既然干扰信号是小信号,那么这个干扰信号会引起I1(t),I2(t),V1(t),V2(t)随时间小范围变化,它们分别以I1,I2,V1,V2为中心进行波动,同理,占空比也会围绕D为中心进行波动。

各变量的波动量不就是交流小信号吗?

我们分别用符号I1(t),△I2(t),△V1(t),△V2(t),△D(t)来表示。

那么我们可以用下面的表达式进行表示:

式子已经列出来了,现在我们需要求他们之间的关系。

先看看V2(t)的物理意义,前面说了,它是开关周期内的平均值。

显然,V2(t)=V1(t)*D(t),为什么呢?

因为在MOS不导通的时候,那么二极管导通,v2(t)为0,而在MOS导通的时候,v2(t)等于v1(t)。

所以,v2(t)在周期内的平均值V2(t)就等于导通时间的百分占比乘以V1(t),即:

同样的,I1(t)= I2(t)*D(t),那又是为什么呢?

因为MOS在不导通的时候,i1(t)为0,而在MOS管导通的时候,i1(t)等于i2(t),所以,i1(t)在周期内的平均值I1(t) 就等于导通时间的百分占比乘以I2(t),即:

易知,上面两个式子,无论是在稳态(没有干扰),还是在有干扰的情况下,都是成立的。

小信号求解

我们把前面得到的几个式子代换一下,就可以得到小信号的表达式。

上面的式子可能看着有点复杂,其实简单代换就出来了,最终我们得到了下面这两个式子:

式子中忽略了高阶微小量,为什么可以忽略呢?

我是这么理解的,本来这些带△的量就是小信号,意思是围绕一个中心值小范围波动,所以带△符号的量相对于不带△符号的量是很小的。那么两个都带△符号的量相乘,乘积就更小了,所以干脆把它忽略掉了。

对于BUCK来说,只需要第一个式子就可以求出传递函数了,也就是下面这个

写的有点长,我们回顾下我们最终的目的,我们的目的是要求出Gvd,也就是△Vo/△D的值,上面式子中,我们已经能知道△V2与△D的关系,那△V2与△Vo是什么关系呢?

回到我们Buck的拓扑

V1(t)不就是输入信号Vi吗?

理想情况下,Vi就是恒定的,占空比变化也不会导致Vi发生变化(不要考虑输入的开关纹波,我们现在分析的是理想拓扑,输入电源为理想电源,电压就是恒定的)。

既然Vi恒定,那么V1(t)就恒定不变,那么前面说的V1(t)的变化量V1(t)=0所以上面的那个式子可以再次化简下,如下:

另一方面,△V2指的是在占空比发生变化时,在电感前面引起的电压的变化量。

我们知道了△V2,那么Vo不就是后面电感L,电容C,负载R对△V2的分压吗?那么就有了:

再结合前面得到的式子V2=D*Vi,我们就求得了最终的传递函数:

到此,我们就求出了buck的开关变换器的传递函数Gvd(s)。

写到这里,我估计会有兄弟说:搞了一堆,我肉眼都能看出在电感之前的信号表达式△V2=D*Vi,再把它后面的电感LCR看成是低通滤波器,1分钟就能推出传递函数了。

确实如此,有点复杂,不过我上面的推导是普遍适用的法子,我拿BUCK来举例其实不好。如果拿boost就比较好,因为boost肉眼看不出来,但用上面的法子就可以推导出来。

那下面就再看看Boost

BoostCCM模式传递函数推导过程

有了前面的铺垫,Boost我就写简单点,其实最关键的还是那个MOS和二极管,我们的过程依然是下面几步。

1、二端口等效

2、端口参数关系,推导出两个式子

3、代入电路,结合原理推导出传递函数

二端口等效

二端口等效如下:

端口参数关系,推导出两个式子

I1(t),I2(t),V1(t),V2(t)为周期平均值,假如没有任何干扰信号,它们和全时间的平均值是一样的,每个周期都一样,每个周期的平均值自然和全部时间内的平均值一样,这应该没毛病。

好,我们假设没有干扰信号时,平均值分别是I1I2V1V2,它们是个常量。此时开关信号的占空比也是恒定的,我们用D表示

现在我们将干扰信号加进去,我们知道,系统只有满足小信号条件的时候,才能将之近似看成线性系统。

既然干扰信号是小信号,那么这个干扰信号只会引起I1(t),I2(t),V1(t),V2(t)随时间小范围变化,它们分别以I1,I2,V1,V2为中心进行波动,同理,占空比也会围绕D为中心进行波动。

各变量的波动量不就是交流小信号吗?

我们分别用符号I1(t),△I2(t),△V1(t),△V2(t),△D(t)来表示。

式子已经列出来了,现在我们需要求他们之间的关系。

先看看V1(t)的物理意义,它是周期内的平均值。

显然,V1(t)=V2(t)*(1-D(t)),为什么呢?

因为在MOS不导通的时候,二极管(看成理想二极管)导通,v1(t)为v2(t),而在MOS导通的时候,v1(t)接GND,为0,所以,v1(t)在周期内的平均值V1(t)就等于不导通时间的百分占比乘以V2(t),即:

同样的,I2(t)= I1(t)* (1-D(t)),那又是为什么呢?

因为MOS在不导通的时候,i2(t)等于i1(t),而在MOS管导通的时候,i2(t)等于0,所以,i2(t)在周期内的平均值I2(t) 就等于不导通时间的百分占比乘以i1(t),即:

从推导过程看,上面两个式子,无论是在稳态(没有干扰),还是在有干扰的情况下,都是成立的。

小信号求解

我们把前面得到的几个式子代换一下,就可以得到小信号的表达式。

忽略高阶小项,得到下面两个小信号的式子

回想我们的目的,我们要得到传递函数,也就是需要知道△Vo与△D的比值关系。当然,我们会有一些量是已知的,比如输入Vi,占空比D,还有电感L,负载阻抗R,负载滤波电容C,这些都是已知量。

回到Boost的拓扑

从上面我们能得到什么式子呢?

首先,在输入端,对于交流小信号来说,输入直流Vi相当于是短路,那么电感左边相当于接地,根据复阻抗的欧姆定律,那么电感两端压降就是:sL*△I1(t),也等于-△V1(t),负号表示方向。

关于为什么“对于交流小信号来说,输入直流Vi相当于是短路”的,我之前也写过一篇文章,可以去瞅瞅。

其次,在输出端,对于交流小信号来说,电压△Vo=△V2,同时,根据复阻抗的欧姆定律,电压等于电流乘以阻抗,即:

 

然后,V1为直流分量,因此有V1=Vi

V2也为直流分量,因此有V2=VoI2=Vo/R

并且在小信号求解时,我们已经推出了两个公式:

V1=(1-D)*V2

I2=(1-D)*I1

我们把上述所有公式汇总,消除中间量,就可以求出传递函数了,如下图:

以上就是boost求解传递函数的过程,看着是非常费劲,其实要是想通了就不难。

小结

很是费了一番功夫,最终求出了buck和boost的传递函数Gvd(s)。

我使用的方法其实就是《开关变换器的建模与控制+张卫平编著》里面的开关网络平均值法,不过我结合自己的喜好,改造了下,没有用变压器等效,尽量用通俗的语言,一步一步推出公式来。

当然,我这么玩不太严谨,如果想要深入了解的兄弟,建议去看下这本书,里面有很多建模方法,非常的专业。但是不好的地方就是也比较难懂,我来来回回看了好久,终于有些许领悟,能做到扔掉书本,自己推出buck和boost的开关变换器的传递函数了,过程就是上面写的了。

以上内容其实在工作中是用不到的,各种拓扑的传递函数其实早已被前人给推导出来了,我们直接用就好。不过,人总有一些好奇心,会问个为什么,如果知道过程,那自然也是极好的。

想要《开关变换器的建模与控制+张卫平编著》这本书的pdf版本,可以在我的公众号“硬件工程师炼成之路”后台回复“炼成之路”,就可以下载了,东西很多,在目录“书籍”里面,需要自己找一下。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

开关电源环路学习笔记(6)-开关变换器传递函数Gvd(s)推导过程 的相关文章

随机推荐

  • python元组 列表 字符串最后一个下标_python字符串列表元组序列操作

    Table of Contents generated with DocToc python系列 字符串 列表 元组的操作 序列的访问及运算符 序列是为满足程序中复杂的数据表示 python支持组合数据类型 可以将一批数据作为一个整体进行数
  • 数据湖:设计更好的架构、存储、安全和数据治理

    问题导读 1 对数据湖有哪些预期 2 数据湖架构如何设计 3 如何做好数据治理工作 4 如何保障数据湖的安全 前言对任何业务来说 数据驱动的结果 预告和对趋势的预测都是必不可少的 今天 在我们所做的每件事中 都能看到某种分析的逻辑在背后 从
  • C语言输出3个整数最大值的案例教程

    思路分析 先比出2个整数的最大值 然后用最大值和第三个整数比较从而求出3个整数的最大值 我们今天用几种办法输出3个整数最大值 方法一 使用if else语句以及输入输出语句来编写 方法二 使用三元运算符以及输入输出语句来编写 方法三 使用自
  • JAVA 泛型的相关知识点

    泛型分为 1 泛型类 2 泛型接口 3 泛型方法 1 泛型类 定义 class Test
  • Python编程技巧和需要注意的地方——Pro

    目录 前言 1 多个大数字相加 2 同时访问多个相互关联的列表 3 访问列表的同时输出对应下标 4 熟练使用 和 5 关于类的get和set方法 6 熟练使用help和dir方法 7 什么时候使用set或dict而不是list 8 默认参数
  • 互联网大厂2021中秋礼盒pk,看完我又酸了……

    作者丨魏宇卓 来源丨运营研究社 ID U quan 马上又要到中秋节啦 每年中秋节 我最喜欢的就是吃着在便利店买的寒酸月饼 围观互联网大厂们在中秋礼盒上互相 battle 今年 大厂的月饼礼盒哪家强呢 我特地挑选了 10 家互联网大厂的中秋
  • 如何一次性批量打印PDF、Word、Excel、PPT和图片 - 文件批量打印工具

    一次性自动批量打印PDF WORD DOC DOCX Excel工作表XLS XLSX CSV PowerPoint PPTX PPT和JPG PNG TIF BMP图像 在日常工作生活中 我们时常需要通过打印机打印文件或照片 打印机都是逐
  • 【Unity Shader】概述以及Diffuse shader和unity5新功能Standard shader

    一 Diffuse shader介绍 Diffuse 即漫反射 可以想象成太阳光照射到某一个粗糙平面时 该平面向四面八方都会反射光线 这些光线中的某些光线会进入我们的眼睛 从而使我们看到这个平面 一个基本的漫反射光照模型 需要包括以下几个部
  • 0 基础 Java 自学之路(2023年最新版)

    目录 一 语言的选择 二 Java学习路线 三 学习资料哪里找 1 Java经典书籍推荐 2 Java经典视频推荐 3 经典博客推荐 四 如何规划时间 五 是否要报培训班 写了10多年的代码 之前做过某东的高级架构师 在技术这条路上跌跌撞撞
  • python-leetCode-给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的两个整数

    给定一个整数数组 nums 和一个目标值 target 请你在该数组中找出和为目标值的 两个 整数 你可以假设每种输入只会对应一个答案 但是 你不能重复利用这个数组中同样的元素 示例 给定 nums 2 7 11 15 target 9 因
  • R语言编写函数

    基本思路参考此文章 http blog csdn net myl1992 article details 44936009 在这片博文中涉及到list相关知识 很受用 http blog csdn net u012543538 articl
  • Hudi 基础入门篇

    Hudi 诞生 Apache Hudi由Uber开发并开源 该项目在2016年开始开发 并于2017年开源 2019年1月进入 Apache 孵化器 且2020年6月称为Apache 顶级项目 目前最新版本 0 9 0版本 Hudi 一开始
  • JSONArray属性值的修改

    之前直接通过生成字符串后进行字符串替换实现的 实际上这里可能会替换调value的值中相同的字符 虽然概率很低 但是鉴于对个人的严格要求 还是严谨地修改了实现方法 主要基于如下的方法 public static JSONObject tran
  • VC++ 文件操作封装类

    头文件声明 SysUtils h pragma once include
  • 什么是模式识别,模式识别概念的基本介绍

    模式识别又常称作模式分类 从处理问题的性质和解决问题的方法等角度 模式识别分为有监督的分类 Supervised Classification 和无监督的分类 Unsupervised Classification 两种 模式还可分成抽象的
  • Python入门之类和对象

    对象 属性 方法 对象是类的实例 换句话说 类主要定义对象的结构 然后我们以类为模板创建对象 类不但包含方法定义 而且还包含所有实例共享的数据 封装 信息隐蔽技术 我们可以使用关键字 class 定义 Python 类 关键字后面紧跟类的名
  • TextureTailor自制Plist碎图工具

    最近在开发小游戏 美术资源是个令人头疼的问题 故搜寻了一些网上的资源文件 但是总被plist格式和png图片格式所困扰 在参考了一些大佬的代码后自制了一个符合我个人需求的小工具 先放源码地址 TextureTailor 再来预览一下效果 界
  • linux服务篇-RSYNC数据备份

    Rsync remote sync 是UNIX及类UNIX平台下一款神奇的数据镜像备份软件 它不像FTP或其他文件传输服务那样需要进行全备份 Rsync可以根据数据的变化进行差异备份 从而减少数据流量 提高工作效率 你可以使用它进行本地数据
  • 关于深度学习中的分类器

    因为之前一直都是用caffe做图像去噪 增强方面的工作 没太接触分类 上个学习会上通过报告学习了下关于分类的相关基础知识 为接下来分类的相关工作研究奠定下基础 基础之分类器 1 SVM 线性核SVM 一般应用于多分类 分类的结果 如3分类
  • 开关电源环路学习笔记(6)-开关变换器传递函数Gvd(s)推导过程

    终于到了最关键的环节 也是最难的环节 如何求出开关级的传递函数 也就是下图这一级 哎 不得不说 太难了 不过没办法 先前夸下海口 跟兄弟们说我要把环路搞清楚 现在搞不动也得搞啊 这一级之所以这么难 主要是有开关元器件 本身是非线性的 当然了