Skip to content

Instantly share code, notes, and snippets.

@tspspi
Created June 15, 2022 14:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tspspi/ca16e9dabd7da44a1895e251558d8c1a to your computer and use it in GitHub Desktop.
Save tspspi/ca16e9dabd7da44a1895e251558d8c1a to your computer and use it in GitHub Desktop.
Shielding
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "9ec98f58",
"metadata": {},
"source": [
"## Skin depth\n",
"\n",
"The skin depth is defined as\n",
"\n",
"$\n",
"\\delta \\approx 0.0661 * \\frac{1}{\\sqrt{f \\mu_r \\sigma_r}}\n",
"$\n",
"\n",
"The field decays around $8.6 \\text{dB}$ per skin depth ($\\frac{1}{e}$)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "74626872",
"metadata": {},
"outputs": [],
"source": [
"import math\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "9de3047b",
"metadata": {},
"outputs": [],
"source": [
"def skinDepth(frequency, relativePermitivity_u_r, relativeConductivity_sigma_r):\n",
" return 0.0661 * 1.0 / math.sqrt(frequency * relativePermitivity_u_r * relativeConductivity_sigma_r)"
]
},
{
"cell_type": "markdown",
"id": "601cde72",
"metadata": {},
"source": [
"## Absorption loss\n",
"\n",
"$\n",
"A = 8.69 * \\frac{t}{\\delta}\n",
"$\n",
"\n",
"## Reflection loss\n",
"\n",
"* Plane wave: $R = 168 - 10 * \\log(\\frac{\\mu_r}{\\sigma_r} * f)$\n",
"* Electrical field $R_E = 322 - 10 * \\log(\\frac{\\mu_r}{\\sigma_r} * f^3 * r^2)$\n",
"* Magnetic field $R_H = 14.6 - 10 * \\log(\\frac{\\mu_r}{\\sigma_r} \\frac{1}{f} r^2)$\n",
"\n",
"## Re-Reflection loss\n",
"\n",
"$\n",
"B = 20 * \\log(1 - \\text{e}^{-2 * \\sqrt{2 * \\frac{t}{\\sigma}}})$"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "9fd5379d",
"metadata": {},
"outputs": [],
"source": [
"def absorptionLoss(thickness, frequency, relativePermitivity_u_r, relativeConductivity_sigma_r):\n",
" return 8.69 * thickness / skinDepth(frequency, relativePermitivity_u_r, relativeConductivity_sigma_r)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "b65898f7",
"metadata": {},
"outputs": [],
"source": [
"def reflectionLossPlaneWave(frequency, relativePermitivity_u_r, relativeConductivity_sigma_r):\n",
" return 168 - 10 * math.log(relativePermitivity_u_r / relativeConductivity_sigma_r * frequency, 10)\n",
"def reflectionLossEField(frequency, relativePermitivity_u_r, relativeConductivity_sigma_r, distance):\n",
" return 322 - 10 * math.log(relativePermitivity_u_r / relativeConductivity_sigma_r * frequency * frequency * frequency * distance * distance, 10)\n",
"def reflectionLossHField(frequency, relativePermitivity_u_r, relativeConductivity_sigma_r, distance):\n",
" return 14.6 - math.log(relativePermitivity_u_r / (relativeConductivity_sigma_r * frequency) * distance * distance, 10)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "b7f5da5d",
"metadata": {},
"outputs": [],
"source": [
"def ReReflectionLoss(frequency, relativePermitivity_u_r, relativeConductivity_sigma_r, thickness):\n",
" return 20 * math.log(1 - math.exp(-2.0 * math.sqrt(2 * thickness / skinDepth(frequency, relativePermitivity_u_r, relativeConductivity_sigma_r))), 10)"
]
},
{
"cell_type": "markdown",
"id": "88af9300",
"metadata": {},
"source": [
"## Materials"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "703ceeb5",
"metadata": {},
"outputs": [],
"source": [
"materials = {\n",
" 'Copper' : { 'ur' : 1, 'sigmar' : 1 },\n",
" 'Aluminum' : { 'ur' : 0.61, 'sigmar' : 1 },\n",
" 'MuMetal' : { 'ur' : 0.03, 'sigmar' : 20e3 }\n",
"}"
]
},
{
"cell_type": "markdown",
"id": "f2c4cd03",
"metadata": {},
"source": [
"## Calculate properties for materials"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "1753c5cd",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Calculating properties for 202000000.0 Hz, thickness of 0.001 m and distance of 0.025 m\n",
"\n",
"| Material | u_r | sigma_r | skin depth [m] | absorption loss [dB] | reflection loss (plane wave) [dB] | reflection loss (E) [dB] | reflection loss (H) [dB] |\n",
"| -------- | --- | ------- | -------------- | -------------------- | --------------------------------- | ------------------------ | ------------------------ |\n",
"| Copper | 1 | 1 | 4.6507797706672296e-06 | 1868.503869997972 | 84.94648630553377 | 104.88065874316058 | 26.109471352102545 |\n",
"| Aluminum | 0.61 | 1 | 5.9547133109126155e-06 | 1459.3481745081992 | 87.09318795542609 | 107.02736039305287 | 26.324141517091782 |\n",
"| MuMetal | 0.03 | 20000.0 | 1.8986728906988133e-07 | 45768.810639107054 | 143.18557371497695 | 163.11974615260374 | 31.933380093046864 |\n"
]
}
],
"source": [
"frequency = 202e6\n",
"thickness = 1e-3\n",
"distance = 25e-3\n",
"\n",
"print(\"Calculating properties for {} Hz, thickness of {} m and distance of {} m\\n\".format(frequency, thickness, distance))\n",
"print(\"| Material | u_r | sigma_r | skin depth [m] | absorption loss [dB] | reflection loss (plane wave) [dB] | reflection loss (E) [dB] | reflection loss (H) [dB] |\")\n",
"print(\"| -------- | --- | ------- | -------------- | -------------------- | --------------------------------- | ------------------------ | ------------------------ |\")\n",
"\n",
"for materialName in materials:\n",
" ur = materials[materialName]['ur']\n",
" sigmar = materials[materialName]['sigmar']\n",
"\n",
" sk = skinDepth(frequency, ur, sigmar)\n",
" absLoss = absorptionLoss(thickness, frequency, ur, sigmar)\n",
" reflectionLossWave = reflectionLossPlaneWave(frequency, ur, sigmar)\n",
" reflectionLossE = reflectionLossEField(frequency, ur, sigmar, distance)\n",
" reflectionLossH = reflectionLossHField(frequency, ur, sigmar, distance)\n",
" # rereflectionLoss = ReReflectionLoss(frequency, ur, sigmar, thickness)\n",
"\n",
" print(\"| {} | {} | {} | {} | {} | {} | {} | {} |\".format(materialName, ur, sigmar, sk, absLoss, reflectionLossWave, reflectionLossE, reflectionLossH))"
]
},
{
"cell_type": "markdown",
"id": "f371d925",
"metadata": {},
"source": [
"## Shielding efficiency\n",
"\n",
"$\n",
"\\text{SE} = 20 * \\log{ \\frac{\\lambda}{2 L}}\n",
"$"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "1e651cb2",
"metadata": {},
"outputs": [],
"source": [
"def shiedlingEfficiencyWithSingleHoleDB(frequency, holeSize):\n",
" wavelength = 3e8 / frequency\n",
" return 20.0 * math.log(wavelength / (2 * holeSize))"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "c87845bb",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"107.1471981436364"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"shiedlingEfficiencyWithSingleHoleDB(202e6, 3.5e-3)"
]
},
{
"cell_type": "markdown",
"id": "085fce06",
"metadata": {},
"source": [
"## Some plots to illustrate the behaviour"
]
},
{
"cell_type": "markdown",
"id": "ed8301fd",
"metadata": {},
"source": [
"### Skin depth"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "37a3ec29",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x834803a90>"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from matplotlib import cm\n",
"\n",
"frqMin = 1e8\n",
"frqMax = 1e9\n",
"frqSteps = 100\n",
"\n",
"fig = plt.figure()\n",
"splot = fig.add_subplot(111)\n",
"\n",
"splot.set_title(\"Skin depth\")\n",
"splot.set_xlabel(\"Frequency [MHz]\")\n",
"splot.set_ylabel(\"Skin depth [m]\")\n",
"\n",
"for materialName in materials:\n",
" ur = materials[materialName]['ur']\n",
" sigmar = materials[materialName]['sigmar']\n",
" dta = []\n",
" frqs = []\n",
"\n",
" for i in range(frqSteps):\n",
" frq = ((frqMax - frqMin) / frqSteps) * i + frqMin\n",
"\n",
" sk = skinDepth(frq, ur, sigmar)\n",
" dta.append(sk)\n",
" frqs.append(frq / 1e6)\n",
"\n",
" splot.plot(frqs, dta, label = materialName)\n",
"\n",
"splot.legend()"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "bbd8bf14",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x833b08d90>"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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x83ut7nPN5aZmYmI8Lvf/c69rLCwEH9/f/e+77rrLh544IEjPpecnExhYWG7f+b26JOhMHlIOP93fjqLtxVw7wdNzXtujOltrr76aj788MNjlt93333MmTOHjIwM5syZw3333Qc4V+7cfffdx/yibu3njzZ06FDee+899/tXX32VMWPGdOAn6hx9MhQA5k1L4uqZyTz55S5e/sZmFTSmtzv55JOJiIg4Zvnbb7/NVVc5s7NeddVVvPXWWwAEBgZy4oknMmDAgBb329znjxYQEMCoUaPcQ/O8/PLLXHrppa2q/bHHHmPChAlMmDCBlJQUZs+e3arPtUefviT1t2ePYkdBBb99awNJEYHMSI30dknG9Hp/eHcjm/Z4do6e0fEh/P6c9v3VvW/fPuLi4gCIi4sjPz+/0z4/b948XnrpJQYNGoSvry/x8fHs2bPHvf7vf/87zz//vPt9w7qbbrqJm266iZqaGk477TR+/vOft6nGtuizZwoAfr4+PHz5JIZEBnLDcyvYstcmkzLGdJ65c+eyaNEiXnzxRS677LJj1v/sZz9jzZo17kd8fPwR62+99VZOO+00zjnnnE6rsU+fKQCEDvRn/rXTuPDRJVz11HLe+OEsEsICvF2WMb1We/+i7yyxsbHk5eURFxdHXl4eMTExnfb5fv36MXnyZP7617+yceNG3n333VYf55lnniErK4uHH364TfW1VZ8+U2iQEBbA/GunUVVdx5VPLqOkstrbJRljusi5557L/PnzAZg/fz7nnXdep37+F7/4Bffffz+Rka1vrl65ciUPPPAAzz//PD4+nftr20LBZeSgEJ64cgrZJQe48qnllB20exiM6U0uv/xyZsyYwdatW0lMTOTJJ58E4I477mDRokUMGzaMRYsWcccdd7g/k5yczM9//nOeeeYZEhMT2bRpEwDXX3+9u8O4pc83ZcyYMe6O6dZ6+OGHKS4uZvbs2UyYMIHrr7++TZ9vix49R/OUKVPU05PsfLJlHzc+t5L0hFCeu246Qf37fAubMR22efNmRo0a5e0y+qSmvnsRWamqU5ra3s4UjnLayFj+efkk1uXs59qnv6GqutbbJRljTJfptFAQkadEJF9ENjSx7jYRURGJarTs1yKyXUS2isi3Oquu1pibPogHL5vAiqxirn76GyoOWTAYY/qGzjxTeAaYe/RCERkMnAHs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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"holeSizeMin = 1e-3\n",
"holeSizeMax = 1e-2\n",
"frqSteps = 15\n",
"holeSizeSteps = 100\n",
"\n",
"import numpy as np\n",
"\n",
"def localShieldingEfficiency(frq, holeSize):\n",
" wavelength = 3e8 / frq\n",
" return 20.0 * np.log(wavelength / (2.0 * holeSize))\n",
"\n",
"\n",
"fig = plt.figure()\n",
"splot = fig.add_subplot(111)\n",
"\n",
"splot.set_title(\"Shielding efficiency\")\n",
"splot.set_xlabel(\"Holesize [mm]\")\n",
"splot.set_ylabel(\"Shielding efficiency [dB]\")\n",
"\n",
"for frq in [ 101e6, 202e6, 1e9 ]:\n",
" holesizes = []\n",
" ses = []\n",
"\n",
" for iHoleSize in range(holeSizeSteps):\n",
" holesize = ((holeSizeMax - holeSizeMin) / holeSizeSteps) * iHoleSize + holeSizeMin\n",
" se = shiedlingEfficiencyWithSingleHoleDB(frq, holesize)\n",
"\n",
" holesizes.append(holesize * 1e3)\n",
" ses.append(se)\n",
"\n",
" splot.plot(holesizes, ses, label = \"{} MHz\".format(frq * 1e-6))\n",
"splot.legend()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8699fbd2",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment