PID 控制 真真愁死我也
PID 控制舵机最近在弄PID控制舵机,问题不断,响应曲线太差
请大家指教一下。先上图
如图1
1.黄色的响应曲线是我的目标曲线,蓝色的曲线是我目前调出的。
如果我要得到黄色的无超调响应曲线,那么我的Kp项就必须设的很小,这样一来,我的响应时间就太长了。
现在我没有 I 项,我把 P 项设的很小,虽然超调小,但是响应时间长,我加上 D 项,想以此提高响应速度,但是似乎没有效果,如图2.
2.因为规定(虽然在大家眼里是很简单的东西),我无法把程序贴出来给大家看。现在有个疑问:
在用单片机实现微分时:
{
derror = error - lasterror;
lasterror = error;
}
但是也有人告诉我应该是这样:
{
derror = error - 2 *lasterror + 上上次的误差值;
}
请问哪种是对的?
3. 调试中的图。
图3,图4,图5
4.最后想请教大家,分享一下你们的成功经验,帮我找出一条路来。
那两个都是正确的路,第一个是位置式的PID,第二个是增量式PID tiancaigao7 发表于 2012-5-18 18:35 static/image/common/back.gif
那两个都是正确的路,第一个是位置式的PID,第二个是增量式PID
能不能指点我一下,我比较头大,调了一周了,结果相差很大 ln08136207 发表于 2012-5-18 19:46 static/image/common/back.gif
能不能指点我一下,我比较头大,调了一周了,结果相差很大
连续PID的输出方程为:u(t)=Kp*e(t)+Ki*∫e(t)dt+Kd*de(t)/dt------------------------(0)式
离散化后,为:
u(k)=Kp*e(k)+Ki*(e(0)+e(1)+...+e(k))+Kd*(e(k)-e(k-1));--------------(1)式
k-1时刻,u(k-1)=Kp*e(k-1)+Ki*(e(0)+e(1)+...+e(k-1))+Kd*(e(k-1)-e(k-2)); --------------(2)式
(1)式减去(2)式,△u(k)=Kp*(e(k)-e(k-1))+Ki*e(k)+Kd*(e(k)-2e(k-1)+e(k-2))---------(3)式
(1)式就是位置式离散pid;(3)式就是增量式离散pid。
PS:(0)式中KP,KI,KD和(1)(2)(3)中的三个参数不相同。
tangxh 发表于 2012-5-18 21:34 static/image/common/back.gif
连续PID的输出方程为:u(t)=Kp*e(t)+Ki*∫e(t)dt+Kd*de(t)/dt------------------------(0)式
离散化后, ...
谢谢指教,能分享一下您的调试经验吗? 我用增量式算法,我在 P 项基础上增加 D 项用以提高响应速度,但是好像全无作用,求各位指教。 ln08136207 发表于 2012-5-19 11:18 static/image/common/back.gif
我用增量式算法,我在 P 项基础上增加 D 项用以提高响应速度,但是好像全无作用,求各位指教。 ...
KP影响响应速度,KI可以消除静差,KD用于抑制超调波动。
主要多试多凑吧。。论坛里面有温度控制pid的调试过程,z-n法整定。你搜索看看。 tiancaigao7 发表于 2012-5-18 18:35 static/image/common/back.gif
那两个都是正确的路,第一个是位置式的PID,第二个是增量式PID
你好,我用PID控制舵机,加上微分项用来加快响应速度,但是好像完全不起作用,微分系数大了的话会震荡,但是完全没有提高响应速度,能不能教我一下
学习了。。。。 我也在整的头大,学习了 xue_xi_zhong 发表于 2012-5-22 09:38 static/image/common/back.gif
我也在整的头大,学习了
调出什么经验没? ln08136207 发表于 2012-5-22 11:06 static/image/common/back.gif
调出什么经验没?
没有,要不调大了,要不就调小了 现在,调出一个满意波形,但是又遇到一个问题,到达期望位置后,电机仍然在调,虽然看不出,但是能听到声音 本帖最后由 ln08136207 于 2012-5-23 10:56 编辑
tangxh 发表于 2012-5-19 12:15 static/image/common/back.gif
KP影响响应速度,KI可以消除静差,KD用于抑制超调波动。
主要多试多凑吧。。论坛里面有温度控制pid的调 ...
你好,我现在遇到一问题,我可以调出如图6这样的波形,但是出现一个新问题,电机到达期望位置后 ,仍然会一直不断的调(还没有抖动),虽然看不出来,但是能听到声音,
请问能不能帮我理一下思路。 数字舵机会一直有响声的 KD你调到会震动,说明是有效果的吗,PID关键在多调试,KD还有一个滞后算法
响声和你的分辨率有关系 okARM 发表于 2012-5-23 10:58 static/image/common/back.gif
数字舵机会一直有响声的
我对比了一下,别的舵机同样的曲线,他们没有音,当然他们用塑料齿轮,会减小声音,但是我想差别不至于差这么大 你想过分段设计系数吗?
不同的误差值配置不同的系数 说的够明白了吧 还有一个问题就是舵机齿轮之间的间隙问题,影响是非常大的,如果是第一次调,建议用你刚才的成品的舵机试试你现在的程序,看效果,你就知道是结构的问题还是程序问题 如果我要得到黄色的无超调响应曲线,那么我的Kp项就必须设的很小,这样一来,我的响应时间就太长了。
看来LZ都没有搞清楚PID中各个参数的作用,积分项是有助于你的曲线存在静差时,向目标曲线靠近的 ln08136207 发表于 2012-5-23 10:54 static/image/common/back.gif
你好,我现在遇到一问题,我可以调出如图6这样的波形,但是出现一个新问题,电机到达期望位置后 ,仍然会 ...
抖一点没事,你用手碰一下可能就不抖了。。。。 okARM 发表于 2012-5-23 11:03 static/image/common/back.gif
响声和你的分辨率有关系
现在我如果不加微分项,那么,就没有声音(或者说非常小,听不到)。当我的微分系数加到0.3时就会有声音了。问题是我的微分系数加到6才会得到一个超调在3%以内的曲线。
不好意思回复慢了,他说我是新手,每小时只能发5帖,我只好再等一小时。 在误差很小的时候不KD为0就是了 okARM 发表于 2012-5-23 11:07 static/image/common/back.gif
说的够明白了吧
我试过,当初在超调和响应时间中取平衡的时候想过这个方法,也试过,但是后来结果不理想,就没用,我也知道这样理论上是可行的,实际也应该可行,但是我试过,效果不理想。不知能不能加你QQ,我是新手,每小时发帖不能超过5帖,不方便交流。 查看我资料有联系方式
坛规是不能直接贴联系方式的{:lol:} okARM 发表于 2012-5-23 12:02 static/image/common/back.gif
查看我资料有联系方式
我的积分不够,不能发消息,也不能加好友, 吃饭先,回来再搞 本帖最后由 ln08136207 于 2012-5-23 12:17 编辑
marshallemon 发表于 2012-5-23 11:28 static/image/common/back.gif
如果我要得到黄色的无超调响应曲线,那么我的Kp项就必须设的很小,这样一来,我的响应时间就太长了。
看来 ...
我是新手,但是基本概念我还是理解的,就像您说的,如果我要得到无超调响应曲线,Kp就要设的很小,这样我的响应时间就长了。
现在我设的Kp能够满足我对响应时间的要求(有15%的超调),我加上微分项 D 会慢慢的减小超调,直至达到我的要求,这时候问题就来了
虽然超调小了,但是电机一直在调,虽然不抖,但是,一直会有声音。请教一下前辈,能否指点一下。 吃饭回来了,把你的联系方式发出来
okARM 发表于 2012-5-23 13:01 static/image/common/back.gif
吃饭回来了,把你的联系方式发出来
linanwuxi123@gmail.com 还是我说的那个问题,这个细微的问题结构影响很大,如过间隙大那么总是在小范围里波动,这也就是为什么微分在这里产生了副作用 okARM 发表于 2012-5-23 13:07 static/image/common/back.gif
还是我说的那个问题,这个细微的问题结构影响很大,如过间隙大那么总是在小范围里波动,这也就是为什么微分 ...
如果是你说的机械部分的问题,那么怎样解决呢? 结构谁负责的?这种问题就是拿好的成品结构调试 okARM 发表于 2012-5-23 13:28 static/image/common/back.gif
结构谁负责的?这种问题就是拿好的成品结构调试
改结构的成本太大了,我想问问电子部分有什么办法吗? 如果确定是结构的差异,那基本软件就无能为力了,那结构必须改,这东西不可能一次开好的 如果确定是结构的差异,那基本软件就无能为力了,那结构必须改,这东西不可能一次开好的 刚刚有一个工程师说,发出的噪声是过零点噪声,但他没讲解决方法,不知哪位高工知道方法 ???? 噪声和pid有什么关系??? whh7733 发表于 2012-5-23 15:50 static/image/common/back.gif
???? 噪声和pid有什么关系???
这里的“噪声”是指电机到达期望值之后会不停的调,机械就会发出“吱吱”的声音,当然我表述为噪声,可能大家还有不同的说法,但重点是,教教我怎么解决吧。 飞过。。。。。。 ln08136207 发表于 2012-5-23 15:58 static/image/common/back.gif
这里的“噪声”是指电机到达期望值之后会不停的调,机械就会发出“吱吱”的声音,当然我表述为噪声,可能 ...
那种类型的pid? 你自己写的还是? 反馈的是什么? 位置还是其他物理量?采样速率如何? whh7733 发表于 2012-5-23 16:51 static/image/common/back.gif
那种类型的pid? 你自己写的还是? 反馈的是什么? 位置还是其他物理量?采样速率如何? ...
增量式,自己写,采样速率可调,但是2MS最合适,没其他物理量 核心问题是你这个一直在调整锁不到0,什么叫过0点噪声? 其实可以分个段 whh7733 发表于 2012-5-23 17:38 static/image/common/back.gif
其实可以分个段
现在先不管声音的问题,又有了一个新问题:带负载时静差偏大,如果增大积分项,不带负载时又抖动,呵呵,看来总是在矛盾中求平衡。 矛盾中求平衡,PID就是这样,带负载静差增大,这就是我让你试扭力的原因 可以说舵机里应该没有用积分,你可以试一下成品,你用力掰是不会电流一直增大的 积分作用有助于你的比例小的时候向设定值的接近速度,因为积分是一个累加的过程,如果当前实际值相对上一控制周期采集的值变化不大,积分的累加值会增大输出 ln08136207 发表于 2012-5-23 20:48 static/image/common/back.gif
现在先不管声音的问题,又有了一个新问题:带负载时静差偏大,如果增大积分项,不带负载时又抖动,呵呵, ...
自适应pid· whh7733 发表于 2012-5-24 00:20 static/image/common/back.gif
自适应pid·
能不能给一个自适应PID的实现程序,我加上积分项效果也不好,而且没法进行浮点数运算 okARM 发表于 2012-5-23 17:12 static/image/common/back.gif
核心问题是你这个一直在调整锁不到0,什么叫过0点噪声?
好像是你说的问题,无法锁定零点 你再分析一下是什么原因导致的 分析来分析去,要达到你现在的静差要求,你最后发现结构让你没法达到 ln08136207 发表于 2012-5-24 09:18 static/image/common/back.gif
能不能给一个自适应PID的实现程序,我加上积分项效果也不好,而且没法进行浮点数运算 ...
自适应也是我想完成的东西啊。我现在是想办法在整定过程中自动修改积分相,比例项和微分项~
我qq:286741140,咱们多交流(加德时候说ourdev·pid) whh7733 发表于 2012-5-24 23:29 static/image/common/back.gif
自适应也是我想完成的东西啊。我现在是想办法在整定过程中自动修改积分相,比例项和微分项~
我qq:286741 ...
我的脑袋要成浆糊了,现在舵机总是不停的调,加死区效果也不明显。虽然不抖,但是总有“吱吱”的声音。你进行的怎么样了。。。。。。。。。。。。。。 ln08136207 发表于 2012-5-28 15:55 static/image/common/back.gif
我的脑袋要成浆糊了,现在舵机总是不停的调,加死区效果也不明显。虽然不抖,但是总有“吱吱”的声音。你 ...
我这个还将就,我这个主要是采样速度不够。
你可以试一下这样: 比如要到30这个值,那么就在27~29和31~33这个区间吧积分项清零 whh7733 发表于 2012-5-29 13:57 static/image/common/back.gif
我这个还将就,我这个主要是采样速度不够。
你可以试一下这样: 比如要到30这个值,那么就在27~29和31~33 ...
你起码知道你的问题出在哪里,我这里没有思路,有点无奈 ln08136207 发表于 2012-5-29 14:50 static/image/common/back.gif
你起码知道你的问题出在哪里,我这里没有思路,有点无奈
各种实验啊··· whh7733 发表于 2012-5-29 15:06 static/image/common/back.gif
各种实验啊···
当初觉得原理不难,谁知到越简单的东西越难啊 驱动频率提高点试试看 jiabin1024 发表于 2012-5-29 15:34 static/image/common/back.gif
驱动频率提高点试试看
频率提高过,但是几乎没有效果没有。
如图1.是到达期望值后单片机的输出波形,应该是全低的,结果仍然有。我很受伤啊。
图2.是我的阶跃响应曲线。
还请各位不吝赐教。 问题解决,还是PID参数调节问题,谢谢各位的帮忙,如果大家也在搞舵机控制,建议大家看看<<自抗扰控制技术>>,我就是在这里找到方法的。 顶一下~~ 路过,看看
页:
[1]