Skip to main content

TemField

Radiated EMC susceptibility measurements in (G)TEM waveguides using mpylab

This software is distributed unter GPL-3 or higher. See LICENSE for details.

Installation

pip install temfield-mpylab

For an isolated application-style installation, pipx is also useful:

pipx install temfield-mpylab

This installs the package in its own environment and exposes the command line tools temfield and temfield-info on your PATH.

Command line

Start the GUI with:

temfield

Show installation and dependency information with:

temfield-info

Use temfield-info --json for machine-readable output.

AM headroom safety check

Before modulation is enabled, TEMField first levels the unmodulated field to the AM peak factor. For 80 % AM this is 1.8 * E_target. It then reduces the signal-generator output by 5.1 dB and checks the resulting decrease. A configured forward-power meter provides the measurement method prescribed by IEC 61000-4-20; otherwise the field probe is used as an explicitly non-normative proxy. After a passed check, TEMField levels once more to the requested carrier field and only then enables AM. Failed leveling or headroom checks keep AM off and switch RF off for that frequency.

By default mpylab applies the nominal interval 3.10545...7.1 dB for 80 % AM. IEC 61000-4-3:2020 explicitly uses the 3.1...7.1 dB interval. IEC 61000-4-20:2022 retains older wording that declares 3.1...5.1 dB suitable and values below 3.1 dB saturated, but does not consistently resolve values above 5.1 dB. TEMField deliberately applies the current IEC 61000-4-3 linearity criterion to its IEC 61000-4-20 workflow as a documented engineering interpretation. The withdrawn IEC 61000-4-3:2006/ISH1:2008 supports accepting reductions above 5.1 dB but is not presented as a current normative reference. The corresponding IEC publication records are ISH1:2008, IEC 61000-4-3:2020, and IEC 61000-4-20:2022.

Both interval limits use nominal values: uncertainty does not change pass/fail by default. The mpylab API makes the upper limit configurable and can optionally allow expanded-uncertainty overlap only at that upper limit; TEMField leaves this option disabled. Programmatic integrations can set am_headroom_maximum_drop_db and am_headroom_allow_upper_uncertainty on TEMFieldWorker or TestSusceptibility.Init. Ratio uncertainty is retained with coverage factor k = 2; shared calibration contributions remain correlated and can cancel in the ratio, while independent acquisition scatter remains.

The log and JSON result distinguish passed, passed_with_uncertainty, failed_below_interval, and failed_above_interval. They record both nominal limits, the uncertainty option, standard and expanded asymmetric uncertainties, decision interval, method, and normative-method flag.

Field-probe coordinate contract

mpylab field-probe drivers return raw (probe_x, probe_y, probe_z) values. TEMField resolves the probe orientation once and maps those readings into (cell_x, cell_y, cell_z). The GUI selections, datafunc, leveling, AM-headroom field proxy, waveform plot, sinusoidal fit, and result files all operate only on this mapped cell-coordinate vector.

Define the physical probe orientation on its DOT node, for example:

prb [ini="fieldprobe.ini"
     probe_axis_map="cell_x:+probe_y,cell_y:+probe_x,cell_z:-probe_z"]

The same definition may be stored in the DESCRIPTION or Init_Value section of a FIELDPROBE INI file. Programmatic integrations may pass probe_orientations to TEMFieldWorker or TestSusceptibility.Init. Conflicting definitions stop the run before hardware initialization.

The default leveling component is Ey. TEMField remembers the last selected component. Installations with the removed legacy auto setting are migrated to Ey when their settings are next loaded.

Custom TestSusceptibility.Init(datafunc=...) functions receive the mapped three-component cell-coordinate vector. Current probes provide unsigned component magnitudes, so TEMField supports axis permutations but not arbitrary rotations that require synchronous signed vector data.

EUT monitoring

TEMField uses the shared mpylab.env.eut API. Manual EUT reporting is always available in the GUI and may be supplemented by automatic monitors for cameras, communication links, or process data. Automatic monitors run behind ThreadedEUTMonitor; they never access MGraph or switch RF themselves.

During exposure, the operator can report Degraded, Failed, or Not evaluable. After an impairment, TEMField switches AM and RF off and separately records the post-exposure state and recovery method. The table reports the result for performance criterion A, B, or C and includes the structured events in its tooltip. The post-exposure timeout is configurable in the EUT panel. A safety event is routed immediately through the measurement worker's RF-off path.

RandomEUTMonitor provides reproducible hardware-independent simulations and a starting point for custom automatic monitors. It must not be used as evidence of real EUT performance.

An application embedding the window can configure an automatic monitor before the measurement starts:

from mpylab.env.eut import RandomEUTMonitor

window.set_automatic_eut_monitor(RandomEUTMonitor(seed=42))

Structured results

Saving the measurement table writes both the selected CSV file and a JSON file with the same stem. The JSON document preserves quantities as value, uncertainty, and unit and includes the EUT event history and performance assessment.

The shared mpylab.env.immunity_result schema calls the applied test quantity disturbance. Its quantity_kind, target, and freely named measured_components are not tied to an electric field. TEMField currently records electric_field_strength with its measured probe components. The same format can represent, for example, injected_current in A or an applied voltage in a future conducted immunity application.

License

GPL-3 or higher

Repository

https://gitlab.hrz.tu-chemnitz.de/chair-of-electromagnetic-theory-and-compatibility-at-tu-dresden/mpylab/TEMField.git

Documentation

https://temfield-1012e2.gp.hrz.tu-chemnitz.de/

Contact

Prof. Dr. Hans Georg Krauthäuser (hgk@ieee.org)
Chair for Electromagnetic Theory and Compatibility
Technische Universität Dresden, Dresden, Germany

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

temfield_mpylab-0.0.12.tar.gz (80.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

temfield_mpylab-0.0.12-py3-none-any.whl (39.0 kB view details)

Uploaded Python 3

File details

Details for the file temfield_mpylab-0.0.12.tar.gz.

File metadata

  • Download URL: temfield_mpylab-0.0.12.tar.gz
  • Upload date:
  • Size: 80.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.5

File hashes

Hashes for temfield_mpylab-0.0.12.tar.gz
Algorithm Hash digest
SHA256 5aaa4c92d53007de839192c112f9392d9c799911f3b0724f5368a1ca849dffaa
MD5 25cbd80a4863310113d76dcc45a65af9
BLAKE2b-256 8c79f2aa91ea93eff21d108a5207f2954daad98a3c7c5d08427461a3b1893dec

See more details on using hashes here.

File details

Details for the file temfield_mpylab-0.0.12-py3-none-any.whl.

File metadata

File hashes

Hashes for temfield_mpylab-0.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 d9f37132f6808bf5466811d1b2ec8c35b2ccd755688f8edd3b880d944658d866
MD5 1536fcc885d82670f999623e0636f709
BLAKE2b-256 41625ef5316435bb6452a6138610f32dfa1535f9517a6174e20c3d2aca999026

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.12 This release

2 files

0.0.11

2 files

0.0.10

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page