Files
2026-02-19 08:00:36 +00:00

4.7 KiB
Raw Permalink Blame History

Isogrid Dev Plate — ACS Stack Main Plate Lightweighting

Client: ACS (Attitude Control System) — Spacecraft structural assembly Objective: Minimize plate mass via adaptive triangular isogrid rib pattern Constraint: Max von Mises stress ≤ 100.6 MPa (AL7075-T6, SF = 5) Status: Campaign 01 — Ready to run Owner: Antoine Created: 2026-02-18


Mandate

The ACS spacecraft structural main plate is machined from AL7075-T6 aluminium. The goal is to remove as much material as possible by replacing solid regions with an adaptive triangular isogrid rib network, while maintaining structural integrity under the primary load case (FZ = 1,372.9 N, SOL 101).

Rib density is driven by three physics-based fields:

  • Hole proximity — ribs cluster around bolt-hole stress concentrations
  • Perimeter reinforcement — edge band stays solid to transfer loads
  • FEA stress feedback — previous-trial stress field adaptively guides future rib placement

Key Numbers

Metric Value Status
Material AL7075-T6 Confirmed
σ_yield 503 MPa Confirmed
σ_allow (SF=5) 100.6 MPa Confirmed
Load case FZ = 1,372.9 N / SOL 101 From baseline F06
Baseline solid plate mass TBD (G-02) Pending
Best isogrid mass TBD After Campaign 01
Design variables 8 continuous η₀, α, β, γ_stress, R₀, R_edge, s_min, s_max
Trial budget (Campaign 01) 200 TPE, seed 42
Estimated runtime ~810 h ~90120 s/trial

See CONTEXT.md for full mandate, BCs, material table, NX model map, and known gaps.


Optimization Campaigns

ID Algorithm Trials Status Best Mass Notes
01_v1_tpe Optuna TPE 200 🔴 Not started First campaign; stress-only constraint

Project Structure

isogrid-dev-plate/
├── README.md               ← You are here
├── CONTEXT.md              ← Full intake doc: mandate, BCs, material, gaps
├── BREAKDOWN.md            ← Technical analysis: parameters, formulation, FEA
├── DECISIONS.md            ← Architectural decision log
├── playbooks/
│   └── 01_FIRST_RUN.md    ← Step-by-step first-run guide
├── models/                 ← Reference NX model (golden copies — do not modify)
│   ├── ACS_Stack_Main_Plate_Iso_Project.prt
│   ├── ACS_Stack_Main_Plate_Iso_project_fem2_i.prt
│   ├── ACS_Stack_Main_Plate_Iso_project_fem2.fem
│   ├── ACS_Stack_Main_Plate_Iso_project_sim2.sim
│   └── acs_stack_main_plate_iso_project_sim2-solution_1.op2
└── studies/
    └── 01_v1_tpe/          ← Campaign 01 (TPE v1)
        ├── 1_setup/        ← Model files (working copies for NX)
        ├── 2_iterations/   ← Per-trial logs (auto-created at runtime)
        ├── 3_results/      ← Optuna DB + summary outputs
        ├── run_optimization.py
        ├── check_preflight.py
        └── README.md

Architecture

Python Brain (optimization_engine/isogrid/)
  ├── density_field.py     — η(x) = η₀ + α·I + β·E + γ·S_stress
  ├── triangulation.py     — Gmsh Frontal-Delaunay with adaptive size fields
  ├── pocket_profiles.py   — Shapely inset + fillet per triangle
  └── profile_assembly.py  — plate  pockets → Shapely polygon

NX Hands
  ├── tools/adaptive-isogrid/src/nx/import_profile.py   — update sketch in-place
  └── optimization_engine/nx/solve_simulation.py        — remesh + SOL101 + mass write

Atomizer Loop (studies/01_v1_tpe/run_optimization.py)
  └── Optuna TPE → Brain → NX → extract mass + stress → objective

Quick Start

# 1. Check all files and imports are ready
python projects/isogrid-dev-plate/studies/01_v1_tpe/check_preflight.py

# 2. Run Campaign 01
python projects/isogrid-dev-plate/studies/01_v1_tpe/run_optimization.py

Full step-by-step: see playbooks/01_FIRST_RUN.md


Key Documents

Document Purpose
CONTEXT.md Full mandate, material, load case, NX model map, known gaps
BREAKDOWN.md Parameter classification, density field formulation, FEA setup
DECISIONS.md Architectural decisions (Gmsh, update-in-place, extractor chain)
studies/01_v1_tpe/README.md Study-level: algorithm, structure, results
playbooks/01_FIRST_RUN.md Execution guide