负反馈系统中运放的相位裕度仿真、环路增益的stb仿真

news2024/11/13 10:35:39

这里没目录标题

  • 一、引言
  • 二、巴克豪森判据、最坏情况下的相位裕度、相位裕度
  • 三、相位裕度与开环,环路,闭环增益的关系
  • 四、环路增益、闭环增益和相位的仿真
    • 4.1 运放为双入单出时
      • 4.1.1 系统的闭环增益
      • 4.1.2 stb仿真系统的环路增益和相位裕度(环路稳定性)
    • 4.2 运放为全差分时
      • 4.2.1 系统的闭环增益
      • 4.2.2 stb仿真系统的环路增益和相位裕度(环路稳定性)
  • 五、总结

ref:
1.强推闭环增益、环路增益和PM关系说明 https://zhuanlan.zhihu.com/p/462528974
2.https://zhuanlan.zhihu.com/p/551710844>
3.何乐年 P130-负反馈闭环系统中的运算放大器环路增益的仿真测量
4.stb仿真环路增益 https://blog.csdn.net/jay183986697/article/details/104539035

一、引言

在设计运放时,相位裕度是一个重要的参数,因为运放通常工作在闭环中,相位裕度对闭环的稳定性和时域响应都有影响。而开环的运放就相当于一个性能一般的比较器。那如何对运放的相位裕度进行考虑、测量就很重要。

二、巴克豪森判据、最坏情况下的相位裕度、相位裕度

对于一个如下图的负反馈系统,其系统闭环传递函数(闭环增益)为:
在这里插入图片描述
H(s)为运放开环增益。
在这里插入图片描述

若有w1使得βH(s=jw1)=-1则环路增益无穷大会产生振荡。此条件可以表达为下式,这就是巴克豪森判据:

image.png

根据巴克豪森判据可以看出,判断反馈系统是否稳定主要取决于环路响应βH(s)。但在设计运放中我们通常是将运放开环响应的GBW频率处的剩余相位当作相位裕度,因为β=1时闭环增益βH(s)变等价于开环增益H(s)。这实际是种适用所有反馈系数β下的最差相位裕度。这样设计对可能使用在各种情况下的通用运放来说没问题的,但对于芯片内部一些β为确定值的情况,便会存在过设计,造成一些性能浪费。

PM有两种计算方式,在part.三中会进行说明,但在具体仿真中我们发现用闭环测PM是更为合理的,这样测不会忽略由于反馈网络和寄生电容(例如mos输入电容)形成的意料之外的极点。

注意巴克豪森判据可以看出,PM是找环路增益为1时,环路增益的相位曲线离-180°的距离,而非闭环响应的,避免混淆概念。

三、相位裕度与开环,环路,闭环增益的关系

图中展示了次极点在GBW外的单极点系统的环路增益、闭环增益和相位的关系,注意由于β是实数,所以环路增益的相位本质上和开环增益的相位是同一条曲线,但闭环增益和开环增益的相位曲线并不一样。 从红到蓝β逐渐增大。注意该曲线绘制在对数坐标系下。从图中可以知道:
1.(a)中可以看出随着β增加,环路增益幅度整体上移,环路增益的GBW增加。
2.(b)中灰色线为开环增益,通过闭环增益公式,可以知道开环增益和闭环增益的差值(dB)大概是环路增益,因此环路增益=0dB时即βAopen=1,则环路增益=0dB的频率点为Aopen与Aclose重新交合的点(也是闭环主极点位置),前提是单极点系统。闭环后系统由于极点频率从w0变为(1+βAopen)w0,所以带宽增加,但闭环增益GBW并没有变化。
3.计算PM可以找βAopen=0dB或Aopen与Aclose的交点对应频率点下的开环增益的相位曲线。
4.(c)由于是单极点系统,随着β增加,环路增益幅度整体上移,GX点后移,高频极点开始起作用,所以对应PM下降。
5.由于β3=1,所以图(a)中β3Aopen的曲线就是运放的开环增益曲线。我们在设计运放时,常常通过检查GBW处剩余的相位作为运放的相位裕度,实际上得到的就是该运放在β3=1这个相位裕度最坏情况下的值。单位增益负反馈下的相位裕度等于开环仿真的相位裕度。
6.测PM的方法:找闭环增益和开环增益交点频率下的开环相位曲线来计算;找环路增益=0dB的频率下的环路增益相位曲线来曲线。在part.4.2中会说明后者是更优的测量方法,因为前者会忽略寄生电容和反馈网络形成的极点。

image.png

综上,反馈系数越大,PM越小,环路增益越高,环路增益的GBW越高,闭环增益越低,闭环增益的GBW不变。

四、环路增益、闭环增益和相位的仿真

这个部分尝试分别用双入单出和全差分运放构成的反馈系统来仿真环路增益、闭环增益和PM。

4.1 运放为双入单出时

使用的运放为一个理想元件构成的二级密勒补偿运放,零和次极点相抵消,GBW内只有一个极点,其性能指标为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用上述电路构成一个反相比例放大电路:

Vo=-R2/R1*Vi

image.png

设置R2=900k,R1=100k,输入频率为1kHz,幅度为1mV的信号时,输出幅度为9mV,频率为1kHz,因为反馈拓宽了带宽(闭环带宽远大于运放带宽),所以并不会衰减信号。

image.png

4.1.1 系统的闭环增益

仿真闭环增益的电路如下,对其进行闭环仿真。

image.png

分别设置β=0.1/0.3/0.6=R1/(R1+R2),则闭环增益分别为10(20dB)、3.3(10.4dB)、1.6(4dB)得到以下闭环增益曲线:

image.png

可以看到闭环增益并不严格等于1/β=1+R2/R1,这主要是没有去考虑加载效应对开环增益和反馈系数的影响,而如果采用KCL计算出来的闭环增益是R2/R1,这是更接近仿真中的闭环增益:

在这里插入图片描述

将运放开环增益(粉色)和不同β的闭环增益绘制幅频特性曲线在对数坐标系下,和第三节图对应:随着R2的增加,β降低,闭环增益的带宽降低,GBW变化并不显著。

image.png

4.1.2 stb仿真系统的环路增益和相位裕度(环路稳定性)

将iprobe放在环路中,极性不重要,输入交流接地,设置stb仿真:

image.png

image.png

分别设置β=0.1/0.3/0.6/1,得到以下环路增益的幅频曲线:可见仿真的环路增益和理论计算值还是很接近的。注意这里的Phase Margin就是实际的PM,不用再加180°。

image.png

image.png
在这里插入图片描述

β对相位曲线并没有显著影响,因为这里的β是实数:

image.png

环路增益的PM随着β的降低而增加:

image.png

除了用stb确定环路增益的PM,还可以开环仿真找到Gain为1/β处的相位裕度就是实际的相位裕度。因为开环相位裕度和闭环增益的相位裕度是一样的,因为β是一个实数,从开环传递函数H(s)到环路增益βH(s)并不会改变相位频率曲线。

4.2 运放为全差分时

使用的全差分运放为建模的全差分运放,其性能指标如下:
在这里插入图片描述

4.2.1 系统的闭环增益

仿真闭环增益电路图如下:注意反馈电阻两端的连接。

image.png

分别设置β=0.1/0.3/0.6=R1/(R1+R2),将闭环增益和开环增益画在一起:结果和4.1.1类似,但在闭环增益的主极点处有尖峰且随β增加而显著。从SansenP110中可以知道尖峰是由于PM不足导致的,但从开环增益的相位来看明明PM是充足的,存在矛盾。

image.png

先给结论,这是因为所使用的理想运放建模的输入电容Cin=500f较大,输入电容和反馈电阻形成了额外的极点,但这个极点在开环增益、相位和闭环增益中并看不到。这就是这种方法的局限性。接下来用stb测LG的方式进行验证。

image.png

image.png
https://bbs.eetop.cn/thread-970084-1-1.html

4.2.2 stb仿真系统的环路增益和相位裕度(环路稳定性)

这里使用diffstbprobe接入环路进行仿真。

image.png

也可以使用cmdmprobe,但要设置CMDM=-1

image.png

设置stb仿真,选择图中的diffstbprobe

image.png

仿真单位增益的电路如下:不需要输入提供DC,而是通过单位反馈运放自己确立DC。

image.png

不同反馈系数下的LG的频率特性曲线和预期基本一致。

image.png
在这里插入图片描述

但可以看到电阻反馈时LG的极点数目相比于单位负反馈时多了一个,位于开环增益的主次极点之间,通过调整输入电容Cin可以看到LG中间的极点位置会变化,这验证了前面的结论,且Cin=500f,R1=100k,R2=900k,可以计算出f=1/(2piR1R2/(R1+R2)*Cin)=3.5Mhz和图中对应。

image.png

画出β=0.1/0.3/0.6时的LG

在这里插入图片描述

可以看到实际上PM是很小的,这也是前面闭环增益的尖峰的原因。

image.png

image.png

五、总结

不论全差分还是双入单出,稳定性判断、PM计算就在闭环时用stb仿真,根据Loop gain=0dB时的Loop gain phase计算PM。对于通用运放,就在单位反馈下用stb仿真PM和稳定性;对于特定应用场景,将运放接成特定负反馈系统再进行stb仿真PM和稳定性。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

talib 安装

这里写自定义目录标题 talib 安装出错 talib 安装出错 https://github.com/cgohlke/talib-build/releases 这里找到轮子 直接装。

最新文章合集

GitHub宝藏项目:每天一个,让你的技术库增值不停! STORM、SuperMemory、Awesome Chinese LLM、AI写作助手、资料搜集、文章生成、视角问题引导、模拟对话策略、内容导入、浏览器插件、资源库、开源微调模型 开发者必看:Linux终端…

world machine学习笔记(3)

打开 可以打开场景设置,项目设置平铺构建设置 场景设置: 输出范围 设置中心点和范围 设置分辨率 项目设置: 设置地图颜色,单位,最高地形高度 点击这个图形进行预览设置 该按钮还有其他的功能 world machine基础流程…

基于51单片机的数字频率计(电路图+pcb+论文+仿真+源码)

于51单片机的数字频率计 设计的频率计范围能够达到1HZ-1MHZ(实际上51单片机达不到这个范围,不要在实验环境下进行),这个是课设来着,用Proteus仿真实现的,给有需要的同学参考一下 仿真原理图如下(proteus仿真工程文件可…

【算法设计与分析】基于Go语言实现动态规划法解决TSP问题

本文针对于最近正在学习的Go语言,以及算法课实验所需内容进行Coding,一举两得! 一、前言 由于这个实验不要求向之前的实验一样做到那种连线的可视化,故可以用图形界面不那么好实现的语言进行编写,考虑到Go语言的…

基于.net开发的博客系统

基于.net开发可以批量上传md文件生成文章的博客系统 .NET 个人博客 基于.net开发的博客系统 个人博客系统,采用.net core微服务技术搭建,采用传统的MVC模式,使用EF core来对mysql数据库(sqlite数据库)进行CRUD操作项目 为什么要自己开发博客…

uniapp微信小程序解决type=“nickname“获取昵称,v-model绑定值为空问题!

解决获取 type"nickname"值为空问题 文章目录 解决获取 type"nickname"值为空问题效果图Demo解决方式通过表单收集内容通过 uni.createSelectorQuery 效果图 开发工具效果图,真机上还会显示键盘输入框 Demo 如果通过 v-model 结合 blur 获取不…

使用梦畅闹钟,结合自定义bat、vbs脚本等实现定时功能

梦畅闹钟-每隔一段时间运行一次程序 休息五分钟bat脚本(播放音乐视频,并锁屏) chcp 65001 echo 回车开始休息5分钟 pause explorer "https://www.bilibili.com/video/BV1RT411S7Tk/?p47" timeout /t 3 /nobreak rundll32.exe use…

Font shape `U/rsfs/m/n‘ in size <29.86> not available size <24.88>

解决方法:mathrsfs 删除这个包 其他可以参考:koma script - Size substitution with fontsize14 - TeX - LaTeX Stack Exchange

若依框架对于后端返回异常后怎么处理?

1、后端返回自定义异常serviceException 2、触发该异常后返回json数据 因为若依对请求和响应都封装了,所以根据返回值response获取不到Code值但若依提供了一个catch方法用来捕获返回异常的数据 3、处理的方法

python给图片加上图片水印

python给图片加上图片水印 作用效果代码 作用 给图片加上图片水印图片水印的透明度,位置可自定义 效果 原始图片: 水印图片: 添加水印后的图片: 代码 from PIL import Image, ImageDraw, ImageFontdef add_watermark(in…

shelll 正则表达式

sort sort命令对行内容进行排序 sort语法: 1.sort (选项) 参数 2.cat file | sort 选项 选项: -n 按照数字进行排序 -r 反向排序 -k 指定排序 -f 忽略大小写 会将小写字母转化成大写字母来比较 -b 忽略每行前面的空格 .........…

cake (C# Make) cross-platform build automation system

1、安装Cake.Tool dotnet new tool-manifest dotnet tool install -g Cake.Tool --version 4.0.0 dotnet-cake --help C:\Users\用户名\.config\dotnet-tools.json 2、新建项目CakeDemo(net8.0) 编写脚本: build.cake var target Argument("target",…

BWVS 靶场测试

一、PHP弱类型 is_numeric() 输入:127.0.0.1/BWVS/bug/php/code.php # 1、源代码分析 如果num不是数字,那么就输出num,同时如果num1,就输出flag。即num要是字符串又要是数字 # 2、函数分析: is_numeric()函数&…

怎么查看项目中antd的版本

使用antd时,有在线参考资料,但是需要根据项目需要,选择对应版本的参考资料。 antd在线参考资料: 组件总览 - Ant Design 如何查看当前项目中antd的版本呢? 在项目的终端中输入: npm list antd antd官网选择…

【Linux】详解线程控制之线程创建线程终止线程等待线程分离

一、线程创建 thread:这是一个指向pthread_t类型的指针,用于获取新创建线程的线程ID。在调用pthread_create后,这个指针会被设置为新线程的ID。 attr:这是一个指向pthread_attr_t类型的指针,用于设置线程的属性&#x…

零基础的粉丝有福了:逐键提示盲打更轻松

盲打就是不看键盘去打字,对于零基础的粉丝而言,盲打入门通常都是很难的,今天就给大家放个福利:从今天开始就能盲打,3天之后盲打就入门了。 真的有这么简单吗?是的,跟着我做就可以了。 首先&am…

Leetcode刷题笔记2:数组基础2

导语 leetcode刷题笔记记录,本篇博客记录数组基础1部分的题目,主要题目包括: 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II 知识点 滑动窗口 所谓滑动窗口,就是不断的调节子序列的起始位…

sysbench压测mysql性能测试命令和报告

sysbench压测mysql性能测试命令和报告 一、安装sysbench工具二、创建测试数据库三、基于sysbench构造测试表和测试数据四、数据库性能测试1、数据库读写性能测试2、数据库读性能测试3、数据库删除性能测试4、数据库更新索引字段性能测5、数据库更新非索引字段性能测试6、数据库…

[激光原理与应用-93]:激光焊接检测传感器中常用的聚焦镜、分色镜、分光镜、滤波镜

目录 一、聚焦镜 1.1 原理及作用 1.2 性能指标 1.3 应用 1.4 类型 二、分色镜 2.1 原理及应用 2.2 种类 2.3 特点 2.4 注意事项 2.5 性能指标 三、分光镜 ​编辑 3.1 分光镜的类型 3.2 分光镜的工作原理 3.3 分光镜的应用 3.4 分光镜的参数 3.5 分光镜的优点…