|
本帖最后由 哈佛祖安智 于 2017-8-27 22:00 编辑 4 R- S9 c7 I) H8 j3 S! q. g 本次培训的作业二是控制电机启停运转5秒钟、速度3000RPM,如此往复,即转5秒->停5秒;% F0 t9 T$ X0 ]; L6 E2 r , J' A6 D$ o" h) x& s; y! K) N 先使用X-CUBE-SPN7库试试,需要配置梯形6步法:即将JP1和JP2断开,同时J5和J6选择1SH边短接。 step1:进入目录en.X-CUBE-SPN7\STM32CubeExpansion_SPN7_V1.1.0\Projects\Multi\Examples\MotorControl\EWARM\STM32F302R8-Nucleo,使用iar打开工程;5 C5 ^ p8 W. z3 b3 Z0 J
step2:MC_SixStep_param.h文件非常重要,里面保存了基本的梯形6步法电机控制的参数设置。
参数设置分为2大部分,基本参数和高级参数设置。对于简单的应用,修改下基本参数就行了;4 d# p0 ]9 W: E3 }- E8 n C* W* Y NUM_POLE_PAIRS表示使用的电机的极对数,后面的7表示BR2804-1700KV-1型三相无刷直流电动机的极对数是7; DIRECTION表示电机的旋转方向,0表示正转,1表示反转,但电机的接线必须符合手册介绍;- c0 m4 |8 _+ R* X TARGET_SPEED表示电动机的初始目标速度,3000表示3000rpm;* b @$ }$ J( }8 v! e, B POTENTIOMETER表示是否使用电位器调整电机的速度,0表示禁止,1表示允许,默认是允许的,这里改为0禁止;$ H [5 ], y8 L; s1 W9 V \ step3:在while-loop循环里有电机控制实例的说明和参考API函数,以及给用户提供的编程位置。- V x' T8 b: Q
只需5句简单的代码就可实现预期的目标,4 f& L& f. h' _$ D5 ]
再看看,矢量(FOC)控制,需要配置下板卡:即将JP1和JP2闭合,同时J5和J6选择3SH边短接。5 N3 b% E- p L. K 在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)内容添加代码:+ `1 A- M& M7 [
" \ d1 M. s! } 视频: 听声音很明显,矢量(FOC)控制加速没有梯形6步法快,但平稳。# g) _" D5 |, T8 W' M+ `' D1 R |
微信公众号
手机版