Finite Arrays

In addition to explicit modeling of finite arrays in Ansys HFSS, there are three other methods based on using unit cells. To learn more about the unit cell, please see part 1 of this blog.

In part 2, I will introduce and compare these 3 methods (1) Finite array defined using the array setting in unit cell, (2) Finite Array using Domain Decomposition Method (FADDM), (3) 3D component arrays (Figure 1). Please note that that the method 3 requires HFSS 2020R1 or newer.

(a)

(b)

(c)

Figure 1. (a) Unit cell, (b) FADDM, (c) 3D component array.

Finite Array using Unit Cell

After defining a unit cell (Figure 1a), you may simply define the number of elements, the spacing between them, and the scan angle. The assumption is that there is no mutual coupling, every element has the same radiation pattern and the same excitation. This is a good approximation for large arrays (10×10 or larger). This method may not be accurate enough in some cases, for example for a small number of elements; and when the antenna elements have main beams toward the angles that are close to the plane of the array and toward the other elements, causing a higher level of mutual coupling. However, smaller arrays won’t require as large of a compute resource as a large array.

The advantage of this method is its simulation speed. It requires the minimum memory and time to provide a quick array simulation. To define the array (after running the analysis for unit cell), right-click on Radiation from the Project Manager window. Select Antenna Array Setup, and then Regular Array Setup. In the Antenna Array Setup under Regular Array type, define the location of the first cell, the direction, the distance between the cells and number of cells in each direction.

(a)

(b)

(c)

Figure 2. Steps to define a finite array, (a) Antenna array setup, (b) & (c) Regular array setup.

Finite Array using Domain Decomposition Method

General Domain Decomposition (DDM) for a single domain provides a way to reduce memory requirement, however, it does not reduce the meshing time for large explicit arrays. Using Finite Array DDM (FADDM) addresses this shortcoming. The FADDM bypasses the adaptive meshing stage by duplicating the mesh that was generated for a unit cell. While the unit cell is used to create the mesh, the assumption of uniform excitation is no longer present. Each element in FADDM can have different magnitude and phase and is individually modeled, however, the mesh created in the unit cell is used to generate the overall mesh, therefore, no CPU time is spent on generating the mesh. This can be seen in Figure 3, by linking the mesh of the unit cell to the FADDM, the mesh is copied, and no mesh refinement will be needed. You may compare it with the explicit array of the same size (Figure 3(c)) where the entire array has to be meshed and mesh refinement will be necessary for adaptive meshing. This can be a huge simulation time saving when the array size is large.

(a)

(b)

(c)

Figure 3. (a) Mesh from a unit cell, (b) mesh linked to FADDM, (c) explicit array mesh.

To create FADDM from unit cell, create a new HFSS design. Then copy the unit cell into the new design. In the Project Manager window, right-click on Model and choose Create Array, as shown in Figure 4. This opens the window that allows user to define the number of elements of the array along the lattice directions. By selecting “Active Cells” tab, user can define where active, passive and padding cells are located. This gives the user a means of creating different lattice shapes.

Please note that padding cells defined in the General tab represent the size of vacuum buffer surrounding the array. They are not visible to the users but are included in the FADDM simulation. The same mesh from the unit cell simulation is duplicated to padding cells (Figure 5). It is also possible to add padding cells in the Active Cells tab, and those cells are also invisible, but can be used to create the array lattice of the desired shape (Figure 6).

Figure 4. The steps to create a DDM array, the Padding Cells are used to create the vacuum box and are invisible to the user.

Figure 5. The FADDM needs a padding cell to create a vacuum box around the design. The padding cells are invisible to the user.

(a)

(b)

Figure 6. (a) Padding cells can be used to create a lattice, (b) the lattice created does not show the padding cells.

The next step is to link the mesh to the unit cell. First, an analysis setup should be created. Choose Advanced Solution Setup. In the Driven Solution Setup General tab, reduce the number of Maximum Number of Passes to 1, as shown in Figure 7(a), then choose Advanced tab and click on Import Mesh (Figure 7(b)). Click on Setup Link. This is to link the simulation to the mesh of a unit cell. There are two steps needed here. First, choose the file or design that contains the mesh information (Figure 7(c)), second is to map the variables Figure 7(d). The last step to setting up the analysis is selecting Advanced Mesh Operation tab and selecting “Ignore mesh operation in target design” (Figure 7(d)). Now the array is ready and simulation can be run. You notice that adaptive meshing goes to only one pass. If in Setup Link window the option of “Simulate source design as needed” is checked (Figure 7(c)), then if a design variable that affects the geometry is changed, the meshing of the unit cell is repeated as needed. After the simulation is completed the elements magnitude and phases can be changed as a post processing step by “Edit Sources” (right-click on Excitations). The source names provided in the edit sources is slightly different than an explicit array (Figure 8)

(a)

(b)

(c)

(d)

(e)

Figure 7. Different windows related to setting up a linked mesh in FADDM.

Figure 8. Edit sources gives the ability to change the magnitude and phase of each element.

To compare the run-time and array patterns an example of circular polarized microstrip patch antenna of a 5 ´ 5 element array is shown in Figure 9 and Figure 10. The differences can be seen at angles away from the broadside angle. This shows how the edge effects are ignored in the unit cell approximation. Table 1 shows the comparison of memory and runtime for the three methods.

Table 1. Comparing run time and memory needed for a 5 x 5 array, explicit array vs FADDM.

Figure 9. Comparison of the far-field patterns for LHCP (co-polarization) created using FADDM and unit cell array.

Figure 10. Comparison of the far-field patterns for RHCP (cross-polarization) created using FADDM and unit cell array.

Finally, we compare the co-polarization pattern with an explicit 5 x 5 element array for scan angles of 0 and 30 degrees in  Figure 11 and Figure 12, respectively.

Figure 11. Comparison of far-field LHCP created by explicit array vs. FADDM.

Figure 12. Comparison of scanned far-field LHCP, scan angle of 30 degrees.

3D Component Array

In 2020R1 the option of 3D component array was added. This option provides a means of combining different unit cells in one array. The unit cells are defined and imported as 3D components. To create a 3D component unit cell, define each type of the cells in a separate HFSS design, run the analysis, then select all objects in the model. In the Model ribbon, click on Create 3D Component, assign a name (no spaces are allowed in the name), add any information you like to add such as owner, email, company, etc., then click OK. Once all the 3D component cells are created, create a new HFSS design for the 3D component FADDM.

The next step is to create Relative CS for each of the 3D component elements in the HFSS design that will contain the array. For this step you need to plan the array lattice ahead of time, so the components are placed in the proper locations (Figure 13). Overlap is not allowed.

The unit cells should have the followings:

• Identical dimensions of the bounding boxes
• Identical Primary/Secondary (Master/Slave) boundary on the unit cells.

The generation of FADDM is similar to single unit cell array, except that when you select Model->Create Array, the window will be shown as 3D Component Array Properties (Figure 14). After choosing the number of elements and the number of padding cells, the unit cells window (Figure 15) will give you options of choosing one of the 3D component unit cells for each location of the elements in the lattice. The cells can be color coded. In the example shown in Figure 16  there are 3 components, the blank cell, the vertical cell and the horizontal cell. The sources under Edit Sources window are also arranged based on the name of the 3D component cells. At this point there is no option of linking the mesh. Therefore, the number of passes for adaptive mesh should be set to a number that is appropriate for getting a convergence.

Figure 13. 3D component unit cells are arranged to create a 3D component array.

Figure 14. The 3D component array can be created the same way as creating FADDM using a unit cell.

Figure 15. The unit cells are color coded for easier lattice creation.

Figure 16. The result of lattice created using 3D component array.

Conclusion

Unit cell and Finite Array Domain Decomposition are excellent options for simulating large finite arrays within a reasonable runtime and memory requirements. The 3D component finite array is a nice added feature in 2020R1 that now provides a way to combine unit cells with different geometries in one array.

Efficient and Accurate Simulation of Antenna Arrays in Ansys HFSS

Unit-cell in HFSS

HFSS offers different method of creating and simulating a large array. The explicit method, shown in Figure 1(a) might be the first method that comes to our mind. This is where you create the exact CAD of the array and solve it. While this is the most accurate method of simulating an array, it is computationally extensive. This method may be non-feasible for the initial design of a large array. The use of unit cell (Figure 1(b)) and array theory helps us to start with an estimate of the array performance by a few assumptions. Finite Array Domain Decomposition (or FADDM) takes advantage of unit cell simplicity and creates a full model using the meshing information generated in a unit cell. In this blog we will review the creation of unit cell. In the next blog we will explain how a unit cell can be used to simulate a large array and FADDM.

In a unit cell, the following assumptions are made:

• The pattern of each element is identical.
• The array is uniformly excited in amplitude, but not necessarily in phase.
• Edge affects and mutual coupling are ignored

A unit cell works based on Master/Slave (or Primary/Secondary) boundary around the cell. Master/Slave boundaries are always paired. In a rectangular cell you may use the new Lattice Pair boundary that is introduced in Ansys HFSS 2020R1. These boundaries are means of simulating an infinite array and estimating the performance of a relatively large arrays. The use of unit cell reduces the required RAM and solve time.

Primary/Secondary (Master/Slave) (or P/S) boundaries can be combined with Floquet port, radiation or PML boundary to be used in an infinite array or large array setting, as shown in Figure 3.

To create a unit cell with P/S boundary, first start with a single element with the exact dimensions of the cell. The next step is creating a vacuum or airbox around the cell. For this step, set the padding in the location of P/S boundary to zero. For example, Figure 4 shows a microstrip patch antenna that we intend to create a 2D array based on this model. The array is placed on the XY plane. An air box is created around the unit cell with zero padding in X and Y directions.

You notice that in this example the vacuum box is larger than usual size of quarter wavelength that is usually used in creating a vacuum region around the antenna. We will get to calculation of this size in a bit, for now let’s just assign a value or parameter to it, as it will be determined later. The next step is to define P/S to generate the lattice. In AEDT 2020R1 this boundary is under “Coupled” boundary. There are two methods to create P/S: (1) Lattice Pair, (2) Primary/Secondary boundary.

Lattice Pair

The Lattice Pair works best for square lattices. It automatically assigns the primary and secondary boundaries. To assign a lattice pair boundary select the two sides that are supposed to create infinite periodic cells, right-click->Assign Boundary->Coupled->Lattice Pair, choose a name and enter the scan angles. Note that scan angles can be assigned as parameters. This feature that is introduced in 2020R1 does not require the user to define the UV directions, they are automatically assigned.

Primary/Secondary

Primary/Secondary boundary is the same as what used to be called Master/Slave boundary. In this case, each Secondary (Slave) boundary should be assigned following a Primary (Master) boundary UV directions. First choose the side of the cell that Primary boundary. Right-click->Assign Boundary->Coupled->Primary. In Primary Boundary window define U vector. Next select the secondary wall, right-click->Assign Boundary->Couple->Secondary, choose the Primary Boundary and define U vector exactly in the same direction as the Primary, add the scan angles (the same as Primary scan angles)

Floquet Port and Modes Calculator

Floquet port excites and terminates waves propagating down the unit cell. They are similar to waveguide modes. Floquet port is always linked to P/S boundaries. Set of TE and TM modes travel inside the cell. However, keep in mind that the number of modes that are absorbed by the Floquet port are determined by the user. All the other modes are short-circuited back into the model. To assign a Floquet port two major steps should be taken:

Defining Floquet Port

Select the face of the cell that you like to assign the Floquet port. This is determined by the location of P/S boundary. The lattice vectors A and B directions are defined by the direction of lattice (Figure 7).

The number of modes to be included are defined with the help of Modes Calculator. In the Mode Setup tab of the Floquet Port window, choose a high number of modes (e.g. 20) and click on Modes Calculator. The Mode Table Calculator will request your input of Frequency and Scan Angles. After selecting those, a table of modes and their attenuation using dB/length units are created. This is your guide in selecting the height of the unit cell and vaccume box. The attenation multiplied by the height of the unit cell (in the project units, defined in Modeler->Units) should be large enough to make sure the modes are attenuated enough so removing them from the calcuatlion does not cause errors. If the unit cell is too short, then you will see many modes are not attenuated enough. The product of the attenuatin and height of the airbox should be at least 50 dB. After the correct size for the airbox is calcualted and entered, the model with high attenuation can be removed from the Floquet port definition.

The 3D Refinement tab is used to control the inclusion of the modes in the 3D refinement of the mesh. It is recommended not to select them for the antenna arrays.

In our example, Figure 8 shows that the 5th mode has an attenuation of 2.59dB/length. The height of the airbox is around 19.5mm, providing 19.5mm*2.59dB/mm=50.505dB attenuation for the 5th mode. Therefore, only the first 4 modes are kept for the calculations. If the height of the airbox was less than 19.5mm, we would need to increase the height so accordingly for an attenuation of at least 50dB.

A simpler alternative for Floquet port is radiation boundary. It is important to note that the size of the airbox should still be kept around the same size that was calculated for the Floquet port, therefore, higher order modes sufficiently attenuated. In this case the traditional quarter wavelength padding might not be adequate.

Perfectly Matched Layer

Although using radiation boundary is much simpler than Floquet port, it is not accurate for large scan angles. It can be a good alternative to Floquet port only if the beam scanning is limited to small angles. Another alternative to Floquet port is to cover the cell by a layer of PML. This is a good compromise and provides very similar results to Floquet port models. However, the P/S boundary need to surround the PML layer as well, which means a few additional steps are required. Here is how you can do it:

1. Reduce the size of the airbox* slightly, so after adding the PML layer, the unit cell height is the same as the one that was generated using the Modes Calculation. (For example, in our model airbox height was 19mm+substrte thickness, the PML height was 3mm, so we reduced the airbox height to 16mm).
2. Choose the top face and add PML boundary.
3. Select each side of the airbox and create an object from that face (Figure 10).
4. Select each side of the PML and create objects from those faces (Figure 10).
5. Select the two faces that are on the same plane from the faces created from airbox and PML and unite them to create a side wall (Figure 10).
6. Then assign P/S boundary to each pair of walls (Figure 10).

*Please note for this method, an auto-size “region” cannot be used, instead draw a box for air/vacuum box. The region does not let you create the faces you need to combine with PML faces.

The advantage of PML termination over Floquet port is that it is simpler and sometimes faster calculation. The advantage over Radiation Boundary termination is that it provides accurate results for large scan angles. For better accuracy the mesh for the PML region can be defined as length based.

Seed the Mesh

To improve the accuracy of the PML model further, an option is to use length-based mesh. To do this select the PML box, from the project tree in Project Manager window right-click on Mesh->Assign Mesh Operation->On Selection->Length Based. Select a length smaller than lambda/10.

Scanning the Angle

In phased array simulation, we are mostly interested in the performance of the unit cell and array at different scan angles. To add the scanning option, the phase of P/S boundary should be defined by project or design parameters. The parameters can be used to run a parametric sweep, like the one shown in Figure 12. In this example the theta angle is scanned from 0 to 60 degrees.

Comparing PML and Floquet Port with Radiation Boundary

To see the accuracy of the radiation boundary vs. PML and Floquet Port, I ran the simulations for scan angles up to 60 degrees for a single element patch antenna. Figure 13 shows that the accuracy of the Radiation boundary drops after around 15 degrees scanning. However, PML and Floquet port show similar performance.

S Parameters

To compare the accuracy, we can also check the S parameters. Figure 14 shows the comparison of active S at port 1 for PML and Floquet port models. Active S parameters were used since the unit cell antenna has two ports. Figure 15 shows how S parameters compare for the model with the radiation boundary and the one with the Floquet port.

Conclusion

The unit cell definition and options on terminating the cell were discussed here. Stay tuned. In the next blog we discuss how the unit cell is utilized in modeling antenna arrays.