智能车制作
标题:
电机pid
[打印本页]
作者:
海蓝月
时间:
2013-3-10 15:40
标题:
电机pid
今天开始使用编码器调电机,但是最终的参数无论怎么调,车子都是龟速,原来大概1.5m/s,现在估计就1m/s吧,而且Kp给大了或者给小的时候,车子的速度不是飚,就是停止不动,用的是增量的pid,不知到底什么情况,为什么还会禁止不动呢??
具体的程序如下:
void speed_pid(int exp_v, int KKP, float KKI, int KKD)
{
float now_v;
//static int last_v_ek = 0, last_v_dek = 0; //速度偏差
float v_ek;
float v_dek; //偏差率
int temp;
//exp_v = (exp_v /40 )*4.5;
now_v = uSpeedNow * 11.85;
v_ek = exp_v - now_v; //速度差 I
v_dek = v_ek - last_v_ek; //偏差率 P
//KKP = 40; //0110 0000
//KKI = 0; //0000 1100
//KKD = 0;
temp = KKP * v_dek + KKI * v_ek + KKD * (v_dek - last_v_dek);
temp =(int)temp / 80;
speed_pwm = speed_pwm + temp;
last_v_ek = v_ek;
last_v_dek = v_dek;
PWMDTY01=speed_pwm;
}
是把10ms采集到的编码器数据转换成轮子的pwn占空比,然后再进行pid 的,求解啊!!~~~弄一天了
作者:
qq364492460
时间:
2013-3-10 16:09
PID公式里的是偏差量 不是偏差率吧?
。。新手意见。错了不要喷额
作者:
qq364492460
时间:
2013-3-10 16:11
公式应该没错。。我看错了,试试看丛其他方面找找原因吧
作者:
卟李狗昕
时间:
2013-3-10 17:40
才调一天啊,没事慢慢调,我们都是整个星期的调
作者:
客流量
时间:
2013-4-12 17:39
你有编码器的资料吗??
发给我一份好吗??
太感谢了
作者:
让梦远航
时间:
2013-4-30 21:06
是不是因为你的D参数有点小啊,
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2