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
- Design optimization module (
trades/optimization.py) withoptimize_design()using scipy solvers OptimizationResultdataclass 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 optimizecommand with--objective,--sense,--method,--max-iteroptions - 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
- Digital beamformer integration:
DigitalConfigfor ADC ENOB, data rate, and FPGA processing margin - Radar YAML configs:
radar_basic.yamlandradar_doe.yamlexamples - 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
- CLI
pasys doecommand: was reading nonexistentconfig.design_spaceinstead ofconfig.doe - CLI
pasys sensitivitycommand: samedesign_spacebug, now reads DOE variables correctly
0.4.0 - 2026-02-01
- 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
- Ruff linting errors in models module
- MathJax rendering in documentation
- Markdown list formatting in documentation
0.3.0 - 2024-01-15
- Radar detection model with pulse integration
RadarDetectionScenariofor 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
- Improved Pareto extraction algorithm efficiency
- Enhanced visualization with 3D trade space plots
- Hypervolume calculation for 3+ objectives
0.2.0 - 2024-01-01
- Design of Experiments (DOE) generation with LHS, random, and grid methods
BatchRunnerfor 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
DesignSpacefor defining variable bounds and types
- Refactored architecture configuration to use Pydantic v2
- Improved error handling for batch evaluation
- Array gain calculation for non-square arrays
- Case ID generation collision in augmented DOE
0.1.0 - 2023-12-15
- Initial release
Architectureconfiguration:ArrayConfig,RFChainConfig,CostConfigCommsLinkScenariofor communications link analysis- Communications link budget model (
CommsLinkModel) - Free space path loss propagation model
- Power and cost models for SWaP-C analysis
RequirementandRequirementSetfor requirements management- Pareto plot visualization
- YAML/JSON configuration loading
- Example:
01_comms_single_case.py - Example:
02_comms_doe_trade.py - Tutorial Jupyter notebook
- Requires
phased-array-modeling>=1.2.0 - Python 3.10+