This repository was archived by the owner on Aug 22, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcircular_patch.py
More file actions
57 lines (45 loc) · 1.76 KB
/
circular_patch.py
File metadata and controls
57 lines (45 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# -*- coding: utf-8 -*-
"""
Created on Thu Jul 12 12:54:08 2018
@author: eenvdo
"""
import patch_antenna_calculator as pac
# for bandwidth calculations
VSWR = 2
# center frequency
freq = 16.0 # centre frequency in GHz
freq *= 1e9 # convert to Hz
lambda_0 = pac.c0 / freq # corresponding wavelength in m
# substrate parameters
subst_h = 50.0 # substrate thickness in um
subst_h *= 1e-6 # convert to base units
subst_er = 3.5 # relative permittivity
subst_ur = 1 # relative permeability
subst_tand = 0.008 # loss tangent
# conductor parameters
metal_cond = 4.1e7 # metal conductivity in S/m
metal_ur = 0.99996 # metal relative permeability
circ_patch = pac.circ_patch_design(freq, subst_er, subst_h)
circ_patch_radius = circ_patch['radius'].value
circ_patch_zin_q = pac.calc_zin_q_circ_patch(freq, lambda_0, subst_h, subst_er,
subst_ur, subst_tand, metal_cond,
metal_ur, circ_patch_radius)
circ_patch_q = circ_patch_zin_q['q'].value
circ_patch_bw = pac.calc_patch_bandwidths(VSWR, circ_patch_q, subst_er,
subst_h, lambda_0)
print('Results for circular patch')
print('-'*20)
print('Design parameters')
print('-'*20)
print('Centre frequency, GHz: {:.3f}'.format(freq/1e9))
print('Substrate thickness, um: {:.3f}'.format(subst_h))
print('Substrate Dk: {:.3f}'.format(subst_er))
print('-'*20)
print('Results')
print('-'*20)
print('Radius, mm: {:.3f}'.format(circ_patch_radius*1e3))
print('Overall Q factor: {:.3f}'.format(circ_patch_q))
print('Inset distance for 50 Ohm, mm: {:.3f}'.
format((circ_patch_radius-circ_patch_zin_q['r_optim'].value)*1e3))
print('Bandwidth for linear polarisaion: {:.3f}'.
format(circ_patch_bw['BW_linear'].value*100))