本帖最后由 哈佛祖安智 于 2017-8-27 22:00 编辑 9 w7 M; M6 s9 U" h" Y* L 本次培训的作业二是控制电机启停运转5秒钟、速度3000RPM,如此往复,即转5秒->停5秒; 3 W5 H$ b1 R1 j. a 先使用X-CUBE-SPN7库试试,需要配置梯形6步法:即将JP1和JP2断开,同时J5和J6选择1SH边短接。 3 ?, s/ Q& f& d6 B% ]+ V step1:进入目录en.X-CUBE-SPN7\STM32CubeExpansion_SPN7_V1.1.0\Projects\Multi\Examples\MotorControl\EWARM\STM32F302R8-Nucleo,使用iar打开工程;0 ~" ?1 o: A/ y7 u/ Y+ t step2:MC_SixStep_param.h文件非常重要,里面保存了基本的梯形6步法电机控制的参数设置。2 P" i M& G# i 参数设置分为2大部分,基本参数和高级参数设置。对于简单的应用,修改下基本参数就行了; NUM_POLE_PAIRS表示使用的电机的极对数,后面的7表示BR2804-1700KV-1型三相无刷直流电动机的极对数是7;0 v/ Z" B# X% d0 K DIRECTION表示电机的旋转方向,0表示正转,1表示反转,但电机的接线必须符合手册介绍;" Q9 G$ |- {* H( ?/ s. O2 x TARGET_SPEED表示电动机的初始目标速度,3000表示3000rpm;% K. J' e7 s7 I% ^4 u' ?; K0 t POTENTIOMETER表示是否使用电位器调整电机的速度,0表示禁止,1表示允许,默认是允许的,这里改为0禁止; step3:在while-loop循环里有电机控制实例的说明和参考API函数,以及给用户提供的编程位置。 只需5句简单的代码就可实现预期的目标,
再看看,矢量(FOC)控制,需要配置下板卡:即将JP1和JP2闭合,同时J5和J6选择3SH边短接。( a/ ?) d4 M) @9 y& v6 t - f* o4 W# g! T6 H) p2 T5 ~ 在https://www.stmcu.org.cn/module/forum/thread-613150-1-1.html基础上,进入FOC SDK\v4.3.0\STM32 PMSM FOC LIB\Web\Project\MDK-ARM\UserProject,打开工程STM32F30x_UserProject,屏蔽while(1)内容添加代码:3 z* X/ P( A5 {- u+ w5 q+ s, f( ] / M; E9 h2 n9 ^+ B 6 E/ Q! {2 e' Q' w7 m Q 视频:6 `2 R% s; X. L* T- g& ] 2 \2 L( |0 V$ Y0 X/ P : g: x" I2 U+ G& }4 H4 _ $ \8 v2 H! d: [5 Q 听声音很明显,矢量(FOC)控制加速没有梯形6步法快,但平稳。 9 ]& B4 a# s/ q9 t J2 { |