- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PID笔记在百度上面找了那么多的资料,对pid这个控制算法一有了一点自己独到的见解,想借此像各位需要的读者汇报一些,谈一谈自己的见解。所谓的pid分别是三个英文单词的第一个字母:比例(P:proportional),积分(I:integral),微分(D:derivative)。PPid控制机构的流程图以步进电机为例,我们首先都会给一个理想的电压给电机r(t),我们理想的认为它能够达到我们的要求,实则不然,因为电机并没有现行特性所以电机的实际输出只能是y(t),着肯定比我们所给定的值要小,因为电机在工作中要将一部分的电能转化为热能消耗掉。将实际输出的电压反馈会来就会看到它与理想状态存在一定的偏差即e(t)。这下就要通过pid算法将得到的偏差数据进行处理。然后得到处理过后的电压值u(t)再次传送给被控对象,即我们这里所提到的电机。举一个通俗一点的例子就是我给电机的数据是200(这里我将电压量化了,读者应该能理解吧:-),结果你实际输出的只有160,就算现在我知道了你的偏差是40,但是我就算在原先160的基础上加上40,即240,我实际输出也不可能是200,因为电机并不是线性的,我给240,可能实际输出在190~200之间(排出已经到达饱和状态)。所以我每次只能是在原先的基础上要么加上一点,要么减少一点,让你实际输出的电压无限的接近我所想要的理想状态。这个工作不可能让我们人来做吧,这就是pid强大应用中的冰山一角,所以算法的强大之处就在与此。让我们现在来看一看这个算法的真实面貌吧!!其中Kp为比例系数,Ti为积分系数,Td为微分系数。e(t)为偏差,后面分别是偏差的积分与微分。Kp的大小主要影响系统调节的速度,Kp越大,系统响应的速度就越快,但同时也会造成超调(过度的调节,使偏差出现往相反方向走的趋势),使系统震荡。Ki(Kp/Ti)的大小影响调节的速度,即当Kp调节完成后,实际输出并没有达到我们的要求,但系统已经趋于稳定了。所以积分的作用就是将我们每次调节过后的偏差相加,只要我们的系统存在偏差,积分就使我们pid调节的值逐渐增加,让实际的输出逐渐接近我们想要的理想状态值。积分的好处就是可以提高我们的调节精度,使我们的系统更加的稳定,但也存在弊端,就是它会将我们系统调节运行的速度降下去,可能引起积分饱和。Kd的大小影响的是系统的灵活性,能够对系统的变化趋势可以做出提前的预测。Kd越大,对系统的调节起到抑制作用,防止这一趋势进行下去,Kd越小,对系统的抑制作用就越小,还能够起到促进的作用。离散化处理的pid离散化处理的pid公式(位置型)离散化处理的pid离散化处理的pid公式(增量型)pid公式又分为位置型与增量型:位置型优点:计算机输出的u(k)可直接控制执行机构(阀门一类),因为u(k)值和执行机构的位置(阀门的开度)是相对应的关系。所以这种方式的pid公式叫做位置型pid公式。位置型缺点: 每次的输出均与过去的状态有关,每次的运算都要对e(k)进行积分累加,造成的是计算机的运算量很大。控制器的输出对应执行机构的实际位置,如果计算机出现故障,u(k)的大幅度变化将造成执行机构的大幅度变化。增量型优点:不需要累加,控制增量△u(k)的确定只与最近3次的采样值有关,容易通过加权处理获得比较好的处理效果。计算机每次只输出控制增量,即对应执行机构位置的变化量,故机器发生故障时影响的范围较小,不会严重影响机器的生产过程。手动—自动切换时冲击较小。当控制从手动到自动切换时,可以做到无扰动切换。增量型缺点:积分截断效应大,有静态误差;溢出的影响大。在根据下面Kp、Ki、Kd在不同情况下控制量的状态就可以看出参数的调整与实际情况之间的联系。KpKp若Kp过小的时候,及比例调节基本上就不存在,相当于没有进行调节。若Kp过大的时候,虽然调节的速度上去了,但是会造成系统的不稳定,对系统的干扰会很大,就会造成震荡。KiKiKi为积分调节的系数,若积分系数过小,会导致调节的时间过长,从而造成系统的不稳定,若过大,尽管消除静差的速度是提高了,但是会引起震荡。积分的作用知道偏差为0时才会停止。KdKdKd为微分调节的系数,其主要作用就是对整个系统的调节起到抑制的作用。当将微分的这一部分公式进行离散化的时候(Kd*(e(k)-e(k-1)/T))就可以发现,这部分是在当前时间K的偏差与上一周期的偏差上进行求导(斜率),当斜率过大的时候就可以估测出在下一周期K+1上的偏差值,这个就是所谓的提前预测的味道,从而就可以在偏差(e(k))变化较快的时候起到抑制作用。接下来讲解关于pid算法的具体的实现方法(c语言):最简单的实现方法,并没有联系在工作过程中的实际情况:#includestdio.hstruct PID{ float ek;//偏差 float las
文档评论(0)