
本帖最后由 哈佛祖安智 于 2017-8-27 22:00 编辑 本次培训的作业二是控制电机启停运转5秒钟、速度3000RPM,如此往复,即转5秒->停5秒; 先使用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打开工程; ![]() step2:MC_SixStep_param.h文件非常重要,里面保存了基本的梯形6步法电机控制的参数设置。 ![]() 参数设置分为2大部分,基本参数和高级参数设置。对于简单的应用,修改下基本参数就行了; NUM_POLE_PAIRS表示使用的电机的极对数,后面的7表示BR2804-1700KV-1型三相无刷直流电动机的极对数是7; DIRECTION表示电机的旋转方向,0表示正转,1表示反转,但电机的接线必须符合手册介绍; TARGET_SPEED表示电动机的初始目标速度,3000表示3000rpm; POTENTIOMETER表示是否使用电位器调整电机的速度,0表示禁止,1表示允许,默认是允许的,这里改为0禁止; step3:在while-loop循环里有电机控制实例的说明和参考API函数,以及给用户提供的编程位置。 ![]() 只需5句简单的代码就可实现预期的目标,
再看看,矢量(FOC)控制,需要配置下板卡:即将JP1和JP2闭合,同时J5和J6选择3SH边短接。 在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)内容添加代码: ![]() 视频: 听声音很明显,矢量(FOC)控制加速没有梯形6步法快,但平稳。 |