user.h 71 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255
  1. /************************************************************************
  2. Project: Welling Motor Control Paltform
  3. Filename: user.h
  4. Partner Filename: Null
  5. Description: User parameters
  6. Complier: IAR Embedded Workbench for ARM 7.80, IAR Systems.
  7. CPU TYPE : STM32F30x
  8. *************************************************************************
  9. Copyright (c) 2019 Welling Motor Technology(Shanghai) Co. Ltd.
  10. All rights reserved.
  11. *************************************************************************
  12. *************************************************************************
  13. Revising History (ECL of this file):
  14. ************************************************************************/
  15. #ifndef USER_H
  16. #define USER_H
  17. /************************************************************************
  18. Compiler Directives
  19. *************************************************************************/
  20. #include "typedefine.h"
  21. #include "syspar.h"
  22. /************************************************************************
  23. Definitions & Macros
  24. *************************************************************************/
  25. /*======================================================================*
  26. Update Time
  27. 2021-06-21 13:47:04
  28. *=======================================================================*/
  29. /*======================================================================*
  30. Software version
  31. *=======================================================================*/
  32. #define SOFTWARE_VERSION 0x1C10
  33. #define SOFTWARE_VERSION_WELLING 0x0001
  34. /*======================================================================*
  35. Software version
  36. *=======================================================================*/
  37. /*======================================================================*
  38. Assist Mode
  39. *=======================================================================*/
  40. #define CADENCE_ASSIST 1
  41. #define TORQUE_ASSIST 2
  42. #define ASSIST_MODE TORQUE_ASSIST
  43. /*======================================================================*
  44. Motor Number Selection
  45. *=======================================================================*/
  46. #define MOTOR_WELLING_MTB 0x19
  47. #define MOTOR_WELLING_MTB35_V3 0x21
  48. #define MOTOR_LUNGU_WELLING_HAL_BAFANG 0x30
  49. #define MOTOR_LUNGU_WELLING_HAL_POLE8_250W 0x31
  50. #define MOTOR_LUNGU_WELLING_HAL_POLE8_250W_LowRatio 0x32
  51. #define MOTOR_LUNGU_WELLING_HAL_POLE8_250W_958Ratio 0x33
  52. #define MOTOR_LUNGU_WELLING_HAL_POLE8_250W_517Ratio 0x34
  53. #define MOTOR_LUNGU_WELLING_HAL_POLE8_350W 0x40
  54. #define MOTOR_LUNGU_WELLING_HAL_POLE8_350W_958Ratio 0x41
  55. #define MOTOR_LUNGU_WELLING_HAL_POLE8_500W 0x50
  56. #define MOTOR_LUNGU_WELLING_HAL_POLE8_500W_958Ratio 0x51
  57. #define MOTOR_LUNGU_WELLING_HAL_POLE8_750W 0x60
  58. #define MOTOR_LUNGU_WELLING_HAL_POLE8_1000W 0x70
  59. #define MOTOR_LUNGU_WELLING_HAL_POLE10_500W_500Ratio 0x80
  60. #define MOTOR_LUNGU_WELLING_HAL_POLE10_750W_500Ratio 0x81
  61. #define MOTOR_LUNGU_WELLING_HAL_POLE10_1000W_500Ratio 0x82
  62. /* Select Motor */
  63. #if( (IPM_POWER_SEL == IPM_POWER_1000W_12G) ||(IPM_POWER_SEL ==IPM_POWER_1000W_MINI_12G))
  64. #define MOTOR_ID_SEL MOTOR_LUNGU_WELLING_HAL_POLE8_1000W
  65. #elif( (IPM_POWER_SEL == IPM_POWER_750W_12G)||(IPM_POWER_SEL ==IPM_POWER_750W_MINI_12G))
  66. #define MOTOR_ID_SEL MOTOR_LUNGU_WELLING_HAL_POLE8_750W
  67. #elif (IPM_POWER_SEL == IPM_POWER_500W_12G)
  68. #define MOTOR_ID_SEL MOTOR_LUNGU_WELLING_HAL_POLE8_500W
  69. #elif(IPM_POWER_SEL ==IPM_POWER_350W_MINI_12G)
  70. #define MOTOR_ID_SEL MOTOR_LUNGU_WELLING_HAL_POLE8_350W_958Ratio
  71. #elif (IPM_POWER_SEL == IPM_POWER_500W_9G)
  72. #define MOTOR_ID_SEL MOTOR_LUNGU_WELLING_HAL_POLE8_500W//MOTOR_LUNGU_WELLING_HAL_POLE8_500W_958Ratio
  73. #elif (IPM_POWER_SEL == IPM_POWER_350W_9G)
  74. #define MOTOR_ID_SEL MOTOR_LUNGU_WELLING_HAL_POLE8_350W_958Ratio
  75. #elif ((IPM_POWER_SEL == IPM_POWER_250W_6G)||(IPM_POWER_SEL == IPM_POWER_350W_6G)||(IPM_POWER_SEL ==IPM_POWER_500W_6G))
  76. #define MOTOR_ID_SEL MOTOR_LUNGU_WELLING_HAL_POLE8_500W_958Ratio//
  77. #else
  78. #define MOTOR_ID_SEL MOTOR_LUNGU_WELLING_HAL_POLE8_250W
  79. #endif
  80. /*======================================================================*
  81. Motor Parameters
  82. *=======================================================================*/
  83. #if (MOTOR_ID_SEL == MOTOR_WELLING_MTB)
  84. #define M_POLE_PAIRS 7 // unit:Null,Pole pairs
  85. #define M_RS_OHM 170 // unit: 0.1mOhm, Phase resistance
  86. #define M_MATERIAL Al // unit:Null
  87. #define M_LD_NOLOAD_MH 11000 // unit: 0.01uH, D axis inductance
  88. #define M_LQ_NOLOAD_MH 11500 // unit: 0.01uH, Q axis inductance
  89. #define M_LD_TURN1_ID_AP 200 // unit: 0.01A,
  90. #define M_LD_TURN1_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  91. #define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
  92. #define M_LD_TURN2_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  93. #define M_LD_MIN_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  94. #define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
  95. #define M_LQ_TURN1_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  96. #define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
  97. #define M_LQ_TURN2_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  98. #define M_LQ_MIN_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  99. #define M_JD 500 // unit: 10-7Kg*m2, Rotational inertia
  100. #define M_MAGNETIC_MATERIAL Ferrite // unit:Null
  101. #define M_FLUX_WB 5360 // unit: 0.001mWb, Flux linkage
  102. #define M_ID_MAX_AP 0 //-25 // unit: 0.01A, Max d axis current
  103. #define M_ID_MIN_AP -300 // unit: 0.01A, Min d axis current
  104. #define M_IS_PEAK_MAX_AP 5500 // unit: 0.01A, Max phase current(below base speed)
  105. #define M_POWER_MAX_WT 600 // unit: W, Max power
  106. #define M_R_SPD_RPM 5000 // unit: r/min, rate spd
  107. #define M_R_PWR_WT 250 // unit: W, rate power
  108. #define M_R_IRMS_A 2500 // unit: 0.01A, rate Irms
  109. #if (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V)
  110. #define M_R_UDC_v 480 // unit: 0.1V, rate Udc
  111. #else
  112. #define M_R_UDC_v 360 // unit: 0.1V, rate Udc
  113. #endif
  114. #define M_MAX_TOR_NM 30 // unit: 0.1Nm, Max tor
  115. #endif
  116. #if (MOTOR_ID_SEL == MOTOR_WELLING_MTB35_V3)
  117. #define M_POLE_PAIRS 7 // unit:Null,Pole pairs
  118. #define M_RS_OHM 170 // unit: 0.1mOhm, Phase resistance
  119. #define M_MATERIAL Al // unit:Null
  120. #define M_LD_NOLOAD_MH 10500 // unit: 0.01uH, D axis inductance
  121. #define M_LQ_NOLOAD_MH 11700 // unit: 0.01uH, Q axis inductance
  122. #define M_LD_TURN1_ID_AP 200 // unit: 0.01A,
  123. #define M_LD_TURN1_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  124. #define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
  125. #define M_LD_TURN2_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  126. #define M_LD_MIN_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  127. #define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
  128. #define M_LQ_TURN1_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  129. #define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
  130. #define M_LQ_TURN2_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  131. #define M_LQ_MIN_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  132. #define M_JD 1000 // unit: 10-7Kg*m2, Rotational inertia
  133. #define M_MAGNETIC_MATERIAL Ferrite // unit:Null
  134. #define M_FLUX_WB 8565 // unit: 0.001mWb, Flux linkage
  135. #define M_ID_MAX_AP 0 //-25 // unit: 0.01A, Max d axis current
  136. #define M_ID_MIN_AP -300 // unit: 0.01A, Min d axis current
  137. #define M_IS_PEAK_MAX_AP 5000 // unit: 0.01A, Max phase current(below base speed)
  138. #define M_POWER_MAX_WT 600 // unit: W, Max power
  139. #define M_R_SPD_RPM 5000 // unit: r/min, rate spd
  140. #define M_R_PWR_WT 250 // unit: W, rate power
  141. #define M_R_IRMS_A 2500 // unit: 0.01A, rate Irms
  142. #if (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V)
  143. #define M_R_UDC_v 480 // unit: 0.1V, rate Udc
  144. #else
  145. #define M_R_UDC_v 360 // unit: 0.1V, rate Udc
  146. #endif
  147. #define M_MAX_TOR_NM 20 // unit: 0.1Nm, Max tor
  148. #endif
  149. #if (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_BAFANG)
  150. #define M_POLE_PAIRS 10 // unit:Null,Pole pairs
  151. #define M_RS_OHM 480 // 1360 // unit: 0.1mOhm, Phase resistance
  152. #define M_MATERIAL Al // unit:Null
  153. #define M_LD_NOLOAD_MH 8491 // 13300 // unit: 0.01uH, D axis inductance
  154. #define M_LQ_NOLOAD_MH 9161 // 14350 // unit: 0.01uH, Q axis inductance
  155. #define M_LD_TURN1_ID_AP 200 // unit: 0.01A,
  156. #define M_LD_TURN1_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  157. #define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
  158. #define M_LD_TURN2_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  159. #define M_LD_MIN_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  160. #define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
  161. #define M_LQ_TURN1_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  162. #define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
  163. #define M_LQ_TURN2_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  164. #define M_LQ_MIN_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  165. #define M_JD 5000 // 15000 // unit: 10-7Kg*m2, Rotational inertia
  166. #define M_MAGNETIC_MATERIAL Ferrite // unit:Null
  167. #define M_FLUX_WB 11008 // 13777 // unit: 0.001mWb, Flux linkage
  168. #define M_ID_MAX_AP 0 // unit: 0.01A, Max d axis current
  169. #define M_ID_MIN_AP -157 // unit: 0.01A, Min d axis current
  170. #define M_IS_PEAK_MAX_AP 5000 // unit: 0.01A, Max phase current(below base speed)
  171. #define M_POWER_MAX_WT 600 // unit: W, Max power
  172. #define M_R_SPD_RPM 5000 // unit: r/min, rate spd
  173. #define M_R_PWR_WT 250 // unit: W, rate power
  174. #define M_R_IRMS_A 2500 // unit: 0.01A, rate Irms
  175. #if (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V)
  176. #define M_R_UDC_v 480 // unit: 0.1V, rate Udc
  177. #else
  178. #define M_R_UDC_v 360 // unit: 0.1V, rate Udc
  179. #endif
  180. #define M_MAX_TOR_NM 20 // unit: 0.1Nm, Max tor
  181. #endif
  182. #if (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_250W)
  183. #define M_POLE_PAIRS 8 // unit:Null,Pole pairs
  184. #define M_RS_OHM 335 // unit: 0.1mOhm, Phase resistance
  185. #define M_MATERIAL Al // unit:Null
  186. #define M_LD_NOLOAD_MH 9900 // unit: 0.01uH, D axis inductance
  187. #define M_LQ_NOLOAD_MH 10300 // unit: 0.01uH, Q axis inductance
  188. #define M_LD_TURN1_ID_AP 200 // unit: 0.01A,
  189. #define M_LD_TURN1_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  190. #define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
  191. #define M_LD_TURN2_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  192. #define M_LD_MIN_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  193. #define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
  194. #define M_LQ_TURN1_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  195. #define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
  196. #define M_LQ_TURN2_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  197. #define M_LQ_MIN_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  198. #define M_JD 1000 // unit: 10-7Kg*m2, Rotational inertia
  199. #define M_MAGNETIC_MATERIAL Ferrite // unit:Null
  200. #define M_FLUX_WB 6250 // unit: 0.001mWb, Flux linkage //5513455*vlinepeak/(p*n)
  201. #define M_ID_MAX_AP 0 // unit: 0.01A, Max d axis current
  202. #define M_ID_MIN_AP -157 // unit: 0.01A, Min d axis current
  203. #define M_IS_PEAK_MAX_AP 4200 // unit: 0.01A, Max phase current(below base speed)
  204. #define M_POWER_MAX_WT 550 // unit: W, Max power
  205. #define M_R_SPD_RPM 3076 // unit: r/min, rate spd
  206. #define M_R_PWR_WT 250 // unit: W, rate power
  207. #define M_R_IRMS_A 2500 // unit: 0.01A, rate Irms
  208. #if (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V)
  209. #define M_R_UDC_v 480 // unit: 0.1V, rate Udc
  210. #else
  211. #define M_R_UDC_v 360 // unit: 0.1V, rate Udc
  212. #endif
  213. #define M_MAX_TOR_NM 30 // unit: 0.1Nm, Max tor
  214. #endif
  215. #if (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_250W_LowRatio)
  216. #define M_POLE_PAIRS 8 // unit:Null,Pole pairs
  217. #define M_RS_OHM 1260 // unit: 0.1mOhm, Phase resistance
  218. #define M_MATERIAL Al // unit:Null
  219. #define M_LD_NOLOAD_MH 51580 // unit: 0.01uH, D axis inductance
  220. #define M_LQ_NOLOAD_MH 59220 // unit: 0.01uH, Q axis inductance
  221. #define M_LD_TURN1_ID_AP 200 // unit: 0.01A,
  222. #define M_LD_TURN1_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  223. #define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
  224. #define M_LD_TURN2_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  225. #define M_LD_MIN_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  226. #define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
  227. #define M_LQ_TURN1_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  228. #define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
  229. #define M_LQ_TURN2_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  230. #define M_LQ_MIN_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  231. #define M_JD 1000 // unit: 10-7Kg*m2, Rotational inertia
  232. #define M_MAGNETIC_MATERIAL Ferrite // unit:Null
  233. #define M_FLUX_WB 24000 // unit: 0.001mWb, Flux linkage //5513455*vlinepeak/(p*n)
  234. #define M_ID_MAX_AP 0 // unit: 0.01A, Max d axis current
  235. #define M_ID_MIN_AP -157 // unit: 0.01A, Min d axis current
  236. #define M_IS_PEAK_MAX_AP 4200 // unit: 0.01A, Max phase current(below base speed)
  237. #define M_POWER_MAX_WT 550 // unit: W, Max power
  238. #define M_R_SPD_RPM 860 // unit: r/min, rate spd
  239. #define M_R_PWR_WT 250 // unit: W, rate power
  240. #define M_R_IRMS_A 2500 // unit: 0.01A, rate Irms
  241. #if (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V)
  242. #define M_R_UDC_v 480 // unit: 0.1V, rate Udc
  243. #else
  244. #define M_R_UDC_v 360 // unit: 0.1V, rate Udc
  245. #endif
  246. #define M_MAX_TOR_NM 95 // unit: 0.1Nm, Max tor
  247. #endif
  248. #if (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_250W_517Ratio)
  249. #define M_POLE_PAIRS 10 // unit:Null,Pole pairs
  250. #define M_RS_OHM 815 // unit: 0.1mOhm, Phase resistance
  251. #define M_MATERIAL Al // unit:Null
  252. #define M_LD_NOLOAD_MH 18000 // unit: 0.01uH, D axis inductance
  253. #define M_LQ_NOLOAD_MH 19000 // unit: 0.01uH, Q axis inductance
  254. #define M_LD_TURN1_ID_AP 200 // unit: 0.01A,
  255. #define M_LD_TURN1_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  256. #define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
  257. #define M_LD_TURN2_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  258. #define M_LD_MIN_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  259. #define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
  260. #define M_LQ_TURN1_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  261. #define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
  262. #define M_LQ_TURN2_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  263. #define M_LQ_MIN_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  264. #define M_JD 1000 // unit: 10-7Kg*m2, Rotational inertia
  265. #define M_MAGNETIC_MATERIAL Ferrite // unit:Null
  266. #define M_FLUX_WB 13000 // unit: 0.001mWb, Flux linkage //5513455*vlinepeak/(p*n)
  267. #define M_ID_MAX_AP 0 // unit: 0.01A, Max d axis current
  268. #define M_ID_MIN_AP -157 // unit: 0.01A, Min d axis current
  269. #define M_IS_PEAK_MAX_AP 4200 // unit: 0.01A, Max phase current(below base speed)
  270. #define M_POWER_MAX_WT 550 // unit: W, Max power
  271. #define M_R_SPD_RPM 860 // unit: r/min, rate spd
  272. #define M_R_PWR_WT 250 // unit: W, rate power
  273. #define M_R_IRMS_A 1300 // unit: 0.01A, rate Irms
  274. #if (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V)
  275. #define M_R_UDC_v 480 // unit: 0.1V, rate Udc
  276. #else
  277. #define M_R_UDC_v 360 // unit: 0.1V, rate Udc
  278. #endif
  279. #define M_MAX_TOR_NM 67 // unit: 0.1Nm, Max tor
  280. #endif
  281. #if (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_250W_958Ratio)
  282. #define M_POLE_PAIRS 8 // unit:Null,Pole pairs
  283. #define M_RS_OHM 448 // unit: 0.1mOhm, Phase resistance
  284. #define M_MATERIAL Al // unit:Null
  285. #define M_LD_NOLOAD_MH 14820 // unit: 0.01uH, D axis inductance
  286. #define M_LQ_NOLOAD_MH 16320 // unit: 0.01uH, Q axis inductance
  287. #define M_LD_TURN1_ID_AP 200 // unit: 0.01A,
  288. #define M_LD_TURN1_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  289. #define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
  290. #define M_LD_TURN2_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  291. #define M_LD_MIN_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  292. #define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
  293. #define M_LQ_TURN1_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  294. #define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
  295. #define M_LQ_TURN2_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  296. #define M_LQ_MIN_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  297. #define M_JD 1000 // unit: 10-7Kg*m2, Rotational inertia
  298. #define M_MAGNETIC_MATERIAL Ferrite // unit:Null
  299. #define M_FLUX_WB 9050 // unit: 0.001mWb, Flux linkage //5513455*vlinepeak/(p*n)
  300. #define M_ID_MAX_AP 0 // unit: 0.01A, Max d axis current
  301. #define M_ID_MIN_AP -157 // unit: 0.01A, Min d axis current
  302. #define M_IS_PEAK_MAX_AP 4200 // unit: 0.01A, Max phase current(below base speed)
  303. #define M_POWER_MAX_WT 550 // unit: W, Max power
  304. #define M_R_SPD_RPM 1920 // unit: r/min, rate spd
  305. #define M_R_PWR_WT 250 // unit: W, rate power
  306. #define M_R_IRMS_A 2500 // unit: 0.01A, rate Irms
  307. #if (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V)
  308. #define M_R_UDC_v 480 // unit: 0.1V, rate Udc
  309. #else
  310. #define M_R_UDC_v 360 // unit: 0.1V, rate Udc
  311. #endif
  312. #define M_MAX_TOR_NM 46 // unit: 0.1Nm, Max tor
  313. #endif
  314. #if (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_350W)
  315. #define M_POLE_PAIRS 8 // unit:Null,Pole pairs
  316. #define M_RS_OHM 240 // unit: 0.1mOhm, Phase resistance
  317. #define M_MATERIAL Al // unit:Null
  318. #define M_LD_NOLOAD_MH 5850 // unit: 0.01uH, D axis inductance
  319. #define M_LQ_NOLOAD_MH 6200 // unit: 0.01uH, Q axis inductance
  320. #define M_LD_TURN1_ID_AP 200 // unit: 0.01A,
  321. #define M_LD_TURN1_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  322. #define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
  323. #define M_LD_TURN2_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  324. #define M_LD_MIN_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  325. #define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
  326. #define M_LQ_TURN1_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  327. #define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
  328. #define M_LQ_TURN2_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  329. #define M_LQ_MIN_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  330. #define M_JD 1000 // unit: 10-7Kg*m2, Rotational inertia
  331. #define M_MAGNETIC_MATERIAL Ferrite // unit:Null
  332. #define M_FLUX_WB 4861 // unit: 0.001mWb, Flux linkage //5513455*vlinepeak/(p*n)
  333. #define M_ID_MAX_AP 0 // unit: 0.01A, Max d axis current
  334. #define M_ID_MIN_AP -157 // unit: 0.01A, Min d axis current
  335. #define M_IS_PEAK_MAX_AP 5000 // unit: 0.01A, Max phase current(below base speed)
  336. #define M_POWER_MAX_WT 650 // unit: W, Max power
  337. #define M_R_SPD_RPM 3900 // unit: r/min, rate spd
  338. #define M_R_PWR_WT 350 // unit: W, rate power
  339. #define M_R_IRMS_A 2500 // unit: 0.01A, rate Irms
  340. #if (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V)
  341. #define M_R_UDC_v 480 // unit: 0.1V, rate Udc
  342. #else
  343. #define M_R_UDC_v 360 // unit: 0.1V, rate Udc
  344. #endif
  345. #define M_MAX_TOR_NM 40 // unit: 0.1Nm, Max tor
  346. #endif
  347. #if (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_350W_958Ratio)
  348. #define M_POLE_PAIRS 8 // unit:Null,Pole pairs
  349. #define M_RS_OHM 448 // unit: 0.1mOhm, Phase resistance
  350. #define M_MATERIAL Al // unit:Null
  351. #define M_LD_NOLOAD_MH 14820 // unit: 0.01uH, D axis inductance
  352. #define M_LQ_NOLOAD_MH 16320 // unit: 0.01uH, Q axis inductance
  353. #define M_LD_TURN1_ID_AP 200 // unit: 0.01A,
  354. #define M_LD_TURN1_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  355. #define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
  356. #define M_LD_TURN2_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  357. #define M_LD_MIN_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  358. #define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
  359. #define M_LQ_TURN1_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  360. #define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
  361. #define M_LQ_TURN2_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  362. #define M_LQ_MIN_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  363. #define M_JD 1000 // unit: 10-7Kg*m2, Rotational inertia
  364. #define M_MAGNETIC_MATERIAL Ferrite // unit:Null
  365. #define M_FLUX_WB 9050 // unit: 0.001mWb, Flux linkage //5513455*vlinepeak/(p*n)
  366. #define M_ID_MAX_AP 0 // unit: 0.01A, Max d axis current
  367. #define M_ID_MIN_AP -157 // unit: 0.01A, Min d axis current
  368. #define M_IS_PEAK_MAX_AP 5000 // unit: 0.01A, Max phase current(below base speed)
  369. #define M_POWER_MAX_WT 650 // unit: W, Max power
  370. #define M_R_SPD_RPM 3900 // unit: r/min, rate spd
  371. #define M_R_PWR_WT 350 // unit: W, rate power
  372. #define M_R_IRMS_A 2500 // unit: 0.01A, rate Irms
  373. #if (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V)
  374. #define M_R_UDC_v 480 // unit: 0.1V, rate Udc
  375. #else
  376. #define M_R_UDC_v 360 // unit: 0.1V, rate Udc
  377. #endif
  378. #define M_MAX_TOR_NM 46 // unit: 0.1Nm, Max tor
  379. #endif
  380. #if (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_500W)
  381. #define M_POLE_PAIRS 8 // unit:Null,Pole pairs
  382. #define M_RS_OHM 160 // unit: 0.1mOhm, Phase resistance
  383. #define M_MATERIAL Al // unit:Null
  384. #define M_LD_NOLOAD_MH 4000 // unit: 0.01uH, D axis inductance
  385. #define M_LQ_NOLOAD_MH 4250 // unit: 0.01uH, Q axis inductance
  386. #define M_LD_TURN1_ID_AP 200 // unit: 0.01A,
  387. #define M_LD_TURN1_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  388. #define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
  389. #define M_LD_TURN2_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  390. #define M_LD_MIN_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  391. #define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
  392. #define M_LQ_TURN1_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  393. #define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
  394. #define M_LQ_TURN2_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  395. #define M_LQ_MIN_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  396. #define M_JD 1000 // unit: 10-7Kg*m2, Rotational inertia
  397. #define M_MAGNETIC_MATERIAL Ferrite // unit:Null
  398. #define M_FLUX_WB 4462 // unit: 0.001mWb, Flux linkage
  399. #define M_ID_MAX_AP 0 // unit: 0.01A, Max d axis current
  400. #define M_ID_MIN_AP -157 // unit: 0.01A, Min d axis current
  401. #define M_IS_PEAK_MAX_AP 5000 // unit: 0.01A, Max phase current(below base speed)
  402. #define M_POWER_MAX_WT 1000 // unit: W, Max power
  403. #define M_R_SPD_RPM 4710 // unit: r/min, rate spd
  404. #define M_R_PWR_WT 500 // unit: W, rate power
  405. #define M_R_IRMS_A 2500 // unit: 0.01A, rate Irms
  406. #if (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V)
  407. #define M_R_UDC_v 480 // unit: 0.1V, rate Udc
  408. #else
  409. #define M_R_UDC_v 360 // unit: 0.1V, rate Udc
  410. #endif
  411. #define M_MAX_TOR_NM 40 // unit: 0.1Nm, Max tor
  412. #endif
  413. #if (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_500W_958Ratio)
  414. #define M_POLE_PAIRS 8 // unit:Null,Pole pairs
  415. #define M_RS_OHM 448 // unit: 0.1mOhm, Phase resistance
  416. #define M_MATERIAL Al // unit:Null
  417. #define M_LD_NOLOAD_MH 14820 // unit: 0.01uH, D axis inductance
  418. #define M_LQ_NOLOAD_MH 16320 // unit: 0.01uH, Q axis inductance
  419. #define M_LD_TURN1_ID_AP 200 // unit: 0.01A,
  420. #define M_LD_TURN1_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  421. #define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
  422. #define M_LD_TURN2_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  423. #define M_LD_MIN_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  424. #define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
  425. #define M_LQ_TURN1_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  426. #define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
  427. #define M_LQ_TURN2_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  428. #define M_LQ_MIN_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  429. #define M_JD 1000 // unit: 10-7Kg*m2, Rotational inertia
  430. #define M_MAGNETIC_MATERIAL Ferrite // unit:Null
  431. #define M_FLUX_WB 9050 // unit: 0.001mWb, Flux linkage //5513455*vlinepeak/(p*n)
  432. #define M_ID_MAX_AP 0 // unit: 0.01A, Max d axis current
  433. #define M_ID_MIN_AP -157 // unit: 0.01A, Min d axis current
  434. #define M_IS_PEAK_MAX_AP 5000 // unit: 0.01A, Max phase current(below base speed)
  435. #define M_POWER_MAX_WT 1000 // unit: W, Max power
  436. #define M_R_SPD_RPM 3900 // unit: r/min, rate spd
  437. #define M_R_PWR_WT 500 // unit: W, rate power
  438. #define M_R_IRMS_A 2500 // unit: 0.01A, rate Irms
  439. #if (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V)
  440. #define M_R_UDC_v 480 // unit: 0.1V, rate Udc
  441. #else
  442. #define M_R_UDC_v 360 // unit: 0.1V, rate Udc
  443. #endif
  444. #define M_MAX_TOR_NM 46 // unit: 0.1Nm, Max tor
  445. #endif
  446. #if (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_750W)
  447. #define M_POLE_PAIRS 8 // unit:Null,Pole pairs
  448. #define M_RS_OHM 160 // unit: 0.1mOhm, Phase resistance
  449. #define M_MATERIAL Al // unit:Null
  450. #define M_LD_NOLOAD_MH 4000 // unit: 0.01uH, D axis inductance
  451. #define M_LQ_NOLOAD_MH 4250 // unit: 0.01uH, Q axis inductance
  452. #define M_LD_TURN1_ID_AP 200 // unit: 0.01A,
  453. #define M_LD_TURN1_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  454. #define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
  455. #define M_LD_TURN2_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  456. #define M_LD_MIN_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  457. #define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
  458. #define M_LQ_TURN1_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  459. #define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
  460. #define M_LQ_TURN2_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  461. #define M_LQ_MIN_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  462. #define M_JD 1000 // unit: 10-7Kg*m2, Rotational inertia
  463. #define M_MAGNETIC_MATERIAL Ferrite // unit:Null
  464. #define M_FLUX_WB 4462 // unit: 0.001mWb, Flux linkage
  465. #define M_ID_MAX_AP 0 // unit: 0.01A, Max d axis current
  466. #define M_ID_MIN_AP -157 // unit: 0.01A, Min d axis current
  467. #define M_IS_PEAK_MAX_AP 7500 // unit: 0.01A, Max phase current(below base speed)
  468. #define M_POWER_MAX_WT 1200 // unit: W, Max power
  469. #define M_R_SPD_RPM 4710 // unit: r/min, rate spd
  470. #define M_R_PWR_WT 750 // unit: W, rate power
  471. #define M_R_IRMS_A 2500 // unit: 0.01A, rate Irms
  472. #if (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V)
  473. #define M_R_UDC_v 480 // unit: 0.1V, rate Udc
  474. #else
  475. #define M_R_UDC_v 360 // unit: 0.1V, rate Udc
  476. #endif
  477. #define M_MAX_TOR_NM 50 // unit: 0.1Nm, Max tor
  478. #endif
  479. #if (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE10_1000W_500Ratio)
  480. #define M_POLE_PAIRS 10 // unit:Null,Pole pairs
  481. #define M_RS_OHM 285 // unit: 0.1mOhm, Phase resistance
  482. #define M_MATERIAL Al // unit:Null
  483. #define M_LD_NOLOAD_MH 6500 // unit: 0.01uH, D axis inductance
  484. #define M_LQ_NOLOAD_MH 7000 // unit: 0.01uH, Q axis inductance
  485. #define M_LD_TURN1_ID_AP 200 // unit: 0.01A,
  486. #define M_LD_TURN1_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  487. #define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
  488. #define M_LD_TURN2_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  489. #define M_LD_MIN_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  490. #define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
  491. #define M_LQ_TURN1_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  492. #define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
  493. #define M_LQ_TURN2_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  494. #define M_LQ_MIN_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  495. #define M_JD 1000 // unit: 10-7Kg*m2, Rotational inertia
  496. #define M_MAGNETIC_MATERIAL Ferrite // unit:Null
  497. #define M_FLUX_WB 13200 // unit: 0.001mWb, Flux linkage
  498. #define M_ID_MAX_AP 0 // unit: 0.01A, Max d axis current
  499. #define M_ID_MIN_AP -157 // unit: 0.01A, Min d axis current
  500. #define M_IS_PEAK_MAX_AP 8000 // unit: 0.01A, Max phase current(below base speed)
  501. #define M_POWER_MAX_WT 1200 // unit: W, Max power
  502. #define M_R_SPD_RPM 1500 // unit: r/min, rate spd
  503. #define M_R_PWR_WT 750 // unit: W, rate power
  504. #define M_R_IRMS_A 2500 // unit: 0.01A, rate Irms
  505. #if (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V)
  506. #define M_R_UDC_v 480 // unit: 0.1V, rate Udc
  507. #else
  508. #define M_R_UDC_v 360 // unit: 0.1V, rate Udc
  509. #endif
  510. #define M_MAX_TOR_NM 160 // unit: 0.1Nm, Max tor
  511. #endif
  512. #if (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE10_750W_500Ratio)
  513. #define M_POLE_PAIRS 10 // unit:Null,Pole pairs
  514. #define M_RS_OHM 285 // unit: 0.1mOhm, Phase resistance
  515. #define M_MATERIAL Al // unit:Null
  516. #define M_LD_NOLOAD_MH 6500 // unit: 0.01uH, D axis inductance
  517. #define M_LQ_NOLOAD_MH 7000 // unit: 0.01uH, Q axis inductance
  518. #define M_LD_TURN1_ID_AP 200 // unit: 0.01A,
  519. #define M_LD_TURN1_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  520. #define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
  521. #define M_LD_TURN2_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  522. #define M_LD_MIN_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  523. #define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
  524. #define M_LQ_TURN1_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  525. #define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
  526. #define M_LQ_TURN2_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  527. #define M_LQ_MIN_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  528. #define M_JD 1000 // unit: 10-7Kg*m2, Rotational inertia
  529. #define M_MAGNETIC_MATERIAL Ferrite // unit:Null
  530. #define M_FLUX_WB 13200 // unit: 0.001mWb, Flux linkage
  531. #define M_ID_MAX_AP 0 // unit: 0.01A, Max d axis current
  532. #define M_ID_MIN_AP -157 // unit: 0.01A, Min d axis current
  533. #define M_IS_PEAK_MAX_AP 7500 // unit: 0.01A, Max phase current(below base speed)
  534. #define M_POWER_MAX_WT 1200 // unit: W, Max power
  535. #define M_R_SPD_RPM 1500 // unit: r/min, rate spd
  536. #define M_R_PWR_WT 750 // unit: W, rate power
  537. #define M_R_IRMS_A 2500 // unit: 0.01A, rate Irms
  538. #if (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V)
  539. #define M_R_UDC_v 480 // unit: 0.1V, rate Udc
  540. #else
  541. #define M_R_UDC_v 360 // unit: 0.1V, rate Udc
  542. #endif
  543. #define M_MAX_TOR_NM 160 // unit: 0.1Nm, Max tor
  544. #endif
  545. #if (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE10_500W_500Ratio)
  546. #define M_POLE_PAIRS 10 // unit:Null,Pole pairs
  547. #define M_RS_OHM 285 // unit: 0.1mOhm, Phase resistance
  548. #define M_MATERIAL Al // unit:Null
  549. #define M_LD_NOLOAD_MH 6500 // unit: 0.01uH, D axis inductance
  550. #define M_LQ_NOLOAD_MH 7000 // unit: 0.01uH, Q axis inductance
  551. #define M_LD_TURN1_ID_AP 200 // unit: 0.01A,
  552. #define M_LD_TURN1_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  553. #define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
  554. #define M_LD_TURN2_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  555. #define M_LD_MIN_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  556. #define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
  557. #define M_LQ_TURN1_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  558. #define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
  559. #define M_LQ_TURN2_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  560. #define M_LQ_MIN_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  561. #define M_JD 1000 // unit: 10-7Kg*m2, Rotational inertia
  562. #define M_MAGNETIC_MATERIAL Ferrite // unit:Null
  563. #define M_FLUX_WB 13200 // unit: 0.001mWb, Flux linkage
  564. #define M_ID_MAX_AP 0 // unit: 0.01A, Max d axis current
  565. #define M_ID_MIN_AP -157 // unit: 0.01A, Min d axis current
  566. #define M_IS_PEAK_MAX_AP 5000 // unit: 0.01A, Max phase current(below base speed)
  567. #define M_POWER_MAX_WT 1200 // unit: W, Max power
  568. #define M_R_SPD_RPM 1500 // unit: r/min, rate spd
  569. #define M_R_PWR_WT 500 // unit: W, rate power
  570. #define M_R_IRMS_A 2500 // unit: 0.01A, rate Irms
  571. #if (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V)
  572. #define M_R_UDC_v 480 // unit: 0.1V, rate Udc
  573. #else
  574. #define M_R_UDC_v 360 // unit: 0.1V, rate Udc
  575. #endif
  576. #define M_MAX_TOR_NM 160 // unit: 0.1Nm, Max tor
  577. #endif
  578. #if (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_1000W)
  579. #define M_POLE_PAIRS 8 // unit:Null,Pole pairs
  580. #define M_RS_OHM 167 // unit: 0.1mOhm, Phase resistance
  581. #define M_MATERIAL Al // unit:Null
  582. #define M_LD_NOLOAD_MH 4400 // unit: 0.01uH, D axis inductance
  583. #define M_LQ_NOLOAD_MH 4750 // unit: 0.01uH, Q axis inductance
  584. #define M_LD_TURN1_ID_AP 200 // unit: 0.01A,
  585. #define M_LD_TURN1_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  586. #define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
  587. #define M_LD_TURN2_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  588. #define M_LD_MIN_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  589. #define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
  590. #define M_LQ_TURN1_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  591. #define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
  592. #define M_LQ_TURN2_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  593. #define M_LQ_MIN_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  594. #define M_JD 1000 // unit: 10-7Kg*m2, Rotational inertia
  595. #define M_MAGNETIC_MATERIAL Ferrite // unit:Null
  596. #define M_FLUX_WB 6517 // unit: 0.001mWb, Flux linkage
  597. #define M_ID_MAX_AP 0 // unit: 0.01A, Max d axis current
  598. #define M_ID_MIN_AP -157 // unit: 0.01A, Min d axis current
  599. #define M_IS_PEAK_MAX_AP 7500 // unit: 0.01A, Max phase current(below base speed)
  600. #define M_POWER_MAX_WT 1200 // unit: W, Max power
  601. #define M_R_SPD_RPM 3978 // unit: r/min, rate spd
  602. #define M_R_PWR_WT 1000 // unit: W, rate power
  603. #define M_R_IRMS_A 2500 // unit: 0.01A, rate Irms
  604. #if (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V)
  605. #define M_R_UDC_v 480 // unit: 0.1V, rate Udc
  606. #else
  607. #define M_R_UDC_v 360 // unit: 0.1V, rate Udc
  608. #endif
  609. #define M_MAX_TOR_NM 50 // unit: 0.1Nm, Max tor
  610. #endif
  611. //#if (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_1000W) //嘉宏1000W电机参数
  612. //#define M_POLE_PAIRS 8 // unit:Null,Pole pairs
  613. //#define M_RS_OHM 195 // unit: 0.1mOhm, Phase resistance
  614. //#define M_MATERIAL Al // unit:Null
  615. //#define M_LD_NOLOAD_MH 6250 // unit: 0.01uH, D axis inductance
  616. //#define M_LQ_NOLOAD_MH 6750 // unit: 0.01uH, Q axis inductance
  617. //#define M_LD_TURN1_ID_AP 200 // unit: 0.01A,
  618. //#define M_LD_TURN1_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  619. //#define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
  620. //#define M_LD_TURN2_LD_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  621. //#define M_LD_MIN_MH M_LD_NOLOAD_MH // unit: 0.01uH,D axis inductance
  622. //#define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
  623. //#define M_LQ_TURN1_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  624. //#define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
  625. //#define M_LQ_TURN2_LQ_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  626. //#define M_LQ_MIN_MH M_LQ_NOLOAD_MH // unit: 0.01uH,Q axis inductance
  627. //#define M_JD 1000 // unit: 10-7Kg*m2, Rotational inertia
  628. //#define M_MAGNETIC_MATERIAL Ferrite // unit:Null
  629. //#define M_FLUX_WB 7332 // unit: 0.001mWb, Flux linkage
  630. //#define M_ID_MAX_AP 0 // unit: 0.01A, Max d axis current
  631. //#define M_ID_MIN_AP -1500 // unit: 0.01A, Min d axis current
  632. //#define M_IS_PEAK_MAX_AP 7500 // unit: 0.01A, Max phase current(below base speed)
  633. //#define M_POWER_MAX_WT 1200 // unit: W, Max power
  634. //#define M_R_SPD_RPM 3978 // unit: r/min, rate spd
  635. //#define M_R_PWR_WT 1000 // unit: W, rate power
  636. //#define M_R_IRMS_A 2500 // unit: 0.01A, rate Irms
  637. //#define M_R_UDC_v 480 // unit: 0.1V, rate Udc
  638. //#define M_MAX_TOR_NM 50 // unit: 0.1Nm, Max tor
  639. //#endif
  640. /*======================================================================*
  641. Alarm threshold value & time of duration define
  642. *=======================================================================*/
  643. /* Over current */
  644. #if ((IPM_POWER_SEL == IPM_POWER_1000W_12G)||(IPM_POWER_SEL ==IPM_POWER_1000W_MINI_12G))
  645. #define ALM_OVR_CNT_VAL 9000 // unit: 0.01A, Threshold value
  646. #define ALM_OVR_CNT_TM 500 // unit: us, Time of duration(TBC)
  647. #elif( (IPM_POWER_SEL == IPM_POWER_750W_12G) ||(IPM_POWER_SEL ==IPM_POWER_750W_MINI_12G))
  648. #define ALM_OVR_CNT_VAL 9000 // unit: 0.01A, Threshold value
  649. #define ALM_OVR_CNT_TM 500 // unit: us, Time of duration(TBC)
  650. #elif (IPM_POWER_SEL == IPM_POWER_350W_MINI_12G)
  651. #define ALM_OVR_CNT_VAL 6000 // unit: 0.01A, Threshold value
  652. #define ALM_OVR_CNT_TM 500 // unit: us, Time of duration(TBC)
  653. #elif (IPM_POWER_SEL == IPM_POWER_500W_12G)
  654. #define ALM_OVR_CNT_VAL 9000 // unit: 0.01A, Threshold value
  655. #define ALM_OVR_CNT_TM 500 // unit: us, Time of duration(TBC)
  656. #elif (IPM_POWER_SEL == IPM_POWER_500W_9G)
  657. #define ALM_OVR_CNT_VAL 6000 // unit: 0.01A, Threshold value
  658. #define ALM_OVR_CNT_TM 500 // unit: us, Time of duration(TBC)
  659. #elif (IPM_POWER_SEL == IPM_POWER_350W_9G)
  660. #define ALM_OVR_CNT_VAL 6000 // unit: 0.01A, Threshold value
  661. #define ALM_OVR_CNT_TM 500 // unit: us, Time of duration(TBC)
  662. #elif ((IPM_POWER_SEL == IPM_POWER_250W_6G)||(IPM_POWER_SEL == IPM_POWER_350W_6G)||(IPM_POWER_SEL ==IPM_POWER_500W_6G))
  663. #define ALM_OVR_CNT_VAL 7000 // unit: 0.01A, Threshold value
  664. #define ALM_OVR_CNT_TM 500 // unit: us, Time of duration(TBC)
  665. #else
  666. #define ALM_OVR_CNT_VAL 5000 // unit: 0.01A, Threshold value
  667. #define ALM_OVR_CNT_TM 500 // unit: us, Time of duration(TBC)
  668. #endif
  669. /* Phase loss */
  670. #define ALM_PHS_LOSS_VAL 100 // unit: 0.01A, Threshold value
  671. #define ALM_PHS_LOSS_TM 5 // unit: s, Time of duration(TBC)
  672. /* Rotor lock */
  673. #define ALM_ROTOR_LOCK_SPD_K 50 // unit: %, Q10, Ratio of resistance power and motor input power
  674. #define ALM_ROTOR_LOCK_TM 3 // unit: s, Time of duration(TBC)
  675. #if ((MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_250W_LowRatio) ||(MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_250W_517Ratio))
  676. #define ALM_ROTOR_LOCK_SPD 40 // unit: rpm, Threshold value
  677. #elif ((MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_350W)||(MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_350W_958Ratio)||(MOTOR_ID_SEL ==MOTOR_LUNGU_WELLING_HAL_POLE8_250W_958Ratio) ||(MOTOR_ID_SEL ==MOTOR_LUNGU_WELLING_HAL_POLE8_500W_958Ratio))
  678. #define ALM_ROTOR_LOCK_SPD 40 // unit: rpm, Threshold value
  679. #else
  680. #define ALM_ROTOR_LOCK_SPD 100 // unit: rpm, Threshold value
  681. #endif
  682. #if (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V)
  683. /* Over voltage */
  684. #define ALM_OVR_VLT_LVL1_VAL 590 // unit: 0.1V, Threshold value level3
  685. #define ALM_OVR_VLT_LVL1_TM 5 // unit: ms, Time of duration level3(TBS)
  686. /* Under voltage */
  687. #define ALM_UNDR_VLT_LVL1_VAL 400 // unit: 0.1V, Threshold value level2
  688. #define ALM_UNDR_VLT_LVL1_TM 1000 // unit: ms, Time of duration level2(TBS)
  689. /* Recover time & value of over voltage */
  690. #define ALM_OVR_VLT_REC_VAL 580 // unit: 0.1V
  691. #define ALM_OVR_VLT_REC_TM 100 // unit: ms, Time of duration(TBC)
  692. #define ALM_OVR_VLT_REC_TM1 150 // unit: ms, Time of duration(TBC)
  693. /* Recover time & value of under voltage */
  694. #define ALM_UNDR_VLT_REC_VAL 410 // unit: 0.1V
  695. #define ALM_UNDR_VLT_REC_TM 200 // unit: ms, Time of duration(TBC)
  696. #define ALM_UNDR_VLT_REC_TM1 400 // unit: ms, Time of duration(TBC)
  697. #elif (IPM_VOLTAGE_SEL == IPM_VOLTAGE_36V)
  698. /* Over voltage */
  699. #define ALM_OVR_VLT_LVL1_VAL 460 // unit: 0.1V, Threshold value level3
  700. #define ALM_OVR_VLT_LVL1_TM 5 // unit: ms, Time of duration level3(TBS)
  701. /* Under voltage */
  702. #define ALM_UNDR_VLT_LVL1_VAL 300 // unit: 0.1V, Threshold value level2
  703. #define ALM_UNDR_VLT_LVL1_TM 1000 // unit: ms, Time of duration level2(TBS)
  704. /* Recover time & value of over voltage */
  705. #define ALM_OVR_VLT_REC_VAL 450 // unit: 0.1V
  706. #define ALM_OVR_VLT_REC_TM 100 // unit: ms, Time of duration(TBC)
  707. #define ALM_OVR_VLT_REC_TM1 150 // unit: ms, Time of duration(TBC)
  708. /* Recover time & value of under voltage */
  709. #define ALM_UNDR_VLT_REC_VAL 320 // unit: 0.1V
  710. #define ALM_UNDR_VLT_REC_TM 200 // unit: ms, Time of duration(TBC)
  711. #define ALM_UNDR_VLT_REC_TM1 400 // unit: ms, Time of duration(TBC)
  712. #else
  713. /* Over voltage */
  714. #define ALM_OVR_VLT_LVL1_VAL 460 // unit: 0.1V, Threshold value level3
  715. #define ALM_OVR_VLT_LVL1_TM 5 // unit: ms, Time of duration level3(TBS)
  716. /* Under voltage */
  717. #define ALM_UNDR_VLT_LVL1_VAL 300 // unit: 0.1V, Threshold value level2
  718. #define ALM_UNDR_VLT_LVL1_TM 1000 // unit: ms, Time of duration level2(TBS)
  719. /* Recover time & value of over voltage */
  720. #define ALM_OVR_VLT_REC_VAL 450 // unit: 0.1V
  721. #define ALM_OVR_VLT_REC_TM 100 // unit: ms, Time of duration(TBC)
  722. #define ALM_OVR_VLT_REC_TM1 150 // unit: ms, Time of duration(TBC)
  723. /* Recover time & value of under voltage */
  724. #define ALM_UNDR_VLT_REC_VAL 320 // unit: 0.1V
  725. #define ALM_UNDR_VLT_REC_TM 200 // unit: ms, Time of duration(TBC)
  726. #define ALM_UNDR_VLT_REC_TM1 400 // unit: ms, Time of duration(TBC)
  727. #endif
  728. /* Over speed */
  729. #define ALM_OVR_SPD_VAL 6000 // unit: rpm, Threshold value
  730. #define ALM_OVR_SPD_TM 100 // unit: ms, Time of duration(TBS)
  731. /* ADC self detecting */
  732. #define ALM_ADC_DETE_LOW_VAL 155 // unit: 0.01V, ADC offset Voltage min
  733. #define ALM_ADC_DETE_HIG_VAL 175 // unit: 0.01V, ADC offset Voltage max
  734. /* IPM over heat */
  735. #define ALM_IPM_OVR_HEAT_VAL 105 // unit: Ce, Threshold value
  736. #define ALM_IPM_OVR_TM 2 // unit: s, Time of duration(TBS)
  737. #define PWRLIM_START_THRESHOLD_TEMP 85 // Q0,Ce
  738. /* MOTOR over heat */
  739. #define ALM_MOTOR_OVR_HEAT_VAL 110 // unit: Ce, Threshold value
  740. #define ALM_MOTOR_OVR_TM 2 // unit: s, Time of duration(TBS)
  741. #define PWRLIM_START_THRESHOLD_MOTOR_TEMP 95 // Q0,Ce
  742. /* Stop time of three phase short force */
  743. #define ALM_THR_PHS_SHRT_FRC_TM 200 // unit: ms, Time of duration(TBC)
  744. /* Stop time of pwm off */
  745. #define ALM_PWM_OFF_TM 200 // unit: ms, Time of duration(TBC)
  746. #define ALM_PWMOFF_SHRT1_SW_TM 100 // unit: ms, Time of duration(TBC)
  747. /* Stop time of three phase short */
  748. #define ALM_THR_PHS_SHRT_NORM_TM 100 // unit: ms, Time of duration(TBC)
  749. #define ALM_SHRT_PWMOFF_SW_TM 100 // unit: ms, Time of duration(TBC)
  750. /* Stop Minimum Current */
  751. #define ALM_STOP_IPM_OVER_CUR_TM 100 // unit: ms, Time of duration(TBC)
  752. /* Recover time of global */
  753. #define ALM_REC_ALL_TM 200 // unit: ms, Time of duration(TBC)
  754. /* Recover time of IPM OC */
  755. #define ALM_IPM_OC_REC_TM 1000//100 // unit: ms, Time of duration(TBC)
  756. /* Recover time & value of IPM over heat */
  757. #define ALM_IPM_OVR_HEAT_REC_VAL 85 // unit: Ce, Threshold value
  758. #define ALM_IPM_OVR_REC_TM 60 // unit: s, Time of duration(TBC)
  759. #define ALM_IPM_OVR_REC_TM1 120 // unit: s, Time of duration(TBC)
  760. /* Recover time & value of MOTOR over heat */
  761. #define ALM_MOTOR_OVR_HEAT_REC_VAL 95 // unit: Ce, Threshold value
  762. #define ALM_MOTOR_OVR_REC_TM 60 // unit: s, Time of duration(TBC)
  763. #define ALM_MOTOR_OVR_REC_TM1 120 // unit: s, Time of duration(TBC)
  764. /* Ebike sensor fault detect*/
  765. #define ALM_MOTORSPD_MIN_RPM 150 // unit: rpm
  766. #define ALM_TROQ_MIN_Nm 50 // unit: 0.1Nm
  767. #define ALM_BIKESPD_FLT_TS 15 // unit: s
  768. #define ALM_CADENCE_FLT_TS 10 // unit: s
  769. #define ALM_TORQ_MAX_VOL 30 // unit: 0.1V
  770. #define ALM_TORQ_MIN_VOL 1 // unit: 0.1V
  771. #define ALM_TORQ_FLT_TS 1 // unit: s
  772. #define ALM_THROTTLE_MAX_VOL 30 // unit: 0.1V
  773. #define ALM_THROTTLE_MIN_VOL 3 // unit: 0.1V
  774. #define ALM_THROTTLE_FLT_TS 1 // unit: s
  775. #define ALM_NTC_MAX_VOL 32 // unit: 0.1V
  776. #define ALM_NTC_MIN_VOL 1 // unit: 0.1V
  777. #define ALM_MOTORNTC_FLT_TS 1 // unit: s
  778. #define ALM_PCBNTC_FLT_TS 1 // unit: s
  779. /* Ebike sensor fault recover*/
  780. #define ALM_BIKE_REC_ALL_TM 1000 // unit: ms
  781. #define ALM_BIKESPD_REC_TM 200 // unit: ms
  782. #define ALM_CADENCE_REC_TM 200 // unit: ms
  783. #define ALM_TORQ_REC_TM 200 // unit: ms
  784. #define ALM_THROTTLE_REC_TM 200 // unit: ms
  785. #define ALM_MOTORNTC_REC_TM 200 // unit: ms
  786. #define ALM_PCBNTC_REC_TM 200 // unit: ms
  787. #define Sel_TORQ_VOL ((ULONG) 2*4096/33) // unit: 0.1V
  788. /*======================================================================*
  789. Motor start
  790. *=======================================================================*/
  791. /* Start mode */
  792. #define START_ALIGN 0 // Motor start with three stage
  793. #define START_MODE START_ALIGN // Motor start mode
  794. /* InitPosDet mode */
  795. #define INITPOS_ALIGN 0 // Motor start with three stage
  796. #define INITPOS_MODE INITPOS_ALIGN // Motor initposdet mode
  797. /* Park time & current */
  798. #define ALIGN_CUR_AP 1000 // 1500 // Huawei // unit: 0.01A, Park current value
  799. #define ALIGN_RAMP_TM_MS 500 // unit: ms, Time of current ramp
  800. #define ALIGN_HOLD_TM_MS 2000 // unit: ms, Time of current hold
  801. #define ALIGN_ANG_INIT 0 // unit: deg, Park angle init
  802. /* Drag speed & current */
  803. #define DRAG_CUR_AP 1000 // 1500 // 1500 //100 Huawei // unit: 0.01A, Drag current value
  804. #define DRAG_VOL_AP 10 // 0.1v
  805. #define DRAG_SPD_HZ 20 // unit: Hz, Final speed of drag
  806. #define DRAG_SPD_RAMP_TM_MS 4000 // unit: ms, Time of speed from 0Hz to target Hz
  807. /* Open to close */
  808. #define OPEN2CLZ_CUR_RAMP_TM_MS 5000 // 5000//1000 Huawei // unit: ms, Time of current from drag value to 0
  809. /* Close loop */
  810. /* stop loop */
  811. #define STOP_SPD_REF_RPM 100 // unit: rpm, Speed reference value when status go to stop
  812. /*======================================================================*
  813. Flux observer
  814. *=======================================================================*/
  815. #define OBS_SPD_PLL_M 10 // Flux observer m coefficient
  816. #define OBS_SPD_PLL_BANDWIDTH_HZ 150 // Huawei // Flux observer PLL bandwidth
  817. #define OBS_FLUX_PI_DAMPRATIO 10 // 5 bafang 5, yuanxian 10// unit:0.1, Flux observer PI regulator dampratio
  818. #define OBS_FLUX_PI_CROSSFREQ_HZ 10 // 5 // unit:Hz, Flux observer PI regulator crossfrequency
  819. /*======================================================================*
  820. Current loop PI regulation
  821. *=======================================================================*/
  822. #define ACR_PI_BANDWIDTH_FLX 200 // unit: Hz, Current loop bandwidth when flux observer run
  823. #define ACR_CUR_FLX_FBK_LPF_FRQ 8000 // unit: Hz, Frequency of current feedback LPF when flux observer run
  824. #define ACR_CUR_OUT_LIM 37837 // Q15, 2/sqrt(3)*Vdc for current output limit //18919
  825. #define ACR_RA_COEF 3 // Coefficient of Active Resistance
  826. #define ACR_UDCP_OUT_LIM 18918 // Q15, 2/3*Vdc for Udcp output limit //18918 //21845 //10923
  827. /*======================================================================*
  828. Speed loop PI regulation
  829. *=======================================================================*/
  830. #define ASR_PI_BANDWIDTH 8 // 16 //3 // unit: Hz, Speed loop bandwidth
  831. #define ASR_PI_M 16 // 8 //6 //
  832. #define ASR_SPD_FBK_LPF_FRQ 50 //
  833. #define ASR_SPD_INER_RATE 1 //
  834. /*=====================================================================*
  835. PWM generation
  836. *=======================================================================*/
  837. #define PWM_MAX_DUTY_CYLE_IPM 900// 900// 900 // 938 // unit: 0.1%,Max duty cyle for compare value
  838. #define PWM_7SVM_TO_5SVM_DUTY_IPM 1000 // unit: 0.1%, Switch ratio from 7 to 5 svpwm
  839. #define PWM_MIN_SAMPLE_DUTY1_IPM 5 * 10000 / PWM_PERIOD_US // unit: 0.1%, 5us TWO MIN ZERO VECTOR = two sample current steady time
  840. #define PWM_MIN_SAMPLE_DUTY2_IPM 10 * 10000 / PWM_PERIOD_US // unit: 0.1%, 10us TWO (one sample current steady time + one sample time)
  841. #define PWM_MIN_SAMPLE_DUTY3_IPM \
  842. 12 * 10000 / PWM_PERIOD_US // unit: 0.1%, 12 us TWO (one Singel Resistance sample current steady time + one sample time)
  843. #define PWM_SAMPLE_TOSTEADY_IPM 8 * 10000 / PWM_PERIOD_US // unit: 0.1%, 4us TWO sample current to steady time
  844. #define PWM_SAMPLE_SINGELRESIS_IPM 1 * 10000 / PWM_PERIOD_US // unit: 0.1%, 1us TWO singel Resistance sample time
  845. #define PWM_1ST_SAMPLE_CTS_IPM 50 // 25 // unit: Null, first current sample counts
  846. #define PWM_2ND_SAMPLE_CTS_IPM 280 // 220 // unit: Null, second current sample counts
  847. #define PWM_OVR_MDL_MIN_PHS 0 // SVPWM over modulation: min phase error
  848. #define PWM_OVR_MDL_MIN_AMP 1 // SVPWM over modulation: min amplitude error
  849. #define PWM_OVR_MDL_OPTIMUM 2 // SVPWM over modulation: amplitude and phase optimum
  850. #define PWM_OVR_MDL_SEL PWM_OVR_MDL_MIN_PHS //
  851. /*======================================================================*
  852. Flux Weakening
  853. *=======================================================================*/
  854. #define FW_VDC_MIN_CALC_TM 20 // unit: ms,50Hz=>20ms, period of Vdc fluctuate
  855. #define FW_VDC_LPF_FRQ 50 // unit: Hz, Frequency of Vdc LPF
  856. #define FW_PWM_MAX_DUTY_CYLE_IPM 900 // unit: 0.1%,PWM max duty cyle for flux weakening
  857. #define FW_ID_PI_OUT_MIN 800 // unit: 0.01A, Min Id of PI outunit: 0.01A, Current Limit
  858. #define FW_ID_MIN_LIM_RATIO 80 // Q0:1%, Ratio of Min d axis current (Charactoristic current)
  859. #define FW_ID_KP_PU 16384 // Q16, Kp for d axis current
  860. #define FW_ID_KI_PU 20 // Q16, Ki for d axis current
  861. #define FW_CHAR_CUR_CROSS_FREQ 2 // Q0,unit: SQRT(1/2piR)
  862. #define FW_CHAR_CUR_DAMP_RATIO 2 // Q0,unit: SQRT(pi/2R)
  863. /*======================================================================*
  864. Constant Voltage Braking Parameter define
  865. *=======================================================================*/
  866. #if (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V)
  867. #define CVB_CONSTANT_VOL_BRAKE_V 580 // unit:0.1V,Voltage limit of Constant Voltage Brake
  868. #define CVB_CONSTANT_SPD_LOW_RPM 5000 // unit:rpm
  869. #elif (IPM_VOLTAGE_SEL == IPM_VOLTAGE_36V)
  870. #define CVB_CONSTANT_VOL_BRAKE_V 450 // unit:0.1V,Voltage limit of Constant Voltage Brake
  871. #define CVB_CONSTANT_SPD_LOW_RPM 5000 // unit:rpm
  872. #else
  873. #define CVB_CONSTANT_VOL_BRAKE_V 450 // unit:0.1V,Voltage limit of Constant Voltage Brake
  874. #define CVB_CONSTANT_SPD_LOW_RPM 5000 // unit:rpm
  875. #endif
  876. /*======================================================================*
  877. Power limit
  878. *=======================================================================*/
  879. #if( (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_1000W) ||(MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE10_1000W_500Ratio))
  880. #define ALM_ROTOR_LOCK_IQ_ABS 6300 // 6300 // unit: 0.01A, Threshold value
  881. #elif( (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_750W) ||(MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE10_750W_500Ratio))
  882. #define ALM_ROTOR_LOCK_IQ_ABS 6300 // 6300 // unit: 0.01A, Threshold value
  883. #elif((MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_500W)||(MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE10_500W_500Ratio))
  884. #define ALM_ROTOR_LOCK_IQ_ABS 4500 // 6300 // unit: 0.01A, Threshold value
  885. #elif (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_500W_958Ratio)
  886. #define ALM_ROTOR_LOCK_IQ_ABS 4500 // 6300 // unit: 0.01A, Threshold value
  887. #elif (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_350W)
  888. #define ALM_ROTOR_LOCK_IQ_ABS 4500 // 4500 // unit: 0.01A, Threshold value
  889. #elif (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_350W_958Ratio)
  890. #define ALM_ROTOR_LOCK_IQ_ABS 4500 // 4500 // unit: 0.01A, Threshold value
  891. #elif (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_250W)
  892. #define ALM_ROTOR_LOCK_IQ_ABS 3200 // 4500 // unit: 0.01A, Threshold value
  893. #elif (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_250W_LowRatio)
  894. #define ALM_ROTOR_LOCK_IQ_ABS 3200 // 4500 // unit: 0.01A, Threshold value
  895. #elif (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_250W_517Ratio)
  896. #define ALM_ROTOR_LOCK_IQ_ABS 3200 // 4500 // unit: 0.01A, Threshold value
  897. #elif (MOTOR_ID_SEL == MOTOR_LUNGU_WELLING_HAL_POLE8_250W_958Ratio)
  898. #define ALM_ROTOR_LOCK_IQ_ABS 3200 // 4500 // unit: 0.01A, Threshold value
  899. #else
  900. #define ALM_ROTOR_LOCK_IQ_ABS 3200 // 4500 // unit: 0.01A, Threshold value
  901. #endif
  902. /*======================================================================*
  903. Idc and Power limit
  904. *=======================================================================*/
  905. #if ((IPM_POWER_SEL == IPM_POWER_250W_6G) && (IPM_VOLTAGE_SEL == IPM_VOLTAGE_36V))
  906. #define IDCLIMIQSTART (((ULONG)1500 << 14) / IBASE);
  907. #define IDCLIMIQEND (((ULONG)1600 << 14) / IBASE);
  908. #define PWRLIM_VAL (15*360+200) // unit: 0.1w, Power limit value
  909. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  910. // #define IDCLIMIQSTART (((ULONG)2500 << 14) / IBASE);
  911. //#define IDCLIMIQEND (((ULONG)2600 << 14) / IBASE);
  912. //#define PWRLIM_VAL (25*360+200) // unit: 0.1w, Power limit value
  913. //#define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  914. #elif ((IPM_POWER_SEL == IPM_POWER_250W_6G) && (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V))
  915. #define IDCLIMIQSTART (((ULONG)1200 << 14) / IBASE);
  916. #define IDCLIMIQEND (((ULONG)1300 << 14) / IBASE);
  917. #define PWRLIM_VAL (12*480+200) // unit: 0.1w, Power limit value
  918. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  919. #elif ((IPM_POWER_SEL == IPM_POWER_350W_6G) && (IPM_VOLTAGE_SEL == IPM_VOLTAGE_36V))
  920. #define IDCLIMIQSTART (((ULONG)1500 << 14) / IBASE);
  921. #define IDCLIMIQEND (((ULONG)1600 << 14) / IBASE);
  922. #define PWRLIM_VAL (18*360+200) // unit: 0.1w, Power limit value
  923. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  924. // #define IDCLIMIQSTART (((ULONG)2500 << 14) / IBASE);
  925. //#define IDCLIMIQEND (((ULONG)2600 << 14) / IBASE);
  926. //#define PWRLIM_VAL (25*360+200) // unit: 0.1w, Power limit value
  927. //#define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  928. #elif ((IPM_POWER_SEL == IPM_POWER_350W_6G) && (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V))
  929. #define IDCLIMIQSTART (((ULONG)1200 << 14) / IBASE);
  930. #define IDCLIMIQEND (((ULONG)1300 << 14) / IBASE);
  931. #define PWRLIM_VAL (14*480+200) // unit: 0.1w, Power limit value
  932. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  933. #elif ((IPM_POWER_SEL == IPM_POWER_500W_6G) && (IPM_VOLTAGE_SEL == IPM_VOLTAGE_36V))
  934. #define IDCLIMIQSTART (((ULONG)2500 << 14) / IBASE);
  935. #define IDCLIMIQEND (((ULONG)2600 << 14) / IBASE);
  936. #define PWRLIM_VAL (25*360+500) // unit: 0.1w, Power limit value
  937. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  938. #elif ((IPM_POWER_SEL == IPM_POWER_500W_6G) && (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V))
  939. #define IDCLIMIQSTART (((ULONG)2000 << 14) / IBASE);
  940. #define IDCLIMIQEND (((ULONG)2100 << 14) / IBASE);
  941. #define PWRLIM_VAL (20*480+500) // unit: 0.1w, Power limit value
  942. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  943. #elif ((IPM_POWER_SEL == IPM_POWER_350W_9G) && (IPM_VOLTAGE_SEL == IPM_VOLTAGE_36V))
  944. #define IDCLIMIQSTART (((ULONG)1800 << 14) / IBASE);
  945. #define IDCLIMIQEND (((ULONG)1900 << 14) / IBASE);
  946. #define PWRLIM_VAL (18*360+200) // unit: 0.1w, Power limit value
  947. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  948. #elif ((IPM_POWER_SEL == IPM_POWER_350W_9G) && (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V))
  949. #define IDCLIMIQSTART (((ULONG)1400 << 14) / IBASE);
  950. #define IDCLIMIQEND (((ULONG)1500 << 14) / IBASE);
  951. #define PWRLIM_VAL (14*480+200) // unit: 0.1w, Power limit value
  952. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  953. #elif ((IPM_POWER_SEL == IPM_POWER_500W_9G) && (IPM_VOLTAGE_SEL == IPM_VOLTAGE_36V))
  954. #define IDCLIMIQSTART (((ULONG)2500 << 14) / IBASE);
  955. #define IDCLIMIQEND (((ULONG)2600 << 14) / IBASE);
  956. #define PWRLIM_VAL (25*360+500) // unit: 0.1w, Power limit value
  957. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  958. #elif ((IPM_POWER_SEL == IPM_POWER_500W_9G) && (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V))
  959. #define IDCLIMIQSTART (((ULONG)2000 << 14) / IBASE);
  960. #define IDCLIMIQEND (((ULONG)2100 << 14) / IBASE);
  961. #define PWRLIM_VAL (20*480+500) // unit: 0.1w, Power limit value
  962. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  963. #elif ((IPM_POWER_SEL == IPM_POWER_500W_12G) && (IPM_VOLTAGE_SEL == IPM_VOLTAGE_36V))
  964. #define IDCLIMIQSTART (((ULONG)2500 << 14) / IBASE);
  965. #define IDCLIMIQEND (((ULONG)2600 << 14) / IBASE);
  966. #define PWRLIM_VAL (25*360+500) // unit: 0.1w, Power limit value
  967. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  968. #elif ((IPM_POWER_SEL == IPM_POWER_500W_12G) && (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V))
  969. #define IDCLIMIQSTART (((ULONG)2000 << 14) / IBASE);
  970. #define IDCLIMIQEND (((ULONG)2100 << 14) / IBASE);
  971. #define PWRLIM_VAL (20*480+500) // unit: 0.1w, Power limit value
  972. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  973. #elif((IPM_POWER_SEL ==IPM_POWER_350W_MINI_12G)&& (IPM_VOLTAGE_SEL == IPM_VOLTAGE_36V))
  974. #define IDCLIMIQSTART (((ULONG)1800 << 14) / IBASE);
  975. #define IDCLIMIQEND (((ULONG)1900 << 14) / IBASE);
  976. #define PWRLIM_VAL (18*360+500) // unit: 0.1w, Power limit value
  977. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  978. #elif ((IPM_POWER_SEL == IPM_POWER_350W_MINI_12G) && (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V))
  979. #define IDCLIMIQSTART (((ULONG)1400 << 14) / IBASE);
  980. #define IDCLIMIQEND (((ULONG)1500 << 14) / IBASE);
  981. #define PWRLIM_VAL (14*480+500) // unit: 0.1w, Power limit value
  982. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  983. #elif (((IPM_POWER_SEL == IPM_POWER_750W_12G)||(IPM_POWER_SEL ==IPM_POWER_750W_MINI_12G)) && (IPM_VOLTAGE_SEL == IPM_VOLTAGE_36V))
  984. #define IDCLIMIQSTART (((ULONG)3000 << 14) / IBASE);
  985. #define IDCLIMIQEND (((ULONG)3100 << 14) / IBASE);
  986. #define PWRLIM_VAL (30*360+500) // unit: 0.1w, Power limit value
  987. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  988. #elif (((IPM_POWER_SEL == IPM_POWER_750W_12G)||(IPM_POWER_SEL ==IPM_POWER_750W_MINI_12G)) && (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V))
  989. #define IDCLIMIQSTART (((ULONG)2500 << 14) / IBASE);
  990. #define IDCLIMIQEND (((ULONG)2600 << 14) / IBASE);
  991. #define PWRLIM_VAL (25*480+500) // unit: 0.1w, Power limit value
  992. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  993. #elif ((IPM_POWER_SEL == IPM_POWER_1000W_12G) && (IPM_VOLTAGE_SEL == IPM_VOLTAGE_36V))
  994. #define IDCLIMIQSTART (((ULONG)3000 << 14) / IBASE);
  995. #define IDCLIMIQEND (((ULONG)3100 << 14) / IBASE);
  996. #define PWRLIM_VAL (30*360+500) // unit: 0.1w, Power limit value
  997. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  998. #elif ((IPM_POWER_SEL == IPM_POWER_1000W_12G) && (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V))
  999. #define IDCLIMIQSTART (((ULONG)3000 << 14) / IBASE);
  1000. #define IDCLIMIQEND (((ULONG)3100 << 14) / IBASE);
  1001. #define PWRLIM_VAL (30*480) // unit: 0.1w, Power limit value
  1002. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  1003. #elif ((IPM_POWER_SEL == IPM_POWER_1000W_MINI_12G) && (IPM_VOLTAGE_SEL == IPM_VOLTAGE_36V))
  1004. #define IDCLIMIQSTART (((ULONG)3000 << 14) / IBASE);
  1005. #define IDCLIMIQEND (((ULONG)3100 << 14) / IBASE);
  1006. #define PWRLIM_VAL (30*360+500) // unit: 0.1w, Power limit value
  1007. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  1008. #elif ((IPM_POWER_SEL == IPM_POWER_1000W_MINI_12G) && (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V))
  1009. #define IDCLIMIQSTART (((ULONG)3000 << 14) / IBASE);
  1010. #define IDCLIMIQEND (((ULONG)3100 << 14) / IBASE);
  1011. #define PWRLIM_VAL (30*480) // unit: 0.1w, Power limit value
  1012. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  1013. #else
  1014. #define IDCLIMIQSTART (((ULONG)1500 << 14) / IBASE);
  1015. #define IDCLIMIQEND (((ULONG)1600 << 14) / IBASE);
  1016. #define PWRLIM_VAL (15*360+500) // unit: 0.1w, Power limit value
  1017. #define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
  1018. #endif
  1019. #define PWRLIM_LPF_FRQ 400 // unit: Hz, Frequency of LPF in input power of motor
  1020. #define PWR_IQ_LIMIT_KP_PU 120 // Q15
  1021. #define PWR_IQ_LIMIT_KI_PU 100 // Q15
  1022. /*======================================================================*
  1023. Deadband compensation
  1024. *=======================================================================*/
  1025. #define DBC_K_COEF 120 // unit:0.1V/A Deadband compensation slope coefficient
  1026. /*======================================================================*
  1027. Communication type define
  1028. *=======================================================================*/
  1029. #define UART_MONITOR 0 //
  1030. #define UART_HOST 1 //
  1031. #define UART_TYPE UART_HOST //
  1032. /*==============================================================================
  1033. Speed & Acc Constant parameters define
  1034. ==============================================================================*/
  1035. #define USER_MOTOR_45RPM2PU SPD_RPM2PU(45) // 45rpm,Q15
  1036. #define USER_MOTOR_100RPM2PU SPD_RPM2PU(100)
  1037. #define USER_MOTOR_200RPM2PU SPD_RPM2PU(200)
  1038. #define USER_MOTOR_300RPM2PU SPD_RPM2PU(300)
  1039. #define USER_MOTOR_400RPM2PU SPD_RPM2PU(400)
  1040. #define USER_MOTOR_600RPM2PU SPD_RPM2PU(600) // 600rpm,Q15
  1041. #define USER_MOTOR_800RPM2PU SPD_RPM2PU(800) // 800rpm,Q15
  1042. #define USER_MOTOR_1000RPM2PU SPD_RPM2PU(1000) // 1000rpm,Q15
  1043. #define USER_MOTOR_1500RPM2PU SPD_RPM2PU(1500) // 6000rpm,Q15
  1044. #define USER_MOTOR_4000RPM2PU SPD_RPM2PU(4000) // 6000rpm,Q15
  1045. #define USER_MOTOR_5500RPM2PU SPD_RPM2PU(5500)
  1046. #define USER_MOTOR_100RPMPS2PU_Q29 SPD_ACC_RPM2PU(100) // 100rpm/s,(0x40000000/FTBS_Hz/cof_uwVbRpm*100)
  1047. #define USER_MOTOR_240RPMPS2PU_Q29 SPD_ACC_RPM2PU(200) // 240rpm/s
  1048. #define USER_MOTOR_1000RPMPS2PU_Q29 SPD_ACC_RPM2PU(1000) // 1000rpm/s
  1049. #define USER_MOTOR_2000RPMPS2PU_Q29 SPD_ACC_RPM2PU(2000) // 2000rpm/s
  1050. #define USER_MOTOR_3000RPMPS2PU_Q29 SPD_ACC_RPM2PU(3000) // 3000rpm/s
  1051. /*=======================================================================
  1052. TBS&TBC Time Cnts Define
  1053. =======================================================================*/
  1054. #define TBCCNT_500us (((ULONG)500 * FTBC_HZ) / 1000000)
  1055. #define TBCCNT_1ms (((ULONG)1 * FTBC_HZ) / 1000)
  1056. #define TBCCNT_5ms (((ULONG)5 * FTBC_HZ) / 1000)
  1057. #define TBCCNT_10ms (((ULONG)10 * FTBC_HZ) / 1000)
  1058. #define TBCCNT_50ms (((ULONG)50 * FTBC_HZ) / 1000)
  1059. #define TBCCNT_32ms (((ULONG)32 * FTBC_HZ) / 1000)
  1060. #define TBCCNT_60ms (((ULONG)60 * FTBC_HZ) / 1000)
  1061. #define TBCCNT_100ms (((ULONG)100 * FTBC_HZ) / 1000)
  1062. #define TBCCNT_150ms (((ULONG)150 * FTBC_HZ) / 1000)
  1063. #define TBCCNT_200ms (((ULONG)200 * FTBC_HZ) / 1000)
  1064. #define TBCCNT_250ms (((ULONG)250 * FTBC_HZ) / 1000)
  1065. #define TBCCNT_300ms (((ULONG)300 * FTBC_HZ) / 1000)
  1066. #define TBCCNT_400ms (((ULONG)400 * FTBC_HZ) / 1000)
  1067. #define TBCCNT_500ms (((ULONG)500 * FTBC_HZ) / 1000)
  1068. #define TBCCNT_100ms (((ULONG)100 * FTBC_HZ) / 1000)
  1069. #define EVE1MSCNT_1ms (((ULONG)1 * EVENT_1MS_HZ) / 1000)
  1070. #define EVE1MSCNT_5ms (((ULONG)5 * EVENT_1MS_HZ) / 1000)
  1071. #define EVE1MSCNT_10ms (((ULONG)10 * EVENT_1MS_HZ) / 1000)
  1072. #define EVE1MSCNT_20ms (((ULONG)20 * EVENT_1MS_HZ) / 1000)
  1073. #define EVE1MSCNT_50ms (((ULONG)50 * EVENT_1MS_HZ) / 1000)
  1074. #define EVE1MSCNT_100ms (((ULONG)100 * EVENT_1MS_HZ) / 1000)
  1075. #define EVE1MSCNT_200ms (((ULONG)200 * EVENT_1MS_HZ) / 1000)
  1076. #define EVE10MSCNT_3s ((ULONG)3 * EVENT_1MS_HZ / 10)
  1077. #define EVE10MSCNT_5s ((ULONG)5 * EVENT_1MS_HZ / 10)
  1078. #define EVE10MSCNT_10s ((ULONG)10 * EVENT_1MS_HZ / 10)
  1079. /************************************************************************
  1080. Comment Table
  1081. *************************************************************************/
  1082. // /*======================================================================*
  1083. // High Frequency Signal Injection
  1084. // *=======================================================================*/
  1085. // #define HFI_FREQ1_HZ 1200 // unit: Hz, Inject signal frequency 1
  1086. // #define HFI_AMP1_VT 600 // unit: 0.1v, Inject signal voltage 1
  1087. // #define HFI_FREQ2_HZ 1400 // unit: Hz, Inject signal frequency 2
  1088. // #define HFI_AMP2_VT 700 // unit: 0.1v, Inject signal voltage 2
  1089. // #define HFI_TM_INIPOS_MS 60 // unit: ms, Initial position detection time
  1090. // #define HFI_WAITTM_INIPOS_MS 6 // unit: ms, Wait time after initial position detection
  1091. // #define HFI_AMP_POR_VT 700 // unit: 0.1v, Polarity detection voltage amplitude
  1092. // #define HFI_TM_POR_PULS_MS 1 // unit: ms, Polarity detection voltage pulse time
  1093. // #define HFI_WAITTM_POR_PULS_MS 12 // Wunit: ms, ait time after voltage pulse
  1094. // #define HFI_DELTA_CUR_MAG_POR_OK_AP 20 // unit: 0.01A, delta current for polarity detection ok
  1095. // #define HFI_CUR_LPF_HZ 500 // unit: Hz, Cut-off frequency of current lpf
  1096. // #define HFI_CUR_HPF_HZ 50 // unit: Hz, Cut-off frequency of current hpf
  1097. // #define HFI_PLL_DAMPING_RATIO 35 // unit: Null, Pll damping ratio
  1098. // #define HFI_PLL_CROSS_FREQ_HZ 20 // unit: Hz, Pll cross frequency
  1099. // #define HFI_SPD_LPF_HZ 8 // unit: Hz, Cut-off frequency of spd lpf
  1100. // #define HFI_MAG_SATR_AP 240 // unit: 0.01A, Magnetic saturation current
  1101. /************************************************************************
  1102. TypeDefs & Structure defines
  1103. *************************************************************************/
  1104. /************************************************************************
  1105. Exported Variables:
  1106. *************************************************************************/
  1107. /************************************************************************
  1108. RAM ALLOCATION:
  1109. *************************************************************************/
  1110. /************************************************************************
  1111. Exported Function Call Prototypes (N/A)
  1112. *************************************************************************/
  1113. /************************************************************************
  1114. Local Function Call Prototypes (N/A)
  1115. *************************************************************************/
  1116. /************************************************************************
  1117. Head files (N/A)
  1118. *************************************************************************/
  1119. #include <stdlib.h>
  1120. #include "CodePara.h"
  1121. #include "classB.h"
  1122. #include "hwsetup.h"
  1123. #include "mathtool.h"
  1124. #include "main.h"
  1125. #include "spdctrFSM.h"
  1126. #include "glbcof.h"
  1127. #include "crdnt.h"
  1128. #include "tbc.h"
  1129. #include "tbs.h"
  1130. #include "tbt.h"
  1131. #include "alarm.h"
  1132. #include "adc.h"
  1133. #include "spi_master.h"
  1134. #include "i2c_master.h"
  1135. #include "spdctrmode.h"
  1136. #include "acr.h"
  1137. #include "asr.h"
  1138. #include "asr_new.h"
  1139. #include "torqobs.h"
  1140. #include "LoadObsTheta.h"
  1141. #include "obs.h"
  1142. #include "dbc.h"
  1143. #include "uart_monitor.h"
  1144. #include "flxwkn.h"
  1145. #include "spdflxwkn.h"
  1146. #include "pwm.h"
  1147. #include "brake.h"
  1148. #include "hfinj.h"
  1149. #include "pwrlim.h"
  1150. #include "bootloader.h"
  1151. #include "brake.h"
  1152. #include "macroequ.h"
  1153. #include "alignstartup.h"
  1154. #include "switchhall.h"
  1155. #include "LoadObsTheta.h"
  1156. /************************************************************************
  1157. Flag Define (N/A)
  1158. *************************************************************************/
  1159. #endif
  1160. /*************************************************************************
  1161. Copyright (c) 2019 Welling Motor Technology(Shanghai) Co. Ltd.
  1162. All rights reserved.
  1163. *************************************************************************
  1164. End of this File (EOF)!
  1165. Do not put anything after this part!
  1166. *************************************************************************/