Multisim 用LM358 运放模拟线性稳压器 - 运放输出饱和 - 前馈电容

news/2024/9/17 19:03:17/ 标签: 嵌入式硬件

就是拿运放搭一个可调的LDO 稳压器,类似下面这个功能框图里的感觉。本来应该非常简单,没什么好说的,没想到遇到了两个问题。

在这里插入图片描述

原理 - 理想运放

在这里插入图片描述

我用PNP 三极管Q2 作为输出,运放输出电压升高时,流过PNP 三极管BE 的电流变小,输出电压就变小,所以反馈信号和运放输出是反相的,反馈就接到同相端,参考电压0.8V 接到反相端。右边的电阻和电容是模拟的负载。

如果运放是用虚拟的理想运放,这个电路是可以工作的:当参考电压高于反馈点时,运放输出电压降低,三极管基极电流增加,输出电压升高,然后反馈电压升高,反之亦然。通过R6 和R5 设定输出电压的反馈比例,输出电压的计算公式和一般电源芯片一样:

V O U T = V R E F ⋅ ( 1 + R 6 R 5 ) V_{OUT} = V_{REF} \cdot (1 + \frac{R6}{R5}) VOUT=VREF(1+R5R6)

不过换成LM358P 的仿真模型后就出了问题。

问题1,运放输出电压饱和

理论上,输出电压过高时,反馈电压比参考高,运放就应该一直升高电压,从而使基极电流变小,输出电压降低。但是当负载很小时,比如上面那个1k 电阻R4,PNP 三极管只要输出很小的电流就足以让输出电压高过设定值,而LM358 不是轨到轨运放,输出电压无法更加接近它的供电电压,只能像上面图里那样,最高输出到10.5V,此时三极管BE 节还有大约1.5V 电压,输出电压就无法降低了。

解决方法是增大负载,比如把电阻R4 改成100Ω,需要流过更大的电流才能升高电压,从而让基极电流的调节范围和运放输出能力匹配;也可以给基极接个上拉电阻。

问题2,输出电压震荡

如果把PNP 三极管换成PMOS,可以用Vgs 电压阈值较高的PMOS 直接处理掉运放输出电压饱和的问题,但是又发现输出电压会震荡。

在这里插入图片描述
震荡波形如下:

在这里插入图片描述
增大输出电容C1 可以降低震荡幅度,但是治标不治本,就这么个单纯的线性稳压器,这种震荡是不可接受的。更好的方式是加一点魔法~ 比如在电阻R6 旁边并联个小电容:

在这里插入图片描述
震荡就完全消除了。这个电容和有些DC-DC 电路上的前馈电容CFF 应该差不多,可以降低高频信号的增益,或许能增大整个环路的阻尼比。

在这里插入图片描述
示波器换成直流耦合,当输出电压上升时,可以看到波形完全没有过冲。

在这里插入图片描述


http://www.ppmy.cn/news/1507308.html

相关文章

云服务器部署Java+Vue前后端分离项目

1、申请一个云服务器 选择云服务器:阿里云、腾讯云、百度云、京东云、华为云等等,我使用的是阿里云服务器。 2、远程链接服务器 使用FinalShell工具或者其他远程工具,使用SSH链接,主机地址要填写阿里云服务的公网ip,如…

Redis的String类型常用命令总结

1. set 设置一个键的值。 set key value示例: set username "alice"2. get 获取一个键的值。 get key示例: get username3. getset 设置键的值,并返回键的旧值。 getset key value示例: getset username "…

for(char c:s),std::vector<int> numbers 和std::int numbers[],.size()和.sizeof()区别

在C中当需要对某个容器或数组进行遍历时我们可以使用以下语句,c将会被赋值为s中的元素 for(char c:s)://s可以是任何满足条件的容器或数组for(int c:s):for(double c:s):for(float c:s):在C中我们来区分std::vector numbers {1, 2, 3, 4, 5};和std::int numbers[] …

常见8种数据结构

常见的数据结构包括数组、链表、队列、栈、树、堆、哈希表和图,每种数据结构都有其特点,如下: 常见数据结构 1.数组2.链表3.队列4.栈5.树6.图7.哈希表8.堆 1.数组 特点: 固定大小的线性数据结构支持快速随机访问插入和删除效率…

徐州BGP机房与普通机房的区别有哪些?

BGP也被称为是边界网关协议,是运行在TCP上的一种自治系统的路由协议,能够用来处理因特网大小的网络协议,同时也是能够处理好不相关路由域之间的多路连接的协议,今天小编主要来聊一聊徐州BGP机房与普通机房之间的区别有哪些&#x…

5分钟上手亚马逊云科技AWS核心云开发/云架构知识 - 维护EC2服务器

简介: 小李哥从今天开始将开启全新亚马逊云科技AWS云计算知识学习系列,适用于任何无云计算或者亚马逊云科技技术背景的开发者,让大家0基础5分钟通过这篇文章就能完全学会亚马逊云科技一个经典的服务开发架构。 我将每天介绍一个基于亚马逊云…

【xilinx】Vitis 2021.1 安装在 Ubuntu 20.04 上挂起

描述 受影响的设备和配置: 所有 I/Q/M/E 温度等级的 Versal GTM。当前或未来的 38 Gb/s 及以上的 PAM4 配置。所有线路速率低于 38 Gb/s 或 NRZ 的 PAM4 配置不受影响。 当 GTM 收发器当前未使用但已配置时,在某些操作条件下(参见表 1&#x…

C++之类与对象(完结撒花篇)

目录 前言 1.再探构造函数 2.类型转换 3.static成员 4. 友元 5.内部类 6.匿名对象 7.对象拷贝时的编译器优化 结束语 前言 在前面的博客中,我们对类的默认成员函数都有了一定了解,同时实现了一个日期类对所学的没内容进行扩展延伸,本…

【C++ 面试 - 基础题】每日 3 题(十一)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…

计算机网络TCP/UDP知识点

这是一些在学习过程中关于计算机网络八股文的一些知识点记录: TCP/UDP TCP怎么保证可靠性 1.序列号,确认应答,超时重传 数据到达接收方,接收方需要发出一个确认应答,表示已经收到该数据段,并且确认序号…

【HarmonyOS NEXT星河版开发学习】小型测试案例06-小红书卡片

个人主页→VON 收录专栏→鸿蒙开发小型案例总结​​​​​ 基础语法部分会发布于github 和 gitee上面(暂未发布) 前言 在鸿蒙(HarmonyOS)开发中,自适应伸缩是指应用程序能够根据不同设备的屏幕尺寸、分辨率和形态&…

Leetcode每日刷题之 11. 盛最多水的容器(C++)

1. 题目解析 根据题目我们知道本题我们需要由给出的数组找出所有容器中盛水最多的一个,即核心就是先求出所有容器后遍历找出最大的即可 2. 算法原理 本题使用到的算法是双指针,在使用暴力解法遍历所有容器的时候会出现超时的问题,而是用双指针…

【机器学习数据预处理】特征工程

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈Python机器学习 ⌋ ⌋ ⌋ 机器学习是一门人工智能的分支学科,通过算法和模型让计算机从数据中学习,进行模型训练和优化,做出预测、分类和决策支持。Python成为机器学习的首选语言,…

mysql本地3306通过nginx映射到外网

mysql本地3306通过nginx映射到外网 安装nginx, 版本大于1.19x yum install nginx 安装stream-module模块 查看yum源,查找有没有 nginx-mod-stream.x86_64 yum list | grep nginx 安装stream, 安装后就可以使用stream这个功能 yum install -y nginx-mod-stream.x8…

LVS详解

一、概念简述 1.1LVS概念简述 1.1.1 LVS LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。LVS基于内核网络层工作,有着超强的并发处理能力&…

av.codec.codec.UnknownCodecError: libx264

遇到 av.codec.codec.UnknownCodecError: libx264 这个错误通常意味着 PyAV 库尝试使用 libx264 编码器来编码或解码视频,但该编码器在你的系统中不可用。 libx264 是一个广泛使用的 H.264 视频编码库。如果你正在使用 PyAV 来处理视频,特别是当你尝试读…

CA证书和openssl介绍

文章目录 一、加密和算法常见的安全攻击加密算法和协议对称加密非对称加密算法 二、CA和证书中间人攻击CA和证书安全协议SSL/TLS协议介绍HTTPS 三、opensslopenssl介绍使用openssl实现对称加密使用openssl命令生成加密密码生成随机密码建立私有CA证书申请颁发建立私有CA实际例子…

C++初阶_1:缺省参数

闲话少叙&#xff0c;咱们这章来说说缺省参数。 何为缺省参数&#xff1f; 先请诸位来看一段代码&#xff1a; //缺省参数 #include <iostream> using namespace std; void Fun(int a 10)//此处为函数的定义&#xff0c;这里形参a给了一个缺省值10 {cout << a …

测试日记day3

1、写出5条mysql常用命令 答&#xff1a; show databases&#xff1a;用于显示当前 MySQL 服务器中的所有数据库。create database [database_name]&#xff1a;用于创建新的数据库。use [database_name]&#xff1a;用户选择要使用的数据库。show tables&#xff1a;在已经选…

机器学习/深度学习——模型的欠拟合和过拟合,正则化方法详解

机器学习/深度学习——模型的欠拟合和过拟合&#xff0c;正则化方法 详解 搭配以下文章进行学习&#xff1a; 卷积神经网络&#xff1a; 深度学习——卷积神经网络&#xff08;convolutional neural network&#xff09;CNN详解&#xff08;一&#xff09;——概述. 步骤清晰…