-
Symbol Mapping 기능을 이용한 yaw_rate_ws 계산하기simulation 2024. 12. 9. 10:54
시작하기 전에
TSMaster의 Simulation에 Symbol Mapping 이라는 기능이 있다. 이 기능을 이용하면 CAN(LIN/ FlexRay) 신호를/신호들을 이용하여 연산을 할 수 있고, 연산 결과를 시스템 변수에 넣을 수 있다는 것을 알았다.
나는 앞에서 미니프로그램으로 CAN의 바퀴 속도 신호들에서 요-레이트(yaw_rate_ws)를 계산한 적이 있다. (CAN 신호들로 실시간 연산하기 - 미니프로그램으로 yaw_rate_ws 계산 :: hsl's tsmaster 사용기) CAN 신호들로 간단한 계산을 하여 시스템 변수에 넣는 방식이었다. 심볼 매핑의 작동 방식과 동일하다. 다시 말하면 미니프로그램이 아닌 심볼 매핑으로 yaw_rate_ws를 계산할 수 있다는 의미다. 심볼 매핑으로 yaw_rate_ws를 계산해 본다.
개요
- 심볼 매핑으로 새로운 시스템 변수 (yaw_rate_ws_map)를 만든다.
- yaw_rate_ws_map에 연산에 필요한 수식을 입력한다.
- 그래픽 창에서 YAW_RATE(CAN 신호. 차량의 센서가 측정한 요-레이트), yaw_rate_ws (미니프로그램으로 계산한 요-레이트), yaw_rate_ws_map를 비교한다.
심볼 매핑으로 yaw_rate_ws_map 만들기
- 메인 메뉴/ Simulation/ System Variables 버튼을 클릭하여 System Variable Management 창을 연다.
- System Variable Management 창에서 + 버튼을 이용하여 새 시스템 변수 정의 창을 연다. (아래 그림은 yaw_rate_ws_map 신호가 이미 정의되어 있는 상태이다.)
- 새 시스템 변수 정의 창에서 아래와 같이 yaw_rate_ws_map을 정의한다.
- 메인 메뉴/ Simulation/ Symbol Mapping 버튼을 클릭하여 Symbol Mapping 창을 연다.
- Symbol Mapping 창의 Desitnation Symbol Variable 영역에서 마우스 우클릭하여 Add System Variable을 선택한다.
- Select System Variables 창이 연린다. 위에서 정의했던 yaw_rate_ws_map을 선택한다.
yaw_rate_ws_map에 연산에 필요한 수식을 입력한다.
- Symbol Mapping 창에서 yaw_ratte_ws_map 변수를 선택한다. 마우스 우클릭하여 Set Expression을 선택한다. yaw_rate_ws_map에는 수식 계산의 결과 값이 저장되게 된다.
- Set Expression을 선택하면 Symbol Mapping 창의 외쪽 영역에 수식을 입력할 수 있게 된다.
- 초록색 + 기호 버튼을 클릭하요 변수를 추가한다. yaw_rate_ws_map을 계산하는데 WHL_SPD_RR과 WHL_SPD_RL 두 신호가 필요하다. 변수를 2개 (x1, x2) 만든다.
- x1의 value 칸을 클릭하면 선택을 할 수 있는 화살표 모양의 버튼이 표시된다.
- 버튼을 클릭하면 변수를 선택할 수 있는 원형 선택 메뉴가 뜬다. CAN 신호를 선택한다.
- CAN dbc 화면이 뜬다. WHL_SPD_RR을 선택한다.
- 같은 방법으로 x2에 WHL_SPD_RL을 선택한다.
- Expression 창에 아래와 같이 입력한다.
(x1 - x2) * 10.27
- 10.27은 km/h 단위의 바퀴 속도를 m/s로 변환하고, 차의 뒷바퀴 트랙 폭(데이터를 받은 현대 베뉴의 경우 1.55m)으로 나누고, rad/s 단위의 요-레이트를 deg/s으로 변환하는 값이다.
그래픽 창에서 확인
- 그래픽 창에 YAW_RATE(CAN 신호. 차량의 센서가 측정한 요-레이트), yaw_rate_ws (미니프로그램으로 계산한 요-레이트), yaw_rate_ws_map를 추가한다.
- 아래 그림은 오프-라인으로 Bus Replay한 결과이다. yaw_rate_ws_map이 n.a.로 표시되지 않는다. 미니프로그램으로 계산한 yaw_rate_ws는 잘 표시되면 YAW_RATE와 유사하나 노이즈가 심하다.
- 아래 그림은 온-라인으로 Bus Replay한 결과이다. yaw_rate_ws_map은 잘 표시된다. yaw_rate_ws는 n.a.로 표시되지 않는다. (이것이 맞는 건가?) yaw_rate_ws_map은 YAW_RATE와 유사하나 노이즈가 심하다. (당연하다. yaw_rate_ws나 yaw_rate_ws_map이나 계산이 동일하다.)
결론
- TSMaster의 심볼 매핑 기능을 이용하면 신호들을 이용한 연산을 쉽게 구성할 수 있다. 그리고 계산 결과를 온-라인(실시간)으로 볼 수 있다. (오프-라인으로 볼 수 없다.)
'simulation' 카테고리의 다른 글
트레이스를 이용한 RBS(Remaining Bus Simulation) (0) 2024.12.06 CAN 버스 시뮬레이션 (RBS: Remaining Bus Simulation) (0) 2024.11.25 판넬로 사용자 입력 받는 법 (0) 2024.11.03