Large Antenna Array Modelling – A Helix Antenna Case Study

Modeling very large antenna arrays can be computationally expensive, even with high frequency methods such as the MLFMM. Detailed steps are given to model an arbitrary size array of wire helices using the radiation pattern point source approximation in FEKO.

Problem Description

A wire helix array of 21 by 21 elements is modeled at 16 GHz to determine its gain. The helix dimensions are:

radius: 3mm
height: 30 mm

The single helix and array are shown below.

Figure 1: Wire helix antenna

single helix

single helix

helix array

helix array

Overview of Methodology

Simulation Steps
The simulation of this array will be conducted in the following logical steps:

  • Construct a single element simulation model.
  • Characterisation of nearest neighbour radiation coupling influence on array element radiation patterns.
  • Decomposed 21 x 21 element array construction, using nearest neighbour radiation pattern data.
  • Validation of 21 x 21 element array simulation results.

The key to the use of the ideal transmitting antenna for the simulation of the large array, is to assume that only adjacent elements will influence the radiation pattern of individual elements in the array. This influence is characterised with a simple 3 x 3 or a 5 x 5 array. Each element is driven in turn to derive the far-field pattern for each element in the presence of its neighbours. The resulting far-field patterns will be used as sources for each element in the large 21 x 21 array, each element in this array being replaced with an ideal transmitting antenna with the radiation pattern of the element with comparable geometry in the 3 x 3 (or 5 x 5) characterisation array, from now on called the “base array”.

Decomposed 21 x 21 Element Array Construction
Once the characterisation has been done, the 21 x 21 array can be simulated by selectively importing one of the nine radiation patterns which has the same relative position in the base array.  FEKO is ideally suited to this solution technique as it features the ideal transmitting antenna which can be used to import pre-calculated radiation patterns.  The advantage to this method of large array simulation is that no mesh is created and no currents are computed, resulting in significant savings in simulation time and computational resource requirements.

Description of the Different Files

The attached files contain two folders. EDITFEKO is used to facilitate the general MxN array setup. The folder names are “array_based_on_3by3array” and “…5by5array”. Both folders contain a solution for a 21 by 21 array done with FMM (here just for interest to see how accurate the method can be) and also point sources. Double clicking on the *.pfs files opens the results in POSTFEKO.

Now consider the folder “array_based_on_3by3array
Firstly double click on the wire_helix_single.cfx file: This is a single wire helix in CADFEKO but with no solution settings. So here we only have geometry (and its mesh of course).

Next examine the file wire_helix_3by3_noexcitation.cfx
Here we have a 3 by 3 array. Note a Union was made of all the helices. (Normally one would not do this as they are not physically connected  – they are electromagnetically connected in a way through the ground, but in CADFEKO only PHYSICAL TRIANGULAR/WIRE/TETRAHEDRAL connections matter.) The Union simplifies the labeling in that we have one base part, that is “Helix_Array”, and then in the detail tree are the different edge labels.  The feed segment on each helix was given the label “Feed1”, “Feed2”, … , “Feed9”.
Next double click on wire_helix_element_1.pre This opens the file in EDITFEKO.
We see some lines starting with **. This is a comment line.
Next follows 9 lines like this:

#Excite1 = 1
#Excite2 = 0
#Excite3 = 0

These are variables, almost BOOLEAN in a way, specifying which port is active.

The next couple of lines are

** Work in mm
SF: 1 : : : : : 0.001
** Import mesh model
IN 8 31 "wire_helix_3by3_noexcitation.cfm"
** End of geometry
EG: 1 : 0 : 0 : : : : 1 : 1 : : 0 : 0 : 0 : 1
** Perfect electrical ground
BO: 2
** Set frequency
FR: : : : : : 16000000000

Putting the cursor on any of these lines and hitting F1 will pop up a GUI showing what the line does. All of the above lines were automatically generated by CADFEKO when the _noexcitation.cfx model was created and saved.

Now under the ** Sources comment line we have a total of 9 “IF” statements containing an excitation command (A1) and Origin offset (OF). Note the label in the A1 card is “Helix_Array.Feed1”, “Helix_Array.Feed2”, “Helix_Array.Feed3” etc. In these IF statements we firstly tell FEKO to excite the helix corresponding to the “BOOLEAN” variable settings at the top of the pre file, and that the radiation pattern that we will calculate must be phase referenced from the physical position of the helix being driven, not the origin.

Next we tell FEKO to write the far fields to a *.ffe file becuase we will need to import these fields again later.

DA 2 2 3 2 0

And the far field pattern calculation is:

And the far field pattern calculation is:

Lastly the end of file command


The geometry created by the *.pre files can be viewed by first running PREFEKO and then POSTFEKO. We only have point sources and no geometry, so click on the red “E” button on the left in POSTFEKO to view the point sources. To view the requested far field points, click on the icon just above the “E”.

There is a total of 9 of these files, (that is because we have a 3 by 3 array.) It is possible to combine all of these files into one, this can be seen in a similar application note on a microstrip antenna array.

Next open the file wire_helix_array_MxN.pre. Here just the important lines are highlighted.

At the top we have

#array_M = 7
#array_N = 7

These are specifying the size of the array. M is in the X direction and N is in the Y direction.

Next follows 3 TG cards where we basically copy and translate the single helix mesh created in the file “wire_helix_single” by a number equal to array_M x array_N or in this case 49 times.

Then follows the FM card specifying the FMM method.

Next we have

PS 0 0 3 1 0

This stores the currents to a file. It is useful in case where we want to compute a different far field pattern and not make any changes to the geometry. In such a case the same solution is used to compute the new pattern. Having the solution available in a file will therefore save the time needed to rerun the solution from scratch.

Next we have a FOR loop where we excite all the feed segments one at a time. The label “Helix.Feed#source” is a loop variable. The loop variable is much more efficient than specifying all the sources by hand. The label section “Helix” is the base part in CADFEKO found in the geometry tree, and the “Feed” section of the label is the label in the detail tree (bottom left) of CADFEKO under Edges.

Now open the file wire_helix_array_MxN_pointsources.pre

In the line

IN 8 16 "wire_helix_single.cfm"

we are not importing any geometry, but it’s useful to have the variables available, otherwise we have to redefine them.

Then we have two nested FOR loops. The base loop is in the y-position and the internal loop is in the x-position. In these loops we place the point sources in the correct positions based on the size of the array and we use the corresponding ffe file. Hit F1 on any of the lines starting with AR.

Some comments on the AR card:

  • The phase centre of the helix in the z-position is probably non-zero but it was found to be of minimal effect here.
  • If we had a ground plane, the point source would have been placed just above the ground plane as it can not be inside the ground.
  • We select “Add to sources” NOT “New source”!!
    The number of points are exactly the same as those computed in the wire_helix_element_n.pre files. If not, we will get an error when running FEKO.
  • For high gain elements, it is important to have enough points, especially around boresight otherwise the interpolation in FEKO won’t give accurate results.

Now in the folder “array_based_on_5by5array” the same procedure was followed, but here a 5 by 5 array was the basis for computing the larger array. Again double click on the “compare_gain_21by21_array.pfs” file. Here the gain for a full FMM solution, and then point sources based on a 3 by 3 element array and also for a 5 by 5 element array are compared. Results are better for the point sources based on the 5 by 5 array. The higher accuracy comes at a price though, as we now have 25 IF statements instead of 9 in the file “wire_helix_array_MxN_pointsources.pre”. In this *.pre file the PRINT command is added inside the FOR loops to help to check that the file is created correctly when we run PREFEKO.


Figure 2 compares the gain for the 21 by 21 array modeled with the MLFMM and modeled with point sources. Two point sources solutions are given, one using a 3 by 3 array as reference and the other using a 5 by 5 array as reference.

 Comparison of gain

Figure 2: Comparison of gain between MLFMM method and point sources method

Larger arrays can be modeled by just modifying the #array_M and #array_N variables.

Conclusions and Last Comments

The gains compare very well for the FMM solution vs. the point source solution, but the point source solution is orders of magnitude faster! Also, using a larger “base array” for computing the M by N array gives higher accuracy.

The phase centre of the individual elements were assumed to be centered at the bottom of each element. This may not necessarily be true for other types of elements.

In this example, the beam was not scanned. This functionality can be added, but it might very well be that the mutual coupling changes for different phasing. Of course, one can check with FMM on a medium sized array. It may be that one has to use different “base” arrays where we have e.g. a couple of 5 by 5 arrays each with different phasing. Then in the large M by N array with point sources we have to carefully choose the correct element AND correct base array depending on the phasing.

Related content

Example files for Suite 5.4