RBS
 
Loading...
Searching...
No Matches
HPC2_Functions.cin File Reference

HPC ECU의 회생 제동 제어, 상태 관리 및 주요 기능 로직 구현 More...

Functions

void OnEnterFailSafe ()
 Fail-Safe 상태 진입 시 호출되는 함수
 
void OnEnterBatteryProtection ()
 배터리 보호 상태 진입 시 호출되는 함수
 
void OnEnterNormal ()
 정상 상태 진입 시 호출되는 함수
 
void TransitionToState (enum SystemState newState)
 시스템 상태를 새로운 상태로 전환하는 함수
 
void SetFault (dword faultBit)
 폴트 레지스터에 특정 폴트 비트를 설정하는 함수
 
void ClearFault (dword faultBit)
 폴트 레지스터에서 특정 폴트 비트를 해제하는 함수
 
void InitializeGlobals ()
 시작 시 모든 전역 변수를 기본 상태로 초기화
 
float CalculateOptimalTorque ()
 운전자 입력과 차량 상태를 기반으로 최적의 모터 토크를 계산하는 함수
 
void UpdateVehiclePhysics ()
 토크 값을 기반으로 차량의 RPM과 속도를 업데이트하는 물리 시뮬레이션 함수
 
void ExecuteTorqueControlTask ()
 주기적으로 모터 토크 제어 명령을 전송하는 태스크
 
void ExecuteAutoModeOptimizationTask ()
 자동 모드 최적화 태스크
 
void ExecuteClusterDisplayTask ()
 클러스터에 표시할 정보를 주기적으로 전송하는 태스크
 
void ExecuteEnergyEfficiencyTask ()
 에너지 효율 계산(누적 회생 에너지)을 주기적으로 수행하는 태스크
 
void HandleMainTaskTimer ()
 메인 태스크 타이머 이벤트 발생 시 주기적으로 호출되는 함수
 
void HandleStartEvent ()
 'on start' 이벤트 핸들러 로직을 처리
 
void HandleStopEvent ()
 'on stopMeasurement' 이벤트 핸들러 로직을 처리
 
void HandleWatchdogTimeout ()
 워치독 타임아웃 발생 시 호출되는 이벤트 핸들러
 
void SendModeChangeResponse (message M008_Mode_Change_Req request)
 회생제동 모드 변경 요청에 대한 응답 메시지를 전송하는 함수
 
void HandleModeChangeReqMessage (message M008_Mode_Change_Req msg)
 'on message M008_Mode_Change_Req' 이벤트 핸들러 로직을 처리
 
void HandleBatteryBasicMessage (message M006_Battery_Basic msg)
 'on message M006_Battery_Basic' 이벤트 핸들러 로직을 처리
 
void HandleRegenTorqueFeedbackMessage (message M002_Regen_Torque_Feedback msg)
 'on message M002_Regen_Torque_Feedback' 이벤트 핸들러 로직을 처리
 
void HandleFailSafeStatusMessage (dword faultCode)
 Fail-Safe 상태 메시지 수신 이벤트 핸들러 로직을 처리
 
void HandleVehicleDynamicsMessage (message M005_Vehicle_Dynamics msg)
 'on message M005_Vehicle_Dynamics' 이벤트 핸들러 로직을 처리
 
void HandleBrakePedalMessage (message M005_EXT_Brake_Pedal msg)
 'on message M005_EXT_Brake_Pedal' 이벤트 핸들러 로직을 처리
 

Detailed Description

HPC ECU의 회생 제동 제어, 상태 관리 및 주요 기능 로직 구현

Function Documentation

◆ CalculateOptimalTorque()

float CalculateOptimalTorque ( )

운전자 입력과 차량 상태를 기반으로 최적의 모터 토크를 계산하는 함수

Returns
계산된 최종 모터 토크 (구동: 양수, 제동: 음수)

다음 우선순위로 토크를 계산:

  1. 브레이크 오버라이드 시스템(BOS) - 브레이크 페달 우선
  2. 가속 의도 처리 - 가속 페달 입력
  3. 페달 Off 회생 제동 - 원페달 드라이빙
  4. 시스템 제약 조건 적용 - 배터리 보호, 속도별 보정
Here is the caller graph for this function:

◆ ClearFault()

void ClearFault ( dword faultBit)

폴트 레지스터에서 특정 폴트 비트를 해제하는 함수

Parameters
faultBit해제할 폴트 비트

폴트 해제 시 진단 데이터도 함께 업데이트

Here is the caller graph for this function:

◆ ExecuteAutoModeOptimizationTask()

void ExecuteAutoModeOptimizationTask ( )

자동 모드 최적화 태스크

주기적으로 자동 회생 제동 강도를 교통 상황과 도로 조건에 맞게 조절

  • 교통 정체 시: 강한 회생 제동으로 가다서다 상황 대응
  • 고속 주행 시: 부드러운 Coasting을 위해 회생 제동 감소
  • 일반 상황: 기본값(100Nm)으로 복귀
Here is the caller graph for this function:

◆ ExecuteClusterDisplayTask()

void ExecuteClusterDisplayTask ( )

클러스터에 표시할 정보를 주기적으로 전송하는 태스크

회생 제동 모드, 배터리 SOC, 누적 회생 에너지, 경고 상태, 차량/모터 속도 정보 전송

Here is the caller graph for this function:

◆ ExecuteEnergyEfficiencyTask()

void ExecuteEnergyEfficiencyTask ( )

에너지 효율 계산(누적 회생 에너지)을 주기적으로 수행하는 태스크

회생 제동 시에만 순간 전력과 누적 에너지를 계산 전력(W) = 토크(Nm) × 각속도(rad/s)

Here is the caller graph for this function:

◆ ExecuteTorqueControlTask()

void ExecuteTorqueControlTask ( )

주기적으로 모터 토크 제어 명령을 전송하는 태스크

FAIL_SAFE 상태에서는 실행하지 않으며, CRC를 포함한 E2E 보호 적용

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HandleBatteryBasicMessage()

void HandleBatteryBasicMessage ( message M006_Battery_Basic msg)

'on message M006_Battery_Basic' 이벤트 핸들러 로직을 처리

Parameters
msg수신된 메시지

배터리 SOC 및 온도 정보를 수신하여 배터리 보호 상태를 결정

Here is the call graph for this function:

◆ HandleBrakePedalMessage()

void HandleBrakePedalMessage ( message M005_EXT_Brake_Pedal msg)

'on message M005_EXT_Brake_Pedal' 이벤트 핸들러 로직을 처리

Parameters
msg수신된 메시지

브레이크 페달 위치 정보를 수신하여 제동 의도를 파악

◆ HandleFailSafeStatusMessage()

void HandleFailSafeStatusMessage ( dword faultCode)

Fail-Safe 상태 메시지 수신 이벤트 핸들러 로직을 처리

Parameters
faultCode수신된 폴트 코드

다른 ECU로부터 Critical Fault 수신 시 FAIL_SAFE 상태로 전환

Here is the call graph for this function:

◆ HandleMainTaskTimer()

void HandleMainTaskTimer ( )

메인 태스크 타이머 이벤트 발생 시 주기적으로 호출되는 함수

다양한 주기로 태스크를 스케줄링:

  • 주기(10ms): 토크 제어, 물리 시뮬레이션
  • 100ms 주기: 클러스터 디스플레이
  • 200ms 주기: 에너지 효율 계산
  • 500ms 주기: 자동 모드 최적화
Here is the call graph for this function:

◆ HandleModeChangeReqMessage()

void HandleModeChangeReqMessage ( message M008_Mode_Change_Req msg)

'on message M008_Mode_Change_Req' 이벤트 핸들러 로직을 처리

Parameters
msg수신된 메시지

회생 제동 모드 변경 요청을 처리하고 응답 메시지 전송

Here is the call graph for this function:

◆ HandleRegenTorqueFeedbackMessage()

void HandleRegenTorqueFeedbackMessage ( message M002_Regen_Torque_Feedback msg)

'on message M002_Regen_Torque_Feedback' 이벤트 핸들러 로직을 처리

Parameters
msg수신된 메시지

목표 회생 제동량 대비 실제 회생 제동량이 부족할 경우, 마찰 제동으로 보상 요청

◆ HandleStartEvent()

void HandleStartEvent ( )

'on start' 이벤트 핸들러 로직을 처리

전역 변수 초기화, 메인 태스크 및 워치독 타이머 시작, NORMAL 상태로 전이

Here is the call graph for this function:

◆ HandleStopEvent()

void HandleStopEvent ( )

'on stopMeasurement' 이벤트 핸들러 로직을 처리

시스템 종료 작업을 수행

◆ HandleVehicleDynamicsMessage()

void HandleVehicleDynamicsMessage ( message M005_Vehicle_Dynamics msg)

'on message M005_Vehicle_Dynamics' 이벤트 핸들러 로직을 처리

Parameters
msg수신된 메시지

가속 페달 위치, 차량 속도, 조향각 등의 정보를 갱신하고, 감속도를 계산하여 제동등을 제어

◆ HandleWatchdogTimeout()

void HandleWatchdogTimeout ( )

워치독 타임아웃 발생 시 호출되는 이벤트 핸들러

워치독 폴트를 설정하고 FAIL_SAFE 상태로 전환

Here is the call graph for this function:

◆ InitializeGlobals()

void InitializeGlobals ( )

시작 시 모든 전역 변수를 기본 상태로 초기화

시스템 시작 시 모든 데이터 구조체와 변수를 안전한 초기값으로 설정

Here is the caller graph for this function:

◆ OnEnterBatteryProtection()

void OnEnterBatteryProtection ( )

배터리 보호 상태 진입 시 호출되는 함수

회생 제동 토크가 제한됨을 알리고 관련 폴트를 설정

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OnEnterFailSafe()

void OnEnterFailSafe ( )

Fail-Safe 상태 진입 시 호출되는 함수

모든 토크 명령을 비활성화하고 안전 상태임을 알림

  • 회생 제동 모드를 OFF로 설정
  • 목표 토크를 0으로 설정
  • 긴급 명령 메시지 전송
  • Fail-Safe 상태 메시지 브로드캐스트
Here is the caller graph for this function:

◆ OnEnterNormal()

void OnEnterNormal ( )

정상 상태 진입 시 호출되는 함수

정상 작동 상태로 복귀했음을 알림

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SendModeChangeResponse()

void SendModeChangeResponse ( message M008_Mode_Change_Req request)

회생제동 모드 변경 요청에 대한 응답 메시지를 전송하는 함수

Parameters
request수신된 모드 변경 요청 메시지

정상 또는 배터리 보호 상태에서만 모드 변경 허용

Here is the caller graph for this function:

◆ SetFault()

void SetFault ( dword faultBit)

폴트 레지스터에 특정 폴트 비트를 설정하는 함수

Parameters
faultBit설정할 폴트 비트

이미 설정된 폴트는 중복 설정하지 않으며 진단 데이터에 반영

Here is the caller graph for this function:

◆ TransitionToState()

void TransitionToState ( enum SystemState newState)

시스템 상태를 새로운 상태로 전환하는 함수

Parameters
newState새로운 시스템 상태

상태 변경 시 해당 상태의 진입 함수를 호출하고 시스템 변수를 업데이트

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UpdateVehiclePhysics()

void UpdateVehiclePhysics ( )

토크 값을 기반으로 차량의 RPM과 속도를 업데이트하는 물리 시뮬레이션 함수

뉴턴의 회전 운동 법칙을 사용하여 각가속도를 계산하고, 기어비와 바퀴 반경을 고려하여 차량 속도를 결정

Here is the caller graph for this function: