This example uses a plugin from XFdtd’s XTend Library to perform a Particle Swarm Optimization (PSO) of an Inverted-F Antenna (IFA). The IFA is a popular antenna for use in mobile devices due to its small size. In this instance, the antenna will be optimized to operate over the GSM-1900 band (1.85 - 1.99 GHz).
PSO is a global optimization technique inspired by swarm behavior found naturally in schools of fish, flocks of birds, and swarms of insects. A number of particles comprising a swarm are distributed throughout the N-dimensional solution space. An evolutionary process ensues where each particle evaluates the fitness of its current location and moves on to a new location based on the best result seen by that particular particle and the best result seen by the overall swarm. Over a number of generations, the solution space is explored and an optimal solution is reached.
The fitness function for this particular optimization simply evaluates the linear return loss of the antenna over the band of interest and sets the fitness level to be the worst return loss encountered. One advantage of this approach is that the minimum in-band performance is known at every generation. The user can monitor the current fitness value and terminate if a desired target level is reached.
The IFA is a bent monopole antenna that employs a shunt stub for impedance matching. Four variables control the behavior of the structure as detailed in Figure 1. These parameters are permitted to vary according to Table 1. Since some of the variables are dependent on one another, XTend’s PSO plugin uses a dynamic constraint system to update parameter bounds throughout the optimization. Table 2 details the dynamic constraints.
Schematic of IFA.
XStream, XFdtd’s CUDA-accelerated implementation of FDTD, is pivotal in the timely execution of the PSO. Each particle generates a new XF simulation for each successive generation. These simulations are distributed across the available CUDA-capable GPUs in the system. The particular system used here contains six NVIDIA Tesla C2070’s. The PSO assigns one simulation to each GPU, permitting six simulations to be solved simultaneously. To maximize the utility of the GPUs, the number of particles is chosen to be an integer multiple of the number of GPUs. Twelve particles and 300 generations were chosen for this optimization.
The twelve simulations of each generation completed in an averaged total time of 74 seconds. The convergence of the swarm on the optimal solution can be seen in Figure 2. In this particular instance, the fitness level drops to about 0.3 by the fifth generation. The fitness value represents the worst-case linear return loss, so we could terminate the optimizer at that point if our true goal is simply an antenna with no worse than -10 dB return loss over our band of interest.
Convergence of the swarm on the optimal answer.
Figure 3 demonstrates the progression of the optimization by examining the return loss achieved at several milestone points including the final optimal solution. The parameters of this solution are listed in Table 3.
Snapshot of IFA return loss at several milestone points.