【传输线开路和短路故障】带有集总元件的非对称传输线扩频时域反射测量(Matlab代码实现)

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据、文章讲解


💥1 概述

摘要:
扩频时域反射测量(SSTDR)传统上用于检测传输线上的硬故障(开路和短路故障)。以往的研究主要集中在线路末端的负载上,对于位于线路中部(即不在负载处)或仅在一根导线上的电路元件的阻抗研究相对较少。本研究考虑了各导线上具有不同阻抗的传输线情况。我们将两根导线上阻抗相同(正和负)的线路称为对称线路,而两根导线上阻抗不同的线路称为非对称线路。当存在高度局部化的阻抗时(长度近似为无穷小,即显著小于入射信号波长),传播波中的反射及其对波的影响变得难以用传统传输线理论描述。我们提供了对于对称和非对称传输线的反射系数的分析表达式,并证明这些公式对于电容器和电阻器的实验测量结果能够准确地描述其绝对值约99%的准确度和相位约75%的准确度。

本文涉及的主题对于传输线上的阻抗研究具有重要意义,特别是在存在非对称线路和局部化阻抗的情况下。我们的研究成果通过提供准确的分析表达式,有助于深入理解传输线内部电路元件的阻抗特性对反射波的影响。这对于传输线上的故障诊断和信号传输质量的评估具有重要的实际应用价值。同时,我们的研究还强调了传统传输线理论在处理局部化阻抗时的局限性,并为未来研究提供了新的思路和方法。

 

详细文章讲解见第4部分。

📚2 运行结果

部分代码:

% INITIALIZE NORMALIZATION FACTOR THAT ALIGNS SIMULATION AND EXPERIMENTAL OPEN CIRCUIT 
nrm_fctr = zeros(N,1);

% PLOT MAGNIUTUDES
for nn = 1:N 

    % DETERMINE IF X-AXIS IS RESISTANCE, CAPACITANCE, OR INDUCTANCE
    [~, indx] = max([std(RI{nn}(:)) std(CI{nn}(:)) std(LI{nn}(:))]);
    if indx == 1, ZI = RI{nn}; ZE = RE{nn}; end
    if indx == 2, ZI = CI{nn}; ZE = CE{nn}; end
    if indx == 3, ZI = LI{nn}; ZE = LE{nn}; end
    
    % GENERATE NORMALIZATIONS 
    sim_maxamp_1 = interp1(RI{1}, sim_maxamp{1}, RE{1});        % Find simulation values at experimental impedances for first config
    sim_maxamp_2 = interp1(RI{3}, sim_maxamp{3}, RE{3});        % Find simulation values at experimental impedances for second config    
    sim_maxamp_i = interp1(ZI   , sim_maxamp{nn}, ZE);          % Find simulation values at experimental impedances for dataset nn
    if strcmpi(types{nn}, 'series')
         nrm_fctr(nn) =  max(sim_maxamp_1)./max(exp_sub_maxamp{1});  % Reduce all data sets by the max of the first data set (keep all data sets proportional)
    else
         nrm_fctr(nn) =  max(sim_maxamp_2)./max(exp_sub_maxamp{3});  % Reduce all data sets by the max of the first data set (keep all data sets proportional)
    end

    figure(1)
    set(gcf, 'units', 'inches', 'Position', [0 0 8 5])    
    subplot(2,N/2,nn)
    
    if Zf{nn} ~= 3
        plot(ZI, sim_maxamp{nn}, 'linewidth', 2);
        axis([min(ZI) max(ZI) -1 1])
        hold on;
        scatter(ZE, exp_sub_maxamp{nn}.*nrm_fctr(nn),'s','linewidth', 2);
        set(gca, 'Xscale', 'log')
        set(gca, 'fontsize', fontsize)
        hold off;
    else

        plot(ZI, sim_maxamp{nn}, 'linewidth', 2);
        axis([min(ZI) max(ZI) -1 1])
        hold on;
        scatter(ZE, exp_sub_maxamp{nn}.*nrm_fctr(nn),'s','linewidth', 2)
        set(gca, 'Xscale', 'log')
        set(gca, 'fontsize', fontsize)
        hold off;
    end
    axis([min(ZI) max(ZI) -1 1])
    if indx == 1, xlabel('Series Resistance [\Omega]'); end
    if indx == 2, xlabel('Series Capacitance [F]'); end
    if indx == 3, xlabel('Series Inductance [H]'); end
    if Zf{nn} == 3, xlabel('Parallel Capacitance [F]'); end
    if Zf{nn} == 4, xlabel('Parallel Resistors [\Omega]'); end
    
    ylabel('Ref. Coefficient')
    if indx == 1, legend('Our Theory', 'Experiment', 'Location', 'Southeast'); end
    if indx == 2, legend('Our Theory', 'Experiment',  'Location', 'Southeast'); end
    title(names{nn})
    
    % COMPUTE R^2 VALUES
    R2 = corr(sim_maxamp_i(:), exp_sub_maxamp{nn}(:).*nrm_fctr(nn)); 
    fprintf('%s: Magnitude R^2 value: %f \n', names{nn}, R2);
    
end
saveas(gcf, ['../results/magnitudes.png'])

% PLOT PHASES
for nn = 1:N

    % DETERMINE IF X-AXIS IS RESISTANCE, CAPACITANCE, OR INDUCTANCE
    [~, indx] = max([std(RI{nn}(:)) std(CI{nn}(:)) std(LI{nn}(:))]);
    if indx == 1, ZI = RI{nn}; ZE = RE{nn}; end
    if indx == 2, ZI = CI{nn}; ZE = CE{nn}; end
    if indx == 3, ZI = LI{nn}; ZE = LE{nn}; end
    
    % PLOT RESULTS 
    figure(2)
    set(gcf, 'units', 'inches', 'Position', [0 0 8 5])    
    subplot(2,N/2,nn)

    %set(gcf, 'Units', 'Inches', 'Position', [0 4 4 1.7], 'color', [1 1 1]) %[0 2 4 2]
    plot(ZI, sim_maxang{nn}, 'linewidth', 2);
    axis([min(ZI) max(ZI) -pi pi])
    set(gca, 'fontsize', fontsize)
    hold on; 
    scatter(ZE, exp_sub_maxang{nn}, 's','linewidth', 2)   
    set(gca, 'Xscale', 'log')
    set(gca, 'fontsize', fontsize)
    hold off;
    axis([min(ZI) max(ZI) -pi pi])

    if indx == 1, xlabel('Series Resistance [\Omega]'); end
    if indx == 2, xlabel('Series Capacitance [F]'); end
    if indx == 3, xlabel('Series Inductance [H]'); end
    if Zf{nn} == 3, xlabel('Parallel Capacitance [F]'); end
    if Zf{nn} == 4, xlabel('Parallel Resistors [\Omega]'), legend('Our Theory', 'Experiment',  'Location', 'Southeast'); end
    
    ylabel('Ref. Phase Angle [rad]')
    title(names{nn})
    legend('Our Theory', 'Experiment')
    
    % COMPUTE R^2 VALUES
    sim_maxang_1 = interp1(ZI(:), sim_maxang{nn}(:), ZE(:));        % Find simulation values at experimental impedances for dataset 1
    R2 = corr(sim_maxang_1(:), exp_sub_maxang{nn}(:));
    fprintf('%s: Phase R^2 value: %f \n', names{nn}, R2);
end
saveas(gcf, ['../results/phases.png'])

% PLOT TIME DOMAIN SIGNALS
for nn = 1:N
    % DETERMINE IF X-AXIS IS RESISTANCE, CAPACITANCE, OR INDUCTANCE
    [~, indx] = max([std(RI{nn}(:)) std(CI{nn}(:)) std(LI{nn}(:))]);
    if indx == 1, ZI = RI{nn}; ZE = RE{nn}; end
    if indx == 2, ZI = CI{nn}; ZE = CE{nn}; end
    if indx == 3, ZI = LI{nn}; ZE = LE{nn}; end
    
    % PLOT TIME-DOMAIN RESULTS
    L = length(files{nn});
    figure(3)
    set(gcf, 'units', 'inches', 'Position', [0 0 8 5])    
    subplot(2,N/2,nn)
    plottype = {'-','-','--','--',':b',':','-.r','-.','-.k','-.k*','--m','--ko'};
    for ii = 1:2:L-1
        [~, zero_samp] = max(time_sig{nn}{ii}(1:data_center(nn,1)));
        tdist = 0.5*((-zero_samp/Fsampl):(1/Fsampl):((length(time_sig{nn}{ii})-zero_samp-1)/Fsampl))*vop*2.99792*1e8;
        plot(tdist, time_sig{nn}{ii}*nrm_fctr(nn), plottype{ii}); 
        hold on;
        set(gca, 'fontsize', fontsize)
    end
    hold off;

    if indx   == 1, legend("10\Omega","30\Omega","130\Omega","1000\Omega", 'Location', 'Northeast'); end
    if indx   == 2, legend("1pF","5pF","15pF","25pF","100pF"); end
    if indx   == 3, xlabel('Series Inductance [H]'); end
    if Zf{nn} == 3, legend("1pF","5pF","15pF","25pF","100pF"); end
    if Zf{nn} == 4, legend("10\Omega","30\Omega","130\Omega","1000\Omega", 'Location', 'Northeast'); end
    
    axis([tdist(data_center(nn,1)) tdist(data_center(nn,end)) -0.5 1.5])
    xlabel('Distance (meters)','fontsize', fontsize)
    ylabel('Ref. Coeff.')
    title(names{nn})

end
saveas(gcf, ['../results/time.png'])

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码、数据、文章讲解

  • 25
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值