SysML 기반 시스템 모델링 세번째 글입니다.
이번에는 Vehicle 개체의 내부 동작에 대해 좀 더 자세히 알아보겠습니다.
전체글 보기
- MBSE Example #1: 차량 가속도 vs. 연비 - 트레이드오프 분석 (with SysML)
- MBSE Example #2: 차량 가속도 vs. 연비 - 트레이드오프 분석 (with SysML)
- MBSE Example #3: 차량 가속도 vs. 연비 - 트레이드오프 분석 (with SysML)
- MBSE Example #4: 차량 가속도 vs. 연비 - 트레이드오프 분석 (with SysML)
1. 차량 컨텍스트를 표현하는 내부 블록 다이어그램
차량 컨텍스트란 Automobile Domain를 구성하는 여러 블록들 중 차량(Vehicle)과 상호작용하는 블록들 (예를 들어, 운전자(Driver), 물리적 환경(Physical Environment), 즉 Road, Atmosphere 등 외부 개체를 의미)과의 인터페이스를 표현한 것입니다.
다음 블록 정의 다이어그램(Block Definition Diagram)에서 보는 바와 같이 Automobile Domain 블록을 기준으로 여러 구성 요소들이 정의되어 있습니다. 이때 상위 블록인 Automobile Domain 블록 내에서 이들 구성 요소들이 어떤 인터페이스를 갖는지를 살펴보고자 합니다. 여기서 Association 끝부분에 정의된 표기는 블록 인스턴스를 의미합니다. 즉, 해당 블록의 특성을 갖는 개별 인스턴스의 이름을 사전에 지정하여 표현하고 있습니다.
예를 들어, 운전자(Driver) 블록의 인스턴스는 driver로, 승객(Passenger) 블록의 인스턴스는 pass, 차량(Vehicle) 블록의 인스턴스는 r, 대기(Atmosphere) 블록의 인스턴스는 atm으로 정의하고 있습니다.
다음 그림에서 보는 바와 같이 차량(Vehicle)은 Automobile Domain 블록 내에서 다른 여러 구성요소들과 상호작용을 위한 인터페이스를 정의하고 있습니다. 이를 표현하기 위해 내부 블록 다이어그램(Internal Block Diagram)을 사용하였습니다. 그리고 앞에서 잠깐 언급되었지만, 내부 블록 다이어그램에서는 파트(Part)를 이용하여 표현하기 때문에 블록 정의 다이어그램(bdd, Block Definition Diagram)에서 정의된 Part 명을 이용하여 내부 블록 다이어그램을 표현합니다. 내부 블록 다이어그램의 표기법은 따로 정리된 다른 글을 참고 해 주시면 좋겠습니다.
- 차량(Vehicle)의 블록 인스턴스(or Part)는 v이며, 이를 표현하기 위해 v:Vehicle과 같이 표현합니다.
- 차량(Vehicle) 인스턴스는 2개의 출력 포트와 4개의 입력포트로 구성되어 있습니다. 그리고 이들 포트를 통해 데이터(Item)이 전달되며, 이 아이템의 흐름(IF, Item Flow)은 다른 인스턴스의 포트와 연결되도록 인터페이스가 구성되어 있습니다.
- 차량(Vehicle)은 후륜구동(Rear Wheel Drive) 차량으로 정의되어 있으며, 후륜과 도로간 인터페이스가 정의되어 있습니다. 왼쪽과 오른쪽 후륜에 대해 각각 인터페이스가 정의되는데, 이는 타이어와 도로 간 마찰이나 기타 요인에 따라 동력이 다른게 불배될 수 있기 때문입니다.
- 운전자로부터 가속 명령(Accelerator Cmd)을 차량으로 전달하기 위해 Foot IF(Item Flow)로 표현되어 있으며, 변속기 레버 선택값(Gear Select)은 Hand IF(Item Flow)로 표현되어 차량으로 전달하고 있습니다.
2. 차량 계층 구조 상세화를 위한 블록 정의 다이어그램 업데이트
이번 다이어그램에서는 차량의 구성 요소로 세분화된 차량 내부 구조를 보여줍니다. 차량(Vehicle)dms 차체(Bocy), 샤시(Chassis), 내부(Interior), 파워트레인(Power Train) 등으로 구성되어 있습니다. 각각의 블록 인스턴스도 함께 정의되어 있습니다. 또한 엔진의 경우, 4기통 엔진과 6기통 엔진으로 구분되어 정의되어 있습니다.
- 차량(Vehicle) 블록은 대상 시스템(System of Interest)임을 명시적으로 «System of Interest»로 표현하고 있습니다.
- 차량(Vehicle) 블록의 구성 요소들은 블록 인스턴스(파트, Part)를 별도로 정의하고 있습니다.
- 차체(Body) 블록은 drag coef라는 값을 실수형으로 정의하고 있습니다.
- 파워트레인(Power Train)의 구성 요소에는 엔진(Engine), 변속기(Transmission), 차동장치(Differential), 그리고 바퀴(Wheel)로 구성되어 있습니다. 이때 바퀴는 오른쪽 후륜과 왼쪽 후륜으로 구분되어 있습니다.
- 엔진(Engine)은 4기통 엔진과 6기통 엔진으로 나뉘며, 이는 상속 관계로 표현되어 있습니다. 또한 {complete, disjoint}라는 제약사항을 통해 이 차량에서 가능한 모든 엔진 유형은 4기통과 6기통 뿐이며, 두 구성은 서로 배타적입니다.
- 각 블록의 특징으로 하드웨어와 소프트웨어를 구분하기 위해 «hardware», «software» 스테레오 타입을 정의할 수 있습니다. 위 그림에서는 «hardware»에 대해서만 명시적으로 표현되어 있으며, «software»의 경우, Vehicle Processor 하드웨어에 할당 관계를 정의하며, Vehicle Controller를 «software»로 표현할 수 있습니다. 그리고 바로 이 소프트웨어에서 엔진 및 변속기 기능을 제어하여 엔진 성능과 연료 효율을 최적화하게 됩니다.
- 연료 탱크(Fuel Tank)는 연료(Fuel)을 참조하고 있음을 표현하고 있습니다. 연료는 연료 탱크의 물리적 일부가 아니기 때문에 참조(reference) 관계로 표현하고 있습니다.
3. 차량 동력 제공 기능 상세화를 위한 활동 다이어그램 업데이트
Provide Power 활동 다이어그램은 차량이 운전자의 가속 명령(Accelerator Cmd)에 응답하여 도로 표면에서 토크(Torque)를 생성하는 과정을 나타냅니다.
- 외부 입력으로 는 운전자로부터 가속 명령(Accelerator Cmd)과 변속기 레버값(Gear Select)을 입력 받습니다. 또한 대기(Atosmophere)로부터 공기(Air)를 입력받아, 엔진 연소를 지원합니다.
- 출력은 바퀴로부터 도로 표현에 전달되는 토크가 있습니다.
- 차량 제어기(Vehicle Controller)는 소프트웨어(«software») 스테레오 타입으로 정의되어 있습니다. 그리고 앞에서의 외부 입력을 받아서 엔진과 변속기로 출력을 전달합니다. 이를 위해 소프트웨어 기능(행위)으로 Control Fule Air Mixture와 Control Gear가 있습니다. (Control Fuel Air Mixture and Control Gear)
- 연료 탱크(Fuel Tank)는 연료를 저장하고 공급하는 기능을 수행합니다. (Store and Dispense Fuel)
- 엔진(Engine)은 연료 탱크과 차량 제어기에서 전달된 Fuel-Air-Cmd와 대기의 공기를 입력을 받아 엔진 토크를 생성합니다. (Generate Torque)
- 변속기(Transmission)는 변속기에서 엔진 토크를 증폭합니다. (Amplify Torque)
- 차동장치(Differential)는 증폭된 토크를 좌/우 후륜으로 분배합니다. 그리고 후륜간의 토크 차이를 모니터링하며, 한쪽 바퀴가 마찰을 잃을 경우, Loss of Traction 신호를 브레이크 시스템으로 전송합니다. (Distribution Torque)
- 좌/우 후륜에서는 바퀴가 도로 표현에 토크를 전달하여 차량을 가속하는 행위를 수행합니다. (Provide Traction)
- Gear Select을 제외한 모든 입력과 출력은 연속적 흐름(Continuous Flow)으로 표시됩니다. 여기서 연속적 흐름은 입력과 출력의 도달 간격이 0에 가깝게 작아지는 흐름을 의미합니다. 이는 스트리밍 입력/출력(Streaming Inputs/Outputs) 개념을 기반으로 하며, 작업이 실행되는 동안 입력을 수락하고 출력을 생성합니다.
4. 동력 서브 시스템을 위한 내부 블록 다이어그램
앞에서 살펴본 활동 다이어그램(Activity Diagram)은 시스템의 부품들이 동력을 제공하기 위해 어떻게 상호작용하는지 보여주는 행위적 관점이었습니다. 그러나 다음 그림은 차량의 내부 구조와 동력을 제공하기 위해 파트(Part)들이 어떻게 연결되는지를 표현합니다. 이는 구조적 관점으로 파트간의 인터페이스를 명세하는데 사용됩니다.
- 동력 서브시스템(Power Subsystem)은 차량 동력을 제공하는 파트들로 구성됩니다. 그리고 이에 포함되는 주요 파트들은 Engine, Transmission, Differential, Right Rear Wheel, Left Rear Wheel, Vehicle Processor, Fuel Tank가 있습니다.
- 연료 탱크(Fuel Tank) 내, 연료는 물리적으로 연료 탱크의 일부가 아니므로 참조 관계를 나타내는 점선으로 표현되어 있습니다.
- 위 내부 블록 다이어그램은 동력 제공을 위한 서브시스템 중 Provide Power 뿐만 아니라, Provide Braking, Provide Steering과 같은 기능을 추가로 구현하는 다른 서비스시템에도 동일하게 적용 할 수 있습니다.
<<이전글 보기
<<더 이전글 보기
'System Engineering > SysML' 카테고리의 다른 글
SysML/UML - Use Case Diagram (유즈케이스 다이어그램) : 관계 및 명세서 (1) | 2024.12.08 |
---|---|
MBSE Example #4: 차량 가속도 vs. 연비 - 트레이드오프 분석 (with SysML) (1) | 2024.12.06 |
MBSE Example #2: 차량 가속도 vs. 연비 - 트레이드오프 분석 (with SysML) (0) | 2024.12.01 |
MBSE Example #1: 차량 가속도 vs. 연비 - 트레이드오프 분석 (with SysML) (0) | 2024.11.30 |
SysML Reference Guide: 파라메트릭 다이어그램(Parametric Diagram) - 제약 사항 표현 (1) | 2024.11.28 |