你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于ST官方电机开发套件:FOC5.3库-正反转加减速代码及调...  

[复制链接]
mmuuss586 发布时间:2019-1-9 11:05
阅读主题, 点击返回1楼
4 收藏 9 评论179 发布时间:2019-1-9 11:05
179个回答
mmuuss586 回答时间:2019-1-9 11:31:39
MC_ProgramSpeedRampMotor1(3000/6,2000); //设置为速度模式,设置速度指令
调用此函数后hDurationms设置时间内当前速度变化到hFinalSpeed设置的目标速度
void MC_ProgramSpeedRampMotor1( int16_t hFinalSpeed, uint16_t hDurationms )
{
        MCI_ExecSpeedRamp( pMCI[M1], hFinalSpeed, hDurationms );
}

MC_ProgramTorqueRampMotor1(2000,2000);         //设置为转矩模式,设置转矩指令
调用此函数后hDurationms设置时间内当前转矩变化到hFinalTorque设置的目标转矩
void MC_ProgramTorqueRampMotor1( int16_t hFinalTorque, uint16_t hDurationms )
{
        MCI_ExecTorqueRamp( pMCI[M1], hFinalTorque, hDurationms );
}
mmuuss586 回答时间:2019-1-9 11:31:57
Motor1Speed=MC_GetMecSpeedReferenceMotor1();    //获取Motor1当前指令的机械转速,数字量1代表0.1HZ
int16_t MC_GetMecSpeedReferenceMotor1(void)
{
        return MCI_GetMecSpeedRef01Hz( pMCI[M1] );
}

Motor1SpeedAverage=MC_GetMecSpeedAverageMotor1();        //获取Motor1当前指令的平均机械转速,数字量1代表0.1HZ
int16_t MC_GetMecSpeedAverageMotor1(void)
{
        return MCI_GetAvrgMecSpeed01Hz( pMCI[M1] );
}
mmuuss586 回答时间:2019-1-9 11:32:25
Motor1State=MC_GetSTMStateMotor1(); //获取Motor1状态机的电机状态
State_t  MC_GetSTMStateMotor1(void)
{
        return MCI_GetSTMState( pMCI[M1] );
}
27.png

mmuuss586 回答时间:2019-1-9 11:34:31
Motor1Faults=MC_GetOccurredFaultsMotor1();//获取Motor1发生过的故障代码       
uint16_t MC_GetOccurredFaultsMotor1(void)
{
        return MCI_GetOccurredFaults( pMCI[M1] );
}
28.png

mmuuss586 回答时间:2019-1-9 11:34:47
MC_AcknowledgeFaultMotor1();//清除电机故障错误
调用此函数前,如果电机发生故障。电机停留在FAULT_OVER状态,并保留故障代码。调用后,状态机清除故障代码记录,并恢复到IDLE状态。
bool MC_AcknowledgeFaultMotor1( void )
{
        return MCI_FaultAcknowledged( pMCI[M1] );
}

Motor1Dir=MC_GetImposedDirectionMotor1();        //返回最后一个指令设置的电机方向,如果最终的速度或转矩指令为负数返回-1,否则返回1
int16_t MC_GetImposedDirectionMotor1(void)
{
        return MCI_GetImposedMotorDirection( pMCI[M1] );
}


mmuuss586 回答时间:2019-1-9 11:35:16
main函数while循环代码示例:

1、电机以3000rpm运行,加速时间为2S;
2、程序启动电机运行,运行速度为3000rpm,在10S后停止转动;
3、电机停止前,读取电机相关参数(方向、速度、故障等);
4、电机故障处理;
5、停止1S后电机重新运行,速度依然是3000rpm,不过速度为-3000rpm;
6、以上过程重复操作。
mmuuss586 回答时间:2019-1-9 11:35:39
参考代码截图
29.png

mmuuss586 回答时间:2019-1-9 11:36:19
打开MotorControl Workbench观察相关参数和电机运行曲线
点Monitor按钮观察电机相关参数
30.png
点开后如下图所示
31.png

mmuuss586 回答时间:2019-1-9 11:40:20
点击connect按钮先进行连接,如连接不上按下板子上黑色复位按钮或更换串口端口号先进行测试。
32.png
连接后如下图所示(可以看到SDK 5.3版本)
33.png

mmuuss586 回答时间:2019-1-9 11:40:56
点Basic界面,可以看到板子的一些参数,也可以对板子进行启动、停止、清除故障等操作
35.png

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版