打印
[STM32F3]

用STM32做直流电机驱动板,出现问题了

[复制链接]
2124|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
用上位机给STM32直流驱动板发指令,STM32完成上位机指令后,但由于编码器计数未清零,指令不能连续发送,该怎么办?
s32 pwm;
extern s16 dAngle;
//s16 Now_position;

void Speed_control(s16 set_Position,s16 set_Speed)
{                
        pwm+=PID(set_Speed,dAngle);                                  //速度环PID控制,输出PWM控制量
        if(pwm>10000)
                pwm=9000;
        if(pwm<0)
                pwm=500;
//        TIM1->CCR1=pwm;
       
        if(set_Position==TIM2->CNT)
        {
    TIM1->CCR1=0x0000;
                TIM1->CCR2=0x0000;
//                  delay_ms(1000);
//                  flag=1;
  }
        else if(set_Position>TIM2->CNT)
        {
                TIM1->CCR1=pwm;
                TIM1->CCR2=0x0000;       
  }
        else if(set_Position<TIM2->CNT)
        {
                TIM1->CCR1=0x0000;
                TIM1->CCR2=pwm;
        }       
}
用TIM2进行编码器计数,通过电脑串口设置set_Position(位置),set_Speed(速度)




设置转9000个脉冲,但由于电机惯性,编码器计数显示9231个脉冲,怎么让误差减小?

当驱动板完成指令电机停止后,怎么让编码器的计数清零,为下一次指令接收做好准备?

IMG_20151031_220829.jpg (5.54 MB )

IMG_20151031_220829.jpg
沙发
mmuuss586| | 2015-11-1 10:13 | 只看该作者
误差减小只能调PID参数了;
或者你计数到8000的时候,开始减速啊;

使用特权

评论回复
板凳
sail8498| | 2015-11-1 11:10 | 只看该作者
PWM想要精确控制直流电机,就要用PID算法。
既然你有编码器为什么不跟据编码器结果控制PWM输出呢?
不要直接用上位机信号,要在STM32上做个关环控制。
每一定的时间检测编码器读数,跟据编码器读数调整PWM。

请参考:https://bbs.21ic.com/icview-910382-1-1.html

使用特权

评论回复
地板
心染红尘|  楼主 | 2015-11-1 11:23 | 只看该作者
本帖最后由 心染红尘 于 2015-11-1 11:26 编辑
mmuuss586 发表于 2015-11-1 10:13
误差减小只能调PID参数了;
或者你计数到8000的时候,开始减速啊;

还有就是当驱动板完成指令电机停止后,怎么让编码器的计数清零,为下一次指令接收做好准备?比如我让电机转9000个脉冲,当完成9000个脉冲之后,编码器计数未清零,那么下次发送电机转9000个脉冲指令时,电机是不会转动的。

使用特权

评论回复
5
心染红尘|  楼主 | 2015-11-1 19:31 | 只看该作者
sail8498 发表于 2015-11-1 11:10
PWM想要精确控制直流电机,就要用PID算法。
既然你有编码器为什么不跟据编码器结果控制PWM输出呢?
不要直 ...

对于电机的位置,如何实现精确控制

使用特权

评论回复
6
xuyaqi| | 2015-11-1 20:00 | 只看该作者
心染红尘 发表于 2015-11-1 19:31
对于电机的位置,如何实现精确控制

越接近电机要求的位置,应该转得越慢,这样电机的惯量小过冲才会小。

使用特权

评论回复
7
sail8498| | 2015-11-1 21:21 | 只看该作者
心染红尘 发表于 2015-11-1 19:31
对于电机的位置,如何实现精确控制

以抛物线形状跟据编码器读数调速PWM的加减速比率,

使用特权

评论回复
8
slm342107| | 2015-11-2 08:58 | 只看该作者
实际就是一种超调,解决超调的办法还是不少的,分段加减速,上下区间控制等

使用特权

评论回复
9
心染红尘|  楼主 | 2015-11-2 15:46 | 只看该作者
slm342107 发表于 2015-11-2 08:58
实际就是一种超调,解决超调的办法还是不少的,分段加减速,上下区间控制等 ...

您有这方面的资料吗?

使用特权

评论回复
10
slm342107| | 2015-11-3 20:32 | 只看该作者
这里有一篇论文,有点大  直接给你网址 你看看有没有帮助吧    http://www.doc88.com/p-94657551776.html

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

36

帖子

1

粉丝