Skip to content

Latest commit

 

History

History
115 lines (92 loc) · 4.66 KB

File metadata and controls

115 lines (92 loc) · 4.66 KB

Changelog

All notable changes to phased-array-systems will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.6.0 - 2026-03-21

Added

  • Design optimization module (trades/optimization.py) with optimize_design() using scipy solvers
  • OptimizationResult dataclass with best architecture, metrics, convergence info, and optional history
  • Three solver backends: differential_evolution, dual_annealing, minimize (L-BFGS-B)
  • Weighted multi-objective scalarization and requirement-based constraint penalties
  • CLI pasys optimize command with --objective, --sense, --method, --max-iter options
  • Unit tests for RF cascade models (test_rf_cascade.py): Friis NF, IIP3/OIP3, SFDR, MDS, cascade analysis
  • Unit tests for digital models (test_digital.py): converters, bandwidth, beamformer ops, scheduling
  • Optimization tests (test_optimization.py): single/multi-objective, constraints, integer vars, CLI E2E
  • Example script 05_optimization.py: DOE baseline vs optimizer comparison

0.5.0 - 2026-03-21

Added

  • Digital beamformer integration: DigitalConfig for ADC ENOB, data rate, and FPGA processing margin
  • Radar YAML configs: radar_basic.yaml and radar_doe.yaml examples
  • CLI end-to-end tests for run, doe, report, pareto, and sensitivity commands
  • I/O round-trip tests for Parquet, CSV, and JSON export/import
  • Digital metrics in reports (HTML and Markdown): adc_enob, bf_data_rate_gbps, processing_margin_db

Fixed

  • CLI pasys doe command: was reading nonexistent config.design_space instead of config.doe
  • CLI pasys sensitivity command: same design_space bug, now reads DOE variables correctly

0.4.0 - 2026-02-01

Added

  • Digital array model for digital beamforming calculations
  • RF cascade model for noise figure and gain cascade analysis
  • Comprehensive documentation site with MkDocs Material
  • API reference with mkdocstrings
  • User guides for all major features
  • Tutorials for communications and radar trade studies
  • Theory documentation for phased arrays and link budgets

Fixed

  • Ruff linting errors in models module
  • MathJax rendering in documentation
  • Markdown list formatting in documentation

0.3.0 - 2024-01-15

Added

  • Radar detection model with pulse integration
  • RadarDetectionScenario for radar trade studies
  • Radar equation calculator with Swerling models
  • Detection probability and false alarm rate computations
  • CLI commands: pasys run, pasys doe, pasys report, pasys pareto
  • HTML and Markdown report generation
  • Example: 03_radar_detection_trade.py

Changed

  • Improved Pareto extraction algorithm efficiency
  • Enhanced visualization with 3D trade space plots

Fixed

  • Hypervolume calculation for 3+ objectives

0.2.0 - 2024-01-01

Added

  • Design of Experiments (DOE) generation with LHS, random, and grid methods
  • BatchRunner for parallel evaluation with progress tracking
  • Pareto frontier extraction and ranking (weighted sum, TOPSIS)
  • Scatter matrix visualization
  • Parquet and CSV export functionality
  • Requirements verification with pass/fail and margins
  • DesignSpace for defining variable bounds and types

Changed

  • Refactored architecture configuration to use Pydantic v2
  • Improved error handling for batch evaluation

Fixed

  • Array gain calculation for non-square arrays
  • Case ID generation collision in augmented DOE

0.1.0 - 2023-12-15

Added

  • Initial release
  • Architecture configuration: ArrayConfig, RFChainConfig, CostConfig
  • CommsLinkScenario for communications link analysis
  • Communications link budget model (CommsLinkModel)
  • Free space path loss propagation model
  • Power and cost models for SWaP-C analysis
  • Requirement and RequirementSet for requirements management
  • Pareto plot visualization
  • YAML/JSON configuration loading
  • Example: 01_comms_single_case.py
  • Example: 02_comms_doe_trade.py
  • Tutorial Jupyter notebook

Dependencies

  • Requires phased-array-modeling>=1.2.0
  • Python 3.10+