Patch antenna : Online calculator, 3D Design, Gerber and Python package
Goal :
- Designing a rectangular patch antenna,
- Simulating in 3D and
- Gerber file generations for the respected design
All available in online and also in python package.
For whom ?
Patch antenna designers,
- developers (python package)
- non-developers (online calculator)
Introduction:
Normally antenna designers calculate their patch antenna manually with required frequency, dielectric constant and thickness of the cavity. Then they go for EDA like ADS, CST for simulation and Gerber file generation.
To ease this flow and to quickly get the design in the formats like (design values, 3D view and gerber file), I have created the following.
- Online calculator / simulator
- Python package
Online calculator / simulator (For non-developers):
Link : https://bhachauk.github.io/patch-antenna-util/
GitHub : https://github.com/bhachauk/patch-antenna-util
Python package (For developers):
Link : https://pypi.org/project/patch-antenna/
GitHub : https://github.com/bhachauk/patch_antenna
Installation:
pip install patch_antenna
Example:
import patch_antenna as pa# resonant frequency in Hz
freq = 2.4 * 10 ** 9# dielectric constant
er = 4.4# thickness of the cavity in meter
h = 1.6 * 10 ** -3result = pa.design(freq, er, h)print(result)
Output:
{'frequency': 2400000000.0, 'patch_width': 0.0380099749575278, 'patch_length': 0.0294215930843705, 'feeder_width': 0.015203989983011122, 'feeder_length': 0.015449608708025277, 'inset_gap_width': 0.007601994991505561, 'inset_length': 0.010914409094654586, 'ground_length': 0.05447120179239577, 'ground_width': 0.06281396494053892, 'input_edge_impedance': 321.50075290241097}
Write as Gerber file:
pa.write_gerber(freq, er, h, 'patch_design_normal.gbr', 'normal')
pa.write_gerber(freq, er, h, 'patch_design_inset.gbr', 'inset')
Notes:
- Online calculator is created using github and jekyll.
- Design calculation implementation is limited for certain range of inputs. So wrong values / no results generated while the input exceeds the range as it is not handled.
Thanks. Happy learning … !