请教EVVGC—PLUS PID代码
请教云台大神关于EVVGC加强版的环路的问题,如图,它的环路是角度误差乘以I,速度乘以D,加速度乘以P,这是什么原理?好像和传统意义的PID区别很大啊,希望做过的兄台们给点指点。就此谢过。 看起来是增量式PID,没问题。楼主可能理解错了,程序中应该是速度乘以P,加速度乘以D lcw_swust 发表于 2015-10-30 12:27
看起来是增量式PID,没问题。
楼主可能理解错了,程序中应该是速度乘以P,加速度乘以D ...
确实是我写错了,这中PID相当于每一个P I D 的分量都做了积分,您验证过吗?能否具体解释一下,不胜感激 linjing530 发表于 2015-11-4 15:23
确实是我写错了,这中PID相当于每一个P I D 的分量都做了积分,您验证过吗?能否具体解释一下,不胜 ...
这是我用的两个PID函数,和最终程序略有差异
//位置式PID算法,用于温控
void dopid_t(void)
{
static S16 err1,err2;//上次误差,上上次
S32 err0,add;//本次误差
S32 temp_s32;
err0=Ts-Tr;
add=(S32)Pid_p*(err0-err1)+(S32)Pid_i*err0+(S32)Pid_d*((err0-err1)-(err1-err2));
err2=err1;
err1=err0;//保存本次误差
if(add>500*1000)add=500*1000;//增量限幅
if(add<-500*1000)add=-500*1000;
Iout=Iout+add;//改变输出,12位DAC控制电流
//电流输出极限限幅
if(Iout>4095*1000)Iout=4095*1000;//输出限幅
if(Iout<-4095*1000)Iout=-4095*1000;
}
//增量式PID算法,用于四轴
void DoPid_x(void)
{
static idata S16 temp_i;//积分
idata S16 err0,err1;//本次误差、上次误差
//static U8 n=0;//波形监测用
err0=GADegYZ-set_x;//当前角度-设定角度
//degv0=Mpu_Gx;//角速度可直接用陀螺仪数据
err0=amplmt(err0,200);//防止数据太大而溢出
temp_i=amplmt(temp_i+err0,KK*5);//积分限幅
mot_dx=err0*Pidx_p+temp_i*Pidx_i+amplmt(err0-err1,500)*Pidx_d;
mot_dx=amplmt(mot_dx,KK*15);//输出限幅
}
//--------------------------------------------------
//限幅
//--------------------------------------------------
S16 amplmt(S16 v,S16 amp)
{
if(v>amp)v=amp;
if(v<-amp)v=-amp;
return v;
}
这里有个资料:
您的程序 上面是增量式下面是位置式吧? 我已经理解了,十分感谢{:handshake:},程序中是按照式(2-5)的第一步写的。PDF资料我之前看过,很不错。第四页的系数B应该是负的{:titter:} linjing530 发表于 2015-11-5 14:15
您的程序 上面是增量式下面是位置式吧? 我已经理解了,十分感谢,程序中是按照式(2-5)的 ...
是啊,我把注释写反了 lcw_swust 发表于 2015-11-7 21:20
是啊,我把注释写反了
刚写了一个增量式的速度环,稳定趋势没有问题 参数整定还有点问题。 linjing530 发表于 2015-11-13 10:14
刚写了一个增量式的速度环,稳定趋势没有问题 参数整定还有点问题。
哦,最好是能看下数据的波形.
我的帖子里有个利用串口查看数据波形的软件:
http://www.amobbs.com/thread-5634216-1-1.html 谢{:handshake:} lcw_swust 发表于 2015-11-13 10:48
哦,最好是能看下数据的波形.
我的帖子里有个利用串口查看数据波形的软件:
http://www.amobbs.com/thread- ...
多谢指点{:handshake:} 有人编译过
chibios么? 说错了,编译过evvgcplus的代码么, bugls 发表于 2015-11-24 16:40
说错了,编译过evvgcplus的代码么,
它的操作系统没编译过,控制部分和之前的差不多。 EvvGC-Plus跟EvvGC是同一組人寫的嗎?現在EvvGC的Open Source似乎是1.1版?
之後的版本(1.2/1.3 or 3-STAB)似乎都沒有Open了嗎?
睿爸 发表于 2015-12-17 18:37
EvvGC-Plus跟EvvGC是同一組人寫的嗎?現在EvvGC的Open Source似乎是1.1版?
之後的版本(1.2/1.3 or 3-STAB)似 ...
能找到源程序的也就这一版 你的开源程序能不能发我一份,我找不到在网上 #在这里快速回复# 楼主,您好,我最近也在做三轴云台的控制,一直没有找到EVVGC Plus的代码,能发给我一份吗?万分感谢!我的邮箱:fzg1023@yeah.net
页:
[1]