Skip to main content

Phased array antenna system design, optimization, and performance visualization

Project description

phased-array-systems

CI PyPI version Python 3.10+ License: MIT

Phased array antenna system design, optimization, and performance visualization for wireless communications and radar applications.

Features

  • Requirements as first-class objects: Every run produces pass/fail + margins with traceability
  • Trade-space exploration: DOE + Pareto optimization over single-point designs
  • Flat metrics dictionary: All models return consistent dict[str, float] for interchange
  • Config-driven reproducibility: Stable case IDs, seed control, version stamping

Installation

pip install phased-array-systems

# Development dependencies
pip install phased-array-systems[dev]

# Visualization extras
pip install phased-array-systems[plotting]

Quick Start

Single Case Evaluation

from phased_array_systems.architecture import Architecture, ArrayConfig, RFChainConfig
from phased_array_systems.scenarios import CommsLinkScenario
from phased_array_systems.evaluate import evaluate_case

# Define architecture
arch = Architecture(
    array=ArrayConfig(nx=8, ny=8, dx_lambda=0.5, dy_lambda=0.5),
    rf=RFChainConfig(tx_power_w_per_elem=1.0, pa_efficiency=0.3),
)

# Define scenario
scenario = CommsLinkScenario(
    freq_hz=10e9,
    bandwidth_hz=10e6,
    range_m=100e3,
    required_snr_db=10.0,
)

# Evaluate
metrics = evaluate_case(arch, scenario)
print(f"EIRP: {metrics['eirp_dbw']:.1f} dBW")
print(f"Link Margin: {metrics['link_margin_db']:.1f} dB")

DOE Trade Study

from phased_array_systems.trades import DesignSpace, generate_doe, BatchRunner, extract_pareto

# Define design space
space = (
    DesignSpace()
    .add_variable("array.nx", "int", low=4, high=16)
    .add_variable("array.ny", "int", low=4, high=16)
    .add_variable("rf.tx_power_w_per_elem", "float", low=0.5, high=3.0)
)

# Generate DOE
doe = generate_doe(space, method="lhs", n_samples=100, seed=42)

# Run batch evaluation
runner = BatchRunner(scenario)
results = runner.run(doe)

# Extract Pareto frontier
pareto = extract_pareto(results, [
    ("cost_usd", "minimize"),
    ("eirp_dbw", "maximize"),
])

Examples

See the examples/ directory:

  • 01_comms_single_case.py - Single case evaluation
  • 02_comms_doe_trade.py - Full DOE trade study workflow

Tutorial Notebook

Open In Colab

Try the interactive tutorial in Google Colab!

Package Structure

phased_array_systems/
├── architecture/     # Array, RF chain, cost configurations
├── scenarios/        # CommsLinkScenario, RadarDetectionScenario
├── requirements/     # Requirement definitions and verification
├── models/
│   ├── antenna/      # Phased array adapter and metrics
│   ├── comms/        # Link budget, propagation models
│   └── swapc/        # Power and cost models
├── trades/           # DOE, batch runner, Pareto analysis
├── viz/              # Plotting utilities
└── io/               # Config loading, results export

Development

# Clone the repository
git clone https://github.com/jman4162/phased-array-systems.git
cd phased-array-systems

# Install in development mode
pip install -e ".[dev]"

# Run tests
pytest tests/ -v

# Run linting
ruff check .

License

MIT License - see LICENSE for details.

Project details


Download files

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

Source Distribution

phased_array_systems-0.1.1.tar.gz (55.1 kB view details)

Uploaded Source

Built Distribution

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

phased_array_systems-0.1.1-py3-none-any.whl (46.2 kB view details)

Uploaded Python 3

File details

Details for the file phased_array_systems-0.1.1.tar.gz.

File metadata

  • Download URL: phased_array_systems-0.1.1.tar.gz
  • Upload date:
  • Size: 55.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for phased_array_systems-0.1.1.tar.gz
Algorithm Hash digest
SHA256 5d18954d8bd0fc0111d2fc93ea7ff5519d2d85a2e4ea4e24d9213743dd457597
MD5 3fb5e59e6b3ca69bc52cefb000b125c9
BLAKE2b-256 c8c3485864034495af2d3a69f5a0da2b8c0999bb759b4548382f72b77f0a7f6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for phased_array_systems-0.1.1.tar.gz:

Publisher: publish.yml on jman4162/phased-array-systems

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file phased_array_systems-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for phased_array_systems-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3b1342486a7e8e8acfb51a397685ffaca5b96adc651dabe0b5e557a6fc798a3f
MD5 9c0de364d04375bd8796953756348c21
BLAKE2b-256 8c99bf5795e7643179f61a48e42f7d6a5a05e905308d66a2fb68ded7d1d0954b

See more details on using hashes here.

Provenance

The following attestation bundles were made for phased_array_systems-0.1.1-py3-none-any.whl:

Publisher: publish.yml on jman4162/phased-array-systems

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page