电路综合-基于简化实频的集总参数电路匹配2-得出解析解并综合

电路综合-基于简化实频的集总参数电路匹配2-得出解析解并综合

电路综合-基于简化实频的集总参数电路匹配1中介绍了从要匹配的电路结构得到所对应的均衡器的阻抗数值解的过程。我们下一步需要将数值解拟合成正实函数的形式,从而进行电路综合。此处接着这个教程继续。

代码链接:https://download.csdn.net/download/weixin_44584198/88547435

4、解析表达式的获取

需要将已有的要设计的阻抗实部拟合成如下的形式:
在这里插入图片描述
其中,分子的确定非常简单,可以根据期望的结构直接得出。例如,如果我设计的结构可以通直流,则必然没有DC传输零点,则ndc=0,一般也不会有有限传输零点wi,因此,分子往往为1(根据电路结构设置)。对于分母,简单的线性回归或简单的线性曲线拟合算法不能满足其恒正的条件,因此使用辅助多项式c来进行拟合定义(图中标黄少了一个平方),如下所示:
在这里插入图片描述
非线性优化函数也因此直接针对c向量进行。求得了最优的A、B,就可以紧接着计算a,b从而得出解析形式的策动点阻抗函数。

5、电路综合

一般使用长除法进行电路综合即可:
在这里插入图片描述

6、核心代码

具体工程从最上方链接下载:

clear
clc
close all

%% 分析的计算点数   越多越精密
N=19;
% 设定要匹配的负载参数
R=1;
C=3;
L=1;
% 匹配范围0-1,分析截至频率1.2
wc1=0;
wc2=1;
ws1=0;
ws2=1.2;
% 理想增益设定为0.8
T0=0.8;
% 使用阻抗函数进行综合
KFlag=1;
% sign为+-1,结构不同
sign=1;

% Step 1: Generate the load data
WBR=Break_Frequencies(N,ws1,ws2,wc1,wc2);
for i=1:N
    w=WBR(i);
    [RL,XL]=RLC_Load(w,R,C,L,KFlag);
    RLA(i)=RL;XLA(i)=XL;
end

% Step 2: 计算出RB0的初始值
RB0=initials(R,C,L,KFlag,T0,sign,WBR);
XB0=Hilbert_Transform(WBR,RB0);

% Step 3: 进行优化
% Define unknowns for the optimization:
for j=1:(N-1)
   x0(j)=(RB0(j));%Initial  
end
OPTIONS=optimset('MaxFunEvals',20000,'MaxIter',50000);
x=lsqnonlin('error_RFLT',x0,[],[],OPTIONS,WBR,wc1,wc2,N,T0,R,C,L,KFlag);
% Generate optimized driving point impedance
for j=1:N-1
RBA(j)=x(j);
end
RBA(N)=0.0;
XBA=Hilbert_Transform(WBR,RBA);

% 画图参数
RTSQ=(RB0+RLA).*(RB0+RLA);
XTSQ=(XB0+XLA).*(XB0+XLA);
TPG0=4*RLA.*RB0./(RTSQ+XTSQ);

RTSQ=(RBA+RLA).*(RBA+RLA);
XTSQ=(XBA+XLA).*(XBA+XLA);
TPG=4*RLA.*RBA./(RTSQ+XTSQ);



%% 下面进行解析形式的拟合与电路综合
% 确定电路元器件
Cir_num=7;
ndc=0;
W=0;
a0=1;
% 无变压器结构,终端归一化电阻
ntr=0

% Step 4: 通过优化得出a,b的解析式
% c0 =[156.55 -9.1399 -244.66 34.512 111.71 -21.195 -15.654];
c0=ones(1,Cir_num);
if ntr==1; x0=[c0 a0];Nx=length(x0);end;%Yes transformer case
if ntr==0; x0=c0;Nx=length(x0);end;%No transformer case
% Call optimization function lsqnonlin:    
[x,resnorm]=lsqnonlin('direct',x0,[],[],OPTIONS,ntr,ndc,W,a0,WBR,RBA,XBA);
if ntr==1; %Yes transformer case 
    for i=1:Nx-1; 
    c(i)=x(i);
    end;
    a0=x(Nx);
end
if ntr==0;% No Transformer case
    for i=1:Nx; 
        c(i)=x(i);
    end;
end
C=[c 1];
BB=Poly_Positive(C);% This positive polynomial is in w-domain
B=polarity(BB);% Now, it is transferred to p-domain        
% Generate A(-p^2) of R(-p^2)=A(-p^2)/B(-p^2)
nB=length(B);
A=(a0*a0)*R_Num(ndc,W);% A is specified in p-domain
nA=length(A);
if (abs(nB-nA)>0)
    A=fullvector(nB,A);% work with equal length vectors
end
[a,b]=RtoZ(A,B);% Here A and B are specified in p-domain

% Step 5: 进行电路综合
CVal=general_synthesis(a,b);

% Step 6: 绘图对比验证
aval=polyval(a,WBR*1j);
bval=polyval(b,WBR*1j);
F=aval./bval;
RBA2=real(F); 
XBA2=imag(F);

RTSQ=(RBA2+RLA).*(RBA2+RLA);
XTSQ=(XBA2+XLA).*(XBA2+XLA);
TPG2=4*RLA.*RBA2./(RTSQ+XTSQ);

figure
plot(WBR,TPG,WBR,TPG0,WBR,TPG2)
xlabel('Angular Frequency')
ylabel('Optimized Gain')
title('OPtimized Gain Plot')
legend('经过lsqnonlin优化的结果','RB0的初始值得出的增益结果','最终电路得到的结果')
disp(['电路拟合误差为',num2str(resnorm)])

7、结果展示

对于这样的匹配问题,得到的结果为(橙黄色为最终电路实现的结果):
在这里插入图片描述
构建ADS模型进行验证:
在这里插入图片描述
运行结果如下所示,基本一致,匹配良好:
在这里插入图片描述

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

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

相关文章

redis运维(八)数据类型(一)字符串

一 字符串 说明: 不需要精通,但是得有一个粗略的认识,然后利用help command查看具体使用仅做记录查询 ① 基础概念 说明: ex是用来收敛内存使用率备注: 早期set是不带ex的默认: 不设置ex,是常驻内存 key和value的命名规范 …

<C++> 反向迭代器

我们知道正向迭代器的设计:begin迭代器指向第一个数据,end迭代器指向最后一个数据的下一个位置 。移向下一个数据,解引用得到数据的值,并根据容器储存方式的不同,容器有不同类型的迭代器。 注意:rbegin迭代…

SSH-远程连接服务器

一、理论知识 目前远程连接服务器的主要类型: 文字接口明文传输:Telnet、RSH 等为主,目前非常少用。文字接口加密:SSH 为主,已经取代上述的 Telnet、RSH 等明文传输方式。图形接口:XDMCP(X Di…

数据结构树与二叉树的实现

目录 一、普通树的存储结构 1、双亲表示法 2.孩子表示法 二、二叉树 1.二叉树的顺序存储(必须是完全二叉树,否则很浪费空间) 1)结构体 2.二叉树的链式存储 1)结构体 2)操作 1.创建一颗二叉树 2.创…

window 搭建 MQTT 服务器并使用

1. 下载 安装 mosquitto 下载地址: http://mosquitto.org/files/binary/ win 使用 win32 看自己电脑下载相应版本: 一直安装: 记住安装路径:C:\Program Files\mosquitto 修改配置文件: allow_anonymous false 设置…

Express.js 与 Nest.js对比

Express.js 与 Nest.js对比 自从 Node.js 发布以来,Javascript 在后端领域的使用有所增加。由于 Node.js 的使用越来越多,每天都会有新的框架和工具发布。Express 和 Nest 是使用 Node.js 创建后端应用程序的最著名的框架之一,在本文中&…

【入门篇】1.1 redis 基础数据类型详解和示例

文章目录 1. 简介2. Redis基础数据类型2.1 String类型场景示例常用命令示例 2.2 List类型场景示例 2.3 Set类型场景示例 2.4 Hash类型场景示例 2.5 Sorted Set类型 3. 使用Redis存储数据的注意事项1. 内存管理2. 数据持久化3. 高并发下的性能考量 4. 参考资料 1. 简介 Redis概…

app在线客服系统怎么对接

随着移动互联网的快速发展,越来越多的企业开始意识到在线客服系统的重要性。而对于一个App来说,一个高效的在线客服系统更是必不可少的。本文将介绍如何对接App在线客服系统,提高用户体验和客户满意度。 一、在线客服系统的作用和优势 1. 提供…

【Linux】:进程间通信

进程间通信 一.基本概念二.简单的通信-管道1.建立通信信道2.通信接口 一.基本概念 是什么 两个或多个进程实现数据层面的交互。 因为进程独立性的存在,导致进程间的通信成本比较高。 为什么 因为我们有多进程协同的需求。 怎么办 a.进程间通信的本质:必须让不…

TMS320F28335使用多个串口时,SCIRXST Register出现错误

TMS320F28335使用多个串口时,SCIRXST Register出现错误 void ClearErrorState(void) {if((SciaRegs.SCIRXST.bit.FE 1)||(SciaRegs.SCIRXST.bit.BRKDT 1)){SciaRegs.SCICTL1.bit.SWRESET 0;SciaRegs.SCICTL1.bit.SWRESET 1;}if((ScibRegs.SCIRXST.bit.FE 1)||(S…

反转链表(图解)

LCR 024. 反转链表 - 力扣(LeetCode) 题目描述 给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。 样例输入 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1]示例 2&…

【漏洞复现】NUUO摄像头存在远程命令执行漏洞

漏洞描述 NUUO摄像头是中国台湾NUUO公司旗下的一款网络视频记录器,该设备存在远程命令执行漏洞,攻击者可利用该漏洞执行任意命令,进而获取服务器的权限。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律&…

leetcode栈和队列三剑客

用队列实现栈 队列是先进先出的,而栈是只能在栈顶进行出栈和入栈,那我们这道题要用队列来实现栈的话,这里给的思路是两个队列,因为两个队列的话就可以相互导数据,比如我们来实现这个题目的push函数,我们的栈…

根据店铺ID/店铺链接/店铺昵称获取京东店铺所有商品数据接口|京东店铺所有商品数据接口|京东API接口

要获取京东店铺的所有商品数据,您需要使用京东开放平台提供的API接口。以下是一些可能有用的API接口: 商品SKU列表接口:该接口可以获取指定店铺下的所有商品SKU列表,包括商品ID、名称、价格等信息。您可以使用该接口来获取店铺中…

springMvc中的拦截器【巩固】

先实现下想要的拦截器功能 package com.hmdp.utils;import com.hmdp.entity.User; import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.Ht…

python_主动调用其他类的成员

# 主动调用其他类的成员 # 方式一: class Base(object):def f1(self):print("5个功能") class Foo(object):def f1(self):print("3个功能")# Base.实例方法(自己传self),与继承无关Base.f1(self)obj Foo() obj.f1()print("#"*20)# 方式二:按照类…

jbase虚拟M层的设计

对于只是自己产品内部使用的打印程序来说(比如打印收费单,打印结算单等),打印逻辑写在js,获取其他层都是没毛病的。但是对于类型检验报告这种打印来说,打印格式控制逻辑写在js层是百分百不行的。因为检验报…

【proverif】proverif的语法-各种密码原语的介绍和具体编码

proverif-系列文章目录 【proverif】proverif的下载安装和初使用【proverif】proverif的语法-解决中间人攻击-代码详解【proverif】proverif的语法2-各种密码原语的编码 (本文) 文章目录 proverif-系列文章目录前言铺垫知识一、对称加密二、非对称加密三…

大模型幻觉成应用落地难题 最新评测文心一言解决幻觉能力最好

大模型中的幻觉问题 “林黛玉倒拔垂杨柳”、“月球上面有桂树”、“宋江字武松”……相信经常使用大语言模型都会遇到这样“一本正经胡说八道”的情况。这其实是大模型的“幻觉”问题,是大模型行业落地的核心挑战之一。例如幻觉会影响生成内容的可靠性,…

大数据基础设施搭建 - Hadoop

文章目录 一、下载安装包二、上传压缩包三、解压压缩包四、配置环境变量五、测试Hadoop5.1 测试hadoop命令5.2 测试wordcount案例5.2.1 创建wordcount输入文本信息5.2.2 执行程序5.2.3 查看结果 六、分发压缩包到集群中其他机器6.1 分发压缩包6.2 解压压缩包6.3 配置环境变量 七…