확대모멘트 / PM / 전단 / 단부요소
1. 확대 모멘트 Mc (KDS 14 20 22 §5.8)
단일 구현:
KdsMomentMagnifier.cs. Infrastructure / Graphics / Fiber 모든 호출자가 이 함수를 거친다.
(단, isSlender = false → δns = 1.0, Pu 인장 → δns = 1.0)
1.1 Mmin 적용 조건 (중요)
KDS 14 20 22 §5.8 은 Mmin 을 세장 압축부재 확대 모멘트 절차의 구성요소 로 정의한다. 따라서:
double Mmin = isSlender
? Math.Max(puComp, 0.0) * emin / 1000.0
: 0.0;
double Mc = deltaNs * Math.Max(Mmin, Math.Abs(Mu_kNm));
- isSlender = true : Mmin 적용 → Mc ≥ Mmin
- isSlender = false : Mmin = 0 → Mc = |Mu|
비세장 축 (보통 강축) 까지 Mmin 을 강제하면 두꺼운 짧은 벽이 인위적으로 NG 가 되는 문제가 있어, §5.8 의 본래 의도대로 분기한다.
1.2 약축 휨강도 검토 옵션 (CheckWeakAxisFlexure)
설계환경 옵션:
| 값 | 동작 |
|---|---|
true (기본) | 모든 경우 약축도 KDS Mc(Mmin 포함) 로 검토 |
false | 요소 Mz ≈ 0 (` |
false 로 두면 얇은 세장 벽체에서 Mc.z 가 Mmin 만으로 매우 크게 산정되어
인위적으로 NG 되는 케이스를 회피한다. 다만 실제 약축 모멘트가 있으면(>0.01)
항상 검토한다.
public bool ShouldCheckWeakAxis(double absMuz)
=> CheckWeakAxisFlexure || absMuz > 0.01;
2. PM/PMM 상관 검토
2.1 PM 검토 (1축, WallPMChecker)
각 하중조합 후보별로 (Pu, Mc.x), (Pu, Mc.z) 두 1축 검토를 수행하고 DC = (Pu, M) / 곡선상 phi·Mn 을 계산한다.
2.2 3D PMM (FiberPMCalculator)
상세검토(Fiber) 메뉴는 단면을 fiber mesh 로 분해하고 θ 방향(0°=강축 +방향)
으로 strain plane 적분하여 phi·Mn 곡면을 얻는다. 임의 (Mc.x, Mc.z) 벡터의 각도
방향으로 곡선과 비교해 DC 를 산출한다.
ANL Element local 좌표상 Moment-Y 가 강축이므로
θ=0°는 강축 +방향.
3. 전단강도 (KDS 14 20 80, 14 20 72 §4.9.3)
Vu ≤ φVn 을 검토한다. Vn = Vc + Vs.
3.1 보통전단벽 αc (KDS 14 20 72 §4.9.3)
저전단 / 고전단 분류는 최소 배근비 산정에 직접 영향을 준다.
3.2 최소 배근비
KdsWallLimits.GetRhoHorizMinNormal / GetRhoVertMinNormal 참조.
저전단 (Vu ≤ φVc/2):
- 수평근 D ≤ 16 + fy ≥ 400 →
0.0020 × 400/min(fy, 500)(= 0.0016 ~ 0.0020) - 그 외 →
0.0025
고전단 (Vu > φVc/2):
- 수평근 fy ≤ 400 →
0.0025 - 수평근 fy > 400 →
max(0.0025 × 400/fy, 0.0020) - 수직근 →
ρh,min + 0.5(2.5 − hw/lw)(ρh,actual − ρh,min), hw/lw ≤ 2.5 로 제한
3.3 최대 간격 (§4.4.2.2)
| 일반 | 보통전단벽 고전단 | |
|---|---|---|
| 수직근 sp,max | min(3t, 450) | min(3t, 450, lw/3) |
| 수평근 sp,max | min(3t, 450) | min(3t, 450, lw/5) (U-bar 사용 시 lw/3) |
4. 단부요소 (KDS 14 20 80 §4.4.5)
BoundaryElementChecker:
필요조건:
만족 시 BoundaryElementRequired = true 로 표시되고 횡구속 띠철근(직경/간격)
이 자동 산정된다.
5. 후프 형식 (WallHoopType)
| 값 | 적용 |
|---|---|
OpenWall (벽식, 열림후프) | 양면 수평근 직선만, 코너·갈고리 없음 (일반 전단벽) |
EndUBar (단부 U후프) | 양면 수평근 + 양 단부에 U-bar 묶음, EndUBarLegLength 길이 적용 |
ColumnClosed (기둥식, 닫힘후프) | 사각형 4변 + 둥근 코너 + 우상 135° 갈고리 |
Auto (기본) | 행 조건에서 자동 결정 |
5.1 자동 결정 우선순위 (WallHoopResolver.Resolve)
ColumnLikeTieRequired (ρv > 1%) → ColumnClosed
UseEndUBar = true → EndUBar
그 외 → OpenWall
ColumnLikeTieRequired 는 KDS 14 20 50 §8.3.2 (ρv > 1% 시 기둥식 띠철근 요구)
에서 자동 활성화된다. IgnoreColumnLikeTieForTension = true + Pu 인장이면
미적용한다.
6. 자동설계 알고리즘
AutoDesignService 의 핵심 흐름:
6.1 후보 생성 (BuildAllCandidates)
설정된 RebarGroup (예: HD10@450/300, HD13@..., HD16@..., HD19@200/100) 를
기반으로 모든 가능 조합을 생성한다:
candidates = ∏ (수직 직경) × (수직 간격) × (수평 직경) × (수평 간격)
× (단부 직경) × (단부 개수)
각 후보에 대해:
- 선행 제약 (upfront constraints, post-process 가 아님):
- 길이별 최소 배근 규칙 (
UseLengthBasedMinimums) - KDS §4.4.2.1 최소 배근비
- sp,max 한계 (§4.4.2.2)
- 길이별 최소 배근 규칙 (
- 위 제약 위반 후보는 거른 뒤 그대로 검토 단계로 진입.
6.2 검토 (EvaluateAllCandidatesDC)
각 후보 × 모든 행 후보 부재력에 대해:
행 단위로 DC ≤ 1.0 인 후보들 중 가장 경제적 (최소 철근량) 인 것을 선택. NG 후보만 있다면 그중 DC 가 가장 작은 후보를 그대로 채택한다 (오류 회피용).
주의: 초기 governing (Pu, Mu) 만으로 검토하지 않는다. 모든 후보 부재력에 대해 후보 배근별 DC 를 평가하여, 특정 배근에서 governing 이 바뀌는 케이스도 정확히 잡아낸다.