Engee 文档
Notebook

天线辐射方向图(第3部分)

该示例演示了用于称重天线元件的算法的应用,以便改进辐射方向图的特性。

连接库和辅助功能

In [ ]:
let
    installed_packages = collect(x.name for (_, x) in Pkg.dependencies() if x.is_direct_dep)
    list_packages = ["Statistics","SpecialFunctions"]
    for pack in list_packages
        pack in installed_packages || Pkg.add(pack)
    end
end
using SpecialFunctions,Statistics

我们将使用函数进行连接 include 文件"helper_weight_failed_array。jl"具有附加功能:

In [ ]:
include("$(@__DIR__)/helper_weight_failed_array.jl")
Out[0]:
viewURA (generic function with 1 method)

初始天线参数

在对DN进行建模之前,我们将设置天线元件的基本参数:

In [ ]:
fc = 300e6 # 天线辐射频率
c = 3e8 # 信号传播速度
lambda = c/fc # 波长
freq_rng = [50e6 1000e6] # 天线频率范围

azim_ang = reshape(Vector(-180:180),1,:) # 方位角范围
elev_ang = reshape(Vector(-90:90),1,:); # 座角度的范围

我们将选择一个各向同性元素作为天线阵列的元素。:

In [ ]:
element = EngeePhased.IsotropicAntennaElement(
    FrequencyRange = freq_rng, # 频率范围
    BackBaffled=false # 反向散射
)
Out[0]:
IsotropicAntennaElement: FrequencyRange=[5.0e7 1.0e9] BackBaffled=false

让我们选择一个矩形天线阵列几何。 URA. 让我们设置2个相同的天线阵列:sURA-将是没有称重的参考AP,sURAweight-带称重。

In [ ]:
size_array = [16 16] # 天线阵列尺寸

sURA = EngeePhased.URA(
    Size = size_array,
    ElementSpacing = [lambda/2 lambda/2] # 设置元素之间的距离
)
# 天线阵列的重复
sURAweightElements = deepcopy(sURA) 
Out[0]:
URA:
    Element=IsotropicAntennaElement: FrequencyRange=[0.0 1.0e20] BackBaffled=false
    Size=[16 16]
    ElementSpacing=[0.5 0.5]
    Lattice=Rectangular
    ArrayNormal=x
    Taper=1

此外,使用函数 calcElemetPosition 计算天线元件的位置

In [ ]:
pos_array = calcElemetPosition(sURA)
Out[0]:
3×256 Matrix{Float64}:
  0.0    0.0    0.0    0.0    0.0   …   0.0    0.0    0.0    0.0    0.0
 -3.75  -3.75  -3.75  -3.75  -3.75      3.75   3.75   3.75   3.75   3.75
  3.75   3.25   2.75   2.25   1.75     -1.75  -2.25  -2.75  -3.25  -3.75

我们使用函数在空间中可视化AR viewURA

In [ ]:
viewURA(pos_array) 
Out[0]:

1. 矩形天线阵列的称重

让我们选择泰勒窗函数"TaylorSpectrumWindow"作为加权函数。

In [ ]:
nbar = 3 # 恒定水平的旁瓣数
sll = -25 # 最大旁瓣电平(dB)

weight = zeros(size_array...) # 为加权因子分配内存

# 加权系数的计算和ARSELEMENT的加权
[weight[i,:].=TaylorSpectrumWindow(size_array[1],nbar, -sll) for i in 1:(size_array[2])]
sURAweightElements.Taper  = weight
Out[0]:
16×16 Matrix{Float64}:
 0.524908  0.605639  0.74989  0.928736  …  0.74989  0.605639  0.524908
 0.524908  0.605639  0.74989  0.928736     0.74989  0.605639  0.524908
 0.524908  0.605639  0.74989  0.928736     0.74989  0.605639  0.524908
 0.524908  0.605639  0.74989  0.928736     0.74989  0.605639  0.524908
 0.524908  0.605639  0.74989  0.928736     0.74989  0.605639  0.524908
 0.524908  0.605639  0.74989  0.928736  …  0.74989  0.605639  0.524908
 0.524908  0.605639  0.74989  0.928736     0.74989  0.605639  0.524908
 0.524908  0.605639  0.74989  0.928736     0.74989  0.605639  0.524908
 0.524908  0.605639  0.74989  0.928736     0.74989  0.605639  0.524908
 0.524908  0.605639  0.74989  0.928736     0.74989  0.605639  0.524908
 0.524908  0.605639  0.74989  0.928736  …  0.74989  0.605639  0.524908
 0.524908  0.605639  0.74989  0.928736     0.74989  0.605639  0.524908
 0.524908  0.605639  0.74989  0.928736     0.74989  0.605639  0.524908
 0.524908  0.605639  0.74989  0.928736     0.74989  0.605639  0.524908
 0.524908  0.605639  0.74989  0.928736     0.74989  0.605639  0.524908
 0.524908  0.605639  0.74989  0.928736  …  0.74989  0.605639  0.524908

让我们构造一个加权函数的表面:

In [ ]:
surface(weight,title="高斯窗函数")
Out[0]:

该窗口增强了中心元素的影响并削弱了侧向元素,这使得可以改善AR的定向属性。 接下来,我们将在称重前后绘制方位平面中方向图的横截面:

In [ ]:
plot_pattern2_arrray(sURA,sURAweightElements,c,fc,["没有称重" "称重后"])
Out[0]:

在图表上,您可以看到称重后的底部与未称重的旁瓣相比具有显着更低的旁瓣水平。

2. 元件失效的模拟

在评估雷达系统的可靠性时,建议分析AR几何结构对随机天线元件击穿的抵抗力。 在称重的帮助下,能够模拟天线阵列的随机元件失效的情况。

使用函数 rand 让我们设置天线阵列的任何元素的10%失败的概率。

In [ ]:
release!(sURA) # 更新AR系统对象
sURAfailedElements = deepcopy(sURA)  # 天线阵列的重复

# 概率为10的元件失效的模拟%
sURAfailedElements.Taper  = Float64.(rand(size_array...) .> 0.1)
Out[0]:
16×16 Matrix{Float64}:
 1.0  1.0  1.0  0.0  1.0  1.0  1.0  1.0  …  0.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.0  1.0  1.0  1.0  1.0  0.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  0.0  1.0  1.0  1.0  1.0  1.0
 1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  0.0  1.0  1.0  1.0
 1.0  1.0  0.0  1.0  1.0  1.0  1.0  1.0  …  1.0  1.0  1.0  1.0  0.0  1.0  1.0
 1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  0.0  1.0  1.0  1.0  1.0
 1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 1.0  0.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  0.0  1.0  1.0  1.0
 1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     0.0  0.0  1.0  1.0  1.0  1.0  1.0
 1.0  1.0  1.0  0.0  1.0  1.0  1.0  1.0  …  1.0  1.0  1.0  1.0  1.0  1.0  1.0
 1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 1.0  1.0  0.0  1.0  1.0  1.0  0.0  1.0     1.0  1.0  1.0  1.0  0.0  1.0  1.0
 1.0  1.0  1.0  1.0  0.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     0.0  1.0  1.0  1.0  1.0  1.0  1.0
 1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  …  1.0  1.0  1.0  1.0  0.0  1.0  1.0
In [ ]:
num_element = prod(size_array) # 总元素

# 破碎物品数目
num_failed_element = length(sURAfailedElements.Taper[sURAfailedElements.Taper.==0]) 

# 显示损坏项目的统计信息
println("元素总数:$(num_element)")
println("破碎元素数:$(num_failed_element)(round(round(num_failed_element/num_element*100))%) ")
Общее количество элементов: 256
Количество сломанных элементов: 21 (8.0 %) 

要可视化破碎的元素,请使用前面提到的函数。 viewURA 用旗子 true 参数 is_failed

In [ ]:
viewURA(
    pos_array; # 元素的坐标
    is_failed=true, # 破碎物品的会计标志
    weight = sURAfailedElements.Taper # 元素的操作系数
)
Out[0]:

该图显示,破碎的元件根据天线阵列的几何形状随机分布。

现在,让我们来分析这些元素分解的影响。:

In [ ]:
plot_pattern2_arrray(sURA,sURAfailedElements,c,fc,["全面运作时" "失败后"])
Out[0]:

该图显示主瓣几乎保持不变,而旁瓣的水平略有增加。

结论

因此,在致力于底部天线元件和AR的构造的最后部分中,考虑了对天线阵列的元件进行加权的方法,这使得能够改善天线的定向特性。 此外,该方法使得能够模拟和评估具有给定故障概率的单个元件的故障的影响程度。