番外13:使用ADS进行容差分析(蒙特卡洛分析、灵敏度分析、良率分析、良率优化),以带通滤波器设计为例

番外13:使用ADS进行容差分析(蒙特卡洛分析、灵敏度分析、良率分析、良率优化),以带通滤波器设计为例

资源下载

https://download.csdn.net/download/weixin_44584198/88210327

技术背景

容差分析是当前电子可靠性设计中最先进的技术之一,代表着电子可靠性设计的一个重要发展方向。蒙特卡洛分析是容差分析的一个主要技术。它是分析电路器件在误差情况下,电路性能会不会超过电路性能的规格要求。

简单来说,电路里面的大部分器件器件,比如说电容电阻都会有一定的的误差(比如说5%),但是这些误差的组合会对最终的性能产生怎样的影响呢?众所周知,这是一个小概率问题,但对于成批次、成产量出货的产品,这样的误差是需要被专门分析的,一般大公司或者质量要求高的产品在设计时都会被要求做容差分析,在此介绍使用ADS进行容差分析的方法。

1、设计指标

假设在此我们需要设计一个带通滤波器,滤波器的主要性能指标如下所示:
截止频率1:8MHz
通带1:9.5MHz
通带2:10.5MHz
截止频率2:12MHz
通带波纹:<0.5dB
阻带衰减:>20dB

假设设计使用的集总参数元器件的误差为5%,事实上对于大多数常见的贴片器件,这个5%的误差是非常合理的。

2、带通滤波器设计

先按照要求设计一个带通滤波器,新建原理图并命名为BasicFilter,在库中找到Filter DG - ALL选项并打开:
在这里插入图片描述
找到其中的带通滤波器设计模组并插入到原理图中(DT):
在这里插入图片描述
对于插入后的元器件,合理设置其参数,具体要求按照上面的设计指标来就行:
在这里插入图片描述
插入相关的仿真控件,主要是S参数控件,并设置其仿真频率:
在这里插入图片描述
在菜单栏选中DesginGuide,找到Filter选项并打开:
在这里插入图片描述
选择第一个Filter Control Window选项,点击OK:
在这里插入图片描述
选择第二个选项卡Filter Assistant(默认打开时Overview),点击Design按钮即可:
在这里插入图片描述
等待几秒钟后,设计就完成了,虽然表面看不出啥,但是点击按钮深入到器件中查看:
在这里插入图片描述在这里插入图片描述
可以发现电路中已经存在相关的电阻电容了:
在这里插入图片描述
回到上一层点击仿真按钮,可以看到理想情况下的仿真结果如下,性能好像不错:
在这里插入图片描述

3、容差分析(此处使用蒙特卡洛分析)

新建一个原理图,命名为MonteCarlo_Filter,将之前设计好的电路放进去并插入相关的S参数控件:
在这里插入图片描述
从Optim/Stat/DOE选项中寻找相关的仿真控件(MC,蒙特卡洛缩写),插入后需要设置蒙特卡洛控件的相关参数,如下所示:

在这里插入图片描述在这里插入图片描述
其中Numlter设置成了100,代表一共分析100次,在开始仿真之前,还需要设置器件的误差范围,双击器件并点击Tune/Opt/Stat/DOE Setup按钮:
在这里插入图片描述
使能Stattistics并设置误差5%:
在这里插入图片描述
设置完成后点击仿真,查看结果,可见器件误差对电路的最终性能影响较大,频率偏移、匹配性能波动,但是图中看不太清除具体性能:
在这里插入图片描述
构建如下的观察视窗,观察10MHz时的S11和S21性能,发现蒙特卡洛分析表示在第33次和第74次实验中性能较差,在此时10MHz时的S11大于-1dB,S21小于-6dB,电路功能几乎完全丧失了:
在这里插入图片描述
移动鼠标滑钮,查看第33次实验结果和其对应的电阻电容的数值:
在这里插入图片描述
可见电路性能在实际的大规模生产时可能问题很大。

4、良率分析与良率优化

从Optim/Stat/DOE选项中寻找相关的仿真控件(YIELD SPEC和YIELD控件),注意到注释掉原来的蒙特卡洛分析控件,还要合理的设置YIELD SPEC和YIELD控件的数值,观察下面的YIELD SPEC控件,此处设置为在9.96MHz到10.1MHz处S11小于-10dB的器件为良好器件,实际上这个要求已经非常低了:
在这里插入图片描述
运行仿真,可见在器件误差5%的情况下,整个带通滤波器的良率为20%。这是非常恐怖的,因此在实际设计时应该充分留有余量,比如说我上面的指标,如果将通带范围设置为8MHz到12MHz,器件的S11良率性能可能要好不少:
在这里插入图片描述
下面进行良率的优化,从Optim/Stat/DOE选项中寻找相关的仿真控件(YIELD ORTIM…控件),插入后如下所示,可见设置的良率的优化次数为100:
在这里插入图片描述
在运行良率优化前,需要设置器件Optim,在此设置器件的优化范围为50%:
在这里插入图片描述
点击仿真运行良率优化,值得注意的是,每次运行良率测试得到的结果可能并不一致,因为实际上这是一种随机实验而已,最终得到的结果,可见初始的良率为12.8%,优化后为27%,这边看似误差比较大,实际上可以通过增大实验次数使其收敛,但是这样运行比较慢,在此就不专门演示了:
在这里插入图片描述
对于优化后的结果,可以在Simulation中的相关选项进行更新,如下所示:
在这里插入图片描述

5、灵敏度分析

注释掉良率分析相关的控件,从Optim/Stat/DOE选项中寻找相关的灵敏度分析控件,插入和如下所示:
在这里插入图片描述
其中Goal需要专门设置,此处测量的是电路在10MHz时S11<-10dB要求下的灵敏度,运行仿真:
在这里插入图片描述
可见C1、C3、L1、L3对电路的S11性能贡献较大。

6、结论

设计时留有余量,确保万无一失!

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

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

相关文章

Runloop 的五种mode

1.runloop是一个事件驱动的循环,收到事件就去处理,没有事件就进入睡眠. 2.应用一启动主线程被创建后,主线程对应的runloop也被创建,runloop也保证了程序能够一直运行.之后创建的子线程默认是没有runloop的,只有当调用[NSRunLoop currentRunLoop]去获取的时候才被创建. 3.runloo…

【C#】获取已安装的NETFramework版本集合

代码 /// <summary>/// Windows信息/// </summary>public partial class WindowsInfo{/// <summary>/// 获取已安装的NETFramework版本集合/// </summary>/// <returns></returns>public static List<string> GetInstalledNETFramew…

Docker源码阅读 - goland环境准备

docker 源码分为两部分 cli 和 moby&#xff08;docker&#xff09; tips: docker是从moby拷贝过去的&#xff1b;docker整体是一个C-S架构&#xff0c;cli客户端&#xff0c;docker服务端 docker-ce&#xff1a;https://github.com/docker/docker-ce cli&#xff1a;https://…

linux下离线安装docker

linux下离线安装docker 一、安装docker Docker 官网离线安装文档 https://docs.docker.com/engine/install/binaries/ 整理步骤如下&#xff1a; 官网下载 docker 安装包&#xff0c;地址为 https://download.docker.com/linux/static/stable/&#xff0c;如果是x86就选择x…

【数据结构与算法】十大经典排序算法-选择排序

&#x1f31f;个人博客&#xff1a;www.hellocode.top &#x1f3f0;Java知识导航&#xff1a;Java-Navigate &#x1f525;CSDN&#xff1a;HelloCode. &#x1f31e;知乎&#xff1a;HelloCode &#x1f334;掘金&#xff1a;HelloCode ⚡如有问题&#xff0c;欢迎指正&#…

C语言属刷题训练【第八天】

文章目录 &#x1fa97;1、如下程序的运行结果是&#xff08; &#xff09;&#x1f4bb;2、若有定义&#xff1a; int a[2][3]; &#xff0c;以下选项中对 a 数组元素正确引用的是&#xff08; &#xff09;&#x1f9ff;3、在下面的字符数组定义中&#xff0c;哪一个有语法错…

美团软件测试工程师高频面试题和答案

前言 8月底了&#xff0c;马上到了大家的找工作的高峰期了&#xff01;为了帮助大家更好的备战面试和跳槽&#xff0c;可以在众多求职者中脱颖而出&#xff0c;我帮大家准备了丰富的企业真实面试题&#xff0c;大家赶紧收藏吧&#xff01; 1、说下你最近做的项目&#xff0c;你…

DatawhaleAI夏令营第三期机器学习用户新增预测挑战赛baseline新手教程

本教程会带领大家项目制学习&#xff0c;由浅入深&#xff0c;逐渐进阶。从竞赛通用流程与跑通最简的Baseline&#xff0c;到深入各个竞赛环节&#xff0c;精读Baseline与进阶实践技巧的学习。 千里之行&#xff0c;始于足下&#xff0c;从这里&#xff0c;开启你的 AI 学习之旅…

python——案例17:判断某年是否是闰年

案例17&#xff1a;判断某年是否是闰年 判断依据&#xff1a;闰年就是能被400整除&#xff0c;或者能被4整除的年份numint(input(输入年份&#xff1a;))if num%1000: if num%4000: #整百年份的判断print("%s年是闰年"%num) #…

java基础面试

Hashmap和Treemap的区别 1、HashMap无序&#xff0c;TreeMap有序。都不是线程安全的。 2、HashMap覆盖了equals&#xff08;&#xff09;方法和hashcode&#xff08;&#xff09;方法&#xff0c;这使得HashMap中两个相等的映射返回相同的哈希值&#xff1b;TreeMap则是实现了…

rust学习-json的序列化和反序列化

由于 serde 库默认使用 JSON 格式进行序列化和反序列化 因此程序将使用 JSON 格式对数据进行序列化和反序列化 社区为 Serde 实现的部分数据格式列表: JSON:广泛使用的 JavaScript 对象符号,用于许多 HTTP APIPostcard:no_std 和嵌入式系统友好的紧凑二进制格式。CBOR:用…

容器虚拟化基础之NameSpace

“只想从这无边的寂寞中逃出来。” 一、什么是虚拟化、容器化&#xff1f; 物理机:实际的服务器或者计算机。 这是相对于虚拟机而言的对实体计算机的称呼&#xff0c;物理机提供虚拟机以硬件环境&#xff0c;有时候也称为"宿主"或"寄主"。 虚拟机: 指通过软…

nlohmann json:通过for begin/end 遍历object和array

nlohmann json:通过for遍历object和array_风静如云的博客-CSDN博客 介绍了通过for基于元素迭代的方式进行遍历。 还可以通过begin/end迭代器对object/array进行遍历: #include <iostream> #include <nlohmann/json.hpp> using namespace std; using json = nlo…

JDK、JRE、JVM:揭秘Java的关键三者关系

文章目录 JDK&#xff1a;Java开发工具包JRE&#xff1a;Java运行环境JVM&#xff1a;Java虚拟机关系概述 案例示例&#xff1a;Hello World结语 在Java世界中&#xff0c;你可能经常听到JDK、JRE和JVM这几个概念&#xff0c;它们分别代表了Java开发工具包、Java运行环境和Java…

Java类型转换

总是忘&#xff0c;总是记混&#xff0c;气气气&#xff01; 基本类型 4整型、2浮点型、1布尔、1字符 关键字大小取值范围包装类型byte8-27~27-1Byteshort16-215~215-1Shortint32-231~231-1Integerlong64-263~263-1Longfloat323.4e-38~3.4e38Floatdouble641.7e-38~1.7e38Dou…

3.5 Spring MVC参数传递

Spring MVC的Controller接收请求参数的方式有多种&#xff0c;本节主要介绍Spring MVC下的HttpServletRequest、基本数据类型、Java Bean、数组、List、Map、JSON参数传递方式&#xff0c;同时解决POST请求中文乱码问题。 1. HttpServletRequest参数传递 Controller RequestM…

Easy Rules规则引擎(1-基础篇)

目录 一、序言二、Easy Rules介绍三、定义规则(Rules)1、规则介绍2、编程式规则定义3、声明式规则定义 四、定义事实(Facts)五、定义规则引擎(Rules Engine)1、规则引擎介绍2、InferenceRulesEngine规则引擎示例(1) 定义触发条件(2) 定义规则触发后的执行行为(3) 测试用例 一、…

【CSH 入门基础 5 -- csh 文件监控脚本实现】

文章目录 背景CSHLL 代码实现cshell 中 unset 的介绍bash 中监控文件的方法 背景 由于开发代码是在外网编译&#xff0c;而镜像的烧写是在内网中的EDA工具中进行的&#xff0c;所以就需要先将代码在外网编译好后&#xff0c;再通过FTP工具将镜像传输到内网中&#xff0c;然后在…

【手动配置ip地址后,电脑仍自动分配ip的问题】

现象 手动给电脑分配了一个ipv4地址&#xff0c;但是电脑会自动分配一个169开头的ipv4&#xff0c;导致虽然可以上网&#xff0c;但访问不了局域网内其他的设备&#xff08;我配置的另一个网关&#xff0c;所以可以上网&#xff09; 原因 ip地址冲突了&#xff0c;把电脑的i…

3.3 Postman基础

1. Postman概述 Postman是一个接口测试工具&#xff0c;Postman相当于一个客户端&#xff0c;可以模拟用户发起的各类HTTP请求&#xff0c;将请求数据发送至服务端&#xff0c;获取对应的响应结果。 Postman版本&#xff1a;Postman-win64-9.15.2-Setup.exe。 2. Postman的参…