Circular waveguide attenuation

The aim of this example is to reproduce the attenuation coefficients as presented in Balanis’ Advanced Engineering Electromagnetics – Third edition, Constantine A. Balanis, Wiley, 2024.

The 2 figures are shown on page 495.

[1]:
%matplotlib inline
import matplotlib.pyplot as plt

import skrf as rf
from skrf.frequency import Frequency
from skrf.media import CircularWaveguide

rf.stylely()
# plot formatting
plt.rcParams['lines.linewidth'] = 1
[2]:
sigma = 5.7e7
radius_list = [1.5e-2, 3e-2]
mode_list = [
    ['TE', 1, 1],
    ['TE', 0, 2],
    ['TE', 1, 1],
    ['TE', 2, 1],
    ['TM', 0, 1],
    ['TM', 1, 1]
]
[3]:
for radius in radius_list:
    fig, ax = plt.subplots()
    wg = CircularWaveguide(r=radius, m=1, n=1)
    fcTE11 = wg.f_cutoff
    fmax = fcTE11 * 20
    for mode_type, m, n in mode_list:
        wg_plot = CircularWaveguide(r=radius, m=m, n=n, mode_type=mode_type, rho=1/sigma)
        wg_plot.frequency = Frequency(wg_plot.f_cutoff+1, fmax, 1001, 'Hz')
        label = "%s%d%d" % (mode_type, m, n)
        plt.plot(wg_plot.frequency.f/fcTE11, (wg_plot.alpha)*1e3, label=label)

    ax.set_ylim(0, 10)
    ax.set_xlim(0, 20)
    ax.legend(loc='upper right')
    ax.set_xlabel('Normalized frequency ($f/f_c^{TE11}$)')
    ax.set_ylabel('Attenuation (Np×$10^3$/m)')
    ax.set_title(r'radius = %.1f cm - $\sigma$ = %g S/m' % (radius*1e2, sigma))
../../_images/examples_networktheory_Circular_waveguide_attenuation_3_0.png
../../_images/examples_networktheory_Circular_waveguide_attenuation_3_1.png