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

2023-12-05

???????????????? 欢迎来到本博客 ❤️❤️????????

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

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

???????????? 本文目录如下: ????????????

目录

????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代码、数据、文章讲解

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • FMINCON 的替代方案

    除了 fmincon 之外还有其他更快 更高效的求解器吗 我正在使用 fmincon 来解决特定问题 但对于中等大小的向量变量来说 我的内存不足 我也没有任何超级计算机或云计算选项可供使用 我知道任何替代解决方案仍然会耗尽内存 但我只是想看
  • 如何在 MATLAB 编译的应用程序中运行外部 .m 代码? [复制]

    这个问题在这里已经有答案了 我有一个 MATLAB 项目 我使用 MCC 对其进行编译以获得单个可执行文件 然后我想知道外部程序员是否可以在 exe 中执行他的一些 m 文件 而无需重新编译整个项目 重点是提供一个应用程序 其他开发人员可以
  • 通过多次合并相同的行向量来构建矩阵

    有没有一个matlab函数可以让我执行以下操作 x 1 2 2 3 然后基于x我想建立矩阵m 1 2 2 3 1 2 2 3 1 2 2 3 1 2 2 3 您正在寻找REPMAT http www mathworks com help t
  • 使用简单矩阵乘法时出错

    我在一次简单的乘法运算中偶然发现了一个错误 这让我感到非常惊讶 我一直以为这里发生了什么 只为矩阵乘法 http www mathworks nl help matlab matlab prog operators html x 2 y z
  • 如何在 MATLAB 中将矩阵元素除以列总和?

    有没有一种简单的方法可以将每个矩阵元素除以列和 例如 input 1 4 4 10 output 1 5 4 14 4 5 10 14 以下是执行此操作的不同方法的列表 使用bsxfun https www mathworks com he
  • 像matlab一样在python中连接数组而不知道输出数组的大小

    我正在尝试在 python 中连接数组 类似于 matlab array1 zeros 3 500 array2 ones 3 700 array array1 array2 我在 python 中做了以下操作 array1 np zero
  • 考虑预分配速度[重复]

    这个问题在这里已经有答案了 我正在做以下事情 for i 1 m index 0 for j 1 n index index values i j 2 j 1 if j 1 symbol chip chip values index 1 e
  • 绘制布朗运动 matlab

    首先 我只想说我不太习惯使用matlab 但我需要一个作业 我应该创建一个 布朗运动 我的代码目前如下所示 clf hold on prompt Ge ett input size input prompt numParticles inp
  • 在 Pari-GP 中嵌套特定递归

    每个人 我最初在 Stackexchange 上发布了类似的问题 它已移至此处 可以在链接中找到 在 Matlab 中声明函数递归序列 https stackoverflow com questions 67146061 declaring
  • MATLAB 中的逻辑数组与数值数组

    我正在比较两个二进制数组 我有一个数组 其中值可以是一或零 如果值相同则为 1 如果不同则为零 请注意 我正在做检查之外的其他事情 因此我们不需要进入矢量化或代码的性质 在 MATLAB 中使用数值数组和逻辑数组哪个更有效 Logical
  • matlab中优先级队列的实现方法

    matlab中有没有提供minpriorityqueue功能的库 import java util PriorityQueue import java util public class MyQueue Comparator
  • 计算向量的导数

    我有以下函数 维维亚尼曲线 Phi t cos t 2 cos t sin t sin t 只需检查它是否有效 s linspace 0 T 1000 plot3 cos s 2 cos s sin s sin s 如何推导函数Phi 可能
  • MATLAB;具有 2+ 个/分割图例的饼图 R2017b

    我正在创建一个饼图 理想情况下希望图例水平显示在顶部和 或底部 然而 在几乎所有情况下 这是不可能的 因为图例超出了数字 因此 我理想情况下希望将图例分成两个 或更多 子图例并单独放置它们 我知道这不是 MATLAB 中的内置功能 我使用的
  • Matlab的uicontrol在Octave中的实现?

    我正在尝试在 Octave 中运行我们实验室中使用的图形程序的 m Matlab 代码 Octave 告诉我代码中使用的函数 uicontrol 没有定义 经过一番搜索 我发现 JHandles 包有一个 uicontrol GUI 功能的
  • 如何从列中创建对称矩阵?

    例如 我想转动以下列 90 175 600 650 655 660 代入矩阵 90 175 600 650 655 660 175 600 650 655 660 655 600 650 655 660 655 650 650 655 66
  • 可以避免迭代元胞数组时的“s{1} 烦恼”吗?

    The s 1 标题的 烦恼 指的是下面的 for 块中的第一行 for s some cell array s s 1 unpeel the enclosing cell do stuff with s end This s s 1 业务
  • 如何从一个清晰的例子计算二维图像中的吉布斯能量

    我有一个关于矩阵的有趣问题 在吉布斯分布中 吉布斯能量U x 可以计算为 这是所有可能的派系 C 上的派系势 Vc x 的总和 右图 团 c 被定义为 S 中站点的子集 x 蓝色像素的邻域是左图中黄色像素的邻居 其中每对不同的站点都是邻居
  • 静态时序数据的数据库解决方案

    我们拥有一个庞大且不断增长的实验数据集 该数据集取自约 30 000 名受试者 对于每个主题 都有多个数据记录 在每个记录中 收集了多个生理数据时间序列 每个时间序列约 90 秒长 并以 250Hz 采样 我应该注意到 时间序列的任何给定实
  • matlab 中的 for 或 while 循环

    我刚刚开始在编程课的 matlab 中使用 for 循环 基本的东西对我来说很好 但是我被要求 使用循环创建一个 3 x 5 矩阵 其中每个元素的值是其行号其列号除以行号和列号之和的幂 例如元素 2 3 的值为 2 3 2 3 1 6 那么
  • 如何在 MATLAB 中为 4 个子图创建一个通用图例?

    如何在 MATLAB 中为 4 个子图创建一个通用图例 如下所示 又快又脏 hSub subplot 3 1 1 plot 1 1 1 1 1 1 1 1 hLegend legend hello i am legend subplot 3

随机推荐