Mori-Tanaka ANN

지난 세미나 내용

  1. 인공신경망 구조 선정
    1. 시험 테스트, 파라미터 선정

생각해볼 부분들

  • 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)
          • 전후 역변환 과정이 필요함.
        • shear and bulk moduli (2)
          • shear moduli는 이전 step에서의 값을 써야함.
        • plastic deformation 관련 (1)
      • 추가 필요한 파라미터
        • aspect ratio of fiber (1)
        • volume fraction of matrix (1)
    • DB 등록 위한 SDV 작업
      • 이 중 SDV 등록 필요한 파라미터
        • DSTRAN_PG
      • Material property로 계산 가능한거
        • bulk moduli
        • ar
        • volume fraction of matrix
      • 이미 SDV 들어간걸로 해결되는거
        • flow stress
        • shear moduli

Database rpy 사용 시 boundary condition 설정

  • 우선 aspect ratio와 Volume fraction, bulk modulus는 고정한다고 생각
    • 이거까지 다 포함하면 database를 쌓는 데 걸리는 시간이 너무 길어짐. 일단 가능성을 판단하는 것이 목표
    • 에 영향을 받음.
  • 변화를 줘야하는 항목
    • Del strain
      • 방향
      • 크기
      • strain rate
  • 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화

파악된 문제점

  1. multielement에서 해석 불가능함.

해야 할 것들

  1. 현재 코드에서 sprind관련 오류 있음. 디버깅 필요

인공신경망 구조

세미나 흐름 정리

  1. Previous work
    1. 인공신경망 간이 학습을 통해 input 및 output값을 선정했었음.
    2. training result에서 dataset의 보강이 필요하며 elastic region에서 보강이 필요함.
  2. 루프별 시간 다시 계산
    1. ETIME module 활용
  3. elastic 구간 분리 가능성
    1. 식 소개 및 stiffness 고정 시 iteration 불필요
    2. 전략
  4. database 구성 방법
    1. 인공신경망 구성 전략: 작은 부분부터 검증, 이전과 다르게 db 크기가 매우 커짐.
    2. 변화가 필요한 파라미터들
      1. Dstran_pg
        1. 방향은 OT에 영향을 받음
        2. 크기는 step increment에 영향
      2. 점소성 관련 파라미터들
        1. strain rate까지 같이 변화 필요
    3. OT 어떻게 처리할지, OT space, 선택된 ratio 시각화
  5. 인공신경망 학습 관련
    1. 과적합 방지 필요
      1. drop out
    2. hyperparameter 선정
      1. Keras의 tuner를 사용함.
        1. grid search 방식과 달리 별도의 모듈 설치를 통해 진행
        2. 학회에서 사용한거 확인함.
        3. 각 브래킷에서 Successive Halving 알고리즘을 실행합니다. Successive Halving의 단계는 다음과 같습니다:
          1. 초기 하이퍼파라미터 조합 평가: 각 브래킷에서 초기 자원(budget)으로 많은 하이퍼파라미터 조합을 평가합니다. 초기 자원은 브래킷에 따라 다르게 설정됩니다.
          2. 성능 평가 및 선택: 평가한 하이퍼파라미터 조합 중 성능이 좋은 상위 조합을 선택합니다. 선택된 조합은 다음 단계로 넘어갑니다.
          3. 자원 증가 및 재평가: 선택된 하이퍼파라미터 조합에 대해 자원을 증가시켜 재평가합니다. 자원은 η 비율에 따라 증가합니다.
          4. 반복: 이 과정을 반복하여, 각 단계에서 자원을 증가시키며 성능이 좋은 하이퍼파라미터 조합만을 남깁니다.
          5. https://jmlr.org/papers/volume18/16-558/16-558.pdf
      2. 학습 결과
        1. 보완 필요.
        2. parameter를 추가하거나
        3. PINN을 적용해보기.

피드백

  1. OT가지고 dstran 변화주는게 타당한지?
    1. Dstran space 확인
  2. 어차피 PG ann통과할거니 1PG 단위 해석만 해도 될거같은데?
  3. PG ann은 1번 PG 결과 활용해서 12개 or 전체에 대해 ann구축