이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
아키텍처 모델 시뮬레이션을 위한 거동 구현
System Composer™의 기본 시스템 엔지니어링 워크플로에는 아키텍처 시스템 구성, 요구 사항 정의, 메타데이터 추가, 분석 수행, 뷰를 통한 아키텍처 표현이 포함됩니다. 이러한 단계를 거치면 시스템 설계가 이해 관계자의 목표와 고객 요구 사항을 충족하는 데 한 걸음 더 가까워집니다.
이제 Simulink®, Stateflow®, Simscape™를 사용하여 실제 시스템 컴포넌트를 설계할 수도 있습니다. 모델 기반 설계 프로세스를 사용하여 컴포넌트의 거동을 완전히 지정하고, 테스트하고, 분석할 수 있습니다.
System Composer의 모델 기반 시스템 엔지니어링 워크플로에 대한 자세한 내용은 아키텍처 모델을 사용하여 시스템 구성 및 분석를 참조하십시오.
이 튜토리얼에서는 로봇 팔 아키텍처 모델에서 이러한 단계를 수행합니다.
로봇 팔 구조 모델
센서, 모션 액추에이터, 계획 알고리즘으로 구성된 로봇 팔의 아키텍처 모델을 엽니다. System Composer를 사용하면 이 모델에 대한 인터페이스를 보고 요구 사항을 관리할 수 있습니다.
컴포넌트의 참조 Simulink 거동 모델
컴포넌트에 추가적인 아키텍처 분해가 필요하지 않은 경우 모델 시뮬레이션과 엔드투엔드 워크플로를 활성화할 수 있습니다. 모델 시뮬레이션을 활성화하려면 컴포넌트에 대한 Simulink 거동을 구현합니다. Simulink 모델을 컴포넌트와 연결하거나 기존 Simulink 모델이나 서브시스템에 연결할 수 있습니다.
Motion
컴포넌트를 선택하십시오. Modeling > Create Simulink Behavior로 이동합니다. 또는Motion
컴포넌트를 마우스 오른쪽 버튼으로 클릭하고Create Behavior
를 선택한 다음Simulink Behavior
를 선택합니다.Type 목록에서
Model Reference
를 선택하십시오. 모델 이름MotionSimulink
를 입력하십시오. 기본 이름은 컴포넌트의 이름입니다.확인을 클릭합니다. 제공된 이름의 새로운 Simulink 모델 파일이 현재 폴더에 생성됩니다. Simulink 모델의 루트 수준 포트는 컴포넌트의 포트를 반영합니다. 아키텍처 모델의 컴포넌트는 Simulink 모델에 연결됩니다. 컴포넌트의
아이콘은 해당 컴포넌트에 Simulink 거동이 있음을 나타냅니다.
참고
모델 거동을 제거하려면 연결된
Motion
컴포넌트를 마우스 오른쪽 버튼으로 클릭하고 Inline Model를 선택합니다.SensorData 포트의 인터페이스를 Simulink 버스 요소로 변환하려면 Simulink의 포트를 더블 클릭하십시오.
해당 컴포넌트가 참조 아키텍처에 이미 연결되어 있지 않다면, System Composer 컴포넌트에서 기존 Simulink 거동 모델에 연결할 수도 있습니다. 컴포넌트를 마우스 오른쪽 버튼으로 클릭하고 Link to Model를 선택합니다. Simulink 모델의 이름을 입력하거나 찾아볼 수 있습니다.
참조된 Simulink 서브시스템 거동을 컴포넌트에 연결할 수도 있습니다. 서브시스템 참조를 사용하여 물리적 포트, 연결 및 블록을 통해 Simulink 또는 Simscape 거동을 작성합니다.
Motion
컴포넌트를 선택하십시오. Modeling > Create Simulink Behavior로 이동합니다. 또는Motion
컴포넌트를 마우스 오른쪽 버튼으로 클릭하고Create Behavior
를 선택한 다음Simulink Behavior
를 선택합니다.Type 목록에서
Subsystem Reference
를 선택하십시오. 모델 이름MotionSubsystem
를 입력하십시오. 기본 이름은 컴포넌트의 이름입니다.확인을 클릭합니다. 제공된 이름의 새로운 Simulink 서브시스템 파일이 현재 폴더에 생성됩니다. Simulink 서브시스템의 루트 수준 포트는 컴포넌트의 포트를 반영합니다. 아키텍처 모델의 컴포넌트는 Simulink 서브시스템에 연결됩니다. 컴포넌트의
아이콘은 해당 컴포넌트에 Simulink 서브시스템 거동이 있음을 나타냅니다.
컴포넌트에 Stateflow 차트 거동 추가
상태 머신을 사용하여 이벤트 기반 모델링을 구현하려면 컴포넌트에 Stateflow 차트 거동을 추가합니다. 상태 차트는 컴포넌트의 작동 모드를 파악하기 위해 상태 간 전환이 있는 유한한 집합으로 구성됩니다. 이 기능을 사용하려면 Stateflow 라이센스가 필요합니다.
Stateflow Chart (Stateflow) 거동을 추가하면 스테레오타입, 인터페이스, 요구 사항 링크 및 포트가 포함된 System Composer 컴포넌트가 보존됩니다.
Sensor
컴포넌트를 마우스 오른쪽 버튼으로 클릭하고Create Behavior
를 선택한 다음Stateflow Behavior
를 선택합니다. 또는Sensor
컴포넌트를 선택한 다음 Modeling > Create Stateflow Chart Behavior로 이동합니다.Stateflow 아이콘이 있는
Sensor
를 더블 클릭합니다. Modeling 메뉴에서 Symbols Pane를 클릭하면 Stateflow 기호를 볼 수 있습니다. 입력 포트 Encoder는 기호 창에 입력 데이터로 나타나고 출력 포트 SensorData는 출력 데이터로 나타납니다.SensorData 출력을 선택하고 Property Inspector에서 인터페이스를 봅니다. 이 인터페이스는 Simulink 버스 신호처럼 접근할 수 있습니다.
컴포넌트에서 소프트웨어 아키텍처 설계
소프트웨어 아키텍처를 설계하고, 함수 실행 순서를 정의하고, 코드를 시뮬레이션하고 생성하고, System Composer 컴포넌트에서 소프트웨어 아키텍처를 만듭니다.
Trajectory Planning
컴포넌트의 이름을TrajectoryPlanning
로 바꾸어 유효한 C 변수 이름으로 만듭니다.TrajectoryPlanning
컴포넌트를 마우스 오른쪽 버튼으로 클릭하고Create Architecture
를 선택한 다음Software Architecture
를 선택하거나 Modeling > Create Software Architecture Model로 이동합니다.소프트웨어 아키텍처의 이름을
TrajectorySoftware
로 지정합니다. 확인을 클릭합니다.소프트웨어 아키텍처 모델
TrajectorySoftware.slx
는TrajectoryPlanning
컴포넌트에서 참조됩니다.TrajectoryPlanning
컴포넌트를 더블 클릭하면TrajectorySoftware
소프트웨어 컴포넌트와 상호 작용할 수 있습니다.
시퀀스 다이어그램을 사용하여 시스템 상호 작용 표현
아키텍처의 구조적 요소 간 상호작용을 일련의 메시지 교환으로 표현하려면 Architecture Views Gallery에서 시퀀스 다이어그램을 사용합니다.
컴포넌트, 포트, 연결, 거동으로 구성된 로봇 팔 아키텍처 모델을 관찰합니다. 모델 시뮬레이션 결과는 시퀀스 다이어그램 내의 상호 작용과 일치해야 합니다.
Modeling > Sequence Diagram로 이동하여 새로운 시퀀스 다이어그램을 만듭니다. Architecture Views Gallery가 열립니다. 새로운 시퀀스 다이어그램을 만들려면
New > Sequence Diagram를 클릭하십시오.
SequenceDiagram1
라는 새로운 시퀀스 다이어그램이 뷰 브라우저에 생성되고, Sequence Diagram 탭이 활성화됩니다. Sequence Diagram Properties에서 시퀀스 다이어그램의 이름을RobotArmSequence
로 변경합니다.Component > Add Lifeline
를 선택하여 라이프라인을 추가하십시오. 이름이 없는 새로운 라이프라인이 생성되고 점선으로 표시됩니다.
아래쪽 화살표를 클릭하고
Sensor
를 선택하십시오.Motion
라는 이름의 두 번째 라이프라인을 추가합니다.Sensor
수명선에 대한 수직 점선을 선택합니다.Motion
라이프라인을 클릭하고 드래그하십시오. To 상자에Sensordata
를 입력하고 드롭다운 메뉴에서SensorData
를 선택합니다.Sensor
컴포넌트의 SensorData 포트에서Motion
컴포넌트의 SensorData 포트로 메시지가 생성됩니다.메시지를 클릭하면 메시지 조건을 입력할 위치를 확인할 수 있습니다. 다음 형식으로 메시지 트리거 조건을 입력하십시오.
rising(SensorData.distance1-1)
신호 이름은 데이터 인터페이스의 데이터 요소입니다. 해당 메시지는
SensorData.distance1
값이 1로 상승하는 제로 크로싱 이벤트에서 인식됩니다.