user.h 74 KB

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