Mori-Tanaka ANN
지난 세미나 내용
- 인공신경망 구조 선정
- 시험 테스트, 파라미터 선정
생각해볼 부분들
- MT ANN사용 시 matrix의 elastic과 plastic 구간을 분리해서 사용할 수 있을지?
- MT 식에 의해 matrix fiber 둘 다 elastic stiffness가 주어진 경우 analytically dstran0, dstran1 계산 가능
- elastic DSTRAN 잡았을 때 plastic이 나타난 경우 → 다시 계산 필요.
- 이 경우 elastic assumption을 폐기하고 다시 DSTRAN_PG 를 ANN 투입
- 만약 탄성이 아닌 소성이 개입된다면 DSTRAN_FIB는 어떻게 바뀔지?
- Cmat이 더 작아지게 될텐데, 그럼 DSTRAN_MAT이 탄성 가정일때 보다 더 커지는지 아님 작아지는지
- 이게 중요한가?
- 만약 이로 인해 dstran_mat이 작아진다면 소성이 아닌 탄성 판정이 나올 수 있음. → 학습 범위를 벗어날 수 있음.
- 반대로 커지면 무조건 소성 판정이 날 것
- 그런데 matrix의 강성도가 감소하면 동일한 외부 하중에 대해 매트릭스는 더 많은 변형을 겪게 되고, 따라서 strain은 증가할 것.
- 간단하게 DSTRAN_FIB를 출력하게 하면 되긴 할듯 → 이 때 DSTRAN_PG랑 같이 출력하게 해야함.
- 소성이 들어갔었는지를 eps를 보고 판단하도록 해도 될듯?
- 현재 구간이 elastic이어도 이전에 소성이 들어갔다면 C는 바뀌어야함. (regularization에 의해)
- ANN을 사용한다고 하면?
- 저번 세미나에서 얻은 parameter database 추출 필요
- 선정된 파라미터
- 3 principal pseudo-grain strain component (3) Δϵpg
- shear and bulk moduli (2) μnreg,κn+1ve
- shear moduli는 이전 step에서의 값을 써야함.
- plastic deformation 관련 (1) ρ(εˉp,n)
- 추가 필요한 파라미터
- aspect ratio of fiber (1)
- volume fraction of matrix (1)
- DB 등록 위한 SDV 작업
- 이 중 SDV 등록 필요한 파라미터
- Material property로 계산 가능한거
- bulk moduli
- ar
- volume fraction of matrix
- 이미 SDV 들어간걸로 해결되는거
Database rpy 사용 시 boundary condition 설정
- 우선 aspect ratio와 Volume fraction, bulk modulus는 고정한다고 생각
- 이거까지 다 포함하면 database를 쌓는 데 걸리는 시간이 너무 길어짐. 일단 가능성을 판단하는 것이 목표
- κt는 E0,νmat에 영향을 받음.
- 변화를 줘야하는 항목
- RM ANN이랑 다르게 deviatoric stress 분리 db화가 불가능 → 모든 dimension에서 다 적용해야함.
가능한 대안
- abaqus 바깥에서 MT 코드 작성 후 db화
- abaqus boundary condition의 최적화
- 쪼개서 할 수 있나?
- 유사결정립이 φ, θ 공간 상에서 대칭해서 나오므로 이걸 이용.
- OT 넣을 때 처럼 크기순으로 정렬해서 쓴 다음에 나중에 다시 역정렬하는 방법
- 1방향을 x로 잡고, effective strain을 고정한 상태에서 1~0.33까지 분율 조정, shear는 주지 않는 것으로
DB화 자동화
- 현재 1 element 단위 해석만 가능함.
- OT의 방향을 랜덤화해서 1축 인장시험 테스트
- 한 analysis에선 같은 OT를 가져야 할 필요성이 있음.
- 파이썬 script 안에서 OT 텍스트 내 배향을 랜덤하게 가져오도록 설정
- 90 0 45 방향으로
- props의 형태로 넣으면 될거같음.
- 이걸로 방향에 대한 부분은 해결
- 크기와 strain rate도 random화
파악된 문제점
- multielement에서 해석 불가능함.
해야 할 것들
현재 코드에서 sprind관련 오류 있음. 디버깅 필요
인공신경망 구조
⎩⎨⎧Δεpgprincipalμnreg,matκn+1veρ(εˉp,n)aVmat⎭⎬⎫→{ΔεmatΔεfib}
세미나 흐름 정리
- Previous work
- 인공신경망 간이 학습을 통해 input 및 output값을 선정했었음.
- training result에서 dataset의 보강이 필요하며 elastic region에서 보강이 필요함.
- 루프별 시간 다시 계산
- ETIME module 활용
- elastic 구간 분리 가능성
- 식 소개 및 stiffness 고정 시 iteration 불필요
- 전략
- database 구성 방법
- 인공신경망 구성 전략: 작은 부분부터 검증, 이전과 다르게 db 크기가 매우 커짐.
- 변화가 필요한 파라미터들
- Dstran_pg
- 방향은 OT에 영향을 받음
- 크기는 step increment에 영향
- 점소성 관련 파라미터들
- strain rate까지 같이 변화 필요
- OT 어떻게 처리할지, OT space, 선택된 ratio 시각화
- 인공신경망 학습 관련
- 과적합 방지 필요
- drop out
- hyperparameter 선정
- Keras의 tuner를 사용함.
- grid search 방식과 달리 별도의 모듈 설치를 통해 진행
- 학회에서 사용한거 확인함.
- 각 브래킷에서 Successive Halving 알고리즘을 실행합니다. Successive Halving의 단계는 다음과 같습니다:
- 초기 하이퍼파라미터 조합 평가: 각 브래킷에서 초기 자원(budget)으로 많은 하이퍼파라미터 조합을 평가합니다. 초기 자원은 브래킷에 따라 다르게 설정됩니다.
- 성능 평가 및 선택: 평가한 하이퍼파라미터 조합 중 성능이 좋은 상위 조합을 선택합니다. 선택된 조합은 다음 단계로 넘어갑니다.
- 자원 증가 및 재평가: 선택된 하이퍼파라미터 조합에 대해 자원을 증가시켜 재평가합니다. 자원은 η 비율에 따라 증가합니다.
- 반복: 이 과정을 반복하여, 각 단계에서 자원을 증가시키며 성능이 좋은 하이퍼파라미터 조합만을 남깁니다.
- https://jmlr.org/papers/volume18/16-558/16-558.pdf
- 학습 결과
- 보완 필요.
- parameter를 추가하거나
- PINN을 적용해보기.
피드백
- OT가지고 dstran 변화주는게 타당한지?
- Dstran space 확인
- 어차피 PG ann통과할거니 1PG 단위 해석만 해도 될거같은데?
- PG ann은 1번 PG 결과 활용해서 12개 or 전체에 대해 ann구축