MotorControlFunction.h 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. /* --------------------------- (C) COPYRIGHT 2021 Fortiortech ShenZhen -----------------------------
  2. File Name : MotorControlFunction.h
  3. Author : Fortiortech Appliction Team
  4. Version : V1.0
  5. Date : 2021-04-11
  6. Description : This file contains motor contorl parameter used for Motor Control.
  7. ----------------------------------------------------------------------------------------------------
  8. All Rights Reserved
  9. ------------------------------------------------------------------------------------------------- */
  10. /* Define to prevent recursive inclusion -------------------------------------*/
  11. #ifndef __MOTORCONTROLFUNCTION_H_
  12. #define __MOTORCONTROLFUNCTION_H_
  13. #include "PosCheck.h"
  14. #include "FU68xx_5.h"
  15. #include "Customer.h"
  16. #include "Parameter.h"
  17. #include "AddFunction.h"
  18. ///****************************BEMF参数变量**************************/
  19. //#define TIM2_Fre (187500.0) // TIM2计数频率187.5KHz
  20. ////定义使用BEMF启动时ATO_BW值
  21. //#define ATO_BW_BEMF_START (400.0)
  22. //#define OBSW_KP_GAIN_BEMF_START _Q12(2 * _2PI * ATT_COEF * ATO_BW_BEMF_START / BASE_FREQ)
  23. //#define OBSW_KI_GAIN_BEMF_START _Q12(_2PI * ATO_BW_BEMF_START * ATO_BW_BEMF_START * TPWM_VALUE / BASE_FREQ)
  24. ////定义使用BEMF启动时DKI QKI值
  25. //#define DKI_BEMF_START _Q12(1.0)
  26. //#define QKI_BEMF_START _Q12(1.0)
  27. ////定义使用BEMF启动最低转速,ROM
  28. //#define BEMFMotorStartSpeed _Q15(150.0 / MOTOR_SPEED_BASE)
  29. //#define BEMFMotorStartSpeedHigh _Q15(4000.0 / MOTOR_SPEED_BASE)
  30. ////定义使用BEMF检测时间,ms
  31. //#define BEMF_START_DETECT_TIME (300)//速度快的电机,时间可以缩短到50
  32. ////定义使用BEMF启动检测延时,ms
  33. //#define BEMF_START_DELAY_TIME (150)//速度快的电机,时间可以缩短到15
  34. //#define TempBEMFSpeedBase (int32)(32767.0 / 8.0 * (TIM2_Fre * 60 / Pole_Pairs / MOTOR_SPEED_BASE))
  35. //#define TempBEMFSpeedBase1 (int32)(32767.0 / 6.0 / 8.0 * (TIM2_Fre * 60 / Pole_Pairs / MOTOR_SPEED_BASE))
  36. //typedef struct
  37. //{
  38. // uint16 BEMFSpeed; //反电动势检测的速度
  39. // uint32 BEMFSpeedBase; //反电动势检测的速度基准
  40. // uint8 BEMFStatus; //反电动势的状态,6拍的状态
  41. // uint8 FRStatus; //正反转
  42. // uint16 PeriodTime; //转一圈的周期计数值/8,因除数只能是16位的
  43. // uint16 MC_StepTime[6]; //转一拍的计数值数组
  44. // uint16 StepTime; //单拍的计数值
  45. // uint16 BEMFTimeCount; //反电动势检测时间
  46. // uint8 FirstCycle; //反电动势检测第一个周期
  47. // uint8 BEMFStep; //拍的计数
  48. // uint8 BEMFSpeedInitStatus; //速度初始化状态
  49. // uint8 FlagSpeedCal; //速度计算标志
  50. // uint8 BEMFStartStatus; //强制启动标志位
  51. // uint8 BEMFStartDelayStatus; //强制启动标志位
  52. // uint8 BEMFCCWFlag; //反转的强弱标志
  53. // uint8 BEMFBrakeFlag;
  54. //}BEMFDetect_TypeDef;
  55. //typedef struct
  56. //{
  57. // int8 BemfSetFR;
  58. // int8 BemfValue;
  59. // uint8 BemfNum;
  60. // int8 BemfTabA,BemfTabB,RefNumZ,RefNumY,RefNumX;
  61. // uint8 BemfFR;
  62. // uint8 Calcnum;
  63. // uint16 Calcnms;
  64. //} Stk_TypeDef;
  65. /* Define to prevent recursive inclusion -------------------------------------*/
  66. typedef struct
  67. {
  68. int16 IuOffset; //Iu的偏置电压
  69. int32 IuOffsetSum; //Iu的偏置电压总和
  70. int16 IvOffset; //Iv的偏置电压
  71. int32 IvOffsetSum; //Iv的偏置电压总和
  72. int16 Iw_busOffset; //Iw或Ibus的偏置电压
  73. int32 Iw_busOffsetSum;//Iw或Ibus的偏置电压总和
  74. int16 OffsetCount; //偏置电压采集计数
  75. int8 OffsetFlag; //偏置电压结束标志位
  76. }CurrentOffset;
  77. //extern Stk_TypeDef xdata Stk;
  78. //extern BEMFDetect_TypeDef xdata BEMFDetect;
  79. extern CurrentOffset xdata mcCurOffset;
  80. extern uint16 Power_Currt;
  81. extern uint8 Drv_SectionCheak(void);
  82. extern void VariablesPreInit(void);
  83. extern void GetCurrentOffset(void);
  84. extern void Motor_Ready (void);
  85. extern void Motor_Init (void);
  86. extern void FOC_Init(void);
  87. extern void Motor_Charge(void);
  88. extern void MC_Stop(void);
  89. extern void MC_Break(void);
  90. extern void Motor_Static_Open(void);
  91. extern void Motor_FocTailWind_Open(void);
  92. extern void Motor_Align(void);
  93. extern void MotorcontrolInit(void);
  94. extern void Motor_TailWind(void);
  95. #endif