关于模糊控制
本帖最后由 晨枫 于 2015-2-7 00:50 编辑看到日本电饭煲贴里说起模糊控制和PID控制,忍不住要插话了。遗憾的是,诸君关于PID和模糊控制的概念都不正确。PID控制和模糊控制是两个范畴的东西,思路决然不同,但两者的差别不是哪个比哪个更加精确。
PID全称是比例-积分-微分控制,具体的控制律是
u(t)=kp*e(t)+ki*int(e(t))+kd*de(t)/dt
其中u(t)是控制输出,e(t)是闭环误差,也就是设定值(set point)与测量值(process variable或者measurement)之差,int指积分,这里没法写那个弯弯的积分符号。这是PID控制律的“学院派”表述,工业上还有其他表述,但最后都是等效的。上述是连续时间域的表述,在离散时间域里,就是
u(k)=kp*e(k)+ki*cumsum(e(j))+kd*(e(k)-e(k-1))/ts
其中cumsum为cumulative sum,高数里就是大写sigma(级数和),ts为采样时间。这是位置式PID,工业上常用增量式PID,两者之间也是完全等价的。
PID的理论基础是微分方程稳定性。对于二阶一下线性定常系统,可以理论计算出保证稳定性的kp(比例增益)、ki(积分增益)和kd(微分增益),但工业上一般用凑试法凭经验和观察来整定。
PID的整定可以稳定为主,或者以快速回位为主。前者慢慢逼近设定值,可以做到无超调(overshoot),也称过阻尼响应(overdamped response);后者快速逼近设定值,但通常要振荡几下,所以也称欠阻尼响应(underdamped response)。相邻的两个波峰值之比为阻尼比(damping ratio)或者衰减比(decay ratio),经典整定以4:1衰减比为最优,实际上这对跟踪系统不错,但对过程系统还是超调太多,过程工业偏好无超调。电饭锅温控实际上是一个过程控制问题,而不是一个伺服控制问题。换句话说,温度超调就要造成焦糊;但温度慢慢上升到设定值,顶多多煮一会儿,不会煮夹生饭。
模糊控制则是完全不同的概念,这是从模糊集合来的。用控制术语来说,这来自于开关控制。简易型电饭锅正是开关控制。温度不到100度(实际上可能是102度),电火力全开;煮沸的时候,沸腾过程由于相变,温度自动稳定在100度,只要没有烧干,怎么烧也不可能超过100度。这个说起来比较费劲,要不让村长解释吧。另一方面,一旦烧干了,也就是饭焖好了,继续烧温度就上去了,所以温控设定在102度的话,超过了就自动关火,接下来就是小火保温的问题了。
但这样的开关控制很生猛,也不精确,对于要求精确的时间-温度曲线控制不利。用PID加程序升温控制可以精确控制,但实现起来比较复杂,而且要受米量、水量、水温等的影响。于是就有了模糊控制。
模糊控制的关键在于在开关控制的TRUE和FALSE状态之间引入一个过渡状态,在过渡阶段里,既非TRUE,也非FALSE,而是介于两者之间,或则偏向其中一边。比如说,以身高为例,成年男子1.6米以下算矮的,1.8米以上算高的,期间就不能简单地高或者矮来界定,而出现了“较矮”、“中等”、“较高”等过渡状态。事实上,在1.6和1.8米之间,可以斜线连接,这就是所谓membership function,定义在高和矮之间的连续变化。当然,membership function可以不是线性的,而是其他复杂形状,这就是不同口味的模糊集合,有不同特性。
单一变量的模糊控制没有多少意义,但多个变量后,模糊控制就有意义了,尤其在输入变量至少有几个不在“清晰值”而在过渡值上。这时,有一套集合论的规则计算合成的输出,比如计算membership function下的面积在计算重心什么的。说起来比较罗嗦,实施起来也挺罗嗦的。
说了那么多,模糊控制的好处就是可以把语言描述的规则数字化,而不是真正建立解析的模型,因此对于传统的模型误差不敏感,用控制术语来说,就是robustness较好。坏处是这东西无法做稳定性分析,也无法与最优控制、自适应控制、预估控制等基于解析模型的现代控制理论结合起来,完全是就事论事的rule based system,或者称heuristic system。当然,有人在做把两者凑起来的事情,但土豆和西瓜杂交,总是不伦不类,大多不了了之。
模糊系统在80年代流行过一阵,后来就销声匿迹了,只有日本例外。日本人对模糊系统情有独钟,在洗衣机、微波炉、电饭煲、照相机等广泛使用,并且喜欢标明,以示先进。这东西比PID更先进吗?不见得;比PID更加不精确吗?也不见得。在某种意义上,模糊与神经元(neural net)一样,在理念和事实上与传统手段有所不同,但说到底并没有革命性的改变,是意大利面与上海粗炒面的差别,而不是牛排与豆腐煲的差别。
================
模糊控制几句话说不清楚,这也是可以唬人的道理之一。要是有人有兴趣,我可以贴一些图,附加一点例子。事实上,维基里的解释不错,可以看看。
http://en.wikipedia.org/wiki/Fuzzy_control_system
@隧道 @Sichuluanhuang @橡树村 多谢。成本呢?哪个高一些?
感觉温度控制是最麻烦的,别的控制可以很快有反应,过了可以很快排掉,扔掉。
特别是高温1000度左右的,即使保温层很厚,热量流失也有,而且加热起来很慢,反应也慢。
过了也不能立刻冷却。
现在有的控制器上有autotone的功能是不是就是利用PID的理论基础计算出来的?感觉还很好使。
不知道象印的电饭锅能有几档功率可调,我感觉最起码有加热和保温两个不同功率,可以组合出3个加热档位。
是不是就对应于全开,偏高,偏低?
好像空调做变频不难,不知道加热器做变功率是不是成本很高。 长知识{:225:} 隧道 发表于 2015-2-7 15:46
多谢。成本呢?哪个高一些?
感觉温度控制是最麻烦的,别的控制可以很快有反应,过了可以很快排掉,扔掉。
...
加热器变功率很容易,比如可以用可控硅控制交流电的开关点或者弄成直流电通过pwm占空比控制。 PID与模糊控制的一个显著区别是PID擅长于控制输出u是连续量的场合。按照你给出的控制律公式,无论是连续时间域的还是离散时间域的,u都是一个连续变量。如果u需要离散化,比如说电饭煲只有大火煮和保温两档,那么传统的稳定性分析和最优化就比较吃力了,因为闭环后显然不是一个线性定常系统。对于这种场合,模糊控制则没有什么特别的困难,整正一个控制输出连续和控制输出离散的系统区别不大。事实上,有些控制输出连续的模糊控制系统的实现其实是离散量连续化,即最后加一步D/A转化。 有控制专业的来说啦。
这基本上是个密闭体系,水的蒸发量加大就会导致体系内压力增加,这样沸点也就会略有增加。化工设计里面,这样的沸腾体系还是控制压力最方便,至少水蒸汽系统,压力设定了,温度自然就定了,省事。所以我想PID在使用温度参数的时候参考压力参数的话,甚至在温度接近100摄氏度以后完全使用压力参数,应该同样可以实现精确控制。模糊控制也应该是同时考虑温度和压力的,特别是对于这样实际上没有办法实现均匀加热的沸腾体系,压力对于整体状态的反映更加准确,温度因为测量点的位置以及热分布等等问题反而是不准确的。对于这种可以变压的电器,很显然是有压力传感器的,这么控制的可能性更大。而使用压力来控制的话,PID也好,模糊控制也好,并不会有什么区别。
不过模糊控制在唬人方面,那肯定是遥遥领先的。
隧道 发表于 2015-2-7 15:46
多谢。成本呢?哪个高一些?
感觉温度控制是最麻烦的,别的控制可以很快有反应,过了可以很快排掉,扔掉。
...
高温1000度?有这样地电饭锅?你知道需要多大的压力吗?而且这个温度很难直接电热加热了,需要使用电弧,等离子之类的,或者依靠燃烧提供温度。
无论什么加热方法,PID控制都可以实现的,只要提前把参数摸好了就是了。不同的工作状态,使用不同的参数就是了。
还是晨大说得详细。
PID控制大多基于工艺过程的模型,所以可以选单一变量进行调节。
我对模糊控制的概念不是特别清楚,印象中就是没模型,但模仿人的探索方式,慢慢试着来。现在可以上您给的链接上学习学习。 橡树村 发表于 2015-2-7 20:03
高温1000度?有这样地电饭锅?你知道需要多大的压力吗?而且这个温度很难直接电热加热了,需要使用电弧, ...
我指的当然不是电饭锅。
没那么高深,就是电炉丝或者石墨加热盘。 橡树村 发表于 2015-2-7 19:58
有控制专业的来说啦。
这基本上是个密闭体系,水的蒸发量加大就会导致体系内压力增加,这样沸点也就会略有 ...
象印的模糊控制i还不是普通的模糊控制。
而是这种模糊控制,怪不得把这个当作卖点。
神经模糊控制(Neuro-Fuzzy Control)
这种控制方法以神经网络为基础,利用了模糊逻辑具有较强的结构性知识表达能力,即描述系统定性知识的能力以及神经网络的强大的学习能力与定量数据的直接处理能力。 本帖最后由 橡树村 于 2015-2-7 22:20 编辑
隧道 发表于 2015-2-7 22:02
象印的模糊控制i还不是普通的模糊控制。
而是这种模糊控制,怪不得把这个当作卖点。
神经网络也只是一个算法而已,没啥高深的,有适合应用的地方,也有缺点。在这个应用环境下,我不认为会比其他控制方法效果更好。
当然吹牛忽悠老百姓还是很可以的。 隧道 发表于 2015-2-7 22:01
我指的当然不是电饭锅。
没那么高深,就是电炉丝或者石墨加热盘。
大工业装置反而很难实现很精确的控制,而且也不是很有必要实现很精确的控制。
比如装置的体积略微大一点,里面的温度分布就肯定不是均一的,特别是在有反应或者相变发生的时候,温度分布会非常复杂,不同位置测温点给出的温度都不一样,这个时候对某一个点的很精确的温度控制根本没有必要,差不多就行了。 隧道 发表于 2015-2-7 02:46
多谢。成本呢?哪个高一些?
感觉温度控制是最麻烦的,别的控制可以很快有反应,过了可以很快排掉,扔掉。
...
1000度的电饭锅, 哎呀, 光是测1000度的的测温元件就贵了去了, 记得测上千度的一个热偶都是2000-3000刀。 也就石化才有这么高的温度 马鹿 发表于 2015-2-7 23:07
1000度的电饭锅, 哎呀, 光是测1000度的的测温元件就贵了去了, 记得测上千度的一个热偶都是2000-3000刀 ...
是挺贵。但没那么贵。http://www.omega.com/toc_asp/frameset.html?book=Temperature&file=SEL_GUIDE_THERMOCOUPLE 隧道 发表于 2015-2-7 01:46
多谢。成本呢?哪个高一些?
感觉温度控制是最麻烦的,别的控制可以很快有反应,过了可以很快排掉,扔掉。
...
都用芯片实现的话,硬件成本上没有差别,差别在于PID是通用算法,但模糊是针对每一个具体问题的,较难通用化,除非在输入变量分段量化数、输出变量分段量化数上提供非常多的选择。
Autotune有很多种,常用的是在线做阶跃试验,然后根据阶跃曲线计算PID参数。简单阶跃就是开环的,复杂阶跃是在闭环上加一个阶跃激励,响应比较“柔和”一点,也不至于偏离设定值太远甚至失控。
温度过程的纠结之处是可能有不对称响应,比如说,加热快,散热慢。另外就是非线性响应,加热元件接近全开的时候,已经起不到加热作用,或者进入相变区了。
变频技术是现成的,只是成本问题。电饭煲是不是用上变频,我就不知道了,估计没有。变频的东西肯定轻不了,变频的电饭煲不得几十斤重? 穿着裤衩裸奔 发表于 2015-2-7 02:10
加热器变功率很容易,比如可以用可控硅控制交流电的开关点或者弄成直流电通过pwm占空比控制。 ...
PWM不是交流的吗?直流只要可控电阻就可以调节功率了,实际上是用增加无用功耗降低加热功率。 沉宝 发表于 2015-2-7 05:53
PID与模糊控制的一个显著区别是PID擅长于控制输出u是连续量的场合。按照你给出的控制律公式,无论是连续时 ...
正是,模糊控制起源于开关控制的“柔化”,也适合多位(开关是双位)控制,但不局限于多位控制,可以连续控制。离散系统的物理实现最后都是要连续化的,用zero order hold(忘记中文怎么说的了,零阶保持?),所以最后输出都是阶梯形的,而不是离散脉冲。这一点上,离散PID或者模糊是一样的。
开关控制依然是线性定常,但不连续。官话是linear differential equation with discontinuous input,当年论文就是做这个破东西。{:214:} 橡树村 发表于 2015-2-7 05:58
有控制专业的来说啦。
这基本上是个密闭体系,水的蒸发量加大就会导致体系内压力增加,这样沸点也就会略有 ...
你这是压力锅了,一般简易电饭煲的锅盖就是“坐”在上面,不密封的,一旦沸腾,就有意漏气,实际上起到自然限压作用。
压力锅情况下,控制压力更好。工业上的沸腾加热过程就是控制压力的。不过在电饭煲这样的工作环境下,压力传感器非常容易堵塞/耙住/糊住,造成误读,不知道他们有什么好办法?工业上没有好办法,只有加大disengagement zone,留出足够空间。
你说的加热均匀是一个大问题。官话上叫分布系统的点控制问题,这已经是偏微分方程了,天生就有一个分布梯度,只有多点控制才能减少分布梯度,没有办法的事情。
模糊控制在欧美几乎被“抛弃”,就是因为这个唬人因素。被看穿了,就没人在乎了。类似的东西还有“专家系统”(expert system),或者“知识库系统”(knowledge base system),在90年代风行一时,现在也偃旗息鼓了。还记得这东西吗? 橡树村 发表于 2015-2-7 06:03
高温1000度?有这样地电饭锅?你知道需要多大的压力吗?而且这个温度很难直接电热加热了,需要使用电弧, ...
我想他是用另外一个过程在做比方。1000度的电饭锅,这得什么材质啊!PID对定常过程简单有效,但对变特性过程比较费力,gain scheduling或者adaptive PID都可以用,但各自的阿基里斯脚跟都是大大的。 本帖最后由 晨枫 于 2015-2-7 10:06 编辑
Sichuluanhuang 发表于 2015-2-7 07:31
还是晨大说得详细。
PID控制大多基于工艺过程的模型,所以可以选单一变量进行调节。
我对模糊控制的概念不 ...
PID其实也不基于模型,属于parametric control without parametric model。PID适合于单变量或者多回路(但不是多变量)控制,工业上大部分问题可以简化为这样的问题,搞得更复杂了反而容易受到意外交叉干扰的影响。单变量对弱交叉干扰的办法是以不变应万变,在实际上提高robustness。这和生活中难得糊涂的道理一样,要是对什么事情都敏感,反而弄得自己手忙脚乱。