【射频仿真学习笔记】变压器参数的Mathematica计算以及ADS仿真建模
变压器模型理论分析
-
对于任意的无源电路或者等效电路,当画完原理图后,能否认为已经知道其中的两个节点?vin和vout之间的明确解析解
-
是否存在一个通用的算法,将这里的所有元素都变成了符号,使得这个算法本身就是一个函数,这个函数本身输入就是两个节点的net名称或电流电压名称。输入进去之后,输出就是其函数解析解的表达式了。令这个表达式为0就可以求出其零点和极点了呢?(答案是可以的)
-
在kicad软件上画出电路图

-
然后导出网表


-
导出之后就可以运行跑了
-
因为这里引入了这个程序,所在网表的位置
-
这个软件是maxima,是跟mathematica是一样的工具。
-
首先加载了电路的元件,把电路的网表输入进去。


-
任何电路都是可以用网表的形式呈现的。


-
然后是引入器件
-
ckt是网表默认的名称,是得sycira(ckt)读出来的东西赋值给sys变量。
-
sys将电路网表翻译成了矩阵方程。

-
其中第一大项是所有的方程,第二大项是待求解的变量
-
求解完成后,就变成了所有可能得解析解的排列组合

-
然后solve这个sys变量。sys是根据基尔霍夫定律求解的。
-
求解的算法是modify node analysis(mna),这个东西可以解出各种解析解。
-
然后就自动求解方程了。

-
冒号:表示的是赋值
-
G是电路图(graph)
-
ev是创造子变量空间,在这里面列的就可以定义为表达式子
-
sol[1]是求解完后的第一项。
-
这相当于是在求解Z21

-
然后将其化简,vin除以Iin。
-
这里先把vin的表达式提取出来,因为Iin是一个已知的量,且vin的里面是含有Iin的。
-
这样就可以得到Z21

-
这里做了假设,s=jw
-
%i就表示虚数j

-
这里在求解realZin=50,和imagZin=0
-
letsimp就是把某个假设用在表达式中
-
%o6是第六行的输出
-
也就是令L1和L2等于下面这个表达式
-
最后可以解出和k有关的Z21

-
然后一键求解L1和L2
-
这样就能实现以k为自由变量去求解。

-
问题:是否任何一个电路都可以用类似的算法求出任何的解析解。
-
电路能求解析解是因为计算机把电路翻译成了网表,网表翻译成了矩阵。进一步的疑问是,在任何一个这样的符号矩阵中,是否都存在解,如果存在解的极限是什么。换句话说,如果有一个nxn的矩阵,求解这样矩阵的逆,

- 这里表达式好像打错了

输入匹配案例模型


- 对于这个电路图的Z21

- Z32发生了变化

- 如果将alpha的值变大,影响就会进一步加大。
- 将alpha1改为0.1e10

- 将alpha1改为0.1e10

- 这时候影响就不可忽略了
- 蓝色的斜线是建的最优值model,其物理意义是考虑了初级和次级线圈的内阻情况下,相对于不考虑内阻的极限值的区别。换句话说,就是把两个内阻通过电路变换的形式转移到源阻抗和负载阻抗上了,以修正了对链路预算最大值的评估。

- 这条斜线是如何修正从不带Ra和Rb到带上Ra和Rb的呢?
- 也就是下面这个式子是如何来的?
- 这包括了两部分,一个是对R2的修正,一个是对R1的修正。其中这个R2就是Rgs
- 将管子作为一个黑盒子,所能达到的输出,如果已经做了逆提取的话,真正抽出来的节点是R2和Cgs之间的节点,这个时候的表达式就不一样了。

- 按照这个式子得到的是这个电路图
- 从下图中的的红色虚线平面进行推导,根据阻抗匹配定理,由于S11等于0,约等于50欧姆那一侧的Ra左侧等于0,忽略反射系数的影响,一个端面匹配则另一个端面也匹配(共轭传播定理),等于L2的右侧(也就是Rb的左侧)也是共轭的,从共轭到共轭,能量没有损耗。
- 这样变压器就满足能量守恒,I1^2R1=I2 ^2R2
- 推导最优值的Z21,从Is开始推导,(先忽略Ra),Is如果在Ra左侧就匹配了,那么就有一半的电流流向变压器,则变压器上的I1等于1/2的Is,若想知道输出的电压,我们只需要推导出I2即可,因为次级的表达式和符号都是已知的,而次级的R2和Cgs是产生了Vout。

需要完成的任务
- 版图中提取变压器参数alpha和beta,使得寄生电阻RL=alphaL,寄生电容CL=betaL
- 不考虑初级线圈,初级线圈的电容吸收到初级电感中,只提取出次级线圈的寄生电阻和电容
- 需要我们先画出pcell,然后做逆提取。要做出两部分,一部分是精确的模型,一部分是design based的模型。再用design based的模型跟端口阻抗等效电路(Rg和Cg)做一个联合仿真分析,并在其中找到最优解。
- 通过逆提取得到alpha和beta值


- 先提取出来,再去吸收。
- 初级线圈的Ra先要被考虑,在这基础上再加上π网络。
- 先用下面这个电路做出来,然后再去吸收。
- 这样拟合相当于是model vs em。

- 然后把C7在一个频带上吸收到初级线圈L1里,即对L1进行了一次数值修正,让其在5G频带以内是准确的。
- 然后不管Ra
- 然后看Cc(即C6)要如何处理。Cc可以适当的吸收到k里面,因为k在正常情况下是不能随着频率变化的。
- C8是不能忽略的
- 最终吸收成这样的模型,并用这个简化模型去求解析解和数值解,这样就完成了整套东西。

- 要画出横轴是k,纵轴是Z21的曲线。或者横轴是频率,参变量是k。










- 变压器的sp文件仿真参考这篇博客
链接: 基于ADS的电感和变压器的建模过程 - 即初级线圈是单端激励,次级线圈是差分激励
笔记一





- 只有在Q的峰值前那段感值曲线仿真出来的才是线性的,越靠近Q的平面越不可能是常数
- 在变压器中,我们不可能将其用在谐振频率上面,

































需要参考的论文
- 上面的这个建模方法思路是很不错的,但是比较复杂,这里我们可以参考一篇博士论文《硅基毫米波无源器件建模及锁相环设计_高宗智》
- 查看论文的3.3.3节
- 使用这下面的式子


- 如果考虑中心抽头的影响,我们指导在VCO变压器中共模是不可忽略的,中心抽头加上偏置线,用这种design based是不准的。
- 下面这篇论文提供了另一种思路
- 如果往第3、6、4端口(即次级线圈的三个端口)加入同样大小的电压源时候,它到P1端口的所有耦合就可以被计算出来,因为它整个都是等电位的,当地3、6、4端口都等电位的时候,电感的支路就不起作用了。
- 这种方法通过解方程的手段,在把电路进行拆解,使得到中心抽头的耦合都可以被考虑。

笔记二














实际变压器仿真效果

- 在这里,使用顶层M9,底层两圈的M8,

- 在仿Z参数的时候,需要有一个加入对地的阻抗值

- 另一个是需要单独看反射系数的图



- 在这里设定了Z21为dBZ54

- L1是初级线圈(160pH),L2是次级线圈(900pH),L2已经把自谐振电容Cc吸收进去了,所以它不会是一个频变的值。在这里实现了1:6,利用了次级线圈的自谐振电容,将电感感值峰化了,增加了电感等效感值,使得左侧到右侧可以实现非常夸张的阻抗变换。
- 如果初级使用M9,而次级使用M8,电阻R的值会变得特别夸张,到十几欧姆了,所以不能忽略次级线圈的电阻。
- 如果只关注S11的话,相当于用R2做匹配,如果R2被归纳到Rg中,Q=1/RC,那么Q就变小了,S11就更好匹配了。这是用M8的R2起到的效果。

- 然后,我们把频率范围变得更大来观察。
- 由于初级线圈和次级线圈的谐振频率是相关联的,所以在60GHz就谐振了。
- 初级线圈有一侧接地的话,那么其谐振频率就会下降,因为有一侧的电容消失了。




- 初级线圈半径75,次级线圈半径105,间隔8

- 搭建好这样的电路后,先进行手调。得到Z21和S11的结果,及变压器内部的参数性质。先实现在28-30G匹配,2-3GHz的带宽
- 负载统一用下面取值的负载。

- 可以比较一下,初级用M9和用M8的区别是什么。

- 调出来之后,进行反提取。按照design based的建模方法,得到L1L2kCcC1C2,在10-20GHz的频带上与电磁仿真的结果曲线有什么区别。
- 第二步进行scable变换,以这个为中心,对变压器尺寸进行展开,稍微展开几组,在这个范围内去看alpha和beta变化的范围大不大,能否用线性函数做拟合。然后回纠结,能否把表达式写进去,如果他不是线性写起来会非常复杂。
- 这时候可以打开Help的ANN,然后自己去百度搜教程

- 这样就可以逐渐具备把建立的模型用于设计了。
相关文章:
【射频仿真学习笔记】变压器参数的Mathematica计算以及ADS仿真建模
变压器模型理论分析 对于任意的无源电路或者等效电路,当画完原理图后,能否认为已经知道其中的两个节点?vin和vout之间的明确解析解 是否存在一个通用的算法,将这里的所有元素都变成了符号,使得这个算法本身就是一个函…...
Linux系统Docker部署开源在线协作笔记Trilium Notes与远程访问详细教程
今天和大家分享一款在 G 站获得了 26K的强大的开源在线协作笔记软件,Trilium Notes 的中文版如何在 Linux 环境使用 docker 本地部署,并结合 cpolar 内网穿透工具配置公网地址,轻松实现远程在线协作的详细教程。 Trilium Notes 是…...
C++基础精讲-01
1C概述 1.1初识C 发展历程: C 由本贾尼・斯特劳斯特卢普在 20 世纪 70 年代开发,它在 C 语言的基础上增加了面向对象编程的特性,最初被称为 “C with Classes”,后来逐渐发展成为独立的 C 语言。 语言特点 (1&#x…...
为什么Java不支持多继承?如何实现多继承?
一、前言 Java不支持多继承(一个类继承多个父类)主要出于文中设计考虑;核心目的是简化语言复杂性并避免潜在的歧义性问题。 二、直接原因:菱形继承/钻石继承问题(Diamond Problem) 假设存在如下继承关系&…...
E8流程多行明细行字符串用I分隔,赋值到主表
需求:明细行摘要字段赋值到主表隐藏字段,隐藏摘要字段在标题中显示 代码如下,代码中的获取字段名获取方式,自行转换成jQuery("#fieldid").val()替换。 //1:参数表单id 2:流程字段名 3:0代表主表,1代表明细…...
QML面试笔记--UI设计篇04交互控件
1. QML中常用交互控件 1.1. Button1.2. Slider1.3. ProgressBar1.4. TextField1.5. TextArea1.6. ComboBox1.7. CheckBox1.8. RadioButton1.9. Menu1.10. Dialog 1. QML中常用交互控件 在万物互联的智能时代,QML凭借其声明式语法和跨平台能力,…...
[特殊字符] Spring Boot 日志系统入门博客大纲(适合初学者)
一、前言 📌 为什么日志在项目中如此重要? 在开发和维护一个后端系统时,日志就像程序运行时的“黑匣子”,帮我们记录系统的各种行为和异常。一份良好的日志,不仅能帮助我们快速定位问题,还能在以下场景中…...
【人工智能】AI大模型开发数学基础指南
目录 学习内容**1. 线性代数****2. 概率与统计****3. 微积分****4. 优化理论****5. 信息论****6. 数值计算****7. 离散数学****8. 统计学进阶****如何学习?****总结** 如何学习**1. 明确学习目标****2. 分阶段学习计划****阶段 1:夯实基础****阶段 2&…...
Express中间件(Middleware)详解:从零开始掌握(1)
1. 中间件是什么? 想象中间件就像一个"加工流水线",请求(Request)从进入服务器到返回响应(Response)的过程中,会经过一个个"工作站"进行处理。 简单定义:中间件是能够访问请求对象(req)、响应对象(res)和下…...
STM32单片机中EXTI的工作原理
目录 1. EXTI概述 2. EXTI的组成部分 3. 工作原理 3.1 引脚配置 3.2 中断触发条件 3.3 中断使能 3.4 中断处理 4. 使用示例 5. 注意事项 结论 在STM32单片机中,EXTI(外部中断)是一种用于处理外部事件的机制,能够提高对硬…...
现代工业测试的核心支柱:电机试验工作台?(北重机械厂家)
电机试验工作台是现代工业测试中的核心支柱之一。这种工作台通常用于对各种类型的电机进行性能测试、负载测试和耐久性测试。通过电机试验工作台,工程师可以评估电机的效率、功率输出、转速、扭矩、温度等关键参数,从而确保电机的设计符合要求࿰…...
oracle 11g密码长度和复杂度查看与设置
verify_function_11G 的密码复杂性要求: 密码长度至少为 8 个字符。 密码必须包含至少一个数字和一个字母字符。 密码不能与用户名相同或相似。 密码不能是服务器名或其变体。 密码不能是常见的弱密码(如 welcome1、oracle123 等)。 注意事项&…...
CVE-2025-32375 | Windows下复现 BentoML runner 服务器远程命令执行漏洞
目录 1. 漏洞描述2. 漏洞复现1. 安装 BentoML 1.4.72. 创建模型3. 构建模型4. 托管模型5. 执行exp 3. POC4. 补充学习 参考链接: https://mp.weixin.qq.com/s/IxLZr83RvYqfZ_eXhtNvgg https://github.com/bentoml/BentoML/security/advisories/GHSA-7v4r-c989-xh26 …...
某局jsvmp算法分析(dunshan.js/lzkqow23819/lzkqow39189)
帮朋友看一个税某局的加密算法。 传送门 (需要帐号登陆的 普通人没授权也看不了) 废话不多说直接抓包开干 这里可以看到一个headers中的加密参数 lzkqow23819 以及url路径里面的6eMrZlPH(这个有点像瑞数里面的) 还有就是cookies里面的这几个…...
深入剖析 Kafka 的零拷贝原理:从操作系统到 Java 实践
Kafka 作为一款高性能的分布式消息系统,其卓越的吞吐量和低延迟特性得益于多种优化技术,其中“零拷贝”(Zero-Copy)是核心之一。零拷贝通过减少用户态与内核态之间的数据拷贝,提升了 Kafka 在消息传输中的效率。本文将…...
AlmaLinux9.5 修改为静态IP地址
查看当前需要修改的网卡名称 ip a进入网卡目录 cd /etc/NetworkManager/system-connections找到对应网卡配置文件进行修改 修改配置 主要修改ipv4部分,改成自己的IP配置 [ipv4] methodmanual address1192.168.252.129/24,192.168.252.254 dns8.8.8.8重启网卡 …...
内联函数通常定义在头文件中的原因详解
什么是内联函数? 内联函数(inline function)是C中的一种函数优化机制,通过在函数声明前加上inline关键字,建议编译器将函数调用替换为函数体本身的代码,从而减少函数调用的开销。 为什么内联函数需要定义…...
操作系统 4.4-从生磁盘到文件
文件介绍 操作系统中对磁盘使用的第三层抽象——文件。这一层抽象建立在盘块(block)和文件(file)之间,使得用户可以以更直观和易于理解的方式与磁盘交互,而无需直接处理磁盘的物理细节如扇区(se…...
免费多语言文档翻译软件推荐
软件介绍 今天给大家介绍一款文档翻译助手。它能够支持PDF、Word等多种文档格式,涵盖中文、英文、日语等多语言互译。此软件在翻译过程中精选保留文档原貌,每段文字、每个图表的匹配都十分完美,还依托顶尖翻译大模型,让翻译结果符…...
安全序列(DP)
#include <bits/stdc.h> using namespace std; const int MOD1e97; const int N1e65; int f[N]; int main() {int n,k;cin>>n>>k;f[0]1;for(int i1;i<n;i){f[i]f[i-1]; // 不放桶:延续前一位的所有方案if(i-k-1>0){f[i](f[i]f[i-k…...
【Flask开发】嘿马文学web完整flask项目第4篇:4.分类,4.分类【附代码文档】
教程总体简介:2. 目标 1.1产品与开发 1.2环境配置 1.3 运行方式 1.4目录说明 1.5数据库设计 2.用户认证 Json Web Token(JWT) 3.书架 4.1分类列表 5.搜索 5.3搜索-精准&高匹配&推荐 6.小说 6.4推荐-同类热门推荐 7.浏览记录 8.1配置-阅读偏好 8.配置 9.1项目…...
SQL开发的智能助手:通义灵码在IntelliJ IDEA中的应用
SQL 是一种至关重要的数据库操作语言,尽管其语法与通用编程语言有所不同,但因其在众多应用中的广泛使用,大多数程序员都具备一定的 SQL 编写能力。然而,当面对复杂的 SQL 语句或优化需求时,往往需要专业数据库开发工程…...
基于 Q - learning 算法的迷宫导航
这段 Python 代码实现了一个基于 Q - learning 算法的迷宫导航系统。代码通过定义迷宫环境、实现 Q - learning 算法来训练智能体,使其能够在迷宫中找到从起点到终点的最优路径,同时利用训练好的 Q 表来测试智能体的导航能力。 在这个代码实现的迷宫环境…...
解决:AttributeError: module ‘cv2‘ has no attribute ‘COLOR_BGR2RGB‘
opencv AttributeError: module ‘cv2’ has no attribute ‘warpFrame’ 或者 opencv 没有 rgbd 解决上述问题的方法是: 卸载重装。 但是一定要卸载干净,仅仅卸载opencv-python是不行的。无限重复都报这个错。 使用pip list | grep opencv查看相关的…...
NutriJarvis:AI慧眼识餐,精准营养触手可及!—— 基于深度学习的菜品识别与营养计算系统
NutriJarvis:AI慧眼识餐,精准营养触手可及!—— 基于深度学习的菜品识别与营养计算系统 NutriJarvis 是一个基于深度学习的菜品识别与营养计算系统,旨在通过计算机视觉技术自动识别餐盘中的食物,并估算其营养成分&…...
作为一名java技术博主如何突围
作为一位Java开发和技术博主,想要在抖音上快速提升粉丝数量和视频播放量,可以结合以下策略进行优化: 1. 明确目标受众与技术方向 细分领域:技术领域广泛,可以专注于Java开发、算法、框架解析(如Spring Boo…...
【LaTeX】
基本使用 \documentclass 类型:文章(article)、报告(report)、书(book) 中文的文章是ctexart,中文字体是UTF8 \documentclass[UTF8]{ctexart} []说明可以省略不写的意思…...
细说STM32单片机FreeRTOS任务管理相关函数及多任务编程的实现方法
目录 一、FreeRTOS任务管理相关函数 1、FreeRTOS函数 2、FreeRTOS宏函数 3、主要函数功能说明 (1)创建任务osThreadNew() (2)删除任务vTaskDelete() (3)挂起任务vTaskSuspend() (4&…...
uniapp微信小程序基于wu-input二次封装TInput组件(支持点击下拉选择、支持整数、电话、小数、身份证、小数点位数控制功能)
一、 最终效果 二、实现了功能 1、支持输入正整数---设置specifyTypeinteger 2、支持输入数字(含小数点)---设置specifyTypedecimal,可设置decimalLimit来调整小数点位数 3、支持输入手机号--设置specifyTypephone 4、支持输入身份证号---设…...
VLM-R1GRPO微调,强化学习训练, 实战训练教程(2)
https://www.dong-blog.fun/post/2013 VLM-R1GRPO微调, 实战训练教程(1): https://www.dong-blog.fun/post/1961 本博客这次使用多图进行GRPO。 官方git项目:https://github.com/om-ai-lab/VLM-R1?tabreadme-ov-f…...
