Skip to content

Arindam111123/EM-Shielding-Simulator

Repository files navigation

EM Wave Attenuation & Shielding Effectiveness Simulator

A MATLAB toolkit for computing the plane-wave shielding effectiveness (SE) of metallic shields, validated against published textbook benchmarks and extended to arbitrary multilayer stacks (e.g. copper + air gap + steel) via a transfer-matrix solver.

This started as a coursework simulator and was rebuilt to fix a physics error, match the EMC literature, and add capabilities that the original lacked.


What changed, and why it matters

The original simulator reported shielding effectiveness of ~5000 dB. That is not a tuning problem, it points to a modeling error. The fix is the core of this project.

Diagnosis. The original formula SE = 8.686 * t / delta is mathematically correct, but it is only the absorption-loss term A, not the total SE. It (1) omitted the reflection loss R, which is usually the dominant term for good conductors, and (2) used a 1 mm slab hundreds of skin depths thick, so the absorption arithmetic ran into the thousands of dB. Values above ~120 dB are physically meaningless anyway: that is the ceiling of real EMC test equipment, above which a material is simply "impenetrable."

Fix. This repo implements the full Schelkunoff decomposition SE = R + A + B and validates it against a published worked example (copper 2-mil foil at 100 MHz → R = 88 dB, A = 66 dB, SE = 154 dB; Hubing / Ott), reproduced here to within 0.3 dB.

Original This repo
Model Absorption only (A) Full Schelkunoff R + A + B
Typical output ~5000 dB (unphysical) Matches literature (e.g. 154 dB)
Reflection loss Missing Included (often dominant)
Multilayer shields Not supported Transfer-matrix solver
Materials 3 (Cu, Al, steel) 6, with sourced σ and μr
Validation None vs published benchmark + cross-method

Features

  • shielding_effectiveness.m : single-slab SE via Schelkunoff R + A + B, vectorized over frequency.
  • multilayer_se.m : transfer-matrix (ABCD) solver for arbitrary stacks of metals and air gaps. Captures every interface reflection and inter-layer bounce, so it correctly handles cases where simple dB-addition fails.
  • materials.m — six materials with literature-sourced conductivity and permeability (silver, copper, aluminum, nickel, steel, mu-metal).
  • validation.m — reproduces the published benchmark and the analytical-vs-numerical agreement table.
  • Plot scripts for SE-vs-frequency, the multilayer stack, field decay, and an animated wave-through-material demo.

Key results

1. Validation against literature

Reproducing the LearnEMC / Ott worked example (Cu 2-mil @ 100 MHz):

Quantity Literature This repo
Reflection loss R 88 dB 88.1 dB
Absorption loss A 66 dB 66.2 dB
Total SE 154 dB 154.3 dB

The analytical model and the independent transfer-matrix solver agree to < 0.02 dB across 1 kHz–1 GHz for every material (full table in docs/validation.md).

2. Multilayer shielding is not additive

Stack: Copper (35 µm) + 5 mm air gap + Steel (35 µm).

f Cu only Steel only Naive sum TMM stack
100 kHz 111.7 96.8 208.4 120.6
1 MHz 111.7 108.8 220.5 149.3
10 MHz 113.0 170.4 283.3 230.5

At low frequency the naive dB-sum overstates the true stack SE by ~88 dB. The foils are electrically thin there, so interface mismatches and re-reflections — not bulk absorption — dominate. Practical takeaway: you cannot design a multilayer shield by adding decibels.


Materials

Material σ (S/m) μr Notes
Silver 6.3×10⁷ 1 best bulk conductor
Copper 5.8×10⁷ 1 reference conductor
Aluminum 3.5×10⁷ 1 lightweight, ~61% IACS
Nickel 1.43×10⁷ 100 magnetic, μr grade-dependent
Steel (low-carbon) 1.0×10⁷ 300 magnetic, μr 100–1000
Mu-metal (Ni-Fe) 1.6×10⁶ 20000 low-frequency magnetic shielding

Sources in docs/validation.md. Note that the μr of the magnetic materials falls with frequency, so their high-frequency SE is an upper bound (see docs/theory.md).


Repository layout

em-shielding-simulator/
├── README.md
├── LICENSE
├── matlab/
│   ├── shielding_effectiveness.m   % Schelkunoff R+A+B (single slab)
│   ├── multilayer_se.m             % transfer-matrix solver (stacks)
│   ├── materials.m                 % sourced material database
│   ├── validation.m                % reproduces the validation tables
│   ├── run_se_vs_frequency.m       % corrected SE-vs-frequency figure
│   ├── run_multilayer_demo.m       % Cu + air + steel vs naive sum
│   ├── run_field_decay.m           % skin-effect field decay
│   └── wave_attenuation_demo.m     % animated wave-through-material
└── docs/
    ├── theory.md                   % derivations + the formula-error writeup
    └── validation.md               % methodology, full tables, sources

Getting started

Requires MATLAB (no toolboxes needed). From the matlab/ folder:

% Reproduce the validation tables
validation

% Single material
[SE, R, A, B] = shielding_effectiveness(1e9, 5.8e7, 35e-6, 1);   % copper @ 1 GHz

% Multilayer: copper + 5 mm air + steel
L  = [5.8e7 1   1 35e-6;
      0     1   1 5e-3 ;
      1.0e7 300 1 35e-6];
SE = multilayer_se(1e6, L);

% Figures
run_se_vs_frequency
run_multilayer_demo
run_field_decay

Theory in one paragraph

For a good conductor the far-field plane-wave SE is R + A + B, where reflection loss R = 20·log10(η₀/4η_s) comes from the impedance mismatch between free space (η₀ ≈ 377 Ω) and the metal (η_s = √(jωμ/σ)); absorption loss A = 8.686·t/δ comes from attenuation over the thickness in skin depths δ = 1/√(πfμσ); and B is a multiple-reflection correction that matters only for electrically thin shields. For stacks, each layer becomes a transmission-line section and the layers are cascaded as ABCD matrices, giving SE = −20·log10|S₂₁|. Full derivation in docs/theory.md.

References

  1. T. Hubing, "Introduction to Plane-Wave Shielding Theory," LearnEMC.
  2. H. W. Ott, Electromagnetic Compatibility Engineering, Wiley, 2009.
  3. C. R. Paul, Introduction to Electromagnetic Compatibility, 2nd ed., Wiley, 2006.
  4. S. A. Schelkunoff, Electromagnetic Waves, Van Nostrand, 1943.
  5. F. T. Ulaby, Fundamentals of Applied Electromagnetics.

License

MIT — see LICENSE.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages