主要内容

天线与阵列分析的并行化

此示例演示如何使用并行计算工具箱™加速天线和阵列分析。

本示例需要以下产品:

  • 并行计算工具箱

频率扫描分析

分析天线在频段内的性能是天线设计的重要组成部分。端口分析包括阻抗,returnLoss,参数,vswr;表面分析包括电流和电荷;场分析包括模式、ehfield、轴向比和束宽。在这个例子中,我们演示了并行计算在一个频带上计算轴比和回波损耗的优点。

无并行计算的轴比计算

计算阿基米德螺旋在0.8 - 2.5 GHz频段内的轴比,步长为100 MHz。该计算是连续进行的,执行这些计算所花费的时间以变量time1的形式保存。

sp = spiralArchimedean (“转”4“InnerRadius”, 5.5 e - 3,“OuterRadius”, 50 e - 3);频率= 0.8 e9:100e6:2.5e9;基于“增大化现实”技术= 0(大小(频率));抽搐m = 1:numel(freq) AR(m) = axialRatio(sp, freq(m), 0,90);结束time1 = toc;

用并行计算计算轴比

使用并行计算工具箱重复计算,以减少计算时间。使用parpool函数创建一个并行池集群。然后用parfor计算同一频段内的轴比。执行计算所花费的时间被保存在变量time2中。

pardata = parpool;
使用“本地”配置文件启动并行池(parpool)…连接到并行池(工作人员数量:6)。
sp = spiralArchimedean (“转”4“InnerRadius”, 5.5 e - 3,“OuterRadius”, 50 e - 3);ARparfor = 0(大小(频率));抽搐;parform = 1:numel(freq) ARparfor(m) = axialRatio(sp, freq(m), 0,90);结束time2 = toc;

轴比计算时间比较

下表显示了使用和不使用“并行计算工具箱”进行轴比分析所需的时间。集群信息保存在变量pardata中。

例= {“没有并行计算”与并行计算的};时间= [time1;time2];numWorkers = [1;pardata.NumWorkers];disp(表(时间、numWorkers“RowNames”例))
6. time numWorkers ______ __________ Without Parallel Computing 46.155 1 With Parallel Computing 18.382
流('由于并行计算导致的加速= %g'time1 / time2)
由于并行计算的加速= 2.5109

下图显示了两种情况下计算的轴向比数据。结果是一样的。

情节(频率。/ 1 e9,基于“增大化现实”技术,' r + 'freq. / 1 e9 ARparfor,“波”);网格;包含(“频率(GHz)”);ylabel (“轴向比率(dB)”);标题(“阿基米德螺旋天线在视点的轴比”);传奇(“没有并行计算”与并行计算的...“位置”“最佳”);

在此分析过程中,天线结构在每个频率处进行网格划分,然后在该频率处计算远场以计算轴比。减少分析时间的一种方法是通过指定最大边长手动对结构进行网格划分。

无并行计算的返回损失计算

上一节执行了场分析计算。天线工具箱中的所有场和面分析计算只接受标量频率作为输入。然而,returnLoss和所有其他端口分析函数接受频率向量作为输入。

当指定一个频率矢量作为输入时,天线结构在最高频率处进行网格划分。得到的网格用于在指定的频带上执行分析。执行计算所花费的CPU时间被保存在变量time3中。

sp = spiralArchimedean (“转”4“InnerRadius”, 5.5 e - 3,“OuterRadius”, 50 e - 3);抽搐;RL = returnLoss(sp, freq);历史问题= toc;

用并行计算计算回程损失

如果我们使用parfor循环,每次传递一个频率(如关于axialRatio的讨论中所示),那么啮合将发生在每个频率上。这将限制并行计算的优势。更好的选择是手动网格结构,然后使用parfor循环运行频率扫描。一种简单的方法是首先以最高频率运行分析,然后使用函数。中的最大边长函数,以确保所有计算使用相同的网格。执行计算所花费的时间被保存在变量time4中。

sp = spiralArchimedean (“转”4“InnerRadius”, 5.5 e - 3,“OuterRadius”, 50 e - 3);RLparfor = 0(大小(频率));抽搐;temp = returnLoss(sp, freq(end));meshdata =网(sp);(~) =网(sp,“MaxEdgeLength”, meshdata.MaxEdgeLength);parform = 1:numel(freq) RLparfor(m) = returnLoss(sp, freq(m));结束time4 = toc;

回程损失计算时间比较

下表显示了使用和不使用并行计算工具箱计算返回损失所需的时间。集群信息保存在变量pardata中。

例= {“没有并行计算”与并行计算的};时间=[历史问题;time4];numWorkers = [1;pardata.NumWorkers];disp(表(时间、numWorkers“RowNames”例))
time numWorkers ______ __________ Without Parallel Computing 5.5858 1 With Parallel Computing 3.3974
流('由于并行计算导致的加速= %g'历史问题/ time4);
由于并行计算的加速= 1.64412

下图显示了两种情况下计算的退货损失数据。结果是一样的。

情节(频率。/ 1 e9 RL,' r + 'freq. / 1 e9 RLparfor,“波”);网格;包含(“频率(GHz)”);ylabel (“返回损失(dB)”);标题(“阿基米德螺旋天线的回波损失”);传奇(“没有并行计算”与并行计算的...“位置”“最佳”);

删除当前并行池。

删除(gcp);

另请参阅

|

Baidu
map