( ) - 10

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 57

모델 기반 설계 개요 4

학습목표 6
학습내용 7
학습정리 25

MIL: 적응형 순항 제어기/자동긴급 제동시스템 26


학습목표 28
학습내용 29
학습정리 56

3
4
모델 기반 설계(Model based Design, MBD)란? 7
모델 기반 설계의 특징 8
기존 개발 워크플로우와 모델기반설계 차이 9
자동 코드 생성(Auto Code Generation)이란? 11
모델 기반 V 사이클 소프트웨어 개발 프로세스 12
MILS (Model-in-the-Loop Simulation) 13
SILS (Software-in-the-Loop Simulation) 14
PILS (Process-in-the-Loop Simulation) 15
HILS (Process-in-the-Loop Simulation) 16
자동차 테스트 단계 17
CAN (Controller Area Network) 통신이란? 19
Rapid Control Prototyping (RCP) 시스템 20
모델 기반 설계 적용 사례 21

5
• 모델 기반 설계의 특징에 대해 학습한다.

• 모델 기반 V 사이클 소프트웨어 개발 프로세스에 대해 학습한다.

• 자동차 개발 과정에서 모델 기반 설계 활용법에 대해 학습한다.

6

• 요구사항 수집에서 설계, 구현 및 테스트에 이르는 개발 과정의 중심에 시스템 모델이


중요한 역할
• 실제 시스템을 가상의 모델로 구현하여 활용하는 것
• 자동 코드 생성을 활용해 임베디드 보드에 신속한 이식 가능
• 정밀 시뮬레이션 모델 구축이 MBD 개발의 핵심

출처 https://kr.mathworks.com/help/simulink/slref/vehicle-electrical-system.html

7

• 모델링과 시뮬레이션을 통한 새로운 아이디어 시도 및 반복 가능한 테스트의 신속한


수행
• 보고, 코딩, 검증 등의 주요 단계를 자동화하여 수작업 단계 제거 및 인적 오류 감소
• 요구사항 충족을 위한 구성요소 설계 및 테스트를 하나의 시스템 상에서 구성 가능
• 모델을 디지털 트윈으로 사용하여 예측 정비, 결함 검출을 수행하고 작동 중인
시스템을 최적화

8

• 기존 개발 방식은 요구사항에 따라 사양서를 작성한 후 이에 맞는 코드를 작성할


필요가 있음
• 요구사항이 달라질 경우 그에 맞게 다시 사양서 작성 후 핸드 코딩을 해야 하므로
반복성이 떨어짐
• 모델 기반 설계의 경우 변경된 요구사항에 대해 동일한 모델을 사용 가능
• 자동코드 생성 기능을 통해 요구사항이 적용된 모델을 자동으로 C/C++ 코드로
변경하여 프로세서에 적용 가능

출처 https://upload.wikimedia.org/wikipedia/commons/4/43/Intel_Pentium_D_930_with_i945GC_chipset.jpg

9

• 코드 생성처럼 워크플로에서 많은 시간이 소요되거나 오류가 발생하기 쉬운 단계의


자동화
• 개발과정의 중심에 시스템 모델이 있음

출처 https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTekmF6gKOeq4Hoj8a2lAHvwgwhJ_bBEpBSabLv1-2r6UtIvbUJ

10

• 기존의 개발과정에서는 임베디드 코드를 수작업으로 작성하여 시간이 많이 들고


오류가 발생하기 쉬움
• 모델 기반 설계를 이용하면 손으로 수천 줄의 코드를 작성하는 대신에 모델로부터
자동으로 코드를 생성
• 생성된 코드는 실시간으로 하드웨어에서 테스트가 가능하여 개발/검증을 빠르게
수행가능

출처 https://www.researchgate.net/figure/Simplified-illustration-of-SW-development-process-based-on-autocode-code-
generation_fig1_336636061

11

• 왼쪽이 설계, 중간이 구현, 우측이 검증 단계


• 개발 과정에서 MILS - SILS - HILS 를 거침

출처 https://koreascience.kr/article/JAKO201713547378689.pdf

12

• 모델링 프레임워크에서 모델과 그 주변 환경을 시뮬레이션 하는 개발 초기의


테스팅 과정
• 정확한 시뮬레이션 모드로 제어기 설계 단계에서 동작 유효성 및 오류를 검사
• 설계된 제어로직과 제어 대상의 모델을 사용하여 설계 상 문제를 조기에 발견

출처 https://blog.naver.com/PostList.naver?blogId=dspace_korea&from=postList&categoryNo=10|교수자 제공

13

• 모델 기반 설계는 매트랩/시뮬링크 등을 활용하지만, 실제 마이크로프로세서는


C/C++ 로 동작
• 자동코드 생성 기능으로 모델로부터 자동으로 C/C++ 코드 생성
• 모델과 C/C++ 코드를 동일한 환경에서 실행하여 동일한 결과가 나오는지 확인
(자동생성 코드 신뢰성 검증)

출처 https://blog.naver.com/PostList.naver?blogId=dspace_korea&from=postList&categoryNo=10
https://www.youtube.com/watch?v=YMcOjBSjP4o

14

• Host-PC에서 정상적으로 실행되는 코드가 실제 적용시에는 문제를 일으킬 수


있음
• 생성된 C/C++ 코드를 실제 임베디드보드에 빌드하여 실행 후 나온 결과가
기존과 동일한지 확인
• 이를 통해 빌드 환경과 실시간성에 대한 신뢰성 확보 가능

출처 https://blog.naver.com/PostList.naver?blogId=dspace_korea&from=postList&categoryNo=10
https://www.youtube.com/watch?v=YMcOjBSjP4o

15

• PILS보다 더 현실에 가까우며 실시간성이 확보되는 검증 방식


• 실시간 시뮬레이션을 위해 Plant Model을 고성능 Realtime Target Hardware에
이식
• 임베디드 보드 (제어기)와 Realtime Target Hardware가 실시간 통신하여 데이터
송/수신

출처 https://www.mouser.kr/images/marketingid/2020/img/137362926.png?v=070223.0430
http://www.dttechsolutions.com/images/products/DSpace/labbox2.jpeg

16

출처 대림대학교 이영옥 교수

17

출처 대림대학교 이영옥 교수

18

• CAN : 차량 내에서 호스트 컴퓨터 없이 장치들이 서로 통신하기 위해 설계된 표준


통신 규격
• 과거에는 각 모듈이 1:1 통신을 해서 모듈이 추가될 때마다 더 많은 연결선이 필요
하였음 (UART)
• 차량이 지능화됨에 따라 매우 많은 통신이 필요하여 기존의 통신방식으로는 통신선
배치의 문제 발생
• 하나의 인터페이스로 여러 개의 모듈을 제어 가능

출처 http://www.fescaro.com/ko/archives/249/

19

• 단기간에 제어 알고리즘을 효율적으로 설계, 개발, 검증하기 위해 사용하는 개발환경


• 양산형 코드가 생성되기 전에 Real-time 시뮬레이터에서 생성된 코드를 검증
• RCP 단계에서는 임베디드 컨트롤러는 생략

출처 https://kr.mathworks.com/products/simulink-real-time.html

20

• HILS : 제동-조향 하드웨어 기반 제어알고리즘 개발

- 실제 하드웨어 : 조향 및 제동시스템
- 시뮬레이션 Plant 모델 : CarSim 소프트웨어
- Real-Time 타겟 PC : DSpace Autobox
- 임베디드 컨트롤러 : DSpace MicroAutobox

출처 교수자 제공

21

• NASA X-43A 제트기 제어 소프트웨어 설계


- 개발 과정 :
① 제어 시스템을 모델링하고 검증하기 위해 Simulink 사용
② 비행 코드를 자동생성하기 위해 Simulink Coder를 사용
③ 비행 후 데이터를 처리하고 분석하기 위해 MATLAB을 사용
- 결과 :
① 기존 대비 개발 과정을 수개월 단축
② 실제 비행한 적이 없는 기체에 대해 첫 번째 시도에서 안정적으로 비행 제어
성공

출처 https://kr.mathworks.com/company/user_stories/nasas-x-43a-scramjet-achieves-record-breaking-mach-10-speed-using-
model-based-design.html

22

• LG전자 차량용 구동 인버터 제어 소프트웨어 개발

- 목표 : ISO 26262 표준을 준수하는 인버터 제어 소프트웨어 개발


- 문제점 :
① 차량용 인버터는 차량 국제 기능 안전 표준인 ISO 26262를 반드시
준수하여야 함
② 소프트웨어 개발에 여러 그룹이 참여하여 커뮤니케이션 문제로 인한 오류가
발생하기 쉬움

출처 https://kr.mathworks.com/company/user_stories/lg-electronics-develops-iso-26262-compliant-power-inverter-control-
software-with-model-based-design.html

23

• LG전자 차량용 구동 인버터 제어 소프트웨어 개발


- 개발 과정 :
① 모델 간의 입출력 데이터 분석을 통해 ISO 26262 표준 준수
② 각 모델 개발 후 연결하는 방식으로 그룹별 개발 진행
③ 자동 코드 생성을 활용하여 신속한 개발/검증 진행
- 결과 :
① 촉박한 일정에 맞춰 인버터 소프트웨어 플랫폼의 개발 및 검증을 완료함
② ISO 26262 표준에서 요구하는 엄격한 성능을 충족함

출처 https://kr.mathworks.com/company/user_stories/lg-electronics-develops-iso-26262-compliant-power-inverter-control-
software-with-model-based-design.html

24
• 모델 기반 설계의 특징에 대해 설명할 수 있다.

• 모델 기반 V 사이클 소프트웨어 개발 프로세스에 대해 설명할


수 있다.

• 자동차 개발 과정에서 모델 기반 설계 활용법에 대해 설명할


수 있다.

25
26
Matlab Toolbox 29
시나리오 데이터 생성 30
Adaptive Cruise Control 32
Autonomous Emergency Braking 45

27
• 시뮬링크를 활용하여 적응형 순항 제어기 설계법에 대해
학습한다.

• 시뮬링크를 활용하여 자동 긴급 제동시스템 설계법에 대해


학습한다.

28

• 매트랩 실행 - 앱 - Driving Scenario Designer 실행


(Automated Driving Toolbox필요)

출처 https://kr.mathworks.com/

29

• Add Road 후 마우스 클릭 혹은 road center 입력으로 도로 생성

출처 https://kr.mathworks.com/

30

• Add Actor로 차량 배치 후 mat 저장

출처 https://kr.mathworks.com/

31

⚫ Live Script

출처 https://kr.mathworks.com/

32

⚫ 기본 원리

• 차량의 속도 유지(Cruise Control)에 더해 앞 차 주행 상황에 따른 속도 조절


가능
• 앞차량과의 상대거리를 받아 목표거리와의 오차 계산 및 제어
• 목표
① 전방 차량이 정속으로 주행 시 ACC 차량의 거리오차를 0으로 수렴
② 전방 차량의 감/가속에 대한 거리오차의 전파의 안정성 보장

33

⚫ 차량 제어기-전체구조

출처 https://kr.mathworks.com/

34

⚫ 차량 제어기-외부 환경

출처 https://kr.mathworks.com/

35

⚫ 차량 제어기-CTG ACC

출처 https://kr.mathworks.com/

36

⚫ 차량 제어기-CTG ACC

1. 제어기에 사용되는 변수, 입출력 값 불러오기

2. add, divide, gain 블록으로 식에 맞게 값 연결

출처 https://kr.mathworks.com/

37

⚫ 차량 제어기-CTG ACC
Cruise Controller : 원하는 속도 –현재속도로 가속도 계산,
전방차량과 거리가 멀 때 작동

3. Cruise Controller 추가

4. Min 블록으로 ACC와 CC중 가속도가 작은 값 사용


(속도가 원하는 값이고 전방차량과 거리가 멀 때 전방차량 추종 X)

출처 https://kr.mathworks.com/

38

⚫ 차량 제어기-CSG ACC

출처 https://kr.mathworks.com/

39

⚫ 결과 분석

출처 https://kr.mathworks.com/

40

⚫ 결과 분석

• 시뮬레이션 종료 후 상단의 데이터 인스펙터로 데이터 분석 가능


• ‘보관’에 이전 시뮬레이션 결과가 보존됨, 파라미터 비교 가능

출처 https://kr.mathworks.com/

41

⚫ 결과 분석

• 매트랩 작업공간에서 out.logsout에 해당 신호들이 저장됨


• 이를 활용하여 매트랩에서 데이터 후처리 가능

출처 https://kr.mathworks.com/

42

⚫ 3D 애니메이션 실행

출처 https://kr.mathworks.com/

43

⚫ 3D 애니메이션 실행

출처 https://kr.mathworks.com/

44

⚫ 기본 원리
• 목표: 전방 물체와의 충돌 방지
• 전방차량과의 충돌 예측시간 (Time-to-collision) 계산 후 TTC가 일정
이하로 낮아지면
① 운전자 경보 (Forward-collision warning, 감속 X)
② 부분 감속 (Partially braking)
③ 완전 감속 (Full braking)
순으로 진행

출처 https://media.torque.com.sg/public/2019/06/autonomous-emergency-braking-2.jpg

45

⚫ 스크립트

• 시나리오: 옆차선의 전방차량이 자차량의


앞으로 차선 변경 후 급정지 빠른 감속으로
충돌 회피 필요

출처 https://kr.mathworks.com/

46

⚫ 스크립트

출처 https://kr.mathworks.com/

47

⚫ 전체 구조

출처 https://kr.mathworks.com/

48

⚫ 외부 환경

출처 https://kr.mathworks.com/

49

⚫ AEB 제어기

• AEB 정지조건: 자차량 속도가


1km/h 보다 작고 AEB가
실행 중일 때
• AEB 실행조건: 전방차량이 같은
차선에 들어왔을 때만 실행
(센터 대신 사용)

출처 https://kr.mathworks.com/

50

⚫ TTC 계산

• 상대속도가 0일 때 나눌 수 없으므로 절대값 → 하한 제한 [0.01, inf]


→ 나누기 → sign으로 부호 곱함

출처 https://kr.mathworks.com/

51

⚫ 제동시간 계산

• Forward Collision Warning : 운전자의 반응시간, 감속량 계산


• AEB 제동시간: 감속/속도 + 제어기 반응시간 (0.08s)

출처 https://kr.mathworks.com/

52

⚫ AEB Logic Tutorial

출처 https://kr.mathworks.com/

53

⚫ AEB Logic
• Chart
- 입력값에 따라 매 스텝마다 특정 상태에 위치함
- 조건에 따라 다른 상태로 천이(State Transition), 천이 조건으로 입력 변수값
사용
- 위치한 상태에 해당하는 명령 실행
- 첫 줄 : 상태의 이름
- Entry : 상태에 해당하는 명령 실행, 지정된 변수는 출력됨

- 현재의 감속량으로는 제동시간 > TTC일 때 다음 상태로 천이


- 외부에서 계산된 stop 신호에 따라 AEB 종료

출처 https://kr.mathworks.com/

54

⚫ AEB Logic Tutorial

출처 https://kr.mathworks.com/

55
• 시뮬링크를 활용하여 적응형 순항 제어기 설계법에 대해
설명할 수 있다.

• 시뮬링크를 활용하여 자동 긴급 제동시스템 설계법에 대해


설명할 수 있다.

56

You might also like