FDTD Simulation of Patch Antenna

Previous: Patch Antenna Video
Antennas List
Antenna Theory .com
Geometry & Radiated Fields
Bandwidth & Fringing Fields
Feeding Methods

If you are curious on how the patch antenna video was created on the previous page, I will show you.

The fields were determined using a full-wave electromagnetics solution method known as the FDTD (Finite Difference Time Domain) Method. This method basically solves Maxwell's Equations by approxmating the differential equations as difference equations over a discrete grid. It's a very popular method and has wide applicability. It also isn't too hard to implement (compared to other methods). On this page, I'll give the source code I used to develop the simulation and then the video on the previous page.

I will assume at this point you are familiar with how FDTD works, for the most part. If not see the FDTD tutorial page. The code essentially replicates the MIT dissertation on modeling patch antennas by a guy named David M. Sheen, published in the IEEE Transaction on Microwave Theory and Techniques in 1990. For full disclosure, this project was then assigned as a master's level homework assignment at Washington State University in an Electrical Engineering course on Numerical Methods in Electromagnetics (taught by John Schneider).

The FDTD grid is 60 cells by 100 cells by 16 cells (x, y, z directions, respectively). The distance between sample points in the x-direction (deltaX) is 0.389 mm, deltaY = 0.4 mm, and deltaZ = 0.265 mm. The grid is nonuniform simply because it allows an accurate representation of the desired patch dimensions with an integer number of cells. The time step is 15 pS, sufficiently small to satisfy the Courant stability condition.

The patch antenna can be modeled simply in FDTD - since the tangential electric fields on a perfect are zero, you simply designate the location of the patch, and have the tangential E-fields zeroed out where you want the patch, ground plane and microstrip transmission line to reside.

FDTD requires Absorbing Boundary Conditions (ABCs) used to terminate the grid without reflection. For the ground plane at z=0, no ABC is required since all power should be reflected from the ground plane. For the other 5 walls that make up the computation grid, the ABC used is a simple first order wave equation known as Mur's first approximate ABC. It is easily implemented using field components on or one step inside the wall of the mesh (both at the current time step and the previous time step).

The source is added to the x=0 wall, directly under the microstrip transmission line. The field is added at every Ez location that is under the microstrip (3 nodes high and 6 or so nodes wide). The ABC for that wall is initially off - it is switched on once the transient pulse is added and fully launched.

Then the code is run for 3000 or so time steps, and the required fields are saved to files. They are read in with a Matlab script that simply plots the fields under the patch at each time step and makes a movie out of it. The FDTD code is written in C or C++ for speed (the whole computation takes less than a minute). The two files are given below, for your use.

Note that if you are a student, don't use these files and turn them in on your own. Your teacher will probably know where it is from or that you didn't write it. This is meant to be a reference for understanding how numerical electromagnetics code is developed.

FDTD C++ Source Code

FDTD Matlab Movie Script

The code is pretty well written, but by no means optimal. If you find a mistake, let me know. Its pretty solid code though.


Antennas List

The Antenna Tutorial