신호 선 관리하기
모델이 커질수록, 모델 컴포넌트를 사용하면 모델 내 블록들을 기능적, 시각적으로 정리하는 데 도움이 됩니다. 마찬가지로 모델 내 신호 선들도 체계적으로 정리하기 위해, 버스로 신호를 그룹화하는 등 다양한 전략을 적용할 수 있습니다.
신호 선의 복잡성을 줄이는 방법을 설명하기 위해 이 예제에서는 여러 개의 센서와 액추에이터로 구성된 플랜트를 구현합니다. 플랜트에는 두 개의 동일한 질량-스프링-댐퍼 시스템이 포함되어 있습니다. 두 질량이 하나의 빔으로 연결되어 있습니다.

센서가 질량의 변위를 읽어 들입니다. 제어기가 빔 중심에서의 높이 를 조절하고, 액추에이터가 질량에 가해야 하는 힘을 계산하여 빔을 수평으로 유지합니다. 제어기는 빔 양 끝 간의 높이 차이 를 사용하여 빔의 수평을 맞춥니다.
BasicModelingSignals 모델은 플랜트와 플랜트의 환경, 운영자 및 제어기를 나타냅니다.
mdl0 = "BasicModelingSignals";
open_system(mdl0);
시뮬레이션 후에 신호를 표시하기 위해 모델은 두 개의 Scope 블록을 사용합니다. 하나의 Scope 블록은 목표값과 및 실제 빔 수평 상태를 표시합니다. 다른 Scope 블록은 빔 중심에서의 목표 위치와 실제 위치, 그리고 빔 양 끝에서의 실제 위치를 표시합니다.
sim(mdl0);


신호를 기록 대상으로 표시하기
신호 선의 개수를 줄이기 위해, 뷰어를 신호 선에 바로 연결하거나 신호 선에 대한 데이터 기록을 활성화할 수 있습니다. 싱크 블록을 사용하지 않고 시뮬레이션 데이터를 시각화하는 방법을 선택하면 추가적인 신호 선을 사용하는 것을 방지할 수 있습니다.
BasicModelingLogging 모델은 Scope 블록 및 관련 신호 선을 제거한 다음 해당 신호에 대한 데이터 기록을 활성화한 것입니다.
mdl1 = "BasicModelingLogging";
open_system(mdl1);
Operator 서브시스템에서는 x_goal 및 delta_goal로 레이블이 지정된 신호가 기록 대상으로 지정되어 있으며, 각 신호 위에 표시된 아이콘으로 이를 확인할 수 있습니다.

Controller 서브시스템에서는 x 및 delta로 레이블이 지정된 신호가 기록 대상으로 지정되어 있습니다.

Plant 서브시스템에서는 x1 및 x2로 레이블이 지정된 신호가 기록 대상으로 지정되어 있습니다.

시뮬레이션 데이터 인스펙터를 사용하면 시뮬레이션 후에 기록된 신호 데이터를 확인할 수 있습니다.
sim(mdl1);

신호를 버스로 그룹화하기
신호 선의 개수를 더 줄이기 위해, Bus Creator 블록 또는 Out Bus Element 블록을 사용하여 여러 신호 선을 하나의 버스로 그룹화할 수 있습니다. 버스로 그룹화된 경우에도 모든 신호 선은 각자의 특성을 유지하며, 버스에서 다운스트림으로 다시 분리될 수 있습니다.
버스를 생성하면 BasicModelingBuses 모델에서 훨씬 더 읽기 쉬운 시스템 표현을 제공합니다. 버스 선 스타일을 표시하기 위해 모델을 컴파일합니다.
mdl2 = "BasicModelingBuses"; open_system(mdl2); set_param(mdl2,SimulationCommand="Update");

이 모델은 이름이 sensor인 버스와 goal인 버스에 포함된 각 신호들에 대해, 신호를 개별적으로 기록하는 대신 버스와 연결된 신호 선에 대한 데이터 기록을 활성화합니다.
신호를 버스로 그룹화한 후에도 시뮬레이션 결과는 동일하게 유지됩니다.
sim(mdl2);
