신군의 역학사전

[Simulink] 대수 시스템(Algebraic System) 모델링 본문

Mechanical Engineering/Matlab & Simulink

[Simulink] 대수 시스템(Algebraic System) 모델링

긔눈 2025. 1. 13. 12:00
반응형

이번 포스팅에서는 대수 시스템의 간단한 모델링 예제를 다뤄보도록 하겠습니다.

 

사실 대수시스템이란 것은 하나의 소재에 불과하고, 해당 예제에서는 크게 뷰어 관련된 기능과, 변수 호출 자동화 기능에 대해 익히는 것을 목표로 합니다.

 

대수시스템(Algebraic System)

대수시스템은 하나의 집합과 그 위에 정의된 하나 이상의 연산 및 공리의 조합으로 이루어진 수학적 구조를 말합니다. 좀 더 간단히 정리해보자면 지배방정식(Governing Equation)으로 기술되는 시스템을 의미합니다. 자연계의 많은 현상들은 물리적 지배방정식에 의거한 서술이 가능하고, 이런 부분들을 모델링에 활용할 수 있습니다.

 

해당 게시글에서는 입력 데이터에 대해 y^2 = 4x 꼴의 포물선 출력을 가시화하도록 모델을 구성해보겠습니다. 

y^2 = 4x와 같은 경우, y=2x와 y=-2x로 분리할 수 있고, 이를 각각 Gain과 Sqrt블록으로 구현할 수 있습니다.

가시화가 필요한 Signal Line을 우클릭 후 [뷰어 만들기 및 연결]-[Simulink]-[Scope]를 통해 뷰어를 연결해줄 수 있는데

이를 활용하여 Scope블록 없이도 Scope확인이 가능합니다.

상단 배너에 [뷰어 추가]를 눌러서 손쉽게 추가할 수도 있습니다.

[보기]-[레이아웃]을 통해서 보려는 출력 수에 맞춰 디스플레이 수를 결정할 수 있으며

여기서 보고자하는 출력은 2개이므로, 2X1 Scope를 구성해줍니다.

그럼 Scope 디스플레이가 다음처럼 2개로 확장됩니다.

Scope 디스플레이를 2X1로 확장해준 후

나머지 출력 라인에 대해 마찬가지로 뷰어 추가를 해주면

2개 출력 모두에 대해 Scope 생성이 완료됩니다.

따라서 시뮬레이션 실행 시 하나의 Scope 창에서 여러 개의 출력을 동시에 확인할 수 있습니다.

여기서 시뮬레이션의 기본 스텝 사이즈는 (끝시간 - 시작시간) / 50으로

현재 시뮬레이션 시간이 10초로 설정되어 있으므로, 스텝 사이즈는 0.2초가 됩니다.

스텝 사이즈는 시뮬레이션 시간과 출력 변수의 Size를 통해 확인이 가능합니다.

Matlab 워크 스페이스 상에서 필요한 정보를 확인할 수 있습니다.

 

이처럼 지배방정식 기반의 대수시스템에 대한 간단한 예제를 구현해보았습니다.

 

PreloadFcn & Callback

하지만 팀원과 함께 협업이 필요할 때에 구성한 모델 공유하는 상황에서 몇가지 문제가 발생할 수 있습니다. 입력 변수(데이터) 등이 같이 항상 제공이 되어야 공유받은 모델의 결과를 온전히 확인할 수 있는데, 생각보다 놓치기 쉬운 부분입니다. 따라서 이런부분을 변수 호출 자동화 기능을 활용하여 보완할 수 있습니다.

[모델 설정] - [모델 속성]으로 들어와주면

PreloadFcn & Callback 기능을 활용할 수 있습니다.

여기서 모델 파라미터, 인풋 등을 지정해줄 수 있으며, 모델 실행 시 자동으로 워크스페이스상에 저장됩니다.

이를통해 별도의 mat 파일 없이도 모델 공유가 가능합니다.

반응형