138 lines
5.2 KiB
Markdown
138 lines
5.2 KiB
Markdown
|
|
# SAT3_Trajectory_V7 - Final Converged Optimization (TPE Warm-Start)
|
||
|
|
|
||
|
|
> See [../README.md](../README.md) for M1 Mirror project overview
|
||
|
|
|
||
|
|
## Overview
|
||
|
|
|
||
|
|
**Final study in the SAT3 Trajectory series.** Return to proven TPE after SAT V6 underperformed (~30% FEA success rate due to geometry infeasibility). Warm-started with all 194 V5 trials for immediate TPE model knowledge. Ran 86 additional trials with **100% FEA success rate**, confirming the design space is fully converged.
|
||
|
|
|
||
|
|
**Result**: The optimum found in V5 (trial #181, WS=277.55) was confirmed as the global minimum. V7's best independent trial (#222, WS=277.60) matched it to within 0.08%.
|
||
|
|
|
||
|
|
## Changes from V6
|
||
|
|
|
||
|
|
- **Algorithm**: SAT v3 (surrogate) → **TPE** (Optuna) — back to proven method
|
||
|
|
- **Warm-start**: Pre-loaded 194 V5 trials into Optuna DB, n_startup=0 (fully informed TPE)
|
||
|
|
- **Bounds**: Same as V6 (lateral_inner_pivot expanded to [5, 19])
|
||
|
|
- **Seed**: 77 (different from V5's 42) for fresh exploration
|
||
|
|
- **NX fixes**: sys.exit(0) bug fix in solve_simulation.py, early-exit crash detection in solver.py, NX process cleanup with force-kill
|
||
|
|
|
||
|
|
## Results Summary
|
||
|
|
|
||
|
|
| Metric | Value |
|
||
|
|
|--------|-------|
|
||
|
|
| **Best WS** | **277.37** (trial #0, baseline re-eval) |
|
||
|
|
| Best V7 independent | 277.60 (trial #222) |
|
||
|
|
| V7 completed trials | 86 |
|
||
|
|
| V7 FEA failures | 0 (100% success rate) |
|
||
|
|
| Total trials (V5+V7) | 275 completed |
|
||
|
|
| Winning mass | 97.2 kg (22.8 kg under 120 kg limit) |
|
||
|
|
| Convergence | Top 10 within 0.85 WS of each other |
|
||
|
|
|
||
|
|
## Winning Design Parameters
|
||
|
|
|
||
|
|
```
|
||
|
|
[Degrees]lateral_inner_angle=29.788
|
||
|
|
[Degrees]lateral_outer_angle=15.336
|
||
|
|
[mm]lateral_inner_pivot=15.513
|
||
|
|
[mm]lateral_middle_pivot=16.681
|
||
|
|
[mm]lateral_closeness=8.403
|
||
|
|
[mm]whiffle_min=61.929
|
||
|
|
[mm]triangle_width=171.39
|
||
|
|
[mm]offset_plane=3.048
|
||
|
|
[mm]lateral_outer_pivot=7.668 (derived = lateral_outer_angle / 2)
|
||
|
|
```
|
||
|
|
|
||
|
|
## Winning Design Optical Performance
|
||
|
|
|
||
|
|
| Metric | Value (nm) | Weight |
|
||
|
|
|--------|-----------|--------|
|
||
|
|
| WFE 40/20 | 6.97 | 5.0 |
|
||
|
|
| WFE 60/20 | 13.01 | 5.0 |
|
||
|
|
| MFG 90 | 28.59 | 4.0 |
|
||
|
|
| Total filtered RMS | 3.24 | 4.0 |
|
||
|
|
| Coma RMS | 8.81 | 3.0 |
|
||
|
|
| Astigmatism RMS | 2.53 | 3.0 |
|
||
|
|
| Trefoil RMS | 3.41 | 2.0 |
|
||
|
|
| Spherical RMS | 4.64 | 2.0 |
|
||
|
|
| **Weighted Sum** | **277.37** | |
|
||
|
|
|
||
|
|
**Constraints**: Mass = 97.2 kg (PASS), R^2 = 1.0000 (PASS), Pivot = angle/2 (ENFORCED)
|
||
|
|
|
||
|
|
## Method
|
||
|
|
|
||
|
|
- **Algorithm**: TPE (Optuna, warm-started from V5)
|
||
|
|
- **Extraction**: HYBRID (Trajectory + Discrete Angle OPD with annular aperture)
|
||
|
|
- **Annular inner radius**: 135.75 mm (271.5 mm central hole)
|
||
|
|
- **Solver**: NX Nastran 2512
|
||
|
|
|
||
|
|
## Objectives (8 weighted, same as V3-V6)
|
||
|
|
|
||
|
|
| Metric | Weight | Type |
|
||
|
|
|--------|--------|------|
|
||
|
|
| wfe_40_20 | 5.0 | Discrete angle OPD |
|
||
|
|
| wfe_60_20 | 5.0 | Discrete angle OPD |
|
||
|
|
| mfg_90 | 4.0 | Discrete angle OPD |
|
||
|
|
| total_filtered_rms_nm | 4.0 | Trajectory |
|
||
|
|
| coma_rms_nm | 3.0 | Trajectory |
|
||
|
|
| astigmatism_rms_nm | 3.0 | Trajectory |
|
||
|
|
| trefoil_rms_nm | 2.0 | Trajectory |
|
||
|
|
| spherical_rms_nm | 2.0 | Trajectory |
|
||
|
|
|
||
|
|
## Design Variables (8 active + 1 derived)
|
||
|
|
|
||
|
|
| Variable | Min | Max | Optimal | Units | Notes |
|
||
|
|
|----------|-----|-----|---------|-------|-------|
|
||
|
|
| lateral_inner_angle | 20.0 | 35.0 | 29.788 | deg | Interior optimum |
|
||
|
|
| lateral_outer_angle | 9.0 | 17.0 | 15.336 | deg | Drives pivot |
|
||
|
|
| lateral_inner_pivot | 5.0 | 19.0 | 15.513 | mm | Expanded in V6 |
|
||
|
|
| lateral_middle_pivot | 12.0 | 25.0 | 16.681 | mm | Interior optimum |
|
||
|
|
| lateral_closeness | 5.0 | 15.0 | 8.403 | mm | Most sensitive param |
|
||
|
|
| whiffle_min | 25.0 | 80.0 | 61.929 | mm | Interior optimum |
|
||
|
|
| triangle_width | 155.0 | 185.0 | 171.390 | mm | Interior optimum |
|
||
|
|
| offset_plane | -10.0 | 15.0 | 3.048 | mm | Must be small positive |
|
||
|
|
| **lateral_outer_pivot** | — | — | **7.668** | mm | **DERIVED = angle/2** |
|
||
|
|
|
||
|
|
## Reports & Deliverables
|
||
|
|
|
||
|
|
| File | Location |
|
||
|
|
|------|----------|
|
||
|
|
| Optimization report | `3_results/OPTIMIZATION_REPORT.md` |
|
||
|
|
| Optimization log | `3_results/optimization.log` |
|
||
|
|
| Study database | `3_results/study.db` |
|
||
|
|
| Full optical report (HTML) | `2_iterations/iter0/*_OPTICAL_REPORT_*.html` |
|
||
|
|
| Zernike 40/20 annular (HTML) | `2_iterations/iter0/*_40_vs_20_ANNULAR.html` |
|
||
|
|
| Zernike 60/20 annular (HTML) | `2_iterations/iter0/*_60_vs_20_ANNULAR.html` |
|
||
|
|
| Zernike 90 mfg annular (HTML) | `2_iterations/iter0/*_90_mfg_ANNULAR.html` |
|
||
|
|
| Winning params.exp | `2_iterations/iter0/params.exp` |
|
||
|
|
| OP2 results | `2_iterations/iter0/*-solution_1.op2` |
|
||
|
|
| Updated NX model | `2_iterations/iter0/M1_Blank.prt` |
|
||
|
|
|
||
|
|
## Study History
|
||
|
|
|
||
|
|
| Version | Algorithm | Trials | Best WS | FEA Success | Outcome |
|
||
|
|
|---------|-----------|--------|---------|-------------|---------|
|
||
|
|
| V1 | TPE | 69 | ~350 | ~90% | Initial exploration |
|
||
|
|
| V2 | TPE | 101 | ~310 | ~90% | Refined bounds |
|
||
|
|
| V3 | TPE | 160 | ~290 | ~95% | Trajectory method added |
|
||
|
|
| V4 | TPE | 140 | 279.97 | ~95% | Derived pivot constraint |
|
||
|
|
| V5 | TPE | 189 | 277.55 | ~100% | HYBRID extraction |
|
||
|
|
| V6 | SAT v3 | 27 | 307.91 | ~30% | Surrogate failed |
|
||
|
|
| **V7** | **TPE (warm)** | **86** | **277.37** | **100%** | **CONVERGED** |
|
||
|
|
|
||
|
|
**Total FEA evaluations**: 772
|
||
|
|
|
||
|
|
## Usage
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd studies/M1_Mirror/SAT3_Trajectory_V7
|
||
|
|
|
||
|
|
# Test single FEA with winning params
|
||
|
|
python run_optimization.py --test
|
||
|
|
|
||
|
|
# Start optimization (200 trials default)
|
||
|
|
python run_optimization.py --start
|
||
|
|
|
||
|
|
# Resume and extend
|
||
|
|
python run_optimization.py --start --trials 100 --resume
|
||
|
|
```
|