Fix spacing formula (span/(n-1)), web height constraint, resolve audit blockers

This commit is contained in:
2026-02-10 22:07:39 +00:00
parent 3e5180485c
commit 94bff37a67
2 changed files with 35 additions and 21 deletions

View File

@@ -8,12 +8,13 @@
## Overview
I-beam optimization for a test fixture. Steel (AISI 1005) cantilever beam with lightening holes in the web. Goal: minimize mass from 11.33 kg baseline while meeting displacement (≤ 10 mm) and stress (≤ 130 MPa) constraints.
I-beam optimization for a test fixture. Steel (AISI 1005) cantilever beam with lightening holes in the web. Goal: minimize mass from **1,133.01 kg** baseline while meeting displacement (≤ 10 mm) and stress (≤ 130 MPa) constraints.
**Key confirmed parameters (Gen 002):**
- Beam length: 5,000 mm (cantilever — left fixed, right loaded)
**Key confirmed parameters (Gen 002 + Introspection):**
- Beam length: 5,000 mm (`beam_lenght` ⚠️ typo in NX), cantilever — left fixed, right loaded
- Load: 10,000 kgf downward at free end
- Baseline mass: 11.33 kg (expression `p1`)
- Baseline mass: **1,133.01 kg** (expression `p173: body_property147.mass`)
- DV baselines: face=21.504mm, core=25.162mm, holes_dia=300mm, hole_count=10
- Material: AISI Steel 1005 (density 7.3 g/cm³)
- Mesh: CQUAD4 thin shell, 33.7 mm element size

View File

@@ -4,7 +4,7 @@
**Project:** Hydrotech Beam Structural Optimization
**Author:** ⚡ Optimizer Agent
**Date:** 2025-02-09 (updated 2026-02-10 — introspection corrections)
**Status:** DRAFT — Corrected baselines, sending to Auditor review
**Status:** APPROVED WITH CONDITIONS — Auditor review 2026-02-10, blockers resolved inline
**References:** [BREAKDOWN.md](../../BREAKDOWN.md), [DECISIONS.md](../../DECISIONS.md), [CONTEXT.md](../../CONTEXT.md)
---
@@ -193,46 +193,59 @@ The hard limits remain 10 mm / 130 MPa for final validation. The buffer prevents
**Critical concern:** At extreme DV3 × DV4 combinations, holes may overlap or leave insufficient ligament (material between holes).
#### Overlap condition
#### Overlap condition (CORRECTED — Auditor review 2026-02-10)
If the beam web has usable length `L_web` and `n` holes of diameter `d` are equally spaced:
The NX pattern places `n` holes across a span of `p6` mm using `n-1` intervals (holes at both endpoints of the span). Confirmed by introspection: `Pattern_p8 = 4000/9 = 444.44 mm`.
```
Spacing between hole centers = L_web / (n + 1)
Ligament between holes = spacing - d = L_web/(n+1) - d
Spacing between hole centers = hole_span / (hole_count - 1)
Ligament between holes = spacing - d = hole_span/(hole_count - 1) - d
```
For **no overlap**, we need: `L_web/(n+1) - d > 0`, i.e., `d < L_web/(n+1)`
For **no overlap**, we need: `hole_span/(n-1) - d > 0`, i.e., `d < hole_span/(n-1)`
With `hole_span = 4,000 mm` (fixed, `p6`):
#### Worst case: n=15 holes, d=450 mm
```
Required: L_web > (n+1) × d = 16 × 450 = 7200 mm = 7.2 m
Spacing = 4000 / (15-1) = 285.7 mm
Ligament = 285.7 - 450 = -164.3 mm → INFEASIBLE (overlap)
```
If the beam is shorter than ~7.2 m, this combination is **geometrically infeasible**.
#### Minimum ligament width
For structural integrity and mesh quality, a minimum ligament of ~20-30 mm is advisable:
For structural integrity and mesh quality, a minimum ligament of ~30 mm is advisable:
```
Minimum ligament constraint: L_web/(n+1) - d ≥ 30 mm
Minimum ligament constraint: hole_span / (hole_count - 1) - holes_diameter ≥ 30 mm
```
> ⚠️ **ACTION REQUIRED:** We need to know the beam web length to validate bounds. If beam length < 7.2 m, either reduce max hole_count, reduce max hole_diameter, or add a geometric feasibility pre-check that skips NX evaluation for impossible geometries.
#### Pre-flight geometric filter
### 4.3 Hole-to-Web-Height Ratio
Before sending any trial to NX, compute:
1. `ligament = 4000 / (hole_count - 1) - holes_diameter` → must be ≥ 30 mm
2. `web_clear = 2 × beam_half_height - 2 × beam_face_thickness - holes_diameter` → must be > 0
The hole diameter must also fit within the web height. If web height = 2 × half_core_thickness + 2 × face_thickness (approximate):
If either fails, skip NX evaluation and record as infeasible with max constraint violation. This saves compute and avoids NX geometry crashes.
### 4.3 Hole-to-Web-Height Ratio (CORRECTED — Auditor review 2026-02-10)
The hole diameter must fit within the web clear height. From introspection:
- Total beam height = `2 × beam_half_height = 2 × 250 = 500 mm` (fixed)
- Web clear height = `total_height - 2 × face_thickness = 500 - 2 × beam_face_thickness`
```
At minimum DV1=10, DV2=10: web_height ≈ 2×10 + 2×10 = 40 mm → max hole = 40 mm
At baseline (face=21.504mm): web_clear = 500 - 2×21.504 = 456.99 mm → holes of 450mm barely fit (7mm clearance)
At face=40mm: web_clear = 500 - 2×40 = 420 mm → holes of 450mm DO NOT FIT
At face=10mm: web_clear = 500 - 2×10 = 480 mm → holes of 450mm fit (30mm clearance)
```
But holes_diameter goes up to 450 mm — this suggests the web height is substantially larger than what the parametric cross-section variables alone define, OR the holes are in a different part of the geometry (e.g., a wider flange region or a tall web independent of core/face dimensions).
This means `beam_face_thickness` and `holes_diameter` interact geometrically — thicker faces reduce the web clear height available for holes. This constraint is captured in the pre-flight filter (§4.2):
> ⚠️ **ACTION REQUIRED:** Clarify the geometric relationship between DV1/DV2 and the web where holes are placed. The holes may be in a different structural member than the sandwich faces.
```
web_clear = 500 - 2 × beam_face_thickness - holes_diameter > 0
```
### 4.4 Expected Feasible Region