智能车制作

标题: 关于PID的问题~~~ [打印本页]

作者: mtlegolas    时间: 2009-5-9 18:03
标题: 关于PID的问题~~~
本帖最后由 mtlegolas 于 2009-5-9 19:18 编辑

我是刚接触PID的新手,看了很多PID的理论知识,有一点不明白。我是用位置式PID对电机进行调速。那个PID控制器的输入量和输出控制量是什么对应关系了?或者换句话说就是输入量是什么,输出控制量是什么.。输入量是速度的偏差,假如我设定转速时5m/s,实际转速是4m/s,那么偏差就是1m/s ,把这个偏差当做输入量送到PID控制器并进过计算的输出控制量与PWM如何对应,那个输出我怎么处理,难道直接就送给电机?PID运算出的控制量需经过映射到实际控制量从而实现对系统的调节,速度的偏差如何映射成PWM?
作者: gaoam040    时间: 2009-5-9 18:20
静等高手回答楼主的问题,对这个我也不太懂。公式中的偏差e(t)到底是谁和谁的差呀?
作者: 烙铁头    时间: 2009-5-9 18:56
线性,电机转速-电流脉冲占空比-PWM占空比-控制量-PID输出值,一般情况下,也是理想情况下,都将这一个链环节间都当做线性处理,ax+b.....
作者: mtlegolas    时间: 2009-5-9 19:21
3# 烙铁头
你可不可以说的详细点,我还不太明白,我主要是第一次接触PID,那个速度的偏差如何映射成实际控制量也就是PWM
作者: shs_xawl    时间: 2009-5-9 20:57
我也不太清楚   楼主尽快答复
作者: shs_xawl    时间: 2009-5-9 20:57
我也不太清楚   楼主尽快答复
作者: 跳跃的心    时间: 2009-6-10 17:58
就是找到占空比与脉冲数的关系,应该是一个线性的。
比如你5m/s的时候输入4m/s,然后读到一个脉冲数,假如是20,而5m/s得时候应该产生25个脉冲。这时候,有了5的差值,如果用P控制,那P参数就是5.出来是25,你不是已经知道脉冲数与占空比的关系了吗,再用这个关系转换。假如5m/s的时候,占空比是60%,那你最后根据输出的25,把脉冲数转换成占空比。
其实他们三个,脉冲数,占空比,速度应该是一一对应的。
作者: xhzhh1991zhh    时间: 2009-10-14 23:30
该输出 什么???
代码 是???
作者: miracledavid    时间: 2009-10-16 16:27
http://www.renesas-mcu.com/read.php?tid=371
PID算法演示系统
作者: whut_wj    时间: 2009-10-16 22:07
首先,为什么要做PID?
由于外界原因,小车的实际速度有时不稳定,这是其一,要让小车以最快的时间达达到既定的目标速度,这是其二。这个速度的调整过程就必须通过某个算法调整,一般PID就是这个所用的算法。

可能你会想到,如果通过编码器测得现在的速度是2.0m/s,要达到2.3m/s的速度,那么我把pwm增大一点不就行了吗?
是的,增大pwm多少呢?必须要通过算法,因为PWM和速度是个什么关系,对于整个系统来说,谁也不知道。要一点一点的试,加个1%,不够,再加1%还是不够,那么第三次你还会加1%吗?很有可能就加2%了。通过PID三个参数得到一个表达式:△PWM=a *△V1+b *△V2+c *△V3,
a b c是通过PID的那个长长的公式展开,然后约简后的数字,△V1 ,△V2 ,△V3 此前第一次调整后的速度差 ,第二次调整后的速度差,第三次。。。。。
一句话,PID要使当前速度达到目标速度最快,需要建立如何调整pwm和速度之间的关系。

现在你应该明白输入输出是什么。
输入就是前次速度,前前次速度,前前前次速度。
输出就是你的PWM应该增加或减小多少。
作者: jully3881    时间: 2009-10-18 22:03
首先,为什么要做PID?
由于外界原因,小车的实际速度有时不稳定,这是其一,要让小车以最快的时间达达到既定的目标速度,这是其二。这个速度的调整过程就必须通过某个算法调整,一般PID就是这个所用的算法。

可 ...
whut_wj 发表于 2009-10-16 22:07


精辟 理解
作者: 必胜    时间: 2009-12-21 20:44
有点意思
作者: rosery--11    时间: 2009-12-22 17:32
继续努力
作者: 妞儿    时间: 2009-12-30 15:06
我想知道的是钱一千次的速度值还有用不、,你说的前前一次的速度值对现在的调速有什么影响
作者: peilet    时间: 2010-1-1 10:21
我想知道的是钱一千次的速度值还有用不、,你说的前前一次的速度值对现在的调速有什么影响
妞儿 发表于 2009-12-30 15:06



    要看你的算法 如果用位置式的PID(也是最不推荐使用的),前1000次的速度值是用来累加积分项控制量的
作者: 96107015    时间: 2010-1-12 18:20
给定值和输出量的偏差
作者: October    时间: 2010-1-13 21:56
呵呵,我是学自控的,我建议LZ还是好好找本自控原理书看看。不用看英文的,看中文的即可,推荐时吴麒的书,看前面的基础即可。PID是最基础的、线性时不变的控制思想,用在我们的智能车上足够了。
作者: zhouhong    时间: 2010-4-2 09:53
谢谢楼上的
作者: peilet    时间: 2010-4-2 13:14
其实看北航王晓明的“电动机的单片机控制”就够了
作者: guxuemei    时间: 2010-4-2 16:52
PID有时用的不好
作者: anhuipl2010    时间: 2010-4-5 14:29
我测试得时候先把ki,kd设为0,再来慢慢测试的kp等待kp差不多了,再来测试ki,kd。。。。
作者: hufangwu    时间: 2010-4-5 20:59
首先,为什么要做PID?
由于外界原因,小车的实际速度有时不稳定,这是其一,要让小车以最快的时间达达到既定的目标速度,这是其二。这个速度的调整过程就必须通过某个算法调整,一般PID就是这个所用的算法。

可能你会想到,如果通过编码器测得现在的速度是2.0m/s,要达到2.3m/s的速度,那么我把pwm增大一点不就行了吗?
是的,增大pwm多少呢?必须要通过算法,因为PWM和速度是个什么关系,对于整个系统来说,谁也不知道。要一点一点的试,加个1%,不够,再加1%还是不够,那么第三次你还会加1%吗?很有可能就加2%了。通过PID三个参数得到一个表达式:△PWM=a *△V1+b *△V2+c *△V3,
a b c是通过PID的那个长长的公式展开,然后约简后的数字,△V1 ,△V2 ,△V3 此前第一次调整后的速度差 ,第二次调整后的速度差,第三次。。。。。
一句话,PID要使当前速度达到目标速度最快,需要建立如何调整pwm和速度之间的关系。

现在你应该明白输入输出是什么。
输入就是前次速度,前前次速度,前前前次速度。
输出就是你的PWM应该增加或减小多少。
作者: justing88    时间: 2010-4-9 19:15
回复 10# whut_wj


    厉害的人一针见血
作者: Aztec    时间: 2010-4-9 21:56
那具体的P、I、D分别是怎么影响车在跑的过程中的性能呢?
作者: whtwhtwht    时间: 2010-4-9 22:01
回复 1# mtlegolas


    这个pid是通过函数来实现的,根据检测速度和给点速度
作者: Woods    时间: 2010-5-4 17:21
wj的东西就是有价值,顶
作者: feixue2588    时间: 2010-5-4 17:36
把速度差乘以一个合适的系数,自然就是pwm了
作者: 向往智能    时间: 2010-5-4 22:51
回复 9# miracledavid


    谢谢你,我对pid没什么概念
作者: 向往智能    时间: 2010-5-4 22:51
好东西,大家都来看吧
作者: guchangfeng    时间: 2010-5-9 09:36
  关注中
作者: Icehawk    时间: 2010-5-9 10:36
谢谢,明白了一点点
作者: justing88    时间: 2010-5-12 19:16
回复 27# feixue2588

你杭电的??
作者: guchangfeng    时间: 2010-5-13 00:55

作者: shenyoujin    时间: 2010-5-28 14:24
回复 10# whut_wj


    楼主说的好啊
作者: ss0000    时间: 2010-5-28 20:35
PID的参数选择好难调啊
作者: 云飞扬    时间: 2010-6-3 19:09
回复 10# whut_wj


    顶一个!!!!
作者: angler    时间: 2010-6-3 20:27
精辟,真是分析的好!




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2