峰岹科技
直播中

mameng

12年用户 354经验值
擅长:嵌入式技术
私信 关注

【峰岹科技FU5821T开发板试用体验】软件测试评估

  首选解释一下什么是单相电机
一个单相电机里一共有两个线圈,主线圈和副线圈。当单相正弦电流通过主线圈时,主线圈就会产生一个交变脉动磁场,这个磁场的强弱随时间作正弦电流变化而变化,但在它的方向一直是1-3这个方向。如果没有其他线圈提供的力,那么电机转90°以后就不转了。如果想要让他旋转,还须给它加一个与主线圈方向垂直的力,由启动线圈提供,也就是副线圈。
2.jpg
要想让副线圈提供与主线圈方向垂直的力,那就必须要给副线圈通入另外一相电流。如果通入的是同一相电流,那么它们产生力的方向也一样。但是只有单相电,那怎么办呢?这时候就要采用电容移相了。简单的来说,就是把电容串联在所需要移相的威廉希尔官方网站 里,从而让电流相位改变。单相交流电移相以后,那么它的波形图就变成下图这样了。
   1.jpg
最后把它综合起来,电机接线图就成下图这样。首先正弦交流电从A点进来,一部分给主线圈供电,另外一部分通过电容移相。由于两相电他们的相位一前一后,那么线圈产生的磁场力也会一前一后。这样,就可以达到主线圈推一下,然后副线圈推一下,最后旋转起来。
3.jpg
如果想要电机反转,那只需要把上图接A点的电源线换到B点即可,接C点的电源线不动。因为没换之前主线圈用的是相位为零的正弦交流电、副线圈用的是移相以后的正弦交流电。电源线换到B点以后,那么副线圈用的是相位为零的正弦交流电,而主线圈用的是移相以后的正弦交流电。两个线圈的电流相位改变,那么它们所产生磁场力方向也改变、旋转也将改变。
   Demo程序:
666.jpg

程序流程图:

7.jpg
变量define,规范  Customer.h芯片配置写的很规范,注释清晰电机参数配置
  1. typedef unsigned char                   uint8;
  2. typedef unsigned short                  uint16;
  3. typedef unsigned long                   uint32;
  4. typedef long                            int32;
  5. typedef short                           int16;
  6. typedef char                            int8;
  1. /*  -------------------------- (C) COPYRIGHT 2020 Fortiortech ShenZhen ---------------------------*/
  2. /*  File Name      : Customer.h
  3. /*  Author         : Fortiortech  Appliction Team
  4. /*  Version        : V1.0
  5. /*  Date           : 2020-08-26
  6. /*  Description    : This file contains XX-XX-XX parameter used for Motor Control.
  7. /*  ----------------------------------------------------------------------------------------------*/
  8. /*                                     All Rights Reserved
  9. /*  ----------------------------------------------------------------------------------------------*/

  10. /*  Define to prevent recursive inclusion --------------------------------------------------------*/
  11. #ifndef __CUSTOMER_H_
  12. #define __CUSTOMER_H_


  13. /*-------------------------------时钟和参考电压---------------------------------*/
  14. #define  MCU_CLK                          (24000000UL)
  15. #define  DRV_CLK                          (MCU_CLK * 2)
  16. #define  HW_ADC_REF                       (5.0)       // (V)  ADC参考电压

  17. #define  SystemPowerUpTime                (15000)     // 上电等待时间,cpu计数时钟


  18. /*-------------------------------Private define---------------------------------*/
  19. #define  DISABLE                          (0)
  20. #define  ENABLE                           (1)

  21. #define  RD_LOW                           (0)
  22. #define         RD_HIGH                          (1)

  23. #define  FG_PIN                                                                                                                (GP01)
  24. #define  TEST_PIN_P16                     (GP16)


  25. /*-------------------------------------DEBUG------------------------------------*/  
  26. #define         DEBUG                            (DISABLE)
  27. #define  CMP_SEL                          (0x07)   //0-7
  28.          
  29.          
  30. /*----------------------------------TIMER1预分频--------------------------------*/
  31. #define  PSC_1_DIVISION                               (0)
  32. #define  PSC_2_DIVISION                   (1)
  33. #define  PSC_4_DIVISION                               (2)
  34. #define  PSC_8_DIVISION                               (3)
  35. #define  PSC_16_DIVISION                              (4)
  36. #define  PSC_32_DIVISION                  (5)
  37. #define  PSC_64_DIVISION                  (6)
  38. #define  TIMER1_PSC                       (PSC_16_DIVISION)


  39. /*----------------------------------顺逆风--------------------------------------*/
  40. #define  TAIL_WIND_DETECT                 (DISABLE)
  41. #define  TAIL_WIDN_TIME                   (250)       //250ms,不能修改
  42. #define  TH_WIND_SPEED                    (300)       //RPM,不管是顺风还是逆风,小于此速度就正常转
  43. #define  HEAD_WIND_SPEED                  (500)       //RPM,逆风小于此速度就正转

  44.                
  45. /*---------------------------------工作电压选择---------------------------------*/
  46. #define  RATED_VOLTAGE_12V                (0)
  47. #define  RATED_VOLTAGE_48V                (1)
  48. #define  OPERATION_VOLTAGE                (RATED_VOLTAGE_12V)  //24V应用请选择48V


  49. /*------------------------------载波频率和DeadTime------------------------------*/
  50. #define  PWM_FREQUENCY                    (30000)    //载波频率 HZ
  51. #define  PWM_DEADTIME                     (5.0)      //死区时间 最大值10us


  52. /* -------------------------------HALL类型选择----------------------------------*/
  53. #define  HALL_IC                          (0)        //数字Hall
  54. #define  HALL_ELEMENT                     (1)        //模拟Hall
  55. #define  HALL_MODE                        (HALL_ELEMENT)        

  56. /* -----HALL Element时,比较器迟滞----- */
  57. #define  HALL_HYS_0MV                     (0)
  58. #define  HALL_HYS_10MV                    (1)  
  59. #define  HALL_HYS_20MV                    (2)
  60. #define  HALL_HYS_30MV                    (3)
  61. #define  HALL_HYS_MODE                    (HALL_HYS_10MV)

  62. /* -----HALL滤波----- */
  63. #define  HALL_FILTER_16CLOCK              (0)
  64. #define  HALL_FILTER_32CLOCK              (1)
  65. #define  HALL_FILTER_64CLOCK              (2)
  66. #define  HALL_FILTER_256CLOCK             (3)
  67. #define  HALL_FILTER_MODE                 (HALL_FILTER_32CLOCK)


  68. /* ------------------------------开环 or 闭环---------------------------------- */
  69. #define         OPEN_LOOP_ENABLE                 (0)
  70. #define  CLOSE_LOOP_ENABLE                (1)
  71. #define         SPEED_CONTROL_MODE               (OPEN_LOOP_ENABLE)


  72. /*------------------------------起始&关闭占空比---------------------------------*/
  73. #define         OFF_PWM_DUTY                     (0.07)     // 关机PWM占空比,小于该占空比关机
  74. #define  ON_PWM_DUTY                      (0.08)      // 开机PWM占空比,大于该占空比时开机

  75. #define         FULL_DUTY_CYCLE                  (0.98)     // 输出大于此值,就以MAX_DUTY_CYCLE输出
  76. #define         MAX_DUTY_CYCLE                   (1.0)      // 最大输出占空比


  77. /*------------------------------------启动 -------------------------------------*/
  78. #define  START_DUTY                       (0.05)     // Max:1.0  启动占空比
  79. #define         TIME_STA_TO_RUN                  (2000)     // Start切到RUN时间 ms

  80. #define         START_DUTY_CNT                          (4)        // 启动前4个HALL中断
  81. #define  START_DUTY_LIMIT                 (0.2)      // 启动前4个HALL中断DUTY限制


  82. /*-----------------------------------爬坡参数-----------------------------------*/
  83. #define  TIME_START_PWM_RAMP              (20)       //ms  MAX 250
  84. #define  TIME_RUN_PWM_RAMP                (20)       //ms  MAX 250

  85. #define  INC_DELTA_SPD                    (0.005)    //%                                 
  86. #define  DEC_DELTA_SPD                    (0.005)    //%


  87. /*----------------------------------闭环参数------------------------------------*/
  88. #define  POLE_PAIR                        (2.0)        //电机极对数
  89. #define  SPEED_BASE                       (30000.0)  //速度基准

  90. /* -----PI参数---- */
  91. #define  KP                               (0.35)     // 速度调节KP值
  92. #define  KI                               (0.005)    // 速度调节KP值

  93. #define  UK_MAX                           (1.0)
  94. #define  UK_MIN                           (0.07)


  95. /* --------------------------------PWM频率范围----------------------------------*/
  96. #define  PWM_LESS_THAN_800HZ              (0)        // PWM频率 < 800Hz  6M  Sample
  97. #define  PWM_GREATER_THAN_800HZ           (1)        // PWM频率 > 800Hz  48M Sample
  98. #define  PWM_FREQUENCY_RANGE              (PWM_GREATER_THAN_800HZ)


  99. /* ----------------------------------FG / RD------------------------------------*/
  100. #define         FG_OUT                           (0)
  101. #define  RD_OUT                                                                                                                (1)
  102. #define         SIGNAL_OUT                       (FG_OUT)

  103. /* -----FG分频倍频----- */
  104. #define  FG_MULTIPLIER                    (1)        // 倍频系数  
  105. #define  FG_DIVISION                      (1)        // 分频系数


  106. /*-----------------------------------堵转保护-----------------------------------*/
  107. #define  LOCK_DETECT_TIME                 (1000)     //ms
  108. #define  RESTART_MOTOR_TIME               (5000)     //ms


  109. /*-------------------------------------正反转-----------------------------------*/
  110. #define  FORWARD_ROTATION                 (0)
  111. #define  REVERSE_ROTATION                 (1)
  112. #define  DIRECTION_ROTATION               (REVERSE_ROTATION)


  113. /*---------------------------------续流方式-------------------------------------*/
  114. #define  FAST_DECAY                       (0)
  115. #define  SLOW_DECAY                       (1)
  116. #define  DECAY_MODE                       (SLOW_DECAY)


  117. /*---------------------------------限流/过流值----------------------------------*/
  118. //58mV-360mV  Step=4.8mV  限流DAC=58mV+4.8mV* LCP_DR[5:0]
  119. #define  ENABLE_CURRENT_LIMIT             (DISABLE)    // 限流
  120. #define  CURRENT_LIMIT_VALUE              (2)        // MAX 63
  121. /*-------------------------------------------------------------------------
  122. 0:97mV   1:116mV   2:135mV  3:154mV   4:173mV   5:192mV   6:211mV   7:230mV
  123. 8:259mV  9:288mV  10:316mV  11:345mV  12:374mV  13:402mV  14:431mV 15 460mV
  124. --------------------------------------------------------------------------*/
  125. #define  ENABLE_OVER_CURRENT              (DISABLE)   // 过流禁止
  126. #define  OVER_CURRENT_VALUE               (0)         // MAX 15
  127. #define         TIME_OVER_CURRENT_REC            (5000)      // ms  过流后经过5S后再恢复


  128. /*---------------------------------欠压&过压保护--------------------------------*/
  129. #define  VOLTAGE_PROTECTION               (DISABLE)

  130. //48V-- RV = (RV1+RV2)/RV2
  131. //12V-- RV = 10.0
  132. #define  RV                               (20.0)       // 电阻分压系数

  133. #define  OVER_PROTECT_VOLTAGE             (18.8)       // V
  134. #define  OVER_RECOVER_VOLTAGE             (16.8)  
  135. #define  UNDER_PROTECT_VOLTAGE            (6.5)
  136. #define  UNDER_RECOVER_VOLTAGE            (7.5)


  137. /*---------------------------------BCOR最小速度---------------------------------*/
  138. #define         MIN_SPEED_RPM                    (800)       // RPM           


  139. /*---------------------------------转速是否稳定---------------------------------*/
  140. #define  RUN_STABLE_CNT                   (500)       //HALL CYCLE
  141. #define  SPEED_STABLE_RPM                 (200)       //RPM
  142.    

  143. /*-------------------------------HALL边沿选择-----------------------------------*/
  144. #define  HALL_DUAL_EDGE                   (0)
  145. #define  HALL_RISE_EDGE                   (1)
  146. #define  HALL_EDGE                        (HALL_DUAL_EDGE)


  147. /* -----------------------SILENT-ANGLE(BLOCK)角度设置-------------------------- */
  148. #define  SILENT_ANGLE                     (10)


  149. /* -------------------------------提前角度设置--------------------------------- */

  150. #define  LEAD_ANGLE_MIN                   (-5)     //最小提前角--Range:0~ -90
  151. #define  LEAD_ANGLE_MAX                   (-20)    //最大提前角--Range:0~ -90

  152. #define  LEAD_ANGLE_DUTY_MIN              (0.2)     //对应最小提前角
  153. #define  LEAD_ANGLE_DUTY_MAX              (0.8)     //对应最大提前角


  154. /* ------------------------------Soft-Switch----------------------------------- */
  155. #define  SOFT_SWITCH_FALL                 (0)
  156. #define  SOFT_SWITCH_RISE                 (0)


  157.                
  158. #endif

调试下载见底部视频:

123

更多回帖

发帖
×
20
完善资料,
赚取积分