智能车制作
标题:
PID经验代码
[打印本页]
作者:
781697669
时间:
2011-3-19 13:55
标题:
PID经验代码
完整 PID 代码:
//声明变量
//定义变量
float Kp; //PID 调节的比例常数
float Ti; //PID 调节的积分常数
float T; //采样周期
float Td; //PID 调节的微分时间常数
float a0;
float a1;
float a2;
float ek; //偏差e[k]
float ek1; //偏差e[k-1]
float ek2; //偏差e[k-2]
float uk; //u[k]
int uk1; //对uk 四舍五入求整
int adjust; //最终输出的调整量
//变量初始化,根据实际情况初始化
Kp=;
Ti=;
T=;
Td=;
a0=Kp*(1+T/Ti+Td/T);
a1=-Kp*(1+2*Td/T);
a2=Kp*Td/T;
// Ki=KpT/Ti=0.8,微分系数Kd=KpTd/T=0.8,Td=0.0002,根据实验调得的结果确定这些参数
ek=0;
ek1=0;
ek2=0;
uk=0;
uk1=0;
adjust=0;
int pid(float ek)
{
if(gabs(ek)<ee) //ee 为误差的阀值,小于这个数值的时候,不做PID 调整,避免误差较小
时频繁调节引起震荡。ee 的值可自己设
{
adjust=0;
}
else
{
uk=a0*ek+a1*ek1+a2*ek2;
ek2=ek1;
ek1=ek;
uk1=(int)uk;
if(uk>0)
{
if(uk-uk1>=0.5)
{
uk1=uk1+1;
}
}
if(uk<0)
{
if(uk1-uk>=0.5)
{
uk1=uk1-1;
}
}
adjust=uk1;
}
return adjust;
}
float gabs(float ek)
{
if(ek<0)
{
ek=0-ek;
}
return ek;
}
作者:
lai688long
时间:
2011-3-19 14:56
学习了,谢谢
作者:
庄严
时间:
2011-3-19 16:19
楼主能把注释写的再详细点吗?虽然已经很详细,但我还是初学者,对PID的各个部分还不了解(看的资料都很抽象),不知所以然。想通过楼主的例题中了解!!拜托了!!
作者:
hfshanhaifeng
时间:
2011-3-20 13:39
作者:
hfshanhaifeng
时间:
2011-3-20 13:39
作者:
wangshiyang
时间:
2011-4-2 10:47
论坛里好像有这个资料的压缩包啊,是你上传的吗
作者:
zhouzhuolin
时间:
2011-4-2 15:35
谢了
作者:
jf1989117
时间:
2011-4-2 23:12
同求
作者:
血汗奔驰
时间:
2011-4-12 23:38
好
作者:
437334816
时间:
2011-4-13 00:08
学习
作者:
chenyongjie830
时间:
2011-4-16 23:04
谢谢
作者:
cylinzy
时间:
2011-4-16 23:44
作者:
zh1992
时间:
2011-4-18 16:58
请问楼主 PID里的e是怎么测的啊、
作者:
4819142
时间:
2011-4-18 23:03
学习了 谢谢楼主
作者:
zqcwxd
时间:
2011-4-19 20:58
学习了,谢谢
作者:
prince_rong
时间:
2011-4-20 09:32
学习
作者:
ansnak
时间:
2011-4-20 16:37
学习了 谢谢楼主
作者:
az22985342
时间:
2011-4-23 00:42
楼主漂亮!
作者:
az22985342
时间:
2011-4-23 00:42
楼主漂亮!
作者:
az22985342
时间:
2011-4-23 00:42
楼主漂亮!
作者:
az22985342
时间:
2011-4-23 00:42
楼主漂亮!
作者:
福光普照诶
时间:
2011-4-23 08:55
作者:
萝卜
时间:
2011-4-23 18:45
哎 还是看不懂
作者:
E08610225
时间:
2011-4-29 20:00
楼主漂亮!
作者:
sunrong
时间:
2011-5-10 21:10
good
作者:
yijingjing
时间:
2011-5-10 21:12
看看
作者:
iloveautomation
时间:
2011-5-16 18:57
作者:
iloveautomation
时间:
2011-5-16 18:58
作者:
haicong1000
时间:
2011-5-16 20:32
学习一下
作者:
wjj273155814
时间:
2011-5-16 23:35
关注&……
作者:
hello1043
时间:
2011-5-18 19:59
谢了
作者:
Lermonto
时间:
2011-5-28 00:29
这个?是完整代码吗?表示很怀疑,呵呵
作者:
宝爷
时间:
2011-5-28 01:01
雪中送炭,
作者:
kai123
时间:
2011-5-30 16:38
ZHEN BU CUO
作者:
xxl470
时间:
2011-6-1 20:34
好好研究下吧
作者:
xpj007yeahnet
时间:
2011-6-1 22:34
恩,感觉那个阀值很重要,可以很有效地防止震荡,我之前用阀值后,直接P调节都可以
作者:
az8898
时间:
2011-6-12 15:49
作者:
baiyawen
时间:
2011-6-28 20:25
大爱楼主啊
作者:
luopeiyuan
时间:
2011-9-22 13:20
谢过
作者:
7751
时间:
2011-9-23 01:43
学习下
作者:
7751
时间:
2011-9-23 01:44
学习下
作者:
竹子
时间:
2011-10-19 20:57
强烈感谢楼主。。。
作者:
xnhzl
时间:
2011-11-1 18:07
作者:
QianDE1991
时间:
2011-11-4 20:44
学习~~
作者:
陈泽昂
时间:
2011-11-5 09:38
强~~~
作者:
坚持每一次123
时间:
2011-11-9 20:29
作者:
飘51
时间:
2011-11-19 00:03
学习
作者:
561609030
时间:
2011-12-13 21:00
作者:
人生入戏
时间:
2011-12-18 17:44
谢啦
作者:
人生入戏
时间:
2011-12-18 17:45
我会好好学习的
作者:
人生入戏
时间:
2011-12-18 17:45
楼主辛苦了
作者:
艾玛
时间:
2012-2-13 15:40
可是要想确定
Kp=;
Ti=;
T=;
Td=;
作者:
艾玛
时间:
2012-2-13 15:41
Kp=;
Ti=;
T=;
Td=;
可是要想确定以上几个参数又谈何容易呢?LZ能再具体说说吗?这四个值要是一个个测还真是头大的啊
作者:
RAH——66
时间:
2012-3-19 22:09
作者:
一毛钱~~~~~~
时间:
2012-5-4 18:25
我是为
看lz的头像才过来的。。。。
作者:
wushshsha
时间:
2012-5-4 21:11
学习
作者:
songhuilee
时间:
2012-8-17 20:58
好
作者:
644822830
时间:
2013-7-19 17:01
欢迎光临 智能车制作 (http://www.znczz.com/)
Powered by Discuz! X3.2