开关电源-一种方便快捷计算开关电源环路参数的方法及实例

news/2024/4/29 10:58:31/文章来源:https://blog.csdn.net/qq_21794157/article/details/128944547

一种方便快捷计算开关电源环路参数的方法及实例

接上文《技术实例 | 开关电源环路测量时,注入信号的幅值对测量结果的影响》,得到电流环功率级的开环传递函数后,我们通过matlab的sisotool工具箱自动计算出了电流环路补偿器的传递函数C,下面就要通过此传函设计补偿器电路。

在这里插入图片描述

从前面计算得到补偿器的传函来分析,我们采用下面的补偿电路,推导过程如下:

在这里插入图片描述

可以看到,上图的电路的传递函数与Matlab中到的补偿器的传函有相同的算式结构,所以我们就把C补偿器的传函具体成实际电路

在这里插入图片描述

Rup对应仿真电路中的R6,Rf对应仿真电路中的R5,Cf对应C2。

在这里插入图片描述

对上面的电路进行仿真,得到电流开环增益bode图,如下:

在这里插入图片描述

从图中可以看出,仿真的波形与matlab给出的结果形状是相似的,但穿越频率为8.65KHz,相位裕度51°,与matlab给出的结果有差异。这个差异主要是在于,simplis仿真用的运放并不是理想的运放,而matlab是用理想的运放给出的计算结果。

所以综合上面的分析,现实中,simplis的仿真结果更可信。其实在本人前面的几篇文章已经分析过,如果元器件模型比较准确的话,仿真结果和实际的结果相差并不大。我们可以在上面仿真参数的基础上,对实际的样机参数再进行微调。

对于电流环路的设计已经完成,下面就是对电压环路进行设计。步骤与电流环路设计相似。先用仿真求得电压环路的开环传函。仿真电路如下:

在这里插入图片描述

说明一下V14的电压源,V14的电压选择的是0.25V,这是以输入电流采样1A做为直流偏置点。选取不同的V14电压值会有所差异,但一定不能让运放X2处于饱合状态。在X2处于线性区时,V14的电压是何值对总的结果影响不大。

开环增益bode图:

在这里插入图片描述

重新按照求电流环路开环传函的方法,可以得到电压环路开环传函:

在这里插入图片描述

对上面的功率级传函进行补偿。由于boost升压电路本身具有的右半平面零点的特性,为了避免系统不稳定,所以穿越频率的选择不能太高,本例中选择40Hz(要换算成弧度)。

在这里插入图片描述

得到补偿器的传函:

在这里插入图片描述

因为补偿器是PI类型的,可以用和电流补偿器相同的电路结构,当然参数是不同的。通过计算可以得到电压补偿器的参数:
在这里插入图片描述

将下面的电路进行仿真,得到开环增益的bode图,如下:

在这里插入图片描述

穿越频率为38.5Hz,相位裕度为59.8°。与matlab相差较小,而且越接近低频率范围,simplis仿真与真实结果越接近,前面的文章中也提到过该现象。至此,已经完成了电流电压双闭环的补偿器的设计。

下面说明电压环路计算出来的补偿器一些不足。matlab一般能根据补偿器类型,比较好的自动计算出补偿器的传函,但从上图中也可以看到如果穿越频率再低一些,降到10Hz,则相位裕度将下降较多,在实际电路中可能会造成不稳定,因此选则PID类型的补偿器效果可能会更好,也可以手动增加零极点,这样的灵活度更大,能裁剪出更符合要求的曲线。

总结:

对于开关电源的环路设计是有一个固定的套路的:

1)首先得到功率级的传递函数,可以用网络分析仪测量(最为准确,但效率高,硬件成本高且要在机样完成后),或用仿真得到(兼顾准确度与效率),再或者用手工推导的方法(效率低且知识门槛较高)

2)然后用matlab中的PID工具箱进行的参数整定,屏蔽了系统整定的自动控制理论,对刚接触环路设计的工程师极为友好。但是建议还是要学习一下反馈的原理,更好的了解零极点的作用,对灵活的运用各类型的补偿器都有好处。

3)得到的结果较为准确,可以做为样机环路设计的依据,并以此为基础在样机调试阶段进行微调。

4)matlab计算过程其实可以自动化执行,通过.m语言,将matlab中的手动执行的步骤全部用程序执行,能进一步提高效率,节省时间。

5)要说明的是,对于某些功率级的传递函数,用PI补偿器是无法达到设定的穿越频率和相位裕度的,可能要选择PID补偿器,同时还要在稳定性(相位裕度)和快速性(穿越频率)这两方面进行取舍。

6)对于那些无法通过建模推导功率级传递函数的电路来说,通过仿真来设计环路是几乎唯一的选择,应该成为电源工程师的必备技能。

参考原文:《一种方便快捷计算开关电源环路参数的方法及实例》

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

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

相关文章

三层交换机【实验】

目录 1、要求: 2、拓扑: 3、创建vlan和端口定义并划入vlan: 4、创建以太网中继Eth-Trunk使sw1和sw2的相互冗余并且不浪费链路: 5、使用mstp定义组和对应的根: 6、配置网关冗余: 7、核心层的路由的IP配…

云仓仓储的运行模式是什么?

仓库能够简单地定义为一个规划空间,通常是一个用于处置和贮存货物的大型商业建筑。因而,仓储是指在这样一个规划空间中存储和处置货物所触及的一切过程。仓库中常见的货物包括:;机械零配件、建筑资料、废品农产品、家具和电子产品。仓库中的一…

Fluid-数据缓存亲和性调度原理解析

前言在Fluid中,Dataset资源对象中所定义的远程文件是可被调度的,这意味着你能够像管理你的Pod一样管理远程文件缓存在Kubernetes集群上的存放位置。另外,Fluid同样支持对于应用的数据缓存亲和性调度,这种调度方式将应用(e.g. 数据…

二进制部署K8S集群

目录 一、架构图 二、部署步骤 1、实验环境 2、操作系统初始化配置 3、部署 docker引擎 4、部署 etcd 集群 5、部署 Master 组件 一、架构图 二、部署步骤 1、实验环境 服务器类型IP地址master192.168.80.5node01192.168.80.8node02192.168.80.9 2、操作系统初始化配置…

SpringBoot整合Mybatis的核心原理

0. 前言:1. 自动配置类MybatisAutoConfiguration:1.1. SqlSessionFactory的生成:1.2. Mapper的扫描和代理生成:1.2.1. MapperScannerConfigurer1.2.2. MapperFactoryBean1.2.3. getMapper生成代理对象2. 小结:0. 前言&…

3D模型深度生成网络【ShapeAssembly】

推荐:使用 NSDT场景设计器 快速搭建 3D场景。 我们提出了一个深度生成模型,该模型学习在ShapeAssembly中编写新颖的程序,ShapeAssembly是一种用于建模3D形状结构的特定领域语言。 执行 ShapeAssembly 程序会生成一个由部件代理长方体的分层连…

2023,考个软考中级证书稳妥深圳入户,5月考试8月办入户

最新消息!最新消息!最新消息! 2023年2月8日,深圳市发展和改革委员会深圳市公安局深圳市人力资源和社会保障局关于印发《深圳市积分入户办法》的最新通知↓ 来源《深圳市发展和改革委员会》 该积分入户将于2023年2月15日正式实施&…

Prometheus监控Java-JMX

一、什么是 JMX Exporter ? JMX Exporter 利用 Java 的 JMX 机制来读取 JVM 运行时的一些监控数据,然后将其转换为 Prometheus 所认知的 metrics 格式,以便让 Prometheus 对其进行监控采集。 那么,JMX 又是什么呢?它的全称是&a…

ChatGPT 支持的搜索引擎 Bing 究竟什么样?

微软于2月8日北京时间凌晨在 Redmond 线下举办一场媒体活动,围绕微软的产品以及 AI,公布最新消息。这里我们先回顾一下微软在 AI 上的布局。 2019年,微软向 OpenAI 投资10亿美元,成为了 OpenAI 紧密的合作伙伴,而微软…

Java中动态调用setter以及getter

0x00 前言 对于非专业程序员的安全人员来说,因为没有代码项目的积累,很多知识体系都不完善,所以有必要在一些常用的内容进行学习的总结。 在很多的调用链中都会用到**“动态调用setter以及getter”**这个知识点,比如经典的CB链&a…

Python语言零基础入门教程(九)

Python pass 语句 Python pass 是空语句,是为了保持程序结构的完整性。 pass 不做任何事情,一般用做占位语句。 Python 语言 pass 语句语法格式如下: pass测试实例: #!/usr/bin/python # -*- coding: UTF-8 -*- # 输出 Pytho…

线程池小结

什么是线程池 线程池其实就是一种多线程处理形式,处理过程中可以将任务添加到队列中,然后在创建线程后自动启动这些任务。这里的线程就是我们前面学过的线程,这里的任务就是我们前面学过的实现了Runnable或Callable接口的实例对象; 为什么使用线程池 …

leetcode刷题之背包问题(01背包)

01 背包 概念:有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]weight[i]weight[i],得到的价值是value[i]value[i]value[i]。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 方法1:暴力回溯…

FPGA时序约束与分析 --- 实例教程(1)

注意: 时序约束辅助工具或者相关的TCL命令,都必须在 open synthesis design / open implemention design 后才能有效运行。 1、时序约束辅助工具 2、查看相关时序信息 3、一般的时序约束顺序 1、 时序约束辅助工具(1)时序约束编辑…

微服务负载均衡器Ribbon

目录 什么是Ribbon 客户端的负载均衡 服务端的负载均衡 常见负载均衡算法 Nacos使用Ribbon 添加LoadBalanced注解 修改controller Ribbon负载均衡策略 IRule AbstractLoadBalancerRule 修改默认负载均衡策略 自定义负载均衡策略 配置自定义的策略 饥饿加载 Ribbo…

【golang】1797. 设计一个验证系统

你需要设计一个包含验证码的验证系统。每一次验证中,用户会收到一个新的验证码,这个验证码在 currentTime 时刻之后 timeToLive 秒过期。如果验证码被更新了,那么它会在 currentTime (可能与之前的 currentTime 不同)时…

C语言经典编程题100例(1-20)

1、练习2-1 Programming in C is fun!本题要求编写程序&#xff0c;输出一个短句“Programming in C is fun!”。输入格式:本题目没有输入。输出格式:在一行中输出短句“Programming in C is fun!”。代码&#xff1a;#include<stdio.h> int main() {printf("Progra…

Java中类是什么

类(class)是构造对象的模板或蓝图。 我们可以将类想象成制作小甜饼的模具&#xff0c;将对象想象为小甜饼。由类构造(construct)对象的过程称为创建类的实例(instance)。 正如前面所看到的&#xff0c;用Java 编写的所有代码都位于某个类里面。 标准 Java 库提供了几千个类&a…

bcript 算法

一、简介 今天要给大家介绍的一种“加密”算法叫做 bcrypt&#xff0c;bcrypt 是由 Niels Provos 和 David Mazires 设计的密码哈希函数&#xff0c;他是基于 Blowfish 密码而来的&#xff0c;并于 1999 年在 USENIX 上提出。 除了加盐来抵御 rainbow table 攻击之外&#xf…

尚硅谷电商数仓5.0(华为云服务器)主机初期基本配置

文章目录服务器配置信息&#xff1a;注意事项&#xff1a;1.购买注意事项&#xff1a;2.后期使用注意事项&#xff1a;三台主机的基本配置服务器配置信息&#xff1a; 使用了两个账号&#xff0c;账号1买了两个服务器&#xff0c;一台4核8G&#xff0c;一台2核4G&#xff0c;账…