GD32实战篇-双向数控BUCK-BOOST-BUCK降压理论基础

  本文章基于兆易创新GD32 MCU所提供的2.2.4版本库函数开发

       向上代码兼容GD32F450ZGT6中使用

       后续项目主要在下面该专栏中发布:

https://blog.csdn.net/qq_62316532/category_12608431.html?spm=1001.2014.3001.5482

       感兴趣的点个关注收藏一下吧!

       电机驱动开发可以跳转:

GD32F103RCT6/GD32F303RCT6-实战项目-无刷电机驱动(1)_gd32f103rct6例程-CSDN博客

       BMS电源系统开发可以跳转:暂未放链接

介绍

开关电源电路拓扑指的是开关电源中功率电子元件(如晶体管、二极管和电感)的布局和连接方式。并且通过控制功率开关器件(通常是MOSFET或IGBT)的高速开关动作来调节输出电压和电流,从而实现从输入电源到负载的有效能量传输。

详细见:
GD32实战篇-双向数控BUCK-BOOST-BOOST升压理论基础-CSDN博客

工作原理

本结我们详细讲解BUCK电路中,降压的具体实现办法。

对于BOOST电路的讲解,我们在上一结中已经介绍过,姊妹篇为:

https://blog.csdn.net/qq_62316532/article/details/140249928?spm=1001.2014.3001.5502icon-default.png?t=N7T8https://blog.csdn.net/qq_62316532/article/details/140249928?spm=1001.2014.3001.5502

这是电路的拓扑图,图中Vin是输入电压,Q1为BUCK电路开关管,D1为续流二极管,L为BUCK电路电感,C为输出滤波电容,R为输出负载,Vo为输出电压。

我们一般会根据Q1开关管的工作状态,将BUCK电路分为两种工作方式。

电感储能阶段

当开关管Q1开启时,Vin给电感储能,导致电感电流增加,电感因其特性无法突变,会阻碍电流,感应出的电动势和电源电压方向相反相互抵消,因此可以得到公式Vin=Vo+VL(VL>0),随着时间过去,VL会不断变小直至Vo=0,Vo会不断变大直至Vo=VIn(时间长了以后电感相当于是一段导线)。

综上所述,一开始在电感感应电压的阻碍下,输出电压会小于输入电压,达到我们降压的目的!其等效电路为:

这个时候,输入电流(Iin)等于电感电流(IL),因为二极管上方电压大于下方GND,故二极管进入截止状态,其支路电流为0;

电压波形图:

这个阶段被称为电感储能阶段,输入电压在给电感储能的同时也在为输出负载供电,同时给电容充电(后续持续输出和滤波需要)。

电感放电阶段

当开关管Q1断开的时候,续流二极管此时导通形成放电回路,这个时候电感电流在减小,电感因其特性无法突变,会阻碍电流,会继续向负载供电,随着时间过去,负载电流会减小直至等于0,而输出的电压也会跟着减小直至等于0。

这个时候,因为Q1关闭,输入电流(Iin)为0,续流二极管电流等于电感电流(IL)。

总结

将这个阶段与上个电感储能阶段一起循环往复就能得到如下的电压波形图:

最后它的平均电压就能接近一个固定的值,即我们降压最后需要的电压了!

在BUCK电路工作中,其电流波形为:

电路占空比确定

根据电感电压在一个开关周期内平衡的定理。我们可以得到:

简化后,我们就会获得可用于占空比调制的公式了!

那么假设此时我们的输入电压为12V,如果想得到5V的一个输出电压,那么占空比D就应该为7/12了!(即在一个周期为12的情况下,需要这种7个闭合5个断开,才能降压到5V)

负载得到的电流

在降压电路中,我们通过BUCK电路,能够做到将电压降到我们想要的值,对应的电流就会被提高,因为功率为P=I*U是一定的。如果我们输入12V2A,在不考虑损耗的情况下,我们得到的最后最大应该是5V4.8A的输出

同步BOOST

讲完原理上常用的BUCK拓扑以后,让我们再来讨论一下,在实际使用中,我们会了减小续流二极管的压降损耗,采用的同步BUCK的方案,其电路原理图为:

使用开关管Q2去代替原本的续流二极管D,并且使得Q2的开关逻辑符合我们之前讲解的两种工作模式,那么此时我们得到的,就会是损耗减少的同步BUCK电路了!

其工作波形如下图所示:

电路实现

在我们本实战项目中,我们搭建的双向BUCK-BOOST如下:

损耗来源

1.电感的等效电阻

2.续流二极管压降(更换成开关管以后变成开关管内部PN结损耗)

3.电容的等效电阻

4.开关管的导通电阻

其中损耗加起来小于10%

这也是为什么,开关电源效率高的原因了,但是噪音却是来源于开关管高速开关引入的噪音,这点只能通过滤波器去减小,没有不存在噪音的电压,有的只是你的示波器分辨率不够,读不出来!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/781404.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java多线程不会?一文解决——

方法一 新建类如MyThread继承Thread类重写run()方法再通过new MyThread类来新建线程通过start方法启动新线程 案例&#xff1a; class MyThread extends Thread {public MyThread(String name) {super(name);}Overridepublic void run() {for(int i0;i<10;i){System.out.…

kafka-3

Kafka 消费组 consumer-offsets-N 稀疏索引 Kafka集群 集群搭建 集群启动和验证 Topic的意义 Topic和Partition 分区 副本 集群操作指令 多分区&多副本 多分区消费组 Rebalance机制 Rebalance机制处理流程 Rebalance机制-Range Rebalance机制-RoudRobin Rebalance机制-St…

【Linux】在线求助命令--help,man page , info page

我们知道Linux有很多的命令&#xff0c;那LInux要不要背命令&#xff1f; 答案是背最常用的那些就行了 那有的时候我们想查询一些命令的详细用法该怎么办呢&#xff1f; 这里我给出3种方法 1.--help --help的使用方法很简单啊 要查询的命令 --help 我们看个例子 这里我只…

一览 Anoma 上的有趣应用概念

撰文&#xff1a;Tia&#xff0c;Techub News 本文来源香港Web3媒体&#xff1a;Techub News Anoma 的目标是为应用提供通用的意图机器接口&#xff0c;这意味着使用 Anoma&#xff0c;开发人员可以根据意图和分布式意图机编写应用&#xff0c;而不是根据事务和特定状态机进行…

java原子类

在Java中&#xff0c;原子类&#xff08;Atomic Classes&#xff09; 是位于java.util.concurrent.atomic包中的一组类&#xff0c;这些类提供了一些原子操作&#xff0c;用于在多线程环境下进行安全的并发编程。原子类利用了底层的硬件支持&#xff0c;确保操作的原子性和线程…

初阶数据结构 二叉树常用函数(二)

函数一 求二叉树第K层的节点个数 还是一样 我们假设 K就是等于一 如果说是一个空数的话就返回0 如果说有值的话就返回一个1就可以 假设这个这层既不为空 又不是第K层的话 那么就说明第K层肯定是子树下面 那么就说明是左右子树的第&#xff08;K-1&#xff09;层 那么只将…

谷哥剪映助手使用教程-剪映自动化批量视频剪辑软件-批量混剪素材替换

谷哥剪映助手是一款提高视频剪辑效率的软件&#xff0c;很多人问具体怎么使用&#xff0c;我会抽点时间把各个功能拆分开来&#xff0c;一个个介绍。 一、按组精准替换素材 该功能可以按组精确替换图片或视频素材&#xff0c;如果你草稿里只有一个素材需要替换&#xff0c;请…

【算法笔记自学】第 8 章 提高篇(2)——搜索专题

8.1深度优先搜索&#xff08;DFS&#xff09; #include <cstdio>const int MAXN 5; int n, m, maze[MAXN][MAXN]; bool visited[MAXN][MAXN] {false}; int counter 0;const int MAXD 4; int dx[MAXD] {0, 0, 1, -1}; int dy[MAXD] {1, -1, 0, 0};bool isValid(int …

docker中实现多机redis主从集群

redis主从集群是每个使用redis的小伙伴都必需知道的&#xff0c;那如何在docker中快速配置呢&#xff1f;这篇来教你快速上手&#xff0c;跟着复制完全就能用&#xff01;&#xff01; 1. 前置准备 1.1 docker安装 以防有小伙伴没预先安装docker&#xff0c;这里提供安装步骤…

驾校管理系统设计

驾校管理系统设计旨在提高驾校运营效率、学员管理、教练安排、考试预约、财务结算等方面的能力。以下是一个基本的设计框架&#xff0c;包括关键模块和数据表设计&#xff1a; 1. 系统架构设计 前端界面&#xff1a;提供给学员、教练和管理员使用的Web界面或移动应用&#xf…

CGAL计算凸包(OSG进行可视化)

目录 一、什么是凸包 二、运行步骤 1、安装依赖项 2、编译osg库 3、运行代码 4、运行截图 一、什么是凸包 凸包是计算几何中的一个基本概念,用来描述一个点集的最小凸包围形。具体来说,给定一个点集,凸包是包含该点集的最小凸多边形或凸多面体。 二维凸包:在二维平面…

# 三 JS的流程控制和函数

三 JS的流程控制和函数 3.1 JS分支结构 if结构 这里的if结构几乎和JAVA中的一样,需要注意的是 if()中的非空字符串会被认为是trueif()中的非零数字会被认为是true 代码 if(false){// 非空字符串 if判断为trueconsole.log(true) }else{console.log(false) } if(){// 长度为0…

昇思MindSpore学习笔记4-03生成式--Diffusion扩散模型

摘要&#xff1a; 记录昇思MindSpore AI框架使用DDPM模型给图像数据正向逐步添加噪声&#xff0c;反向逐步去除噪声的工作原理和实际使用方法、步骤。 一、概念 1. 扩散模型Diffusion Models DDPM(denoising diffusion probabilistic model) &#xff08;无&#xff09;条件…

数据库系统原理练习 | 作业1-第1章绪论(附答案)

整理自博主本科《数据库系统原理》专业课完成的课后作业&#xff0c;以便各位学习数据库系统概论的小伙伴们参考、学习。 *文中若存在书写不合理的地方&#xff0c;欢迎各位斧正。 专业课本&#xff1a; 目录 一、选择题 二&#xff1a;简答题 三&#xff1a;综合题 一、选择…

【数据库】MySQL基本操作语句

目录 一、SQL语句 1.1 SQL分类 1.2 SQL语言规范 1.3 数据库对象与命名 1.3.1 数据库的组件(对象)&#xff1a; 1.3.2 命名规则&#xff1a; 1.4 SQL语句分类 二、基本命令 2.1 查看帮助信息 2.2 查看支持的字符集 2.3 查看默认使用的字符集 2.4 修改默认字符集 2.5…

Camera Raw:编辑 - 校准

Camera Raw “编辑”模块中的校准 Calibration面板设计初衷是校准相机所采集的 R、G、B 色彩信息&#xff0c;使相机的 RGB 色域范围尽可能与标准 RGB 色域范围重合。不过&#xff0c;现在多用于创意调色。通过调整红、绿、蓝三个原色的色相和饱和度&#xff0c;以及阴影的色调…

HTTP长连接

长连接优点 HTTP为什么要开启长连接呢? 主要是为了节省建立的时间,请求可以复用同一条TCP链路,不用重复进行三握+四挥 如果没有长连接,每次请求都做三握+四挥 如果有长链接,在一个 TCP 连接中可以持续发送多份数据而不会断开连接,即请求可以复用TCP链路 长连接缺点 …

数字信号处理及MATLAB仿真(3)——量化的其他概念

上回书说到AD转换的两个步骤——量化与采样两个步骤。现在更加深入的去了解以下对应的概念。学无止境&#xff0c;要不断地努力才有好的收获。万丈高楼平地起&#xff0c;唯有打好基础&#xff0c;才能踏实前行。 不说了&#xff0c;今天咱们继续说说这两个步骤&#xff0c;首先…

归并排序的实现(递归与非递归)

概念 基本思想&#xff1a;归并排序&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法,该算法是采用分治法&#xff08;Divide andConquer&#xff09;的一个非常典型的应用。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先使…

一篇文章搞懂qt图形视图框架setRect和setPos函数的意义

setRect()函数 三个坐标系我就不多说了&#xff0c;view原点默认在左上角&#xff0c;scene和item的原点默认都在中心位置。 注意&#xff1a;此函数并不能设置一个item的位置&#xff0c;我的理解是当一个item调用该函数时&#xff0c;会构建一个一个item的坐标系&#xff0c…