Search

ORNISP 처럼 UI 툴 만드는 자료 공유 요청 드립니다

Board √
Member √
Category √
MATLAB
Created by
tlsdkawotmd@kaist.ac.kr
허재승
Status √
Complete
Files
5 more properties
Question
LBM 코드를 MATLAB UI 해석 프레임으로 나타내고자 합니다. 관련된 자료 있으면 공유 요청 부탁드립니다. 필수항목
1. 유체 물성치를 새로 집어 넣는 것이 필요할 경우 txt 파일이나 코드를 건드려서 추가할 수 있는 기능 (Pressure, Temperature별 dynamic viscosity, viscosity, C_p, C_v 등 유체 파라미터들은 고정)
2. geometry를 생성해서 집어넣는 기능 코드를 본격적으로 reproduction을 하면서 ui tool로 만들어서 과제 때 보여줄 겸 연구에 적용하고자 합니다. UI로 MATLAB 코드를 짜는 것은 지식이 전무하기 때문에 관련 영상자료나 교육자료, 참고자료 있으면 공유 해 주셨으면 감사하겠습니다.
Answer

0. MATLAB App Designer

MATLAB으로 GUI를 구현해서 App 형식으로 만드려면 MATLAB App Designer라는 것을 이용해야 함.
기본적인 사용법은 MATLAB 특성상 온라인 Help에 자세히 나타나있음 (아래 URL).
다양한 Help를 차례대로 따라하면서 필요한 부분 학습하면 괜찮을 것으로 보임.
왼쪽의 다양한 컴포넌트를 끌어다가 사용하면 되는 단순한 구조.
기본적으로 MATLAB App은 함수들의 집합으로 볼 수 있으며, 다음의 시퀀스로 동작한다고 볼 수 있음:
1.
특정 동작을 수행 (버튼 클릭, 입력 값 수정 등)
2.
특정 동작에 대한 Callback 함수 실행
3.
Callback 함수 실행 결과가 App 또는 기타 필요 파일에 반영됨
MATLAB App 개발에 대한 전반적인 내용을 여기에다가 답변으로 기술하기에는 한계가 있어 보이며,
추후 연구실 세미나 또는 신입생 교육 때 관련 내용을 다루도록 하겠음.

1. 유체 물성치를 새로 집어 넣는 것이 필요할 경우 txt 파일이나 코드를 건드려서 추가할 수 있는 기능

질문의 정확한 의도가 뭔지 잘 파악이 되지 않음… 예시라도 있으면 좋으려만.
MATLAB App은 일종의 함수를 실행하는 것이기 때문에 시뮬레이션 조건에 해당하는 데이터들은 별도의 파일로 저장해두는 것이 맞음.
예를 들어 다음 스크립트를 통해서 A, B, C의 값을 별도의 Input File로서 .dat로 생성할 수 있음 (*.dat 나 *.txt 나 차이 없고 취향 차이).
% Pre-Process inputFilePath = 'FileDataFolder\FileName.dat'; % Input file path A = 10; B = 20; C = 30; % Write New File fid = fopen(inputFilePath , 'w'); % Open and write a new file via file path (fid = file ID) fprintf(fid, '%15.15f %15.15f %15.15f', A, B, C); % Write A, B, and C values in the input file as double with a format of %15.15f fclose(fid); % Close the file
MATLAB
복사
실행하면 현재 경로에 FileDataFolder라는 폴더가 있을 때 그 하위에 FileName.dat가 생성됨을 알 수 있음.
FileName.dat 안에는 앞서 입력한 A, B, C가 %15.15f 포맷에 맞춰서 들어가 있음
이렇게 저장한 데이터는 다음 스크립트를 통해서 다시 MATLAB으로 읽어올 수 있음
% Read File Data fid = fopen(inputFilePath , 'r'); % Open and read a file via file path (fid = file ID) fileData = fscanf(fid, '%f'); % Read file data with double data format fclose(fid); % Close the file
MATLAB
복사
이렇게 읽어온 Data를 이용해서 MATLAB App GUI를 업데이트 하거나 읽어온 Data에 기반해서 해석이 수행될 수 있도록 스크립트를 작성하면 됨.
참고로 파일을 열 때, fopen 함수를 쓰기 옵션 ‘w’로 사용하면 덮어쓰기임. 따라서 해당 파일을 업데이트 할 때도 동일하게 사용하면 됨.

2. Geometry를 생성해서 집어 넣는 기능

이 질문은 더더욱 너무 포괄적임…
MATLAB App에 Geometry를 넣는다는 것은 존재하지 않음.
MATLAB App에는 Figure를 넣을 수 있고, Figure에 특정 Geometry를 그릴 수 만 있다면 Geometry를 표시하는 것을 의미함.
따라서 Geometry를 생성해서 집어 넣는 것을 고민하기보다는,
해당 Geometry의 입력 파라미터에 기반하여 MATLAB Figure에 Patch와 같은 함수를 이용해서, 원하는 Geometry를 그래픽적으로 나타낼 수 있는지 먼저 확인해야함.
MATLAB Figure에 그려낼 수 있으면 App 구현하는 건 그리기 함수를 Callback으로 구현만 하면 되는 거라 단순함.
MATLAB에서의 Visualization 관련해서는 연구실 세미나도 했었고,
관련 스크립트는 Information Note의 How to Create Animation Videos in MATLAB 내용 내용 참고 (아래 페이지 URL).
Mention for reply completion notification: @허재승