搜索
bottom↓
回复: 91

pid算法是根据什么写的 怎么应用他来控制pwm输出,有没高手弄过,请教来了

  [复制链接]

出0入0汤圆

发表于 2012-3-6 15:06:42 | 显示全部楼层 |阅读模式
最近刚要学pwm控制输出的,求教各位大侠

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2012-3-6 15:07:24 | 显示全部楼层
自己坐沙发,在线坐等高手

出0入0汤圆

发表于 2012-3-6 15:13:26 | 显示全部楼层
以前有过PI的。回头给你找找。

出0入0汤圆

 楼主| 发表于 2012-3-6 15:33:10 | 显示全部楼层
回复【2楼】ermok  译码
-----------------------------------------------------------------------

先谢谢哈,坐等啊

出0入0汤圆

发表于 2012-3-6 15:59:21 | 显示全部楼层
PID控制算法通俗理解

今天开始学PID电机控制,这个作者写得很不错,和大家分享一下~~~

PID控制算法通俗理解

作者:whut_wj

来源:http://blog.eccn.com/space.php?uid=353091&do=blog&id=3964

本文以通俗的理解,以小车纵向控制举例说明PID的一些理解。

(一)首先,为什么要做PID?

由于外界原因,小车的实际速度有时不稳定,这是其一,

要让小车以最快的时间达达到既定的目标速度,这是其二。

速度控制系统是闭环,才能满足整个系统的稳定要求,必竟速度是系统参数之一,这是其三.

     小车调速肯定不是线性的,外界因素那么多,没人能证明是线性的。如果是线性的,直接用P就可以了。

比如在PWM=60%时,速度是2M/S,那么你要它3M/S,就把PWM提高到90%。因为90/60=3/2,这样一来太完美了。

完美是不可能的。

     那么不是线性的,要怎么怎么控制PWM使速度达到即定的速度呢?即要快,又要准,又要狠。(即快准狠

)系统这个速度的调整过程就必须通过某个算法调整,一般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应该增加或减小多少。

(二)为了避免教科书公式化的说明,本文用口语化和通俗的语言描述。虽然不一定恰当,但意思差不多,就是那个事。如果要彻头彻尾地弄PID,建议多调试,写几个仿真程序。

      PID一般有两种:位置式PID和增量式PID。在小车里一般用增量式,为什么呢?位置式PID的输出与过去的所有状态有关,计算时要对e(每一次的控制误差)进行累加,这个计算量非常大,而明没有必要。而且小车的PID控制器的输出并不是绝对数值,而是一个△,代表增多少,减多少。换句话说,通过增量PID算法,每次输出是PWM要增加多少或者减小多少,而不是PWM的实际值。

下面均以增量式PID说明。

   这里再说一下P、I、D三个参数的作用。P=Proportion,比例的意思,I是Integral,积分,D是Differential微分。

打个比方,如果现在的输出是1,目标输出是100,那么P的作用是以最快的速度达到100,把P理解为一个系数即可;而I呢?大家学过高数的,0的积分才能是一个常数,I就是使误差为0而起调和作用;D呢?大家都知道微分是求导数,导数代表切线是吧,切线的方向就是最快到至高点的方向。这样理解,最快获得最优解,那么微分就是加快调节过程的作用了。

公式本来需要推导的,我就不来这一套了。直接贴出来:

看看最后的结果:

△Uk=A*e(k)+B*e(k-1)+C*e(k-2)

这里KP是P的值,TD是D的值,1/Ti是I的值,都是常数,哦,还有一个T,T是采样周期,也是已知。而A B C是由P I D换算来的,按这个公式,就可以简化计算量了,因为P I D是常数,那么A B C可以用一个宏表示。这样看来,只需要求e(k) e(k-1) e(k-2)就可以知道△Uk的值了,按照△Uk来调节PWM的大小就OK了。PID三个参数的确定有很多方法,不在本文讨论范围内。采样周期也是有据可依的,不能太大,也不能太小。

    ................................................

    写着写着成了老太婆的裹脚了,本来说拿个程序来说明一下,看来只能在下一文中了。

一、转自网友的解释,呵呵:

制模型:你控制一个人让他以PID控制的方式走110步后停下。

(1)P比例控制,就是让他走110步,他按照一定的步伐走到一百零几步(如108步)或100多步(如112步)就停了。

说明:

P比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。

(2)PI积分控制,就是他按照一定的步伐走到112步然后回头接着走,走到108步位置时,然后又回头向110步位置走。在110步位置处来回晃几次,最后停在110步的位置。

说明:

在积分I控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。

(3)PD微分控制,就是他按照一定的步伐走到一百零几步后,再慢慢地向110步的位置靠近,如果最后能精确停在110步的位置,就是无静差控制;如果停在110步附近(如109步或111步位置),就是有静差控制。

说明:

在微分控制D中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。

自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳,其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例P”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势。这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例P+微分D(PD)控制器能改善系统在调节过程中的动态特性。

解释二:

  小明接到这样一个任务:有一个水缸有点漏水(而且漏水的速度还不一定固定不变),要求水面高度维持在某个位置,一旦发现水面高度低于要求位置,就要往水缸里加水。 小明接到任务后就一直守在水缸旁边,时间长就觉得无聊,就跑到房里看小说了,每30分钟来检查一次水面高度。水漏得太快,每次小明来检查时,水都快漏完了,离要求的高度相差很远,小明改为每3分钟来检查一次,结果每次来水都没怎么漏,不需要加水,来得太频繁做的是无用功。几次试验后,确定每10分钟来检查一次。这个检查时间就称为采样周期。

  开始小明用瓢加水,水龙头离水缸有十几米的距离,经常要跑好几趟才加够水,于是小明又改为用桶加,一加就是一桶,跑的次数少了,加水的速度也快了,但好几次将缸给加溢出了,不小心弄湿了几次鞋,小明又动脑筋,我不用瓢也不用桶,老子用盆,几次下来,发现刚刚好,不用跑太多次,也不会让水溢出。这个加水工具的大小就称为比例系数。

  小明又发现水虽然不会加过量溢出了,有时会高过要求位置比较多,还是有打湿鞋的危险。他又想了个办法,在水缸上装一个漏斗,每次加水不直接倒进水缸,而是倒进漏斗让它慢慢加。这样溢出的问题解决了,但加水的速度又慢了,有时还赶不上漏水的速度。于是他试着变换不同大小口径的漏斗来控制加水的速度,最后终于找到了满意的漏斗。漏斗的时间就称为积分时间。

  小明终于喘了一口,但任务的要求突然严了,水位控制的及时性要求大大提高,一旦水位过低,必须立即将水加到要求位置,而且不能高出太多,否则不给工钱。小明又为难了!于是他又开努脑筋,终于让它想到一个办法,常放一盆备用水在旁边,一发现水位低了,不经过漏斗就是一盆水下去,这样及时性是保证了,但水位有时会高多了。他又在要求水面位置上面一点将水缸要求的水平面处凿一孔,再接一根管子到下面的备用桶里这样多出的水会从上面的孔里漏出来。这个水漏出的快慢就称为微分时间。 看到几个问采样周期的帖子,临时想了这么个故事。微分的比喻一点牵强,不过能帮助理解就行了,呵呵,入门级的,如能帮助新手理解下PID,于愿足矣。故事中小明的试验是一步步独立做,但实际加水工具、漏斗口径、溢水孔的大小同时都会影响加水的速度,水位超调量的大小,做了后面的实验后,往往还要修改改前面

(三)PID实际编程的过程的,要注意的东西还是有几点的。PID这东西可以做得很深。

1 PID的诊定。凑试法,临界比例法,经验法。

2 T的确定,采样周期应远小于过程的扰动信号的周期,在小车程序中一般是ms级别。

3 目标速度何时赋值问题,如何更新新的目标速度?这个问题一般的人都乎略了。目标速度肯定不是个恒定的,那么何时改变目标速度呢?

4 改变了目标速度,那么e(k) e(k-1) e(k-2)怎么改变呢?是赋0还是要怎么变?

5 是不是PID要一直开着?

6 error为多少时就可以当速度已达到目标?

7 PID的优先级怎么处理,如果和图像采集有冲突怎么办?

8 PID的输入是速度,输出是PWM,按理说PWM产生速度,但二者不是同一个东西,有没有问题?

9 PID计算如何优化其速度?指针,汇编,移位?都可以试!

//*****************************************************

//定义PID结构体

//*****************************************************

typedef struct PID

{

     int SetPoint; //设定目标Desired Value

     double Proportion; //比例常数Proportional Const

     double Integral; //积分常数Integral Const

     double Derivative; //微分常数Derivative Const

     int LastError; //Error[-1]

     int PrevError; //Error[-2]

} PID;

//*****************************************************

//定义相关宏

//*****************************************************

#define P_DATA 100

#define I_DATA 0.6

#define D_DATA 1

#define HAVE_NEW_VELOCITY 0X01

//*****************************************************

//声明PID实体

//*****************************************************

static PID sPID;

static PID *sptr = &sPID;

//*****************************************************

//PID参数初始化

//*************************

出0入0汤圆

发表于 2012-3-6 16:21:15 | 显示全部楼层
比赛栽倒在PID石榴裙下……标记一下吧!

出0入0汤圆

发表于 2012-3-6 16:28:24 | 显示全部楼层
PID啊PID~~~~

出0入0汤圆

发表于 2012-3-6 17:30:33 | 显示全部楼层
pid mark

出0入0汤圆

发表于 2012-3-6 17:43:17 | 显示全部楼层
说起来容易,做好PID难啦!!

出0入0汤圆

发表于 2012-3-6 19:00:26 | 显示全部楼层
搞定没,没搞定不要急,转个故事慢慢看着:
PID控制原理(转载) 作者 zjutzl 日期 2011-8-8 12:16:00
参数整定找最佳,从小到大顺序查,  
先是比例后积分,最后再把微分加,  
曲线振荡很频繁,比例度盘要放大,  
曲线漂浮绕大湾,比例度盘往小扳,  
曲线偏离回复慢,积分时间往下降,  
曲线波动周期长,积分时间再加长,  
曲线振荡频率快,先把微分降下来,  
动差大来波动慢,微分时间应加长,  
理想曲线两个波,前高后低4比1,
小时候喜欢看杂书,没什么东西看,不正在文化_大革_命嘛?不过看进去了两个“化”:机械化和自动化。打小就没有弄明白,这机械化和自动化到底有什么差别,机器不是自己就会动的吗?长大了,总算稍微明白了一点,这机械化是力气活,用机器代替人的体力劳动,但还是要人管着的,不然机器是不知道该干什么不该干什么的;这自动化嘛,就是代替人的重复脑力劳动,是用来管机器的。也就是说,自动化是管着机械化的,或者说学自动化的是管着学机械的……啊,不对,不对,哪是哪啊!      
有人考证古代就有自动化的实例,但现代意义上的自动控制开始于瓦特的蒸汽机。据说纽考门比瓦特先发明蒸汽机,但是蒸汽机的转速控制问题没有解决,弄不好转速飞升,机器损坏不说,还可能说大事故。瓦特在蒸汽机的转轴上安了一个小棍,棍的一端和放汽阀连着,放气阀松开来就关闭,转速增加;按下去阀就打开,转速降低;棍的另一端是一个小重锤,棍中间某个地方通过支点和转轴连接。转轴转起来的时候,小棍由于离心力的缘故挥起来。转速太高了,小棍挥会挥得很高,放汽阀就被按下去打开,转速下降;转速太低了,小棍挥不起来,放汽阀就被松开来关闭,转速回升。这样,蒸汽机可以自动保持稳定的转速,即保证安全,又方便使用。也就是因为这个小小的转速调节器,瓦特的名字和工业革_命连在一起,而纽考门的名字就要到历史书里去找了。      
类似的例子在机械系统里很多,家居必备的抽水马桶是另一个例子。放水冲刷后,水箱里水位降低,浮子随水面下降,进水阀打开。随着水位的升高,进水阀逐渐关闭,直到水位达到规定高度,进水阀完全关闭,水箱的水正好准备下一次使用。这是一个非常简单但非常巧妙的水位控制系统,是一个经典的设计,但不容易用经典的控制理论来分析,不过这是题外话了.     这些机械系统设计巧妙,工作可*,实在是巧夺天工。但是在实用中,如果每次都需要这样的创造性思维,那太累,最好有一个系统的方法,可以解决“所有”的自动控制问题,这就是控制理论的由来。      
从小大人就教我们,走路要看路。为什么呢?要是不看着路,走路走歪了也不知道,结果就是东撞西撞的。要是看着路呢?走歪了,马上就看到,赶紧调整脚步,走回到正道上来。这里有自动控制里的第一个重要概念:反馈(feedback)。      
反馈是一个过程:    
1、设定目标,对小朋友走路的例子来说,就是前进的路线。    
2、测量状态,小朋友的眼睛看着路,就是在测量自己的前进方向。    
3、将测量到的状态和设定的目标比较,把眼睛看到的前进方向和心里想的前进方向作比较,判断前进方向是否正确;如果不正确,相差有多少。    
4、调整行动,在心里根据实际前进方向和设定目标的偏差,决定调整的量。    
5、实际执行,也就是实际挪动脚步,重回正确的前进方向。  
在整个走路的过程中,这个反馈过程周而复始,不断进行,这样,小朋友就不会走得东倒西歪了。但是,这里有一个问题:如果所有的事情都是在瞬时里同时发生的,那这个反馈过程就无法工作。要使反馈工作,一定要有一定的反应时间。还好,世上之事,都有一个过程,这就为反馈赢得了所需要的时间。      
小时候,妈妈在锅里蒸东西,蒸好了,从锅里拿出来总是一个麻烦,需要抹布什么的垫着,免得烫手。但是碗和锅的间隙不大,连手带抹布伸进去颇麻烦,我常常不知天高地厚,自告奋勇地徒手把热的碗拿出来。只要动作快,手起碗落,可以不烫手。当然喽,要是捧着热碗再东晃晃,西荡荡,那手上感觉的温度最终会和热碗一样,肯定要把手心、手指烫熟不可的。在从接触碗到皮肤温度和碗表面一样,这里面有一个逐渐升温的过程,这就是动态过程(dynamic process)。这里面有两个东西要注意:一个是升温的过程有多快,另一个是最终的温度可以升到多少。要是知道了这两个参数,同时知道自己的手可以耐受多少温度,理论上可以计算出热的碗在手里可以停留多少时间而不至于烫手。      
反馈过程也叫闭环(closed loop)过程。既然有闭环,那就有开环(open loop)。开环就是没有反馈的控制过程,设定一个控制作用,然后就执行,不根据实际测量值进行校正。开环控制只有对简单的过程有效,比如洗衣机和烘干机按定时控制,到底衣服洗得怎么样,烘得干不干,完全取决于开始时的设定。对于洗衣机、烘干机这样的问题,多设一点时间就是了,稍微浪费一点,但可以保证效果。对于空调机,就不能不顾房间温度,简单地设一个开10分钟、关5分钟的循环,而应该根据实际温度作闭环控制,否则房间里的温度天知道到底会达到多少。记得80年代时,报告文学很流行。徐迟写了一个《哥德巴_赫猜想》,于是全国人民都争当科学家。小说家也争着写科学家,成就太小不行,所以来一个语不惊人死不休,某大家写了一个《无反馈快速跟踪》。那时正在大学啃砖头,对这个科学新发现大感兴趣,从头看到尾,也没有看明白到底是怎么无反馈快速跟踪的。现在想想,小说就是小说,不过这无良作家也太扯,无反馈还要跟踪,不看着目标,不看着自己跑哪了,这跟的什么踪啊,这和永动机差不多了,怎么不挑一个好一点的题目,冷聚变什么的,至少在理论上还是可能的。题外话了。    在数学上,动态过程用微分方程描述,反馈过程就是在描述动态过程的微分方程的输入项和输出项之间建立一个关联,这样改变了微分方程本来的性质。自动控制就是在这个反馈和动态过程里做文章的。      
房间内的空调是一个简单的控制问题。不过这只是指单一房间,整个高层大楼所有房间的中央空调问题实际上是一个相当复杂的问题,不在这里讨论的范围。夏天了,室内温度设在28度,实际温度高于28度了,空调机启动致冷,把房间的温度降下来;实际温度低于28度了,空调机关闭,让房间温度受环境气温自然升上去。通过这样简单的开关控制,室内温度应该就控制在28度。不过这里有一个问题,如果温度高于28度一点点,空调机就启动;低于28度一点点,空调机就关闭;那如果温度传感器和空调机的开关足够灵敏的话,空调机的开关频率可以无穷高,空调机不断地开开关关,要发神经病了,这对机器不好,在实际上也没有必要。解决的办法是设立一个“死区” (dead band),温度高于29度时开机,低于27度时关机。注意不要搞反了,否则控制单元要发神经了。      
有了一个死区后,室内温度不再可能严格控制在28度,而是在27到29度之间“晃荡”。如果环境温度一定,空调机的制冷量一定,室内的升温/降温动态模型已知,可以计算温度“晃荡”的周期。不过既然是讲故事,我们就不去费那个事了。      
这种开关控制看起来“土”,其实好处不少。对于大部分过程来说,开关控制的精度不高但可以保证稳定,或者说系统输出是“有界”的,也就是说实际测量值一定会被限制在一定的范围,而不可能无限制地发散出去。这种稳定性和一般控制理论里强调的所谓渐进稳定性不同,而是所谓BIBO稳定性,前者要求输出最终趋向设定值,后者只要求在有界的输入作用下输出是有界的,BIBO指bounded input bounded output。      
对于简单的精 度要求不高的过程,这种开关控制(或者称继电器控制,relay control,因为最早这种控制方式是用继电器或电磁开关来实现的)就足够了。但是很多时候,这种“毛估估”的控制满足不了要求。汽车在高速公路上行驶,速度设在定速巡航控制,速度飘下去几公里,心里觉得吃亏了,但要是飘上去几公里,被警_察抓下来吃一个罚单,这算谁的?      
开关控制是不连续控制,控制作用一加就是“全剂量”的,一减也是“全剂量”的,没有中间的过渡。如果空调机的制冷量有三个设定,:小、中、大,根据室温和设定的差别来决定到底是用小还是中还是大,那室温的控制精度就可以大大提高,换句话说,温度的“晃荡”幅度将大幅度减小。那么,如果空调机有更多的设定,从小小到小中到……到大大,那控制精度是不是更高呢?是的。既然如此,何不用无级可调的空调机呢?那岂不可以更精确地控制室温了吗?是的。      
无级可调或连续可调的空调机可以精确控制温度,但开关控制不能再用了。家用空调机中,连续可调的不占多数,但冲热水淋浴是一个典型的连续控制问题,因为水龙头可以连续调节水的流量。冲淋浴时,假定冷水龙头不变,只调节热水。那温度高了,热水关小一点;温度低了,热水开打一点。换句话说,控制作用应该向减少控制偏差的方向变化,也就是所谓负负反馈。控制方向对了,还有一个控制量的问题。温度高了1度,热水该关小多少呢?      
经验告诉我们,根据具体的龙头和水压,温度高1度,热水需要关小一定的量,比如说,关小一格。换句话说,控制量和控制偏差成比例关系,这就是经典的比例控制规律:控制量=比例控制增益* 控制偏差,偏差越大,控制量越大。控制偏差就是实际测量值和设定值或目标值之差。在比例控制规律下,偏差反向,控制量也反向。也就是说,如果淋浴水温要求为40度,实际水温高于40度时,热水龙头向关闭的方向变化;实际水温低于40度时,热水龙头向开启的方向变化。      
但是比例控制规律并不能 保证水温能够精确达到 40度。在实际生活中,人们这时对热水龙头作微调,只要水温还不合适,就一点一点地调节,直到水温合适为止。这种只要控制偏差不消失就渐进微调的控制规律,在控制里叫积分控制规律,因为控制量和控制偏差在时间上的累积成正比,其比例因子就称为积分控制增益。工业上常用积分控制增益的倒数,称其为积分时间常数,其物理意义是偏差恒定时,控制量加倍所需的时间。这里要注意的是,控制偏差有正有负,全看实际测量值是大于还是小于设定值,所以只要控制系统是稳定的,也就是实际测量值最终会稳定在设定值上,控制偏差的累积不会是无穷大的。这里再啰嗦一遍,积分控制的基本作用是消除控制偏差的余差(也叫残差)。      
比例和积分控制规律可以应付很大一类控制问题,但不是没有改进余地的。如果水管水温快速变化,人们会根据水温的变化调节热水龙头:水温升高,热水龙头向关闭方向变化,升温越快,开启越多;水温降低,热水龙头向开启方向变化,降温越快,关闭越多。这就是所谓的微分控制规律,因为控制量和实际测量值的变化率成正比,其比例因子就称为比例控制增益,工业上也称微分时间常数。微分时间常数没有太特定的物理意义,只是积分叫时间常数,微分也跟着叫了。微分控制的重点不在实际测量值的具体数值,而在其变化方向和变化速度。微分控制在理论上和实用中有很多优越性,但局限也是明显的。如果测量信号不是很“干净”,时不时有那么一点不大不小的“毛刺”或扰动,微分控制就会被这些风吹草动搞得方寸大乱,产生很多不必要甚至错误的控制信号。所以工业上对微分控制的使用是很谨慎的。      
比例-积分-微分控制规律是工业上最常用的控制规律。人们一般根据比例-积分-微分的英文缩写,将其简称为PID控制。即使在更为先进的控制规律广泛应用的今天,各种形式的PID控制仍然在所有控制回路中占85%以上。      
在PID 控制中,积分控制的特点是:只要还有余差(即残余的控制偏差)存在,积分控制就按部就班地逐渐增加控制作用,直到余差消失。所以积分的效果比较缓慢,除特殊情况外,作为基本控制作用,缓不救急。微分控制的特点是:尽管实际测量值还比设定值低,但其快速上扬的冲势需要及早加以抑制,否则,等到实际值超过设定值再作反应就晚了,这就是微分控制施展身手的地方了。作为基本控制使用,微分控制只看趋势,不看具体数值所在,所以最理想的情况也就是把实际值稳定下来,但稳定在什么地方就要看你的运气了,所以微分控制也不能作为基本控制作用。比例控制没有这些问题,比例控制的反应快,稳定性好,是最基本的控制作用,是 “皮”,积分、微分控制是对比例控制起增强作用的,极少单独使用,所以是“毛”。在实际使用中比例和积分一般一起使用,比例承担主要的控制作用,积分帮助消除余差。微分只有在被控对象反应迟缓,需要在开始有所反应时,及早补偿,才予以采用。只用比例和微分的情况很少见。      
连续控制的精度是开关控制所不可比拟的,但连续控制的高精度也是有代价的,这就是稳定性问题。控制增益决定了控制作用对偏差的灵敏度。既然增益决定了控制的灵敏度,那么越灵敏岂不越好?非也。还是用汽车的定速巡航控制做例子。速度低一点,油门加一点,速度低更多,油门加更多,速度高上去当然就反过来。但是如果速度低一点,油门就加很多,速度更低,油门狂加,这样速度不但不能稳定在要求的设定值上,还可能失控。这就是不稳定。所以控制增益的设定是有讲究的。在生活中也有类似的例子。国民经济过热,需要经济调整,但调整过火,就要造成“硬着陆”,引起衰退;衰退时需要刺激,同样,刺激过火,会造成“虚假繁荣”。要达成“软着陆”,经济调整的措施需要恰到好处。这也是一个经济动态系统的稳定性问题。      
实际中到底多少增益才是最合适的,理论上有很多计算方法,但实用中一般是*经验和调试来摸索最佳增益,业内行话叫参数整定。如果系统响应在控制作用后面拖拖沓沓,大幅度振荡的话,那一般是积分太过;如果系统响应非常神经质,动不动就打摆子,呈现高频小幅度振荡的话,那一般是微分有点过分。中频振荡当然就是比例的问题了。不过各个系统的频率都是不一样的,到底什么算高频,什么算低频,这个几句话说不清楚,应了毛_主_席那句话:“具体情况具体分析”,所以就打一个哈哈了。      
再具体说起来,参数整定有两个路子。一是首先调试比例增益以保证基本的稳定性,然后加必要的积分以消除余差,只有在最必要的情况下,比如反映迟缓的温度过程或容量极大的液位过程,测量噪声很低,才加一点微分。这是“学院派”的路子,在大部分情况下很有效。但是工业界有一个“歪路子”:用非常小的比例作用,但大大强化积分作用。这个方法是完全违背控制理论的分析的,但在实际中却是行之有效,原因在于测量噪声严重,或系统反应过敏时,积分为主的控制规律动作比较缓和,不易激励出不稳定的因素,尤其是不确定性比较高的高频部分,这也是(敏_感_词1068)“稳定压倒一切”的初衷吧。      
在很多情况下,在初始PID参数整定之后,只要系统没有出现不稳定或性能显著退化,一般不会去重新整定。但是要是系统不稳定了怎么办呢?由于大部分实际系统都是开环稳定的,也就是说,只要控制作用恒定不变,系统响应最终应该稳定在一个数值,尽管可能不是设定值,所以对付不稳定的第一个动作都是把比例增益减小,根据实际情况,减小1/3、1/2甚至更多,同时加大积分时间常数,常常成倍地加,再就是减小甚至取消微分控制作用。如果有前馈控制,适当减小前馈增益也是有用的。在实际中,系统性能不会莫名其妙地突然变坏,上述“救火”式重新整定常常是临时性的,等生产过程中的机械或原料问题消除后,参数还是要设回原来的数值,否则系统性能会太过“懒散”。      
对于新工厂,系统还没有投运,没法根据实际响应来整定,一般先估计一个初始参数,在系统投运的过程中,对控制回路逐个整定。我自己的经验是,对于一般的流量回路,比例定在 0.5左右,积分大约1分钟,微分为0,这个组合一般不致于一上来就出大问题。温度回路可以从2、5、0.05开始,液位回路从5、10、0开始,气相压力回路从10、20、0开始。既然这些都是凭经验的估计,那当然要具体情况具体分析,不可能“放之四海而皆准”。      
微分一般用于反应迟缓的系统,但是事情总有一些例外。我就遇到过一个小小的冷凝液罐,直径才两英尺,长不过5英尺,但是流量倒要8-12吨/小时,一有风吹草动,液位变化非常迅速,不管比例、积分怎么调,液位很难稳定下来,常常是控制阀刚开始反应,液位已经到顶或到底了。最后加了0.05的微分,液位一开始变化,控制阀就开始抑制,反而稳定下来了。这和常规的参数整定的路子背道而驰,但在这个情况下,反而是“唯一”的选择,因为测量值和控制阀的饱和变成稳定性主要的问题了。      
对工业界以积分为主导控制作用的做法再啰嗦几句。学术上,控制的稳定性基本就是渐近稳定性,BIBO稳定性是没有办法证明渐近稳定性时的“退而求其次”的东西,不怎么上台面的。但是工业界里的稳定性有两个看起来相似、实质上不尽相同的方面:一个当然是渐近稳定性,另一个则是稳定性,但不一定向设定值收敛,或者说稳定性比收敛性优先这样一个情况。具体来说,就是需要系统稳定在一个值上,不要动来动去,但是不是在设定值并不是太重要,只要不是太离谱就行。例子有很多,比如反应器的压力是一个重要参数,反应器不稳定,原料进料比例就乱套,催化剂进料也不稳定,反应就不稳定,但是反应器的压力到底是10个大气压还是 12个大气压,并没有太大的关系,只要慢慢地但是稳定地向设定值移动就足够了。这是控制理论里比较少涉及的一个情况,这也是工业上时常采用积分主导的控制的一个重要原因。   前面说到系统的频率,本来也就是系统响应持续振荡时的频率,但是控制领域里有三拨人在捣腾:一拨是以机电类动力学系统为特色的电工出身,包括航空、机器人等,一拨是以连续过程为特色的化工出身的,包冶金、造纸等,还有一拨是以微分方程稳定性为特色的应用数学出身的。在瓦特和抽水马桶的年代里,各打各的山头,井水不犯河水,倒也太平。但控制从艺术上升为理论后,总有人喜欢“统一”,电工帮抢了先,好端端的控制理论里被塞进了电工里的频率。童子们哪,那哪是频率啊,那是……复频率。既然那些变态的电工帮(啊耶,这下鹿踹真的要来了)能折腾出虚功率,那他们也能折腾出复频率来,他们自虐倒也算了,只是苦了我等无辜之众,被迫受此精神折磨。      
事情的缘由是系统的稳定性。前面提到,PID的参数如果设得不好,系统可能不稳定。除了摸索,有没有办法从理论上计算出合适的PID参数呢?前面也提到,动态过程可以用微分方程描述,其实在PID的阶段,这只是微分方程中很狭窄的一支:单变量线性常微分方程。要是还记得大一高数,一定还记得线形常微的解,除了分离变量法什么的,如果自变量时间用t表示的话,最常用的求解还是把 exp(λt)代入微分方程,然后解已经变成λ的代数方程的特征方程,解出来的解可以是实数,也可以是复数,是复数的话,就要用三角函数展开了(怎么样,大一噩梦的感觉找回来一点没有?)。只要实根为负,那微分方程就是稳定的,因为负的指数项最终向零收敛,复根到底多少就无所谓了,对稳定性没有影响。但是,这么求解分析起来还是不容易,还是超不出“具体情况具体分析”,难以得出一般的结论。      
法国人以好色、好吃出名,但是他们食色性也之后,还不老实,其中一个叫拉普拉斯的家伙,捣鼓出什么拉普拉斯变换,把常微分方程变成s的多项式。然后那帮电工的家伙们,喜欢自虐,往s里塞jω,就是那个复频率,整出一个变态的频率分析,用来分析系统的稳定性。不过说变态,也不完全公平,在没有计算机的年代,各种图表是最有效的分析方法,还美其名曰“几何分析”。频率分析也不例外。美国佬Evans搞出一个根轨迹(root locus),思路倒是满有意思的。他用增益作自变量,将系统的根(不管实的虚的)在复平面上画出轨迹来,要是轨迹在左半平面打转转,那就是实根为负,就是稳定的。再深究下去,系统响应的临界频率之类也可以计算出来。最大的好处是,对于常见的系统,可以给出一套作图规则来,熟练的大牛、小牛、公牛、母牛们,眼睛一瞄,随手就可以画出根轨迹来,然后就可以告诉你,增益变化多多少,系统开始振荡,再增加多少,系统会不稳定,云云。      
根轨迹还是比较客气的,还有更变态的奈奎斯特、伯德和尼科尔斯法,想想脑子都大。都是叫那帮电工分子害的。时至今日,计算机分析已经很普及了,但是古典的图示分析还是有经久不衰的魅力,就是因为图示分析不光告诉你系统是稳定还是不稳定,以及其他一些动态响应的参数,图示分析还可以定性地告诉你增益变化甚至系统参数变化引起的闭环性能变化。咦,刚才还不是在说人家变态吗?呃,变态也有变态的魅力不是?哈哈。      
以频率分析(也称频域分析)为特色的控制理论称为经典控制理论。经典控制理论可以把系统的稳定性分析得天花乱坠,但有两个前提:一、要已知被控对象的数学模型,这在实际中不容易得到;二、被控对象的数学模型不会改变或漂移,这在实际中更难做到。对简单过程建立微分方程是可能的,但简单过程的控制不麻烦,经验法参数整定就搞定了,不需要费那个麻烦,而真正需要理论计算帮忙的回路,建立模型太困难,或者模型本身的不确定性很高,使得理论分析失去意义。经典控制理论在机械、航空、电机中还是有成功的应用,毕竟从F=ma出发,可以建立“所有”的机械系统的动力学模型,铁疙瘩的重量又不会莫名其妙地改变,主要环境参数都可以测量,但是经典控制理论至少在化工控制中实用成功的例子实在是凤毛麟角,给你一个50块塔板的精馏塔,一个气相进料,一个液相进料,塔顶、塔底出料加一个侧线出料,塔顶风冷冷凝器,塔底再沸器加一个中间再沸器,你就慢慢建模去吧,等九牛二虎把模型建立起来了,风冷冷凝器受风霜雨雪的影响,再沸器的高压蒸汽的压力受友邻装置的影响,气相进料的温度和饱和度受上游装置的影响而改变,液相进料的混合组分受上游装置的影响而改变,但组分无法及时测量(在线气相色谱分析结果要45 分钟才能出来),动态特性全变了。    老家伙歌德两百年前就说了,理论是灰色的,生命之树常青。我们知道马鹿喜欢金光的或者银光的,至少也要红的,不过只好将就啦,青绿地干活。在实用中,PID有很多表兄弟,帮着大表哥一块打天下。      
比例控制的特点是:偏差大,控制作用就大。但在实际中有时还嫌不够,最好偏差大的时候,比例增益也大,进一步加强对大偏差的矫正作用,及早把系统拉回到设定值附近;偏差小的时候,当然就不用那么急吼吼,慢慢来就行,所以增益小一点,加强稳定性。这就是双增益PID(也叫双模式PID)的起源。想想也对,高射炮瞄准敌机是一个控制问题。如果炮管还指向离目标很远的角度,那应该先尽快地把炮管转到目标角度附近,动作猛一点才好;但炮管指向已经目标很近了,就要再慢慢地精细瞄准。工业上也有很多类似的问题。双增益PID的一个特例是死区PID(PID with dead band),小偏差时的增益为零,也就是说,测量值和设定值相差不大的时候,就随他去,不用控制。这在大型缓冲容器的液位控制里用得很多。本来缓冲容器就是缓冲流量变化的,液位到底控制在什么地方并不紧要,只要不是太高或太低就行。但是,从缓冲容器流向下游装置的流量要尽可能稳定,否则下游装置会受到不必要的扰动。死区PID对这样的控制问题是最合适的。但是天下没有免费的午餐。死区PID的前提是液位在一般情况下会“自动”稳定在死区内,如果死区设置不当,或系统经常受到大幅度的扰动,死区内的“无控”状态会导致液位不受限制地向死区边界“挺进”,最后进入“受控”区时,控制作用过火,液位向相反方向不受限制地“挺进”,最后的结果是液位永远在死区的两端振荡,而永远不会稳定下来,业内叫hunting(打猎?打什么?打鹿?)。双增益PID也有同样的问题,只是比死区PID好一些,毕竟只有“强控制”和“弱控制”的差别,而没有“无控区”。在实用中,双增益的内外增益差别小于2:1没有多大意义,大于 5:1就要注意上述的持续振荡或hunting的问题。      
双增益或死区PID的问题在于增益的变化是不连续的,控制作用在死区边界上有一个突然的变化,容易诱发系统的不利响应,平方误差PID就没有这个问题。误差一经平方,控制量对误差的曲线就成了抛物线,同样达到“小偏差小增益、大偏差大增益”的效果,还没有和突然的不连续的增益变化。但是误差平方有两个问题:一是误差接近于零的时候,增益也接近于零,回到上面死区PID的问题;二是很难控制抛物线的具体形状,或者说,很难制定增益在什么地方拐弯。对于第一个问题,可以在误差平方PID上加一个基本的线性PID,是零误差是增益不为零;对于后一个问题,就要用另外的模块计算一个连续变化的增益了。具体细节比较琐碎,将偏差送入一个分段线性化(也就是折线啦)的计算单元,然后将计算结果作为比例增益输出到PID控制器,折线的水平段就对应予不同的增益,而连接不同的水平段的斜线就对应于增益的连续变化。通过设置水平段和斜线段的折点,可以任意调整变增益的曲线。要是“野心”大一点,再加几个计算单元,可以做出不对称的增益,也就是升温时增益低一点,降温时增益高一点,以处理加热过程中常见的升温快、降温慢的问题。      
双增益或误差平方都是在比例增益上作文章,同样的勾当也可以用在积分和微分上。更极端的一种PID规律叫积分分离 PID,其思路是这样的:比例控制的稳定性好,响应快,所以偏差大的时候,把PID中的积分关闭掉;偏差小的时候,精细调整、消除余差是主要问题,所以减弱甚至关闭比例作用,而积分作用切入控制。概念是好的,但具体实施的时候,有很多无扰动切换的问题。

出0入0汤圆

发表于 2012-3-6 19:05:11 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2012-3-6 19:13:06 | 显示全部楼层
谢谢 尼美根的分享哈,学习着,大伙多发表下,我也赶紧学习啦

出0入0汤圆

 楼主| 发表于 2012-3-6 19:13:46 | 显示全部楼层
回复【4楼】823032003  尼美根
-----------------------------------------------------------------------

嘿嘿,谢谢哈,先学习啦

出0入0汤圆

发表于 2012-3-6 19:22:49 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2012-3-6 19:43:31 | 显示全部楼层
呵呵,coleyao 分享的故事很利于理解哈,谢谢啦

出0入0汤圆

 楼主| 发表于 2012-3-6 19:44:17 | 显示全部楼层
回复【10楼】coleyao  
-----------------------------------------------------------------------

谢谢了,可能比较笨,慢慢消化哈

出0入0汤圆

发表于 2012-3-6 20:02:16 | 显示全部楼层
想不到一个小车都可以这样复杂的。这是博士论文吧。

出0入0汤圆

发表于 2012-3-7 09:49:45 | 显示全部楼层
pid ,还没搞过

出0入98汤圆

发表于 2012-3-7 09:56:39 | 显示全部楼层
楼主请留意一下几个关键字
“增量式PID算法”
“PWM占空比”

大意就是由PID算法衍生出增量式PID算法(这一点非常好理解)
增量式PID算法输出的是相对值
将这一增量值用于调节PWM占空比即可实现用PID控制PWM

出0入0汤圆

 楼主| 发表于 2012-3-7 12:32:52 | 显示全部楼层
回复【19楼】rclong  
-----------------------------------------------------------------------

看来rclong 有深刻体会,求指教。

出0入8汤圆

发表于 2012-3-7 12:46:22 | 显示全部楼层
MARK!

出0入0汤圆

发表于 2012-3-7 12:50:08 | 显示全部楼层
上面看写了不少的核心内容了。
传个代码自己看看吧。
帮ermok把代码传上来。

点击此处下载 ourdev_724621XV75BZ.txt(文件大小:4K) (原文件名:pid.txt)
点击此处下载 ourdev_724622CMMOBC.txt(文件大小:3K) (原文件名:pid^.txt)

出0入0汤圆

发表于 2012-3-7 13:25:30 | 显示全部楼层
好长,有时间看下

出0入0汤圆

发表于 2012-3-7 16:18:18 | 显示全部楼层
主要是自己理解,多查点资料。慢慢消化。

出0入0汤圆

发表于 2012-3-7 16:25:08 | 显示全部楼层
转:
答网友问:加热系统的PID算法方案!
手心 发表于 2011-8-2 13:04:00  
2
推荐收到网友的邮件,让我分析以下 关于加热系统的 PID算法。这里初步给了一个方案,请各位参考参考,由于很久没有做PID这一方面的工作了,有错误难免存在!若有问题,欢迎批评指正。谢谢!

***************************************************求救邮件*******************************************

emailli你好,我在维库电子市场的一个关于pid的帖子里看到你对楼主的回复,表示了自己对pid的理解,我现在也越到了一个关于pid          计算结果输出值与需要控制的量之间对应关系的问题,想了很长时间了都没有想明白,希望你能够有时间帮我指点一下。谢谢……

       我要做的是用一个温度传感器采集水温,经过一个arm芯片(stm13)控制水温。水温要求是在30-60度之间随意设定,然后能在设定温度处保持,精度要求是上下一度。。。要求用pid算法进行处理,我看了一些pid的介绍,能够理解它的两种数字pid算法的推导公式。。我用采集到的真实温度与设定温度进行比较,得出误差e,这个误差经过pid算法之后,得出输出值out,然后再根据这个out值控制加热设备(现在的初步向想法是控制加热的占空比),但是我用了好几天也没有找出这个out的变化规律和e的变化规律之间有什么关系,也就是无法得出如何用out值去调节占空比。。。比如,当out是多大的时候给大的占空比加热,当out是多大的时候就应该停止加热。
      这个问题我现在已经想了很长时间了,但是还没有想出来,可能是我在哪个方面理解有问题,请你指教。。。谢谢。
--乾坤
******************************************求救邮件******************************************

*********************************************答复方案****************************************

这个是PID公式:
U(k+1)      = U(k) + (    KP *        E(k) -                      KI*        E(k-1) +          KD*         E(k-2) )
下次占空比    当前占空比  比例系数   当前温度和设定温度的误差值   积分系数  上次计算时的误差值 微分系数   上上次计算时的误差值

对你的系统而言,U(k)就是当前占空比。我这里先假定 你的占空比对应 定时器寄存器设置范围是 0-65535.同时假定 定时器设置为0的时候,

占空比输出为0%,全部是低电平,完全不加热。65535的时候,占空比输出100%,全速加热。

E(k)是当前温度和设定温度的误差值
E(k-1)是上次计算时的误差值
E(k-2)是上上次计算时的误差值

由于KP,KI,KD三个系数现在都不知道。需要整定,有自动整定,也有手动整定。我们先采取手动整定的方案。
我们现在可以知道温度相差40℃,显然,需要比较快速的加热。水温在正常系统使用的时候,显然是0-100℃的。
而你们这里需要目标温度是 30-60℃,故 最大加热的差值可以认为是 60-0 = 60。(假定不是冰,是水开始加热)。
我们可以认为,在需要最大加热差值的时候,仅用比例控制应当是开启全速加热。所以我们可以得到一个KP的估计值。
KP = 65535/60 = 1000左右。 这个意思是 最大温差对应最快加热速度。
然后,假设 KI = 800,KD = 300;
注意,系数需要根据实际情况来整定,此为假设。


好,现在假定设置 需要温度是 60℃,而当前温度是 20℃。那么可以知道

第一次
U(k) = 0              ---最开始是没有占空比输出的。所以是占空比是0
E(k) = 60-20 = 40     ---第一次的误差
E(k-1) = 0            ---还没有上次,所以初始化为0
E(k-2) = 0            ---还没有上上次,所以初始化为0

由于KP假定是1000,所以
U(k+1) = 40*1000 = 40000

所以,现在就可以按照 占空比 40000来加热了。

由于热系统是一个缓慢变化的系统,所以,加热需要一段时间才可以看到效果,假设采用固定间隔时间来设计。这里取5秒。

5秒过后,假定温度上升了5℃,当前温度为25℃。
则计算第二次 占空比过程。

第二次
U(k) = 40000
E(k) = 60-25 = 35
E(k-1) = 40
E(k-2) = 0

U(k+1) = 40000 + 35*1000 - 40*800 + 0 = 43000 (加热加速了)

又过了5秒,假定温度上升了6℃。当前温度为29℃
第三次
U(k) = 43000
E(k) = 60-31 = 29
E(k-1) = 35
E(k-2) = 40

U(k+1) = 43000 + 29*1000 - 35*800 + 40*300 = 56000 (2个周期以后还未达到指定温度,加热继续加速)

继续计算第四次,第五次,第N次 即可。

显然,要一直到出现超调,才会出现加热速度放慢甚至不加热。
若不允许超调,则需要增加一些门限控制。那就不在标准的PID讨论范围以内了。
以上是算法部分。
以下来讨论整定部分。
看系数是否合理,需要通过实验观察。
关于系数的整定,有一些工程的方法。你可以对自己的系统来摸索摸索。
整定的时候,先用整定比例系数。先不给积分,微分系数赋值,然后看加热速度有多快。这个快慢就主要看的是几个整定周期达到目标温度。
先不考虑超调的问题。
所以,你需要先对整个系统做实验,先看全速加热需要多久才可以把温度由 0℃ 加热到 60℃。
全速加热把温度从0℃加热到60℃所需要的时间设置为T,那么我们的整定周期就可以根据T来设置了。假设整定周期为 T/10。
(事实上,整定周期还可以根据偏差值来做动态调整,显然温度越接近目标值,整定周期就需要越短,非标PID不在继续深入,仅仅做一个简单提示)
然后以此来设置不同的KP比例系数,看KP设置为多少,可以接近 10个整定周期 达到同等加热速度,这样得到的KP就是一个比较合理的KP了。
然后再来看KI的整定,看KI设置成多少,可以让超调大约在根号2左右,也就是说 最大只有超调41%,这样得到的KI就是比较合理的。
当然,如果系统温度不允许超调41%,那就需要修改KI来实现了。
最后来整定KD,看KD设置成多少,可以让 最终稳定温度和设置温度的偏差 达到要求,比如偏差在 0.5℃以内。
这个就看你的需求了。
故,你的代码需要记录 整定的时候,PID算法运行的次数,以及每次整定的时候所得到的 温度偏差。通过串口发送出来做记录。
根据这些记录来选取合适的 KP,KI,KD。
以上介绍了 关于PID算法和整定的方案。总的思路应该是比较清晰的,实际应用的时候,需要根据自己的需求多做做修改。

出0入0汤圆

发表于 2012-3-7 16:41:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-4-8 23:22:57 | 显示全部楼层
学习中!!

出0入0汤圆

发表于 2012-8-3 09:23:33 | 显示全部楼层
学习了,

出0入0汤圆

发表于 2012-8-3 09:36:51 | 显示全部楼层
我只使用过增量式PID,其实不是很难,就是整定参数的时候,有点烦,不过也有小软件可以帮你,所以现在PID一点一不难了。小软件只要百度,有很多

出0入0汤圆

发表于 2012-8-3 10:59:49 | 显示全部楼层
还是不知道怎么下手

出0入0汤圆

发表于 2012-8-10 09:54:04 | 显示全部楼层
823032003 发表于 2012-3-6 15:59
PID控制算法通俗理解

今天开始学PID电机控制,这个作者写得很不错,和大家分享一下~~~

请问怎么到PID参数初始化就没有了?
能不能整个打包上传呢?

出0入0汤圆

发表于 2012-8-10 10:53:25 | 显示全部楼层
学习一下。。。。。。。。。

出0入0汤圆

发表于 2012-8-10 12:28:07 | 显示全部楼层
http://www.znczz.com/thread-6494-1-1.html

找到飞思小车PID控制的通俗理解[3]的连接了!个人觉得不错!贴上来一起分享

出0入0汤圆

发表于 2012-8-10 15:29:12 | 显示全部楼层
正在学习,感觉好难啊

出0入85汤圆

发表于 2012-8-10 15:49:18 | 显示全部楼层
确定控制周期,确定控制等级,控制周期/控制等级=最小控制单位,不同的控制对象选择的控制周期也是不同的,例如加热,这个东西变化的较慢,没必要搞那么高的PWM频率

出0入0汤圆

发表于 2012-8-10 17:08:04 | 显示全部楼层
MARK
PWM,第一次接触时,控制一个LED亮灭,感觉没什么,呵呵
现在仔细学习了下,发现还是非常复杂的,向高手学习下~!

出0入0汤圆

发表于 2012-8-10 22:58:51 | 显示全部楼层
学习了  受益匪浅!  谢谢了

出0入0汤圆

发表于 2012-8-11 11:14:08 | 显示全部楼层
mark 。。pid 不明白

出0入0汤圆

发表于 2012-8-11 11:44:26 | 显示全部楼层
这个文章不错!

出0入0汤圆

发表于 2012-9-1 01:51:22 | 显示全部楼层
谢谢分享啊 啊 啊  啊 啊

出0入0汤圆

发表于 2012-10-22 15:18:43 | 显示全部楼层
学习了  谢谢

出0入0汤圆

发表于 2012-10-24 21:06:38 | 显示全部楼层
好贴,留个记号,以后看

出0入0汤圆

发表于 2012-10-24 22:14:48 | 显示全部楼层
记个号。。

出0入0汤圆

发表于 2012-10-25 20:03:29 | 显示全部楼层
好东西就要马克之

出0入0汤圆

发表于 2012-10-27 10:15:55 | 显示全部楼层
必须标记啊,不懂  

出0入0汤圆

发表于 2012-12-21 15:44:42 | 显示全部楼层
我来学习下,打打基础

出0入0汤圆

发表于 2012-12-21 17:57:02 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-12-21 19:19:53 | 显示全部楼层
马克。。

出0入0汤圆

发表于 2012-12-21 19:37:03 | 显示全部楼层
标记     

出0入0汤圆

发表于 2012-12-21 19:49:01 | 显示全部楼层
http://www.amobbs.com/forum.php? ... 9&highlight=pid

出0入0汤圆

发表于 2012-12-21 20:59:56 | 显示全部楼层
mark-------------------

出0入0汤圆

发表于 2012-12-22 02:15:42 | 显示全部楼层
自己下两本pid的书然后研究几下就会了!!!!!!!关键还是得靠自己体会!!!

出0入0汤圆

发表于 2012-12-22 10:10:48 | 显示全部楼层
资料很好mark

出0入0汤圆

发表于 2012-12-22 10:27:00 | 显示全部楼层
学习了,谢谢分享。

出0入0汤圆

发表于 2012-12-22 20:40:22 | 显示全部楼层
好文章,谢谢楼主

出0入0汤圆

发表于 2012-12-23 01:27:31 | 显示全部楼层
貌似现代控制理论上提到这个。

出0入0汤圆

发表于 2012-12-23 10:15:10 来自手机 | 显示全部楼层
mark手机里找不到收藏按钮

出0入0汤圆

发表于 2012-12-23 13:43:06 | 显示全部楼层
mark一下~,PID

出0入0汤圆

发表于 2012-12-23 15:39:23 | 显示全部楼层
确实通俗易懂.正在学这个.谢谢

出0入0汤圆

发表于 2013-1-5 20:50:02 | 显示全部楼层
有用,果断收藏

出0入0汤圆

发表于 2013-1-6 19:24:04 | 显示全部楼层
coleyao 发表于 2012-3-6 19:00
搞定没,没搞定不要急,转个故事慢慢看着:
PID控制原理(转载) 作者 zjutzl 日期 2011-8-8 12:16:00
参数整 ...

你说的很形象化,可惜太长了,我没看完。

出0入0汤圆

发表于 2013-7-20 14:57:28 | 显示全部楼层
mark                     

出0入0汤圆

发表于 2013-7-20 22:19:37 | 显示全部楼层
小明的例子很好,赞一个

出0入0汤圆

发表于 2013-7-20 22:52:55 | 显示全部楼层
不错,不错

出0入0汤圆

发表于 2013-8-25 14:11:40 | 显示全部楼层
比看那些太理论的东西好多了,呵呵

出0入0汤圆

发表于 2013-8-25 14:43:24 | 显示全部楼层
PID看过,没搞懂,,,撸过

出0入0汤圆

发表于 2013-8-25 14:55:16 | 显示全部楼层
如果你觉得PID简单的话,那么你还未入门。经典的PID算法是能控制住对象,但是有很多的问题,控制的效果不是很好。

出0入0汤圆

发表于 2013-8-26 09:22:43 | 显示全部楼层
MARK 先标记下,有时间再来学习

出0入0汤圆

发表于 2013-8-26 12:56:29 来自手机 | 显示全部楼层
PID控制学习,慢慢消化。

出0入0汤圆

发表于 2013-8-26 18:49:38 | 显示全部楼层
看得我头晕。正在做温度的PID。不知道怎样下手。

出0入0汤圆

发表于 2013-8-26 19:24:26 | 显示全部楼层
正在学习。。。

出0入0汤圆

发表于 2013-8-26 19:34:16 | 显示全部楼层
做好PID真心难.得花功夫。。

出0入0汤圆

发表于 2013-8-26 20:26:21 | 显示全部楼层
mark一下

出330入0汤圆

发表于 2013-8-26 20:43:28 来自手机 | 显示全部楼层
Pid在变频器核心算法里用途很大

出0入0汤圆

发表于 2013-8-26 22:03:05 来自手机 | 显示全部楼层
学习一下......

出0入0汤圆

发表于 2013-8-27 09:30:00 | 显示全部楼层
823032003 发表于 2012-3-6 15:59
PID控制算法通俗理解

今天开始学PID电机控制,这个作者写得很不错,和大家分享一下~~~

谢谢!

出0入0汤圆

发表于 2013-8-27 09:59:01 | 显示全部楼层
823032003 发表于 2012-3-6 15:59
PID控制算法通俗理解

今天开始学PID电机控制,这个作者写得很不错,和大家分享一下~~~

mark,学习学习

出0入0汤圆

发表于 2013-8-27 10:00:04 | 显示全部楼层
823032003 发表于 2012-3-6 15:59
PID控制算法通俗理解

今天开始学PID电机控制,这个作者写得很不错,和大家分享一下~~~

mark,学习学习

出0入0汤圆

发表于 2013-8-27 18:10:02 | 显示全部楼层
P呀,很头痛,努力学习中.

出0入0汤圆

发表于 2013-8-27 22:50:28 | 显示全部楼层
mark,做个记号慢慢看

出0入0汤圆

发表于 2013-9-13 08:58:19 | 显示全部楼层
mark mark mark

出0入0汤圆

发表于 2013-9-13 10:40:17 | 显示全部楼层
MRAK...小故事通俗易懂...

出0入137汤圆

发表于 2013-9-13 13:34:59 | 显示全部楼层
留个记号   看看

出0入0汤圆

发表于 2013-9-13 15:36:23 | 显示全部楼层
比赛栽在PID上了,,,标记一下
回头再好好研究一下

出0入0汤圆

发表于 2013-10-2 09:58:01 | 显示全部楼层
PID确实很重要!

出0入0汤圆

发表于 2013-10-2 11:55:22 | 显示全部楼层
大家回复的很多  我就不给你找了  

出0入0汤圆

发表于 2013-10-27 20:12:44 | 显示全部楼层
顶起,学习了。

出0入0汤圆

发表于 2013-10-28 08:07:26 来自手机 | 显示全部楼层
ermok 发表于 2012-3-6 15:13
以前有过PI的。回头给你找找。

ID碉堡了!字数补丁……

出0入0汤圆

发表于 2013-10-29 13:01:39 | 显示全部楼层
MARK PID  

出50入0汤圆

发表于 2013-10-29 16:31:50 来自手机 | 显示全部楼层
马克。。。。。

出0入0汤圆

发表于 2013-10-29 16:41:30 | 显示全部楼层
利用偏差调整偏差
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 05:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表