智能车制作
标题:
PID调节经验总结
[打印本页]
作者:
qual9109
时间:
2013-1-14 22:14
标题:
PID调节经验总结
PID调节经验总结
PID控制器参数选择的方法很多,例如试凑法、临界比例度法、扩充临界比例度法等。但是,对于PID控制而言,参数的选择始终是一件非常烦杂的工作,需要经过不断的调整才能得到较为满意的控制效果。依据经验,一般PID参数确定的步骤如下[42]:
(1) 确定比例系数Kp
确定比例系数Kp时,首先去掉PID的积分项和微分项,可以令Ti=0、Td=0,使之成为
纯比例调节。输入设定为系统允许输出最大值的60%~70%,比例系数Kp由0开始逐渐增大,直至系统出现振荡;再反过来,从此时的比例系数Kp逐渐减小,直至系统振荡消失。记录此时的比例系数Kp,设定PID的比例系数Kp为当前值的60%~70%。
(2) 确定积分时间常数Ti
比例系数Kp确定之后,设定一个较大的积分时间常数Ti,然后逐渐减小Ti,直至系统出现振荡,然后再反过来,逐渐增大Ti,直至系统振荡消失。记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。
(3) 确定微分时间常数Td
微分时间常数Td一般不用设定,为0即可,此时PID调节转换为PI调节。如果需要设定,则与确定Kp的方法相同,取不振荡时其值的30%。
(4) 系统空载、带载联调
对PID参数进行微调,直到满足性能要求。
PID代码
//定义变量
float Kp; //PI调节的比例常数
float Ti; //PI调节的积分常数
float T; //采样周期
float Ki;
float ek; //偏差e[k]
float ek1; //偏差e[k-1]
float ek2; //偏差e[k-2]
float uk; //u[k]
signed int uk1; //对u[k]四舍五入取整
signed int adjust; //调节器输出调整量
//变量初始化
Kp=4;
Ti=0。005;
T=0.001;
// 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 piadjust(float ek) //PI调节算法
{
if( gabs(ek)<0.1 )
{
adjust=0;
}
else
{
uk=Kp*(ek-ek1)+Ki*ek; //计算控制增量
ek1=ek;
uk1=(signed 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;
}
下面是在AD中断程序中调用的代码。
。。。。。。。。。。。
else //退出软启动后,PID调节,20ms调节一次
{
EvaRegs.CMPR3=EvaRegs.CMPR3+piadjust(ek);//误差较小PID调节稳住
if(EvaRegs.CMPR3>=890)
{
EvaRegs.CMPR3=890; //限制PWM占空比
}
}
作者:
mxj1005071012
时间:
2013-1-14 22:16
PID还没学,正好看看
作者:
yukunlinykl
时间:
2013-1-14 22:22
上述算法通常都是由人脑来完成的。
作者:
270136977
时间:
2013-1-14 22:32
学习学习
作者:
liuyuliuyu1216
时间:
2013-1-14 22:37
顶一个
作者:
tanry53
时间:
2013-1-14 22:47
作者:
dlyt03
时间:
2013-1-14 23:04
学习下
作者:
seakid
时间:
2013-1-14 23:15
作者:
叶子一哥
时间:
2013-1-14 23:26
学了,谢谢啊
作者:
我爱小kb
时间:
2013-1-14 23:47
顶一个
作者:
1006110218
时间:
2013-1-15 09:27
顶下!
作者:
暴走兄弟
时间:
2013-1-15 11:57
作者:
音之夏萤
时间:
2013-1-15 15:04
作者:
wen123
时间:
2013-1-15 15:27
作者:
lx1122334
时间:
2013-1-15 17:07
好
作者:
qual9109
时间:
2013-1-15 23:13
作者:
Dwe
时间:
2013-1-30 19:56
实望自己,也能对PID有如此之体悟,学了
作者:
yangbw4978
时间:
2013-1-30 22:34
学习了 哈哈
作者:
暖暖10312138
时间:
2013-2-3 20:20
顶
作者:
用户不存在
时间:
2013-2-4 16:17
学习了
作者:
潜水一厮
时间:
2013-2-9 04:55
留爪
作者:
蓝枫2012
时间:
2013-2-25 21:04
怎么看是否出现震荡?
作者:
mazhaoyang
时间:
2013-2-26 20:28
gabs(ek)<0.1 是啥函数啊
请楼主解答
作者:
cqhb小麦
时间:
2013-3-10 12:12
学习一下哈
作者:
Mumu.Y
时间:
2013-3-10 23:45
顶下!
作者:
DOUxiaoshuai
时间:
2013-3-11 17:57
楼主有没有遇到这样的问题 在单纯调P的时候 由于P特别小 而需要的PWM特别大 这样就要等老长的时间才能启动起来 怎样解决啊 求指导!
作者:
Dwe
时间:
2013-3-24 08:30
学习了
作者:
pry1989
时间:
2013-3-26 12:12
学习一下
作者:
百川汇流
时间:
2013-3-26 15:14
学习了
作者:
时光茶居
时间:
2013-3-31 21:58
谢谢,学习学习。
作者:
林的0922
时间:
2013-4-1 16:33
:)
作者:
KAKA10
时间:
2013-4-9 10:53
怒学习
作者:
AACQ3
时间:
2013-4-9 15:29
补下
作者:
晨光燊
时间:
2013-4-9 20:52
好东西
作者:
简单丹
时间:
2013-4-15 00:49
学习学习
作者:
墨羽飞
时间:
2013-4-15 19:39
学习学习~~~
作者:
Fong
时间:
2013-4-17 12:52
好
作者:
warn00
时间:
2013-4-23 20:36
学习学习。。。
作者:
uli12345
时间:
2013-6-15 18:09
正头疼这个问题呢,谢谢启发!
作者:
3009
时间:
2013-6-18 12:14
介个···真心百度文库搜到过···
作者:
xhyscqcssllw
时间:
2013-6-18 22:03
理解能理解了 可是还是有些地方看不太明白
作者:
梦已过
时间:
2013-6-23 16:40
作者:
hj911024
时间:
2013-6-23 21:57
不错,学习下
作者:
zyh無_煙_無_尘
时间:
2013-6-24 00:21
系统空载、带载联调 什么意思啊
作者:
。浅岸
时间:
2013-7-7 21:09
作者:
asdf123
时间:
2013-8-27 19:15
dingyige
作者:
顾笑斐
时间:
2013-8-31 09:57
学习了
作者:
追风style
时间:
2013-9-7 10:30
是的!
作者:
春日迟迟
时间:
2013-9-12 17:58
:):)
作者:
柒年ヾ追梦
时间:
2013-10-23 21:26
学习
作者:
kk228
时间:
2013-11-2 09:16
作者:
MicroJIA
时间:
2013-11-2 14:45
gabs() 是什么
作者:
胡天天
时间:
2013-11-3 17:31
学习学习!!
作者:
麦田里的守望者
时间:
2013-11-20 19:01
我看着有点不舒服,有点不对劲
作者:
青青水草
时间:
2013-11-20 19:21
作者:
mengyu139
时间:
2013-11-21 22:56
新手,学习
作者:
彼岸花开洒落
时间:
2014-1-17 21:29
学习
作者:
两条线223
时间:
2014-1-20 20:13
作者:
两条线223
时间:
2014-3-22 12:19
作者:
guolei6649
时间:
2014-4-18 01:43
从网上copy的吧,百度上到处都是这个
作者:
jianpeng
时间:
2014-4-19 10:49
:lol:lol凑热闹
作者:
逆光的空白
时间:
2014-4-19 12:38
马克
作者:
wgw5820974944
时间:
2014-8-9 10:43
学习了
作者:
子非鱼199205
时间:
2014-8-9 22:11
表示每次调参数的时候都是先设为零,然后就一个个调,单一变量法
各种神烦
作者:
287218954
时间:
2015-3-2 10:36
学习学习
作者:
finder
时间:
2015-3-24 20:34
不错!!
作者:
seuStones
时间:
2015-3-26 20:18
赞赞赞!
作者:
高峰
时间:
2015-3-27 23:55
初学者,想问一下为什么要用最大值的60%~70%进行测试,这60%~70%是指占空比吗? 还有就是那个gabs()函数是什么
作者:
沙漏、、、
时间:
2015-3-28 16:54
自动化的公式...
作者:
沙漏、、、
时间:
2015-3-28 16:56
感觉实质要求是当有阻力时快速调整加速,让输出速度和目标速度一致、 、 、
作者:
微光刺眼
时间:
2015-5-5 19:40
:):):):)
作者:
benben123
时间:
2015-5-11 15:24
希望早点学会
作者:
xxxxxaoo
时间:
2015-5-13 07:59
楼主好人
作者:
生活不相信祝福
时间:
2015-5-13 22:16
顶一个
作者:
xueyitianshi
时间:
2015-7-6 15:01
赞一个
作者:
danxiao898
时间:
2015-11-3 21:16
学习一下
作者:
Sτrīvé___
时间:
2015-12-4 14:37
顶起来!!!!!
作者:
我爱小白白
时间:
2016-3-5 15:36
:):)
:victory::victory:
作者:
王锋MX
时间:
2016-4-15 17:22
学习一下
作者:
sunshuai1
时间:
2016-6-30 19:54
学习学习
作者:
阳关西
时间:
2016-10-22 17:31
【表情】
作者:
蝶舞翩跹
时间:
2016-10-24 18:50
没学PID呢,完全没看懂
作者:
imo
时间:
2016-11-19 13:04
我只想问怎么确定等幅震荡??去大神说明一下
作者:
xueliang
时间:
2017-7-17 21:38
PID系数不用浮点型,而用整型,会有这样的不良后果?
作者:
efreeworm
时间:
2017-12-12 13:34
好东西,要顶起
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2