10、电路综合-基于简化实频的宽带匹配电路设计方法

2023-11-01 15:59

本文主要是介绍10、电路综合-基于简化实频的宽带匹配电路设计方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

10、电路综合-基于简化实频的宽带匹配电路设计方法

网络综合和简化实频理论学习概述中的1-9介绍了SRFT的一些基本概念和实验方法,终于走到了SRFT的另一个究极用途,宽带匹配电路的设计。

1、之前的一些回顾与总结

之前也给出了一些电路综合的案例,但是这些案例必须基于解析函数形式的S参数,在更为一般的情况下我们难以基于此去完成设计,我们往往需要基于要匹配的阻抗去设计实际的电路:

5、电路综合-超酷-基于S11参数直接综合出微带线电路图
基于给定的S11参数的表达式综合出其对应的微带电路图,注意此处的S11参数表达式需要是解析形式(即要是函数表达式的形式)

6、电路综合-基于简化实频的SRFT微带线切比雪夫低通滤波器设计
基于切比雪夫函数进行电路综合,基于目标参数直接进行电路综合得到其对应的微带电路,给出了对应的理论与操作步骤(附Matlab代码)

7、电路综合-基于简化实频的SRFT微带线巴特沃兹低通滤波器设计
基于巴特沃斯函数进行电路综合,基于目标参数直接进行电路综合得到其对应的微带电路,给出了对应的理论与操作步骤(附Matlab代码)

8、电路综合-基于简化实频的SRFT微带线的带通滤波器设计
基于巴特沃斯与切比雪夫函数进行电路综合,基于目标参数直接进行电路综合得到其对应的带通的微带电路,给出了对应的理论与操作步骤(附Matlab代码)

2、简化实频的宽带匹配电路设计方法理论

阻抗匹配其实就是S11电路的匹配,给定需要匹配的阻抗数值去设计微带电路,其实就是给定了部分频点的S11参数去综合出电路图。我们唯一需要的就是根据部分频点的S11参数去拟合S11在理查德域的解析表达式。

这个拟合过程也可以看为一个优化过程,是为了使得解析表达式尽可能的接近已知的S11参数。其基本过程和9、电路综合-基于简化实频的任意幅频响应的微带电路设计一致,在此不过多赘述。

3、简化实频的宽带匹配电路Matlab代码与简单验证

案例:将10欧姆在2.1-5.1GHz内匹配至50欧姆,在代码中设置几个离散的频率点以及目标阻抗即可:

% 设置要控制的频点
f_target=[2.1 2.7 3.3 3.9 4.5 5.1]*1e9;
% 设置要控制的对应阻抗,进行归一化
z_target=[10 10 10 10 10 10]/Z0;

代码的主题如下所示(详细代码从最上方链接下载):

clear
clc
close all
global Z0
global freq_solve% 使用1GHZ的微带线,最高控制到3GHz,特性阻抗50欧姆
f=4e9;
fe=4e9;
Z0=50;
%使用k个级联微带线进行设计
k=6;%在DC处无零点
q=0;
%初始化H的系数
h=-1.*ones(1,k);
we=2*pi*fe;
tau=pi/2/we;
%光速
c=299792458;
ele_l=360*tau*f;
l=ele_l/360*c/f;
disp(['此处使用在',num2str(f/1e9),'GHz下电长度为',num2str(ele_l),'°的微带线进行实现']);% 设置要控制的频点
f_target=[2.1 2.7 3.3 3.9 4.5 5.1]*1e9;
% 设置要控制的对应阻抗,进行归一化
z_target=[10 10 10 10 10 10]/Z0;
% 转化为S11参数
s11_target=(z_target-1)./(z_target+1);% 定义优化变量
x0=h;
% Call optimization with no transformer
A = [];
b = [];
Aeq = [];
beq = [];
lb = [];
ub = [];
% opt=optimset('Display','off');
% warning('off');
[x,fval] = fmincon(@(x)objective_Z(x,fe,q,k,l,f_target,s11_target),x0,A,b,Aeq,beq,lb,ub,[]);
disp(['error is      ',num2str(fval)])
% warning('on');h=x;
h(k+1)=0;
% 基于优化得到的h计算其他参数
[G,H,F,g]=SRFT_htoG(h,q,k);
tau=pi/2/we;%求解频率范围,单位GHz
f_start=2;
f_stop=5;
f_step=0.1;
%求解范围
freq_solve=[f_start:f_step:f_stop]*1e9;%计算不同频率下的相移常数beta
beta=2*pi*freq_solve/c;
%转换到lamda域
lamda=1j*tan(beta*l);num_h=0;
for i=1:1:length(h)num_h=num_h+h(i).*lamda.^(length(h)-i);
end
num_g=0;
for i=1:1:length(g)num_g=num_g+g(i).*lamda.^(length(g)-i);
end
num_f=(1-lamda.^2).^(k/2);S11=num_h./num_g;SimthChart(3)=figure(3);
wxp_smithplot=smithplot(S11,'GridType','Z');
legend(['第',num2str(1),'次谐波']);
dcm_obj = datacursormode(SimthChart(3));
set(dcm_obj,'UpdateFcn',@myupdatefcn_smith1);
wxp_smithplot.Marker = {'+'};% 综合得到所需的微带电路
[Z_imp]=UE_sentez(h,g);
Z_imp=Z_imp.*Z0;
disp(Z_imp)

运行得到的结果如下所示:
在这里插入图片描述
从Smith圆图可见匹配较好,误差较小。构建ADS电路图,源阻抗设置为10欧姆:
在这里插入图片描述
ADS的仿真结果如下所示,可见匹配完美,设计合理:
在这里插入图片描述

4、简化实频功率放大器匹配设计

简化实频在功率放大器的设计中非常有用,对于功率放大器的匹配电路来说,不同频点的最佳频率是在不同阻抗点的,例如CGH40006S的最佳源阻抗与负载阻抗如下所示:
在这里插入图片描述
基于如上的最佳阻抗值进行SRFT电路设计,设计代码如下(源匹配和负载匹配可以通过修改注释来改变,提供了两种优化方法,提供修改注释来切换):

clear
clc
close all
global Z0
global freq_solve% 使用1GHZ的微带线,最高控制到3GHz,特性阻抗50欧姆
f=4e9;
fe=4e9;
Z0=50;
%使用k个级联微带线进行设计
k=5;%在DC处无零点
q=0;
%初始化H的系数
h=-1.*ones(1,k);
we=2*pi*fe;
tau=pi/2/we;
%光速
c=299792458;
ele_l=360*tau*f;
l=ele_l/360*c/f;
disp(['此处使用在',num2str(f/1e9),'GHz下电长度为',num2str(ele_l),'°的微带线进行实现']);% 设置要控制的频点,源匹配
f_target=[2.1 2.7 3.3 3.9 4.5 5.1]*1e9;
% 设置要控制的对应阻抗,进行归一化
z_target=[20-1j*12 20-1j*8 18-1j*4 7-1j*3 6-1j*7 10-1j*10]/Z0;% % 设置要控制的频点,负载匹配
% f_target=[2.1 2.7 3.3 3.9 4.5 5.1]*1e9;
% % 设置要控制的对应阻抗,进行归一化
% z_target=[28+1j*14 26+1j*15 20+1j*13 19+1j*9 16+1j*7 15+1j*5.5]/Z0;% % 设置要控制的频点
% f_target=[2.1 2.7 3.3 3.9 4.5 5.1]*1e9;
% % 设置要控制的对应阻抗,进行归一化
% z_target=[10 10 10 10 10 10]/Z0;% 转化为S11参数
s11_target=(z_target-1)./(z_target+1);%优化方法二选一
OPTIONS=optimset('MaxFunEvals',20000,'MaxIter',50000,'Algorithm','levenberg-marquardt');
x=lsqnonlin('objective_Z',x0,[],[],OPTIONS,fe,q,k,l,f_target,s11_target);%优化方法二选一
% A = [];
% b = [];
% Aeq = [];
% beq = [];
% lb = [];
% ub = [];
% % opt=optimset('Display','off');
% % warning('off');
% [x,fval] = fmincon(@(x)objective_Z(x,fe,q,k,l,f_target,s11_target),x0,A,b,Aeq,beq,lb,ub,[]);
% disp(['error is      ',num2str(fval)])
% % warning('on');h=x;
h(k+1)=0;
% 基于优化得到的h计算其他参数
[G,H,F,g]=SRFT_htoG(h,q,k);
tau=pi/2/we;%求解频率范围,单位GHz
f_start=2;
f_stop=5;
f_step=0.1;
%求解范围
freq_solve=[f_start:f_step:f_stop]*1e9;%计算不同频率下的相移常数beta
beta=2*pi*freq_solve/c;
%转换到lamda域
lamda=1j*tan(beta*l);
num_h=0;
for i=1:1:length(h)num_h=num_h+h(i).*lamda.^(length(h)-i);
end
num_g=0;
for i=1:1:length(g)num_g=num_g+g(i).*lamda.^(length(g)-i);
end
num_f=(1-lamda.^2).^(k/2);
S11=num_h./num_g;
SimthChart(3)=figure(3);
wxp_smithplot=smithplot(S11,'GridType','Z');
legend(['第',num2str(1),'次谐波']);
dcm_obj = datacursormode(SimthChart(3));
set(dcm_obj,'UpdateFcn',@myupdatefcn_smith1);
wxp_smithplot.Marker = {'+'};
% %------------------------------------
% 综合得到所需的微带电路[Z_imp]=UE_sentez(h,g);
Z_imp=Z_imp.*Z0;
disp(Z_imp)

运行结果如下所示:
在这里插入图片描述
构建输入匹配的ADS仿真电路图,注意此处是输入匹配,需要将微带线的输入输出顺序翻转(第一段微带线是49.6156欧姆,以此类推):
在这里插入图片描述
上图,1端口接的是50欧姆端口,2端口连接晶体管的栅极,仿真观察S22来判断其匹配结果,匹配效果很好:
在这里插入图片描述

上面设计的是输入匹配,下面进行输出匹配电路的设计,同样在上面代码的基础上修改注释,再进行综合:
在这里插入图片描述
匹配效果一般,基本满足要求,实际此处也需要考虑过拟合的问题,在此不额外赘述了。基于此结果构建输出匹配电路:
在这里插入图片描述
1端口接晶体管的漏极,2端口接50欧姆端口,观察S11的仿真结果如下所示,和理论一致:
在这里插入图片描述

这篇关于10、电路综合-基于简化实频的宽带匹配电路设计方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/324123

相关文章

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

mss32.dll文件丢失怎么办? 电脑提示mss32.dll丢失的多种修复方法

《mss32.dll文件丢失怎么办?电脑提示mss32.dll丢失的多种修复方法》最近,很多电脑用户可能遇到了mss32.dll文件丢失的问题,导致一些应用程序无法正常启动,那么,如何修复这个问题呢... 在电脑常年累月的使用过程中,偶尔会遇到一些问题令人头疼。像是某个程序尝试运行时,系统突然弹出一个错误提