Simulink 블록 다이어그램
Simulink®는 동적 시스템을 위한 그래픽 모델링 및 시뮬레이션 환경입니다. 블록 다이어그램을 만들어서 시스템의 각 부분을 이 블록으로 표현할 수 있습니다. 하나의 블록으로 물리적 컴포넌트나 작은 시스템 또는 함수를 표현할 수 있습니다. 입력/출력 관계로 그 블록의 특성을 완전히 정의합니다. 다음 예를 살펴보십시오.
수도꼭지를 열어 양동이에 물을 채움 — 물이 특정 유량으로 양동이에 유입되어 양동이가 점점 무거워집니다. 한 블록이 양동이를 나타낼 수 있으며, 유량이 입력이고 무게가 출력이 됩니다.
확성기에 대고 말해서 내 목소리가 들리게 함 — 확성기의 한쪽에서 생성된 소리가 다른 쪽에서 증폭됩니다. 확성기가 블록이고, 입력은 내가 내는 소리의 음파, 출력은 들리는 소리의 음파입니다.
내가 카트를 밀면 카트가 움직임 — 카트가 블록이고, 내가 미는 힘이 입력, 카트의 위치가 출력입니다.
어떤 블록의 입력과 출력이 정의되어야만 그 블록의 정의가 완전해지며, 이는 모델의 목표와 연관됩니다. 예를 들어, 모델링의 목표가 카트 위치와 상관없다면 출력은 자연히 카트 속도가 될 수 있습니다.
Simulink는 기능을 기준으로 그룹화된 블록 모음인 블록 라이브러리를 제공합니다. 예를 들어, 입력에 상수를 곱하는 확성기를 모델링하려면 Math Operations 라이브러리에서 Gain 블록을 사용합니다.
음파가 입력으로 확성기로 들어가면 동일한 음파가 더 큰 소리로 출력으로 나옵니다.
> 부호는 블록의 입력과 출력을 나타내며, 입력과 출력은 다른 블록과 연결될 수 있습니다.
블록을 여러 다른 블록과 연결하여 시스템을 만들면 더 복잡한 기능을 표현할 수 있습니다. 예를 들어, 오디오 플레이어는 디지털 파일을 소리로 변환합니다. 저장공간에서 디지털 표현을 읽어 들여 수학적으로 해석한 다음 물리적 소리로 변환합니다. 디지털 파일을 처리하여 소리의 파형을 계산하는 소프트웨어가 하나의 블록일 수 있고, 파형을 받아 소리로 변환하는 스피커가 또 다른 블록일 수 있습니다. 입력을 생성하는 컴포넌트는 또 다른 블록으로 표현합니다.
Simulink에서 확성기로 들어가는 사인파 입력을 모델링하려면 Sine Wave 소스를 추가합니다.
Simulink의 주 기능은 시간 경과에 따른 시스템 컴포넌트의 동작을 시뮬레이션하는 것입니다. 가장 단순한 형태에서, 이 작업에는 클록을 유지하고, 어떤 순서로 블록이 시뮬레이션될지 결정하며, 블록 다이어그램에서 계산된 출력을 다음 블록으로 전파하는 일이 포함됩니다. 메가폰을 생각해 보십시오. 각 시간 스텝마다 Simulink는 사인파의 값을 계산하고, 이를 메가폰에 전파한 다음, 출력값을 계산해야 합니다.
각 시간 스텝마다 각 블록은 입력으로부터 출력을 계산합니다. 다이어그램의 모든 신호가 주어진 시간 스텝에서 계산되고 나면 Simulink는 모델 구성 및 수치적 솔버 알고리즘을 기반으로 다음 시간 스텝을 결정하고 시뮬레이션 클록을 전진시킵니다. 그러면 각 블록이 이 새로운 시간 스텝에 대한 출력을 계산합니다.
시뮬레이션에서 시간은 실제 시계와 다르게 진행됩니다. 각 시간 스텝에는 해당 시간 스텝이 몇 분의 1초를 나타내든 몇 년을 나타내든 상관없이 그 시간 스텝에 대한 계산을 완료하는 데 필요한 만큼 시간이 소요됩니다.
대개의 경우 컴포넌트의 입력이 출력에 미치는 영향은 즉각적이지 않습니다. 예를 들어, 히터를 켜도 온도가 즉시 변하지는 않습니다. 대신, 이 동작은 미분 방정식에 입력을 제공합니다. 온도 이력(상태)도 하나의 인자입니다. 시뮬레이션에서 미분 방정식 또는 차분 방정식의 해를 구해야 할 경우, Simulink는 메모리와 수치적 솔버를 사용하여 시간 스텝에 대한 상태 값을 계산합니다.
Simulink는 다음 세 범주의 데이터를 처리합니다.
신호 — 블록 입력 및 출력(시뮬레이션 동안 계산됨)
상태 — 블록의 동특성을 나타내는 내부 값(시뮬레이션 동안 계산됨)
파라미터 — 블록의 동작에 영향을 미치는 값(사용자에 의해 제어됨)
각 시간 스텝마다 Simulink는 신호 및 상태에 대한 새 값을 계산합니다. 이와 대조적으로, 모델을 구축할 때 파라미터를 직접 지정하고 시뮬레이션이 실행되는 동안 경우에 따라 이를 변경할 수도 있습니다.