• 电路综合-基于简化实频的集总参数电路匹配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)])
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120

    7、结果展示

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

  • 相关阅读:
    【linux基础】6. 日志,日志管理服务,自定义日志等
    微信小程序使用vant weapp报错
    XAPP585 - Serdes 1_to_7_sdr 解读
    【Proteus仿真】【STM32单片机】蔬菜大棚温湿度控制系统设计
    leetcode 654 最大二叉树
    会议OA项目之我的会议排座&批审功能
    爬虫Python
    StarRocks 自增ID实现分页优化
    作为微软开发者官方号,我们又要做点特别的事情了
    LuatOS-SOC接口文档(air780E)--nbiot - NB-IOT操作库
  • 原文地址:https://blog.csdn.net/weixin_44584198/article/details/134460547