Документация Engee
Notebook

Диаграммы направленности антенн (часть 1)

В примере рассматривается задание и построение диаграмм направленности (ДН) различных антенных элементов с помощью системных объектов (СО) библиотеки EngeePhased

Вспомогательные функции

In [ ]:
function setting_plot(fig;title::String="",colorbar_title::String = "")
    PlotlyJS.relayout!(fig,title=title)
    fig.plot.data[1][:colorbar][:title] = colorbar_title
    fig.plot.data[1][:colorbar][:titleside] = "right"
    return fig
end
Out[0]:
setting_plot (generic function with 1 method)

Исходные параметры антенного элемента

Зададим основные параметры антенных элементов:

In [ ]:
fc = 500e6 # частота излучения антенны
freq_rng = [50e6 1000e6] # частотный диапазон антенны

azim_ang = reshape(Vector(-180:180),1,:) # диапазон азимутальных углов
elev_ang = reshape(Vector(-90:90),1,:); # диапазон по углу места

1. Изотропный излучатель

Все антенные элементы располагаются во встроенной библиотеке "EngeePhased". Для задания системного объекта изотропного антенного элемента необходимо вызвать функцию EngeePhased.IsotropicAntennaElement, внутри которой определить необходимые параметры элемента:

In [ ]:
# Содание антенного элемента
iso_element = EngeePhased.IsotropicAntennaElement(
    FrequencyRange=freq_rng, # частотный диапазон
    BackBaffled=false # обратное отражение
)
Out[0]:
IsotropicAntennaElement: FrequencyRange=[5.0e7 1.0e9] BackBaffled=false

Для построения ДН необходимо вызвать функцию pattern c входными аргументами в следующем порядке:

In [ ]:
fig1 = pattern(
    iso_element, # антенный элемента
    fc, # частота излучения антенны
    azim_ang, # диапазон азимутальных углов
    elev_ang # диапазон по углу места
);
setting_plot(fig1;title="ДН изотропного элемента",colorbar_title = "КНД (дБи)")
Out[0]:

2 Косинусный излучатель

Аналитически, выражение для ДН данной антенны имеет вид:

где функция ДН; - азимутальный угол; - угол места; - показатели степени косинуса (вещественные числа, больше и равные нулю)

Программно косинусный элемент задается с помощью функции CosineAntennaElement:

In [ ]:
cos_element = EngeePhased.CosineAntennaElement(
    FrequencyRange=[50e6 1000e6], # частотный диапазон
    CosinePower=[1.5 1.5] # показатели степени функции косинуса
)
Out[0]:
CosineAntennaElement: FrequencyRange=[5.0e7 1.0e9] CosinePower=[1.5 1.5]

Построим ДН для нового антенного элемента

In [ ]:
fig2 = pattern(cos_element,fc,azim_ang,elev_ang)
setting_plot(fig2;title="ДН косинусной антенны",colorbar_title = "КНД (дБи)")
Out[0]:

3 Кардиоидный антенный элемент

Антенный элемент формируется с помощью функции CardioidAntennaElement Для задания направления минимума антенного элемента, необходимо задать ось и ее направление с помощью параметра NullAxisDirection:

In [ ]:
cardiod_element = EngeePhased.CardioidAntennaElement(
    FrequencyRange=freq_rng, # частотный дипазон
    NullAxisDirection="-x" # направление минимума антенны
)
Out[0]:
CardioidAntennaElement: FrequencyRange=[5.0e7 1.0e9] NullAxisDirection=-x

В зависимости от параметра NullAxisDirection характеристика ДН антенного элемента будет представлять выражение:

"-x"

"-y"

"-z"

"+x"

"+y"

"+z"

Построим антенный элемент

In [ ]:
fig3 = pattern(cardiod_element,fc) 
setting_plot(fig3;title="ДН кардиоидной антенного элемента",colorbar_title = "КНД (дБи)")
Out[0]:

4. Пользовательский антенный элемент

Кроме известных антенных элементов существует возможность сформировать собственный антенный элемент с произовольной диаграммой направелнностью.

Предположим, что требуется антенный элемент с ДН, заданной функцией Гаусса. Зададим поверхность с помощью функции gauss:

In [ ]:
gauss(x,y) = exp.(-(x.^2 .+ y.^2))

x_grid = LinRange(-4,4,361) # сетка по оси x
y_grid = LinRange(-2,2,181) # сетка по оси y
custom_pattern = gauss(x_grid',y_grid);

Визуализируем поверхность в декартовых координатах:

In [ ]:
surface(
    x_grid,y_grid,custom_pattern,
    title="Повехность функции гаусса",
    xlabel="x",ylabel="y",
    zlabel="z",xlims=(-2,2)
)
Out[0]:

Теперь, с помощью системного объекта EngeePhased.CustomAntennaElement сформируем пользователький антенный элемент:

In [ ]:
custom_element = EngeePhased.CustomAntennaElement(
    MagnitudePattern = custom_pattern
);
In [ ]:
fig4 = pattern(custom_element,fc)
setting_plot(fig4;
    title="ДН кардиоидной пользовательского антенного элемента",
    colorbar_title = "КНД (дБи)"
)
Out[0]:

В результате применения пользовательского антенного элемента получилось достигнуть более направленной ДН.

Заключение

В примере продемонстрирована построение и анализ характеристик антенных элементов с помощью встроенной библиотеки EngeePhased. С использованием данной библиотеки возможно построения готовых элементов или задавать собственный антенный элемент с произвольной диаграммой направленностью.