Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

구성요소 기반 모델링 지침

구성요소화는 많은 기능적 요소로 구성된 Simulink® 모델을 개발하는 조직에 유용합니다. 모델 구성요소를 사용하면 다음과 같은 이점이 있습니다.

  • 팀 기반 개발 — 파일 경합을 줄이고 잘 정의된 인터페이스를 통해 독립적으로 구성요소를 정교화합니다.

  • 설계 복잡성 축소 — 각 구성요소가 보다 작은 문제들을 해결합니다.

  • 구성요소 재사용 — 프로젝트 내에서뿐만 아니라 여러 프로젝트에서 알고리즘과 환경 모델을 재사용합니다.

  • 단위 테스트 — 변경되지 않은 구성요소에 대한 재테스트를 제거하고 검증 비용을 줄입니다.

  • 확장 가능한 성능 이점 — 메모리 사용을 줄이고 모델 불러오기 및 시뮬레이션에 필요한 시간을 줄입니다.

  • 구성요소 변형 — 구성요소의 여러 구현 중에서 선택합니다.

  • 지적 재산 보호 — 타사와 공유하는 구성요소의 기능과 내용 가시성을 제한합니다.

모델 구성요소를 만들어야 하는 경우

구성요소를 정의하고 관리하는 작업이 필요하다는 점을 고려하여, 얻는 이점이 소요되는 비용보다 클 경우에만 구성요소 기반 모델링을 사용해야 합니다.

기존 Simulink 모델을 구성요소로 분리하는 것은 큰 조각의 코드(C, Java 또는 MATLAB® 코드)를 여러 함수로 나누는 것과 비슷합니다. 처음부터 모듈식 설계를 하지 않으면 변환에 상당한 노력과 광범위한 수정이 필요할 수 있습니다.

모델 확장성과 잠재적 요구 사항을 사전에 고려하면 Simulink 모델을 구성요소로 보다 쉽게 분리할 수 있습니다. 구성요소를 사전에 식별하면 다음과 같은 문제를 방지할 수 있습니다.

  • 부적절한 구성요소 정의 — 서브시스템의 범위가 점차 늘어나면 구성요소 요구 사항을 충족하지 못하게 될 수 있습니다. 예를 들어, 포함된 기능이 너무 많거나 적어서 재사용하기 부적절하거나, 레거시 기능과 통합되는 코드를 생성할 수 없거나, HIL(Hardware-In-the-Loop) 테스트를 지원하지 못할 수 있습니다.

  • 병합 충돌 — 원래 1명의 엔지니어가 개발하도록 설계한 모델에 엔지니어들이 추가로 투입되어 함께 작업하기 시작하면 병합에 시간이 많이 걸리고 오류가 쉽게 발생할 수 있습니다.

  • 대수 루프 — 처음부터 1명의 엔지니어가 모델을 개발하면 모델 복잡성이 증가함에 따라 블록들을 서브시스템으로 그룹화할 가능성이 큽니다. 모델 내 서브시스템은 대개 시각적으로 식별 가능하고 모델 실행에 영향을 주지 않는 방식으로 그룹화되어 있습니다. 이러한 서브시스템을 아토믹으로 만들거나 참조된 모델로 변환하면 의도치 않게 진단과 수정이 어려운 대수 루프를 유발할 수 있습니다.

한 사람이 모든 세부사항을 관리하기에 설계가 너무 복잡해진 경우에도 구성요소를 활용하면 유용합니다. 예를 들어, 복잡한 모델은 다음을 포함하는 모델일 수 있습니다.

  • 수천 개의 블록

  • 수백 개의 논리적 결정

  • 동일한 기능에 대한 여러 개의 Variant 구성

프로젝트와 소스 컨트롤을 사용하면 구성요소를 관리하는 데 도움이 될 수 있습니다. 자세한 내용은 What Are Projects? 항목과 Configuration Management 항목을 참조하십시오.

모델 구성요소 정의하기

1. Choose Among Types of Model Components

하이 레벨 모델링 요구 사항에 맞는 Simulink 구성요소를 식별합니다.

2. Compare Capabilities of Model Components어떤 유형의 모델 구성요소가 로우 레벨 모델링 요구 사항을 충족하는지 조사합니다.
3. Define Interfaces of Model Components인터페이스에서 신호 특성을 구성하고 모델 구성요소의 데이터를 관리합니다.