이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
Stateflow 차트를 사용하여 지능형 차량의 제어 자동화하기
R2025b이 예제에서는 동일한 의사 결정 로직에 의해 제어되는 지능형 차량이 있는 고속도로 시나리오를 모델링하는 방법을 보여줍니다. 각 차량은 독립 실행형 Stateflow® 차트에 정의된 논리에 따라 가속하거나 감속하거나 차선을 변경할 때를 결정합니다. 주행 조건(주변 차량의 상대적 위치와 속도 포함)은 차량마다 다르기 때문에, MATLAB®의 개별 차트 객체가 고속도로의 개별 차량을 제어합니다.
주행 시나리오 열기
예제를 시작하려면 스크립트 sf_driver_demo.m을 실행하십시오. 이 스크립트는 긴 고속도로와 여러 대의 차량이 있는 3차원 애니메이션을 표시합니다. 뷰는 한 대의 차량과 그 차량의 주변 환경에 중점을 둡니다. 이 차량이 고속도로를 따라 이동할 때, 독립 실행형 Stateflow 차트 sf_driver는 차량의 동작을 결정하는 의사 결정 로직을 보여줍니다.

각 차량은 임의의 위치에서 출발하여 목표 속도로 이동하는 것을 시도합니다. 목표 속도는 무작위로 선택되므로 차량은 서로를 방해할 수 있습니다. 이 상황에서 차량은 차선 변경을 시도하고 목표 속도로 이동하는 것을 재개합니다.
클래스 파일 HighwayScenario는 고속도로와 그 위의 차량이 포함된 3차원 환경을 나타내는 객체를 정의합니다. 차량의 모션을 제어하기 위해 drivingScenario (Automated Driving Toolbox)drivingScenario 객체는 Stateflow 차트 객체로 구성된 배열을 만듭니다. 각 차트 객체는 시뮬레이션에서 다른 차량을 제어합니다.
차량의 의사 결정 로직 실행하기
Stateflow 차트 sf_driver는 두 개의 최상위 수준 상태 LaneKeep과 LaneChange로 구성됩니다.
LaneKeep 상태가 활성이면 대응되는 차량은 해당 차선을 유지합니다. 이 상태에서 가능한 두 가지 하위 상태는 다음과 같습니다.
Cruise는 차량 바로 앞의 영역이 비어 있고 차량이 목표 속도로 이동할 수 있는 경우 활성입니다.Follow는 차량 바로 앞의 영역이 비어 있지 않고 목표 속도가 선행 차량의 속도보다 빠른 경우 활성화됩니다. 이 경우 차량은 강제로 감속하고 차선 변경을 시도합니다.
LaneChange 상태가 활성이면 대응되는 차량은 차선 변경을 시도합니다. 이 상태에서 가능한 두 가지 하위 상태는 다음과 같습니다.
Continue는 차량 옆의 영역이 비어 있고 차량이 안전하게 차선을 변경할 수 있는 경우 활성입니다.Abort는 차량 옆의 영역이 비어 있지 않은 경우 활성화됩니다. 이 경우 차량은 강제로 차선을 유지합니다.

상태 LaneKeep과 LaneChange 간 천이는 isLaneChanging 값에 의해 가드됩니다. LaneKeep 상태에서, 차트는 하위 상태 Follow가 활성이고 차량의 옆에 차선 변경을 위한 충분한 공간이 있으면 이 로컬 데이터를 true로 설정합니다. LaneChange 상태에서, 차트는 차량이 차선 변경을 완료하면 이 로컬 데이터를 false로 설정합니다.
참고 항목
drivingScenario (Automated Driving Toolbox)
도움말 항목
- Create Stateflow Charts for Execution as MATLAB Objects
- 프로그래밍 방식으로 주행 시나리오 만들기 (Automated Driving Toolbox)
- Create Actor and Vehicle Trajectories Programmatically (Automated Driving Toolbox)
- Define Road Layouts Programmatically (Automated Driving Toolbox)