Skip to content

Repository files navigation

sysml2kit-rf-library

CI PyPI License Docs

A SysML v2 model library for antenna/RF systems engineering, consumed through sysml2kit.

The kit stays domain-general; this library carries the RF vocabulary:

  • RFVocabulary — quantity kinds with canonical units (Frequency_GHz, Gain_dBi, EIRP_dBW, GOverT_dBK, SidelobeLevel_dB, ScanLoss_dB, LinkMargin_dB, PrimePower_W, ...).
  • RFParts — part/port definitions: AntennaElement, RadiatingAperture, TRModule, Beamformer, PhasedArrayAntenna, RFFrontEnd, Modem, SatcomTerminal.
  • RFRequirements — requirement definitions carrying the metricKey convention, so sysml2kit.interop.extract_requirements hands them to a requirements engine (phased-array-systems, aedl) mechanically.
  • RFAnalyses — analysis case definitions (link budget, pattern integration, scan performance, SWaP-C rollup) that verify links point at.
  • SatcomTerminal28GHz — a worked example mirroring the aedl t3-001 benchmark: a 28 GHz LEO uplink phased-array ground terminal with its full requirement set (worst-case link margin, sidelobes, independent link crosscheck, power and cost ceilings, grating-lobe margin), each satisfied by a part and verified by an analysis.
  • SatcomTerminalPAS — the executable example: five requirements keyed to metrics phased-array-systems emits, verified through a three-rung fidelity ladder (closed-form, pattern cuts, full-pattern integration) plus an independent opensatcom-link margin cross-check. sysml2kit verify runs the real studies and every requirement passes with margin; --policy escalate --budget-s 5 allocates the compute to the thinnest margins.

Both bridges into the stack are merged: phased_array_systems.interop.sysml (requirement sets, and the phased-array-systems verification engine) and aedl.interop (bound-form benchmark requirements). Agents load these models through sysml2kit's library_load MCP tool.

Install and load

pip install sysml2kit-rf-library
from sysml2kit_rf_library import load_model
from sysml2kit.interop import extract_requirements
from sysml2kit.query import trace_matrix

model = load_model("satcom-terminal-t3001")
print(trace_matrix(model).render())
for spec in extract_requirements(model):
    print(spec.id, spec.metric_key, spec.op, spec.value, spec.units)

Or from the command line (paths via models_dir(), which works for pip installs, not just a checkout):

MODELS=$(python -c 'import sysml2kit_rf_library as m; print(m.models_dir())')
sysml2kit show "$MODELS/interchange/satcom_terminal_t3001.json" --traceability
sysml2kit verify "$MODELS/interchange/satcom_terminal_pas.json" --report run.json

How the repo is organized

src/sysml2kit_rf_library/_build.py is the authoritative source: it constructs the models with the sysml2kit builder, keeping attribute values, units, and relationship kinds exact. The committed artifacts under src/sysml2kit_rf_library/models/ — one .sysml file per package for humans and other tools, plus interchange JSON with stable UUIDv5 ids — are generated by scripts/regenerate.py, and CI fails if they drift from the build.

All content is authored fresh under Apache-2.0; nothing is copied from the EPL-2.0 OMG model libraries.

Citation

@software{hodge2026sysml2kitrflibrary,
  author  = {Hodge, John},
  title   = {sysml2kit-rf-library: SysML v2 models for antenna/RF systems engineering},
  year    = {2026},
  url     = {https://github.com/jman4162/sysml2kit-rf-library},
  license = {Apache-2.0}
}

License

Apache-2.0. See LICENSE and NOTICE.

About

SysML v2 model library for antenna/RF systems engineering, consumed through sysml2kit

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages