The example describes the assignment and construction of directional patterns (DN) of various antenna elements using the system objects (CO) of the EngeePhased library.
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
Let's set the basic parameters of the antenna elements:
fc = 500e6 # antenna radiation frequency
freq_rng = [50e6 1000e6] # antenna frequency range
azim_ang = reshape(Vector(-180:180),1,:) # azimuth angle range
elev_ang = reshape(Vector(-90:90),1,:); # the range of the seat angle
All antenna elements are located in the built-in library "EngeePhased". To set the system object of the isotropic antenna element, you must call the function EngeePhased.IsotropicAntennaElement
# Heating of the antenna element
iso_element = EngeePhased.IsotropicAntennaElement(
FrequencyRange=freq_rng, # frequency range
BackBaffled=false # reverse reflection
)
To build a date, you need to call the function pattern
fig1 = pattern(
iso_element, # Antenna element
fc, # antenna radiation frequency
azim_ang, # azimuth angle range
elev_ang # the range of the seat angle
);
setting_plot(fig1;title="The name of the isotropic element",colorbar_title = "КНД (дБи)")
Analytically, the expression for the DN of a given antenna has the form:
Programmatically, the cosine element is set using the function CosineAntennaElement
cos_element = EngeePhased.CosineAntennaElement(
FrequencyRange=[50e6 1000e6], # frequency range
CosinePower=[1.5 1.5] # exponents of the degree of the cosine function
)
Let's build the base for the new antenna element
fig2 = pattern(cos_element,fc,azim_ang,elev_ang)
setting_plot(fig2;title="The name of the cosine antenna",colorbar_title = "КНД (дБи)")
The antenna element is formed using the function CardioidAntennaElementNullAxisDirection
cardiod_element = EngeePhased.CardioidAntennaElement(
FrequencyRange=freq_rng, # frequency range
NullAxisDirection="-x" # antenna minimum direction
)
Depending on the parameter NullAxisDirection
#
"-x"
"-y"
"-z"
Let's build an antenna element
fig3 = pattern(cardiod_element,fc)
setting_plot(fig3;title="DN of the cardioid antenna element",colorbar_title = "КНД (дБи)")
In addition to the known antenna elements, it is possible to form your own antenna element with a custom directional pattern.
Let's assume that an antenna element with a DN specified by the Gaussian function is required. Let's define the surface using the function gauss
gauss(x,y) = exp.(-(x.^2 .+ y.^2))
x_grid = LinRange(-4,4,361) # x-axis grid
y_grid = LinRange(-2,2,181) # y-axis grid
custom_pattern = gauss(x_grid',y_grid);
Visualize the surface in Cartesian coordinates:
surface(
x_grid,y_grid,custom_pattern,
title="The complexity of the Gauss function",
xlabel="x",ylabel="y",
zlabel="z",xlims=(-2,2)
)
Now, using the system object EngeePhased.CustomAntennaElement
custom_element = EngeePhased.CustomAntennaElement(
MagnitudePattern = custom_pattern
);
fig4 = pattern(custom_element,fc)
setting_plot(fig4;
title="DN of the cardioid custom antenna element",
colorbar_title = "КНД (дБи)"
)
As a result of using a custom antenna element, it was possible to achieve a more directional bottom.
The example demonstrates the construction and analysis of antenna element characteristics using the built-in library. EngeePhased