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

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

[复制链接]
mmuuss586 发布时间:2019-1-9 11:05
阅读主题, 点击返回1楼
5 收藏 9 评论193 发布时间:2019-1-9 11:05
193个回答
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

mmuuss586 回答时间:2019-1-9 11:41:36
点Advaced界面,可以看到PID一些参数以及速度或转矩模式,
也可以对板子进行启动、停止、清除故障及模式切换等操作
35.png


mmuuss586 回答时间:2019-1-9 11:42:55
点Registers界面,可以看到PID、寄存器等相关参数以及最后读取参数时间等
36.png

mmuuss586 回答时间:2019-1-9 11:43:31
点Configuration界面,可以对一些参数进行重新配置及重新装载 37.png
mmuuss586 回答时间:2019-1-9 11:44:14
点Plotter按钮,观察电机的转速运行曲线 38.png
mmuuss586 回答时间:2019-1-9 11:44:38
打开后如下图所示
39.png

所属标签

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