신군의 역학사전

[Simulink] 차분 & 연속 시스템(Discrete & Continuous System) 모델링 본문

Mechanical Engineering/Matlab & Simulink

[Simulink] 차분 & 연속 시스템(Discrete & Continuous System) 모델링

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

이번 포스팅에서는 차분 시스템(Discrete System)과 연속 시스템(Continuous System)에 대해 정리해보도록 하겠습니다.

 

1. 차분 시스템(Discrete System)

차분(Discrete)이라는 것은 이산적 혹은 불연속적이라는 의미를 가지며 연속적(Continuous)인 것과 반대되는 개념입니다. 또한 차분 시스템(Discrete System)이라는 것은 이산적 시간에서 동작하는 시스템을 의미합니다. 즉, 차분 시스템에서는 시간이나 데이터가 정해진 시간간격에 따라 불연속적으로 업데이트되며, 시간 간격마다 시스템의 상태를 계산하고 출력하게 됩니다. 이를 정리하면 아래와 같으며, 차분 방정식 형태로 모델링됩니다.

따라서 모델링하고자 하는 시스템이 Discrete이냐 Continuous냐에 따라 실행방식이 달라져야하는데

해당 부분은 블록 파라미터 - 샘플 시간을 통해 조정할 수 있습니다.

각각을 정리하면 아래와 같습니다.

Gain블록과 같이 샘플시간을 설정할 수 없는 블록들이 있는데

이런 블록들은 주로 상위 블록의 설정값을 상속받아 그대로 활용하게 됩니다.

Discrete System의 모델링에는 주로 Unit Delay블록을 활용하게 되는데요

이는 한 스텝 이전의 값을 출력해주는 기능을 수행합니다.

예를 들어, 다음과 같은 Discrete System을 모델링하고자 한다면

현재 상태(x(k))를 기준으로 식 정리 후, Unit Delay 블록과 연산 블록들을 적절히 활용합니다.

이를 시뮬레이션하면 다음과 같은 결과가 출력됩니다.

해당 식은 가장 간단히 구성해본 것으로, 출력 결과에 특별한 물리적 의미는 없습니다.

Unit Delay 블록의 샘플 시간 역시 조정할 수 있는데

특별한 경우가 아니면, 대부분 이전 블록 값을 상속받아 활용하게 됩니다.

이 경우, -1을 지정해주어야 합니다.

 

2. 연속 시스템(Continuous System)

연속적(Continuous)은 끊김 없이 이어지는 상태를 의미하며, 시간, 공간, 데이터 등이 불연속점 없이 부드럽게 변화하는 것을 의미합니다. 따라서 연속 시스템(Continuous System)이라 함은 시간이 연속적으로 흐르면서 동작하는 시스템을 의미합니다. 연속 시스템의 상태는 시간 t의 모든 값에서 정의되고 계산되며, 미분 방정식 형태로 모델링됩니다.

 

차분 시스템에서는 Unit Delay블록이 주로 활용되었던 반면

연속 시스템에서는 Integrator 블록이 주로 활용됩니다.

자연계 현상의 대다수는 미분방정식 형태로 표현할 수 있기 때문에

지배방정식은 특정 State에 대한 미분 or 적분 꼴로 모두 표현할 수 있습니다.

다만, 미분 블록의 경우 연속 상태를 포함하고 있지않아, 시스템의 정확도에 기여할 수 없어

연속 시스템의 경우 최고미분항에 대해 식 정리 후, 적분 블록을 주로 활용하게 됩니다.

그래서 적분(Integrator) 블록은 입력 신호에 대한 적분 값을 출력해주며

이를 활용하여 아래의 방정식을 모델링해보겠습니다.

우선 최고 미분항을 기준으로 식정리를 해줍니다.

해당 방정식의 최고 미분항은 2계 미분항으로, 필요한 적분 블록 개수를 파악할 수 있습니다.

2계 미분항이므로 적분 블록 2개가 필요합니다.

따라서 이를 바탕으로 모델을 구성하면 다음과 같습니다.

적분 연산 시, 초기조건을 지정해주어야 하는데

이는 블록 파라미터 창에서 지정해줄 수 있습니다.

 

여기서 한 스텝 더 나아가서

가장 일반적인 예시로 주로 활용되는 Mass-Spring-Damper System을 간단하게 구현해볼 수 있습니다.

마찬가지로 최고 미분항은 2계 미분항으로 적분 블록 2개를 활용하여 아래와 같이 구성할 수 있습니다.

위의 예시와 크게 다를 건 없고, 여기서 외력(F(t))가 제어입력(u(k))이 되겠네요.

질량이나 댐핑 계수, 스프링 상수들은 적절히 아무 값이나 우선은 넣어주었습니다.

따라서 최종 출력 결과는 다음과 같습니다.

차분 시스템의 출력 결과가 스텝 함수 형식으로 끊겨 있었던 반면

연속 시스템의 경우, 모든 스텝에서의 결과가 연속적으로 연결되어 있음을 확인할 수 있습니다.

 

해당 예제의 경우, 따로 파라미터 튜닝을 하지 않아 질량체의 위치가 수렴하지는 않았습니다.

이런 부분들은 개선하여 향후 별도의 게시글을 통해 다룰 수 있도록 하겠습니다.

당장은 블록의 사용법과 모델링 방법들에 초점을 두고 봐주시면 감사하겠습니다.

반응형