coleyao 发表于 2012-6-21 22:01:12

位置式PID的时域解释

本帖最后由 coleyao 于 2012-6-22 21:53 编辑

   以下内容均为作者原创,非经作者本人和站长许可,不得转载和出版,若有违反,请参考网站有关规定:
                     预测式负反馈控制--一种优秀的自动控制方法
    目前在各种工业场合,很多地方都用到了单片机数字控制方式(离散控制),相对于原先使用各种电子元件构成的模拟调节方式,数字控制方式控制具有元件少,更改参数简单,可靠性高,信号处理简单等特点,在最近已日渐取代模拟调节成为大势所趋。
   离散控制中最成熟,最流行的应该是PID控制方式及其各种变种(预测式负反馈控制我也做了两个引申的控制法,我分别命名为Pre_av和Pre_adv,在早期的温控仿真软件中有提及,这两种方法稳定性和普适性变差,但有其个性,对它们感兴趣的读者可以去研究一下),各个学科的前辈们对PID进行了深入的研究,使得PID控制的理论越来越成熟,其实际应用也越来越广泛。PID控制方式其实是一种频域的解决问题的方法,它将实域问题映射到频域中,通过对频域的研究(波特图等等)得出一些结论,并反过来指导解决实域问题,因此,PID控制方式尽管各参数在实域内得到了一定意义上的解释,但其本质上是频域的,因而PID也有着一些固有的缺点,最明显的缺点就是PID控制方式参数整定比较复杂,对PID没有深入地研究过的话很难应用到实际产品中去,特别是有一些产品使用的场合干扰比较大,有较大的延时,此时更难得到一个理想的参数。
   因为本人不是自动化专业出身,工作后接触的自动控制也很有限,我就只能拿温度控制来解释一下预测式负反馈控制方法了,至于该方法是不是对其它场合同样有效,希望各位有心的读者自行作个验证。
   既然要讲温度控制,那么就先讨论一下温度控制有那些指标,怎样的控制曲线是理想的控制曲线。就我自己的理解,温度控制的指标主要有升温速度,过冲幅度,调节时间,稳定后控制精度,抗扰动这五项,这五项如果要同时做到最好是比较困难的,但是如果其中一到两个参数指标稍微放宽一些,其余指标做到最佳则是可以的,下面的一副图给出了一个近似理想的控温曲线,其中红色曲线为使用仿真软件得到的温控曲线。
                              (图一 请参考附件)
再给一个产品实际控温曲线图,如下:
                                 (图二 请参考附件)
  使用通常的PID控制,要想得到理想的控温波形应该是要花一番功夫的,如果再需要预留一定的抗扰动余量,可能会难倒不少已经对PID整定有相当熟练程度的电工。不过如果是采用预测式负反馈控制,以上的难点就会迎刃而解。那么就是预测式负反馈控制的原理是怎样的呢,它为何会有这样的控制效果呢?要弄明白预测式负反馈控制的工作原理,就必须明白比例负反馈原理。比例负反馈原理在很多介绍PID控制的资料中都有介绍,我就不多讲了,只讲一下它的特点:比例系数较小时,抵抗环境扰动的能力较弱,比例系数较大时则会因系统延时产生等幅振荡,因而纯粹的比例负反馈很少用到实际控制中去。但是回过头来再想一想,既然单独用比例负反馈不行,是不是再加入其它分量经过适当搭配消除系统延时的影响呢,随之当然就出现了PID控制方式,尽管PID用起来并不简单,但经过前人这么多年的摸索和研究,已经找到了一套行之有效的办法,就是一些整定方法,但是,有没有比PID控制方式更有效更简洁的控制方式呢,当然是有的,也就是我要介绍的预测式负反馈控制,它也是由比例负反馈控制衍生出来的。
更多内容请参考附件(图片为软件仿真环境温度变化时的PID增量控制和预测式负反馈控制的对比图,环境温度曲线是手绘的,绘制时请先将SurT draw enable选项勾选,然后在绘图区域绘制即可)!
很多读者说预测式负反馈控制与PID控制算法很像,我回过头看了一下(参考附件"PID控制经典培训教程"的公式推导),其实位置式PID的增量形式中就是预测式负反馈控制的y=y0+vt+0.5at*t(时域二阶逼近PreF_av)控制方式,但各参数搅和在一起,不如预测式负反馈控制简洁且各参数的物理意义更清晰直观,因此位置式PID更适合的名称应该是预测式负反馈,位置式PID的位置形式就是我的软件中的PID位置算法,至于我的软件中所说的PID模拟算法(与大多自控书中的原始定义一致的),反而是应该是增量式PID,不知道这样的解释大家清楚了没有。

xinbadazz 发表于 2012-6-21 22:25:57

关注一下,谢谢分享。

syuanwang 发表于 2012-6-21 22:40:54

本帖最后由 syuanwang 于 2012-6-21 22:46 编辑

感谢LZ的分享,之前的帖子里LZ也提出过这种算法,不过一直没有拜见真颜。
利用当前误差的斜率对未来的误差进行预测的方法我觉得很有意思。
不过回头复习了一下增量式PID公式的话发现您的算法和PI部分十分相似

PS:一不小心传了两个图

lollipop 发表于 2012-6-21 22:47:30

PID的D,就是预测

shi_90 发表于 2012-6-21 23:00:53

请假一下!!看到图形是不是pid温度曲线看上去是一个对数函数啊!!!是不是啊!!

coleyao 发表于 2012-6-22 06:27:50

本帖最后由 coleyao 于 2012-6-22 07:48 编辑

lollipop 发表于 2012-6-21 22:47 static/image/common/back.gif
PID的D,就是预测

这一点相信很多人都明白,不过预测式负反馈的控制粗看起来是完全放弃了PID控制中的积分变量,并且放弃了在PID控制中D变量的配角位置,一跃成为了主角,但实质则是一种崭新的时域内处理问题的方法,它不从误差的当前状态来修正系统,而是根据误差将来的某个时间点的状态来修正当前的系统,所以我称之为预测式负反馈,不过既然是预测就可以有很多种不同的预测法,y=y0+v*K应该是最简洁最好用的一种,其它还有诸如y=y0+v*K+at*t/2和有y=y0+v*K(t)等方法。

lyyyuna 发表于 2012-6-22 09:09:02

温控可以,那么快速变化的对象呢?流量,电机控制?
来自:amoBBS 阿莫电子论坛 Android客户端

armNo 发表于 2012-6-22 09:44:43

coleyao 发表于 2012-6-22 09:28 static/image/common/back.gif
理论上面,你就是把它应用到导弹火箭上面也是可以的,但那些不是我的专业,我也没法做这样的回复,这些 ...

嘻嘻,一个正在验证中的算法,玩玩还可以,做到产品项目中可能会有风险的。

learner123 发表于 2012-6-22 10:48:18

根本没有任何新东西,楼主还是应该自学一下自动控制原理最基本的东西。
此外,实际用时,不如直接调节D变量
还有,如果是小惯性系统,恐怕很容易震荡

jetli 发表于 2012-6-22 16:57:23

{:shocked:} n多年前玩过下,模糊控制,,,现在,,,早模糊了,,,

largeboss 发表于 2012-6-22 16:59:58

mark{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}

explorer117 发表于 2012-6-25 14:58:10

模糊控制,一直在听说,从未实践过

jinxiafeng 发表于 2012-7-27 07:51:26

{:lol:}mark

lcmdw 发表于 2012-9-1 23:48:46

mark{:smile:}

zhaolei2612 发表于 2012-9-19 20:56:59

MARK,学习。

lryxr2507 发表于 2012-10-8 15:24:59

正在学习PID算法,下了,谢谢!

YOU1 发表于 2012-12-1 20:30:53

顶起,学习了

netawater 发表于 2012-12-1 21:13:10

收藏,顶起楼主!

John_123 发表于 2013-2-24 21:05:34

keep post for referance

tdh110 发表于 2013-3-19 16:18:31

谢谢楼主分享这么多原创实用资料,楼主精神{:victory:}{:victory:}

jz701209李 发表于 2013-4-13 22:11:41

谢谢楼主。。。。。

coleyao 发表于 2013-4-14 06:32:42

本帖最后由 coleyao 于 2013-4-14 06:35 编辑

根据我收集的资料我谈下我的看法(有不当的地方欢迎其他网友指正):

   1)位置式PID即是一般自动控制原理书中介绍的原始的PID控制,其三项系数可以用经典的PID来解释,也即是源于频域分析理论的;

   2)位置式PID的增量形式是从位置式PID推导出来的,其系数不可以用经典的PID来解释,通常用经验来确定其系数;

   3)控制的本质是预测基础上的负反馈,位置式PID的增量形式的数学形式与预测式负反馈控制数学形式相似,但没有指出各个要素,因而是不完整的,表现出来就是参数整合凭经验,用的好坏全凭运气;

   4)预测式负反馈控制才是真正的控制,它内部集中了控制需要的两个要素,是完整的,其公式为Delta PIDout= FdK*(ErrorT+PreK*(vT+PreKv*aT)),这里面T是被控量温度, FdK是负反馈系数,ErrorT是被控量误差,PreK是被控量预测时间,vT是被控量变化速度,PreKv是被控量变化速度的预测时间,aT是

被控量的变化加速度,该式为非线性预测(或被控量及其速度的双重预测),也即考虑了速度的非恒定因素,如果去掉PreKv项,则变成被控量的线性预测,通常情况下,线性预测已经足够使用了。

Pao_fu 发表于 2013-10-7 17:29:31

KANKAN
OO

mao5918 发表于 2013-10-8 08:44:26

mark,谢谢分享

liuxing045 发表于 2014-4-17 19:56:32

mark!!!!!!!!!!!!!!

lanfeng0107 发表于 2014-6-19 23:07:13

学习ing~!!@!

xz199264 发表于 2014-8-8 17:08:55

最近在学,谢谢分享了

beaboss 发表于 2014-8-8 17:45:41

MARK 学习一下

jpjavr 发表于 2014-9-17 21:06:19

好东西,楼主费心了

why800 发表于 2014-10-1 21:19:00

楼主的公式不错,公式的物理意义明确。

dzlt2012 发表于 2014-10-1 22:25:44

不太明白,下载了慢慢看。

背西风酒旗 发表于 2014-10-1 22:31:41

学习一下!

Yahom 发表于 2014-10-3 21:09:39

谢谢楼主分享!

dianqi2007013 发表于 2014-10-27 08:59:43

谢谢楼主分享!

amigenius 发表于 2014-10-27 09:11:46

把PID都神化了。其实PID就是模拟人的调节思维,自己慢慢理解吧

散装805 发表于 2014-10-28 07:33:16

amigenius 发表于 2014-10-27 09:11
把PID都神化了。其实PID就是模拟人的调节思维,自己慢慢理解吧

有道理!

L7科创 发表于 2014-10-28 08:24:33

学习一下!

Ca_guo 发表于 2014-10-28 09:18:24

不错,有空好好研读

yangzhiwen56 发表于 2014-11-3 22:50:41

mark,有空再学习

xurenhui 发表于 2014-11-20 14:43:17

非常谢谢

小小菜 发表于 2015-1-13 21:49:26

谢谢分享···!

563872381hai 发表于 2015-1-27 19:19:30

想问下楼主的采样周期和响应时间是怎么获取的

huntaway 发表于 2015-1-27 21:06:46

coleyao 发表于 2012-6-22 06:27
这一点相信很多人都明白,不过预测式负反馈的控制粗看起来是完全放弃了PID控制中的积分变量,并且放弃 ...

预测式负反馈,感觉就是控制论里面的前馈控制

coleyao 发表于 2015-1-28 20:57:50

563872381hai 发表于 2015-1-27 19:19
想问下楼主的采样周期和响应时间是怎么获取的

一般温控系统的周期都很长,所以控制周期1到5秒都问题不大,采样周期可以稍微高些,0.25到1秒左右吧,当然如果系统升降温快,周期就要相应减小,否则会因采样时间过长造成控制不平滑。

563872381hai 发表于 2015-1-30 21:37:23

coleyao 发表于 2015-1-28 20:57
一般温控系统的周期都很长,所以控制周期1到5秒都问题不大,采样周期可以稍微高些,0.25到1秒左右吧,当 ...

我现在是6s,这个采样周期是不是看被控制量变化的时间来确定的。如果被调量温度从20℃在3s内变化为21℃,则采样周期是不是要比3s小

coleyao 发表于 2015-1-31 10:59:36

563872381hai 发表于 2015-1-30 21:37
我现在是6s,这个采样周期是不是看被控制量变化的时间来确定的。如果被调量温度从20℃在3s内变化为21℃, ...

   采样周期越短越好,现在的传感器如18B20都在1S左右,或者也可以设为0.25S,采样时间越短,精度越低,两者矛盾的,看自己如何取舍了!

xiaoseaip 发表于 2015-3-26 22:42:17

最不了解控制算法了,有有必要学习一下

xyd212161 发表于 2015-11-30 16:21:09

正好最近要用到,先收下了

308594151 发表于 2015-12-1 00:27:50

不错,{:lol:}

闲鱼翻身 发表于 2016-6-28 14:36:09

感谢分享,学习了

vjman1993 发表于 2016-6-30 19:41:01

谢谢楼主,收藏了

Billion 发表于 2016-7-18 15:15:59

关注一下,谢谢分享

cyberkyg 发表于 2016-7-18 21:12:55

mark         

amiok 发表于 2016-11-10 17:20:06

谢谢楼主,收藏了

贪吃的蚂蚁 发表于 2019-7-30 22:20:24

做个记号,有空慢慢看

hnjzwht1 发表于 2019-10-31 18:51:48

非常有用啊,我正好做一个项目需要用到PID控制,要是有模糊算法就更好了;
页: [1]
查看完整版本: 位置式PID的时域解释