Engee documentation
Notebook

Antenna radiation patterns (Part 2)

The example demonstrates the construction and visualization of antenna arrays. Using antenna elements, reviewed in example part 1, we will consider the basic architectures of antenna array geometry (AR)

Functions used

In [ ]:
function set_DN_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]:
set_DN_plot (generic function with 1 method)

Initial parameters of the antenna element

Before modeling the DN, we will set the basic parameters of the antenna elements:

In [ ]:
fc = 300e6 # antenna radiation frequency
c = 3e8 # signal propagation speed
lambda = c/fc # wavelength
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

We will choose an isotropic element as an element of the antenna array.:

In [ ]:
element = EngeePhased.IsotropicAntennaElement(
    FrequencyRange = freq_rng, 
    BackBaffled=false
)
Out[0]:
IsotropicAntennaElement: FrequencyRange=[5.0e7 1.0e9] BackBaffled=false

1. Linear grid

The first most basic geometry of the AR is a linear equidistant antenna. Setting this geometry using the system object ULA

In [ ]:
ULA_Array = EngeePhased.ULA(
    Element= element, # antenna array element
    NumElements = 10, # Number of elements
    ElementSpacing=lambda/2, # the distance between the elements
    ArrayAxis="z", # antenna orientation
    Taper=1 # weight factor
)
fig_ula = pattern(ULA_Array,fc)
set_DN_plot(fig_ula;title="The name of the linear AR",colorbar_title = "CND (dBi)")
Out[0]:

2. Rectangular grid

Let's consider the second type of antenna array geometry - rectangular. Unlike the previous geometry, the antenna array has a 2-dimensional structure. The system object is defined as EngeePhased.URA:

In [ ]:
URA_Array = EngeePhased.URA(
    # setting the antenna element
    Element = element, 
    Size=[5 5], # grid size
    ElementSpacing=[0.5 0.5], # the distance between the elements
    ArrayNormal = "z",# antenna orientation
    Taper=1 # weight factor
)

fig_ura = pattern(URA_Array,fc)
set_DN_plot(fig_ura;title="The bottom of the rectangular AR",colorbar_title = "CND (dBi)")
Out[0]:

3. Circular grid

The last type considered in AR has a circular geometry. The position of the elements is formed based on the radius of the circle. Let's define a circular map with 10 elements (EngeePhased.UCA):

In [ ]:
UCA_Array = EngeePhased.UCA(
    # # setting the antenna element
    Element = element,
    NumElements=10, # Number of elements
    Radius=lambda/2, # the radius of the antenna array
    ArrayNormal="z",# antenna orientation
    Taper=1  # weight factor
)

fig_uca = pattern(UCA_Array,fc)
set_DN_plot(fig_uca;title="DN circular AR",colorbar_title = "CND (dBi)")
Out[0]:

Conclusion

The example describes the formation and construction of antenna arrays for basic geometries: linear, rectangular and circular. By using varying the parameters of the AR, it is possible to achieve the required shape of the DN