智能车制作
标题:
电机P控制始终调节不到指定的速度,求教
[打印本页]
作者:
wulicheng
时间:
2012-3-9 17:15
标题:
电机P控制始终调节不到指定的速度,求教
speed_offset[1]=speed_offset[0];
speed_offset[0]=speed_wanted-speed; //获得本次速度偏差值
Pre_Control_Speed = Control_Speed;
Control_Speed = Pre_Control_Speed
+ (int)(Speed_K)*(speed_offset[0]-speed_offset[1]);//PID增量式
if(Control_Speed>600){ //限幅控制
Control_Speed=600;
}
else if(Control_Speed<0){
Control_Speed=0;
}
PWMDTY67=Control_Speed;
我用的增量式,单用P控制发现个很奇怪的问题,当我设定恒定速度50时(发现改成60,70也一样),最后调节的结果是稳定在40,调试看了一下speed_offset[0]和speed_offset[1]都是20左右,相减以后自然就没有输出,稳定在40了!我的P算式没写错吧?为什么跟踪恒定值都有误差呢?
作者:
guichuqing
时间:
2012-3-9 18:30
因为单用比例控制存在着静态误差,你加个积分或者微分就OK了
作者:
wbx2050
时间:
2012-3-9 21:24
(int)(Speed_K)*(speed_offset[0]-speed_offset[1]);//这个是D
(int)(Speed_K)*(speed_offset[0]);// 这个是P
作者:
wulicheng
时间:
2012-3-10 00:04
我用的是增量式啊,你那是位置式
作者:
etech
时间:
2012-3-19 13:00
主要是积分吧,P调好了就上I
作者:
luqi
时间:
2012-3-19 13:16
I是关键,没有I的话,不可能严格达到设定速度
作者:
wulicheng
时间:
2012-3-19 22:32
我知道加I以后就能精确控制,就是光加P为什么无论设什么速度最后出来都是一个定值有点不懂
作者:
齐天小晟
时间:
2012-3-29 21:13
wulicheng 发表于 2012-3-19 22:32
我知道加I以后就能精确控制,就是光加P为什么无论设什么速度最后出来都是一个定值有点不懂
只有比例环节确实会有一个恒定误差,我们上学期上自控原理书里面有讲,你可以查查自动控制原理
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2