网络综合和简化实频理论学习概述中的1-9介绍了SRFT的一些基本概念和实验方法,终于走到了SRFT的另一个究极用途,宽带匹配电路的设计。
之前也给出了一些电路综合的案例,但是这些案例必须基于解析函数形式的S参数,在更为一般的情况下我们难以基于此去完成设计,我们往往需要基于要匹配的阻抗去设计实际的电路:
5、电路综合-超酷-基于S11参数直接综合出微带线电路图
基于给定的S11参数的表达式综合出其对应的微带电路图,注意此处的S11参数表达式需要是解析形式(即要是函数表达式的形式)
6、电路综合-基于简化实频的SRFT微带线切比雪夫低通滤波器设计
基于切比雪夫函数进行电路综合,基于目标参数直接进行电路综合得到其对应的微带电路,给出了对应的理论与操作步骤(附Matlab代码)
7、电路综合-基于简化实频的SRFT微带线巴特沃兹低通滤波器设计
基于巴特沃斯函数进行电路综合,基于目标参数直接进行电路综合得到其对应的微带电路,给出了对应的理论与操作步骤(附Matlab代码)
8、电路综合-基于简化实频的SRFT微带线的带通滤波器设计
基于巴特沃斯与切比雪夫函数进行电路综合,基于目标参数直接进行电路综合得到其对应的带通的微带电路,给出了对应的理论与操作步骤(附Matlab代码)
阻抗匹配其实就是S11电路的匹配,给定需要匹配的阻抗数值去设计微带电路,其实就是给定了部分频点的S11参数去综合出电路图。我们唯一需要的就是根据部分频点的S11参数去拟合S11在理查德域的解析表达式。
这个拟合过程也可以看为一个优化过程,是为了使得解析表达式尽可能的接近已知的S11参数。其基本过程和9、电路综合-基于简化实频的任意幅频响应的微带电路设计一致,在此不过多赘述。
案例:将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的仿真结果如下所示,可见匹配完美,设计合理:
简化实频在功率放大器的设计中非常有用,对于功率放大器的匹配电路来说,不同频点的最佳频率是在不同阻抗点的,例如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的仿真结果如下所示,和理论一致: