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

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

电路综合-基于简化实频的集总参数电路匹配三部曲:
电路综合-基于简化实频的集总参数电路匹配1-得出数值解
电路综合-基于简化实频的集总参数电路匹配2-得出解析解并综合
电路综合-基于简化实频的集总参数电路匹配3-将任意阻抗用集总参数匹配至归一化阻抗


电路综合-基于简化实频的集总参数电路匹配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模型进行验证:
在这里插入图片描述
运行结果如下所示,基本一致,匹配良好:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怡步晓心l

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值