@@ -20,6 +20,8 @@ Phased array antenna system design, optimization, and performance visualization
2020- ** Model-Based Workflow** : MBSE/MDAO approach from requirements through optimized designs
2121- ** Requirements-Driven** : Every evaluation produces pass/fail with margins and traceability
2222- ** Trade-Space Exploration** : DOE generation and Pareto analysis for systematic design exploration
23+ - ** Design Optimization** : Scipy-based solvers (DE, dual annealing, L-BFGS-B) with constraint support
24+ - ** Comprehensive Models** : Comms link budget, radar detection, RF cascade, digital beamformer, reliability
2325- ** Dual Application** : Supports both communications link budgets and radar detection scenarios
2426- ** Reproducible** : Config-driven workflow with seed control and version stamping
2527
@@ -30,14 +32,20 @@ Config (YAML/JSON) → Architecture + Scenario → DOE Generation → Batch Eval
3032 ↓ ↓
3133 Requirements ───────────────────────────────────────────→ Verification
3234 ↓
33- Reports ← Visualization ← Pareto Extraction ←──┘
35+ Pareto Extraction
36+ ↓
37+ Reports ← Visualization ← Optimization ←────────────┘
3438```
3539
3640## Features
3741
3842- ** Requirements as first-class objects** : Every run produces pass/fail + margins with traceability
3943- ** Trade-space exploration** : DOE + Pareto optimization over single-point designs
44+ - ** Design optimization** : Scipy solvers with weighted multi-objective scalarization and constraint penalties
4045- ** Communications & Radar** : Link budget analysis and radar detection modeling
46+ - ** RF cascade analysis** : Friis noise figure, IIP3, SFDR, MDS for cascaded receiver chains
47+ - ** Digital beamformer models** : ADC/DAC characterization, bandwidth budgets, scheduling
48+ - ** TRM reliability** : MTBF, availability, graceful degradation with failed elements
4149- ** Flat metrics dictionary** : All models return consistent ` dict[str, float] ` for interchange
4250- ** Config-driven reproducibility** : Stable case IDs, seed control, version stamping
4351- ** CLI and Python API** : Use from command line or integrate into scripts
@@ -59,9 +67,8 @@ pip install phased-array-systems[plotting]
5967### Single Case Evaluation
6068
6169``` python
62- from phased_array_systems.architecture import Architecture, ArrayConfig, RFChainConfig
63- from phased_array_systems.scenarios import CommsLinkScenario
64- from phased_array_systems.evaluate import evaluate_case
70+ from phased_array_systems import Architecture, ArrayConfig, RFChainConfig
71+ from phased_array_systems import CommsLinkScenario, evaluate_case
6572
6673# Define architecture
6774arch = Architecture(
@@ -86,7 +93,7 @@ print(f"Link Margin: {metrics['link_margin_db']:.1f} dB")
8693### DOE Trade Study
8794
8895``` python
89- from phased_array_systems.trades import DesignSpace, generate_doe, BatchRunner, extract_pareto
96+ from phased_array_systems import DesignSpace, generate_doe, BatchRunner, extract_pareto
9097
9198# Define design space
9299space = (
@@ -110,12 +117,35 @@ pareto = extract_pareto(results, [
110117])
111118```
112119
120+ ### Design Optimization
121+
122+ ``` python
123+ from phased_array_systems import optimize_design, DesignSpace, CommsLinkScenario
124+
125+ scenario = CommsLinkScenario(
126+ freq_hz = 10e9 , bandwidth_hz = 10e6 , range_m = 100e3 , required_snr_db = 10.0 ,
127+ )
128+ space = (
129+ DesignSpace()
130+ .add_variable(" array.nx" , " categorical" , values = [4 , 8 , 16 ])
131+ .add_variable(" array.ny" , " categorical" , values = [4 , 8 , 16 ])
132+ .add_variable(" rf.tx_power_w_per_elem" , " float" , low = 0.5 , high = 3.0 )
133+ )
134+
135+ result = optimize_design(
136+ space = space, scenario = scenario,
137+ objective = " eirp_dbw" , sense = " maximize" , method = " de" , seed = 42 ,
138+ )
139+ print (f " Best EIRP: { result.best_metrics[' eirp_dbw' ]:.1f } dBW " )
140+ ```
141+
113142## Examples
114143
115144See the ` examples/ ` directory:
116145- ` 01_comms_single_case.py ` - Single case evaluation
117146- ` 02_comms_doe_trade.py ` - Full DOE trade study workflow
118147- ` 03_radar_detection_trade.py ` - Radar detection analysis and trade study
148+ - ` 05_optimization.py ` - Design optimization with constraint handling
119149
120150### Tutorial Notebook
121151
@@ -168,11 +198,14 @@ pasys run config.yaml
168198# DOE batch study
169199pasys doe config.yaml -n 100 --method lhs
170200
171- # Generate report
172- pasys report results.parquet --format html
201+ # Design optimization
202+ pasys optimize config.yaml --objective eirp_dbw --sense maximize
173203
174204# Extract Pareto frontier
175205pasys pareto results.parquet -x cost_usd -y eirp_dbw --plot
206+
207+ # Generate report
208+ pasys report results.parquet --format html
176209```
177210
178211## Documentation
0 commit comments