1. ROM Builder 를 이용한 데이터 학습
아래 그림과 같이 엔진 맵에 대한 surrogate 모델을 생성하는 방법을 소개하겠습니다. Surrogate 모델은 크게 반응표면 모델과 신경망회로 모델이 있습니다. ROM Builder 는 데이터 학습을 통해 반응표면 모델과 신경망회로 모델을 모두 지원하고 있습니다. 데이터 학습을 수행하기 위해 측정된 데이터가 열벡터 형태로 정의되어야 합니다. 그리고 Table format: XY 로 명시해줘야 합니다.
엔진 맵 데이터는 3차원 surface 형태로 그래프를 그릴 수 있으며, rpm 과 throttle 의 함수로 표현이 됩니다. 이 곡면의 경우 다항함수 형태로 보간하여 곡선적합을 수행할 수 있으며, 이 보간함수가 반응표면 모델이 됩니다. 반응표면 모델의 경우 다항함수라는 제약조건이 있기 때문에 부드러운 곡면이 아닐 경우, 그 정합성을 높이기 어렵습니다. 반면에 신경망회로 모델은 데이터 기반으로 면을 생성하며, 주변의 데이터를 바탕으로 원하는 포인트를 보간하여 생성합니다. 따라서 불규칙한 면에 대해서도 그 정합성이 매우 높다고 할 수 있습니다.
Figure
1 엔진 맵 데이터를 3차원 그래프로 도시한 화면 |
Figure
2 ROM Builder 에서 데이터를 임포트 하기 위한 스키마 예시 |
ROM Builder를 통해 데이터 학습을 수행하고 나면 아래 그림과 같이 신뢰도와 상관성을 도시하여 보여줍니다. 신뢰도가 100% 에 가까울수록 기존의 데이터를 오차없이 모사할 수 있음을 의미합니다. 상관도 분석의 경우 목적함수와 파라미터 사이의 경향성을 보여주고 있으며, 아래 그림에서는 engine_throttle 과 engine_torque 사이에 밀접한 관련이 있음을 시사하고 있습니다.
Figure
9 ROM Builder 에서 생성한 Surrogate 모델 추출 |
Figure
10 추출한 surrogate 파일 |
Figure
11 Amesim 에서 fmu 임포트하는 과정 |
Figure
12 Amesim 에서 fmi 를 연결하여 실행한 화면 |
5. ROM Builder surrogate 모델과 Matlab Simulink 연결 수행
Figure
13 Matlab Simulink 라이브러리에서 검색한 s-function 블록 |
Figure
14 S-function 이름 저장 |
Figure
15 Matlab 에서 C 컴파일러 탑재한 화면 |
Figure
16 Matlab Simulink 에서 수행한 Surrogate 모델 |


댓글 없음
댓글 쓰기