MotorProtect.c 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #include <FU68xx_5.h>
  2. #include <Myproject.h>
  3. FaultStateType data mcFaultSource; ///< 故障类型
  4. /**
  5. @brief 偏置电压检测
  6. */
  7. void Fault_GetCurrentOffset(void)
  8. {
  9. if (mcCurOffset.OffsetFlag == 1)
  10. {
  11. #if (VHALF_EN == Enable) //有加VHALF偏置,理论值为16383
  12. {
  13. #if (Shunt_Resistor_Mode == Single_Resistor) //单电阻模式
  14. {
  15. if ((mcCurOffset.Iw_busOffset < GetCurrentOffsetValueLow) || (mcCurOffset.Iw_busOffset > GetCurrentOffsetValueHigh))
  16. {
  17. mcFaultSource = FaultGetOffset;
  18. }
  19. }
  20. #elif (Shunt_Resistor_Mode == Double_Resistor) //双电阻模式
  21. {
  22. if ((mcCurOffset.IuOffset < GetCurrentOffsetValueLow) || (mcCurOffset.IuOffset > GetCurrentOffsetValueHigh)
  23. || (mcCurOffset.IvOffset < GetCurrentOffsetValueLow) || (mcCurOffset.IvOffset > GetCurrentOffsetValueHigh))
  24. {
  25. mcFaultSource = FaultGetOffset;
  26. }
  27. }
  28. #elif (Shunt_Resistor_Mode == Three_Resistor) //三电阻模式
  29. {
  30. if ((mcCurOffset.IuOffset < GetCurrentOffsetValueLow) || (mcCurOffset.IuOffset > GetCurrentOffsetValueHigh)
  31. || (mcCurOffset.IvOffset < GetCurrentOffsetValueLow) || (mcCurOffset.IvOffset > GetCurrentOffsetValueHigh)
  32. || (mcCurOffset.Iw_busOffset < GetCurrentOffsetValueLow) || (mcCurOffset.Iw_busOffset > GetCurrentOffsetValueHigh))
  33. {
  34. mcFaultSource = FaultGetOffset;
  35. }
  36. }
  37. #endif
  38. }
  39. #else //没加VHALF偏置,理论值在0
  40. {
  41. #if (Shunt_Resistor_Mode == Single_Resistor) //单电阻模式
  42. {
  43. if (mcCurOffset.Iw_busOffset > GetCurrentOffsetValue)
  44. {
  45. mcFaultSource = FaultGetOffset;
  46. }
  47. }
  48. #elif (Shunt_Resistor_Mode == Double_Resistor) //双电阻模式
  49. {
  50. if ((mcCurOffset.IuOffset > GetCurrentOffsetValue) || (mcCurOffset.IvOffset > GetCurrentOffsetValue))
  51. {
  52. mcFaultSource = FaultGetOffset;
  53. }
  54. }
  55. #elif (Shunt_Resistor_Mode == Three_Resistor) //三电阻模式
  56. {
  57. if ((mcCurOffset.IuOffset > GetCurrentOffsetValue) || (mcCurOffset.IvOffset > GetCurrentOffsetValue) || (mcCurOffset.Iw_busOffset > GetCurrentOffsetValue))
  58. {
  59. mcFaultSource = FaultGetOffset;
  60. }
  61. }
  62. #endif
  63. }
  64. #endif
  65. }
  66. }