Engee 文档
Notebook

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

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

连接库和辅助功能

In [ ]:
using Pkg; Pkg.add("Statistics");Pkg.add("SpecialFunctions")
using SpecialFunctions,Statistics

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

In [ ]:
include("$(@__DIR__)/helper_weight_failed_array.jl")
   Resolving package versions...
  No Changes to `~/.project/Project.toml`
  No Changes to `~/.project/Manifest.toml`
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 # максимальный уровень боковых лепестков (дБ)

weight = zeros(size_array...) # выделение памяти под весовые коэффициенты

# Расчет весовых коэффициентов и взвешивание АР sURAweightElements
[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) # обновление системного объекта АР
sURAfailedElements = deepcopy(sURA)  # дублирование антенной решетки

# Имитация выхода из строя элементов с вероятностью 10%
sURAfailedElements.Taper  = Float64.(rand(size_array...) .> 0.1)
Out[0]:
16×16 Matrix{Float64}:
 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  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  1.0  1.0  1.0  0.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  1.0  1.0  1.0  1.0  1.0  1.0
 1.0  1.0  0.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  0.0  1.0  0.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  0.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.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  0.0  1.0  1.0  …  1.0  1.0  1.0  1.0  1.0  1.0  0.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
 0.0  0.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  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  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  1.0  …  1.0  1.0  1.0  1.0  1.0  1.0  0.0
In [ ]:
num_element = prod(size_array) # всего элементов

# количество сломанных элементов
num_failed_element = length(sURAfailedElements.Taper[sURAfailedElements.Taper.==0]) 

# вывод статистики сломанных элементов
println("Общее количество элементов: $(num_element)")
println("Количество сломанных элементов: $(num_failed_element) ($(round(num_failed_element/num_element*100)) %) ")
Общее количество элементов: 256
Количество сломанных элементов: 31 (12.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的构造的最后部分中,考虑了对天线阵列的元件进行加权的方法,这使得能够改善天线的定向特性。 此外,该方法使得能够模拟和评估具有给定故障概率的单个元件的故障的影响程度。