五千年(敝帚自珍)

主题:【原创】化工过程控制的实践 -- 润树

共:💬332 🌺795
全看树展主题 · 分页首页 上页
/ 23
下页 末页
家园 原来不是这样子的

他改过了

家园 润兄玩的都是些易燃的东东

看得眼花缭乱,津津有味。我们也经常画那些线路图,样子差不多,内容不一样,全自动的,在细胞内进行。

家园 哈哈,晕倒

莲大夫做Genomic Scale的,还是Network的。

呵呵,换换他兄弟如何?Computational biology.

家园 用VB仿真呀!

这倒是个好办法,软件便宜。简单数学模型很容易实现。

可以考虑现场的程序用VB写几个。

好主意。

家园 化工这个行当几乎都是易燃易爆的

而且量还特别大,一出事情就是大事情。

家园 如果对于安全生产给予足够重视

易燃易爆的化工生产过程也就变成不燃不爆了。

世界科学发展的新突破,就寄希望你们这些搞细胞路线图的啦。

谢爱莲兄每帖捧场。

家园 我感觉用VB来做操作工培训系统值得探索

因为培训系统不需要对化工过程的仿真做得像HYSYS/Aspen Dynamics等那么精确。可以用它方便地做出DCS上的图像接口,而现在DCS也在向Windows操作系统迁移。

家园 言之有理!

说一个我以前工作过的那个公司发生的事情:

因为我做的一个产品特别畅销,公司特地雇了两个搞合成的,将本来从日本进口的一种原料改成了自己合成,因为大量进口成本太高了。这一该,成本从25%降到了5%左右。

原料产品的最后一步要脱溶剂,一般都是搁在通风的地方凉呼凉呼就行了。那天几个老哥一如往常将“湿漉漉”的产品铺在实验室的桌子上就去吃饭了。吃着吃着,一声巨响......

哎,怎么了?

哥儿几个寻声跑回去一看,房顶呢,怎么飞了?

当时幸好没人,没人伤着。

后来不仅是那几位,整个部门二十几个人全部都被砍掉了,原料继续进口。

家园 哇,这个有趣

因为我做的一个产品特别畅销,公司特地雇了两个搞合成的,将本来从日本进口的一种原料改成了自己合成,

搞有机合成?全合成专业出来的?

家园 我也有类似想法了

正在发愁我们试验厂的员工没有matlab的基础,如何提供模拟程序和培训问题。

VB应该可以解决问题了。界面毕竟好很多,图形处理也简单。

实在太好了。

家园 【原创】3.模型预估控制(MPC)

MPC在十几年前开始红火起来,现在也还没有衰竭的迹象。从技术上来说,我想可能有两个重要的因素在起作用。一是其模型预估的功能,使一些比较难于控制的变量能够得到较好的控制,二是过程模型的建立使得多变量控制变得比较容易实现。其结果,当然必须在改善过程的生产效益,减少能源消耗,提高产能上体现出来。下面,我们就这两个因数具体地谈一谈。

为什么模型预估能够改善控制效果呢?这要从常规PID(比值加积分加微分)控制谈起。如图3.0.1所示的常规PID控制回路方框图,PID的输入e,是我们所希望过程要达到的设定点SP与过程实际输出值y之间的差值,我们把它叫作偏差。当这个偏差稳定在零或很小的数值时,过程就算达到了稳态。一但设定点改变,或过程受到干扰而其输出发生变化,偏差就不再是零,控制器就会通过PID的算法,来改变控制器输出即过程的输入u,来把偏差重新驱动到零。

点看全图

图3.0.1 典型的控制系统方框图

问题是,究竟过程的输入应该是多少才能使其输出达到设定值,从而使偏差为零呢?PID控制器并不确切地知道,它所知道的是,如果偏差为正值,那么我应该大概增加多少过程输入(这里的过程增益为正),而如果偏差为负值,我就应该大概减少多少过程的输入。这里大概增加多少/大概减少多少的数值,取决于工程师根据对过程的认识来设定的PID参数。因此,参数设定得好,控制系统就能很快消除偏差;反之,则可能要经过很长的时间才能消除偏差(图3.0.2a),严重时偏差将在正负值之间来回振荡,导致系统长时间不能稳定下来(图3.0.2b)。

点看全图

图3.0.2 不同参数设定下的PID控制响响应

显然,这里的关键是要知道过程的特性,即它的静态增益和动态时间常数(对于大多数的化工过程而言)。事实上,如果知道了该特性,那么一个理想的控制器算法不是PID,而是该过程函数的颠倒(inverse)。一个负反馈系统理想的算法,就静态来说,过程的增益和控制器的增益之乘积应该是1(即它们互为倒数);而就动态来说,过程是滞后的,那么控制器就应该是超前的。比如,一个用阀门开度来控制流量的过程函数是2 /(100S + 1),那么理想控制器应是(100S + 1)/ 2 = 50S + 0.5。也就是说,如果实际流量比设定值小2个单位,那么阀门开度应该增加1个百分度。现在我们用MATLAB仿真来看看这样的理想控制。由于是理想模型控制,我们甚至连反馈也不需要了。用Simulink的传递函数模块不能直接实现(50S + 0.5),但我们可以合理地用(50S + 0.5)/(S + 1)来近似。图3.0.3上方的两个显示分别是过程的输入和输出。我们可以看到,过程输出响应很快,几乎在瞬间就达到了设定点 (否则为什么叫理想?)。下方的两个显示是在缩短到前十几秒来看的输入和输出。

点看全图

图3.0.3 理想模型控制的响应

当然在实践中,这样的理想控制是不大可能实现的,有两个原因:

1)从上例可以看到,由于控制器算法是一个很强的微分,它在设定点改变瞬间(零时刻)的输出是500,也就是说要阀门的开度达到500%,这显然是不现实的 (最大开度是100%)。也就是说,在实现模型控制时,必须考虑系统的约束条件。

2)无论用什么方法去获得过程的模型,这个模型不可能与过程实际特性完全一致。如果让系统处于开环状态,那么不但不能获得理想的控制效果,甚至连设定值都永远无法达到(没有PID的积分作用)。由于这个原因,模型控制仍然必须有反馈的机制,形成闭环控制。

在考虑以上两点的基础上,利用过程模型来预先计算(预估)过程输入输出在某一时段里的变化轨迹,从而对控制系统进行动态优化的MPC的三个基本方程就出来了:

问题: ( 1 ) Minimize Sum (e[i]’Q e[i] + u[i]’R u[i]) ,e[i] = x[i] - sp

满足: ( 2 ) x[i+1] = A x[i] + B R u[i], x[0] = x0

结果: ( 3 ) u”[i] = K[i]x”[i], i = 1, 2, …… , p

方程(1)中的e[i]’是过程偏差向量e[i]的转置,u[i]’是过程输入向量u[i]的转置,x[i]是过程的状态向量。这个方程提出的问题是,对过程的偏差向量加权的平方以及过程的输入向量加权(Q, R)的平方之和进行最小化。传统上,动态优化控制只考虑控制偏差e的轨迹,而这里输入u的的变化轨迹也成为了一个优化变量,这是因为,u的变化不但要受到物理条件(比如阀门开度不能大于100%)和安全生产(比如压缩机速度不能变化太快)的约束,而且它们的变化本身与生产成本有很大关系。在化工生产中,很大一部份的u都与能源的使用有关(裂解炉的燃料,精馏塔再沸器的蒸汽等等)。

方程(2)是用状态空间函数来描述的过程动态和静态特性。不同的MPC产品,也可能用不同的数学形式来描述此特性。

方程(3)中的u”[i]和x”[i]是求解方程(1)所获得的过程优化输入输出变量值。K[i]是在求解方程 (1) 所对应的黎卡的(Ricatti)方程所获得的状态反馈增益矩阵。

在实际的MPC计算中,还必须加入输入和输出的约束条件(通常用不等式来表达),以及从过程的实时检测来校正过程模型误差,因此比这里的三个方程要复杂得多。如果再应用到多输入多输出的控制系统中,其计算量更是庞大。我们在这里就不深入讨论了。对MPC的理论和计算有进一步兴趣的朋友,可以参考其它文献。这里向你推荐下面这篇论文。

[URL]http://www.chee.uh.edu/faculty/nikolaou/MPCtheoryRevised.pdf [/URL]

使MPC热门的第二个因素是它在多变量过程控制中的应用。传统的过程控制系统是单输入单输出(SISO)的,这对于一些简单的控制回路,像流量,压力,温度等,是很有效的,完全没有必要用MPC。但是如果要通过控制来提高某个生产装置的生产效率,就必须有一个大的控制器来对各SISO系统进行整体的协调,这就诞生了多变量的MPC。事实上,现在工业界说到MPC,都是指多变量的模型预估控制。

在此控制器中,可能有M个控制变量(manipulated variables, MV),N个被控变量(controlled variables, CV)。取决于实际的应用对象,将可能出现下面三种情形:

1)M > N,有无数个解,所有的CV都可被控制在设定值上。

2)M = N,有唯一解,所有的CV都可被控制在设定值上。

3)M < N,无解,不能将所有的CV都控制在设定值上。

由于实际应用中有众多的约束条件,以上3)是最常见的。在这样的情况下,多数CV都是被控制在某一范围之内,而不是在某一个设定值上。

MPC的输出,一般都不是直接送到生产管线上的执行单元,像阀门,电机等,而是作为SISO控制回路的设定值。这就形成了两个级别的控制系统。第一级是常规控制,大约每秒钟计算一次控制器的输出;而MPC是第二级控制,大约每分钟进行一次这样的计算。比如一个精馏塔,在常规控制下,它的塔顶回流是由一个流量调节器控制的,它的再沸器蒸汽流量是由塔底温度调节器控制的,但是这两个调节器的设定点(希望的回流量和温度值)则是由操作工手动设定的。而在MPC控制下,这两个设定点就可能成了MV,MPC通过调节它们的数值来控制塔顶和塔底产品的成分指标,形成一个2 x 2的MPC。当一个MPC所覆盖的过程很大很复杂时,它可能会有十几个甚至几十个MV和CV。

MPC在提高化工生产过程的效率上,主要着眼于以下几个方面:

1)提高原料转换成产品的转换率。这即可能体现在反应器的转换率上,也可以体现在把反应出来的产品尽可能多地从副产品中分离出来的过程中。MPC通常是通过提高过程的稳定性以及卡边操作(将某些CV推向低限或高限)等手段来达成的。

2)提高产能。一个生产装置在设计并投入运行以后,生产者一般都会通过改善操作条件来获得更高的产能,但往往会受到某些约束条件或瓶颈的限制。MPC可以将这些约束条件推倒极限,因而使装置总是处于最大产能的操作状态。

3)降低能源消耗。除了一些卡边操作的手段外,MPC的动态优化控制在这方面具有先天性的优势。

我们将在下一节讲到MPC的软件及其应用时,就MPC在提高化工生产过程的效率上举例作详细的说明。

家园 【原创】故事(三)

1990年,我踏入美国过程控制的领域,一开始就是在C公司做MPC方面的产品。此时,由在工业界首吃螃蟹,开发和实践MPC的Charlie Cutler所创办和领导的公司DMC(Dynamic Matrix Control),已经在石油炼制厂应用它的DMC产品闯出了名号。C公司的老板和M博士则看上了天然气处理厂这块处女地,决心开发出为这个工业服务的MPC产品。M对化工领域的机理模型情有独钟,且非常了解天然气处理厂的技术和经济原理,想走建立机理模型的路,而不是像DMC那样由工厂试验数据来获得线性模型。我那时刚从学校出来,学了些化工理论,也不大喜欢那种线性模型,对M自然是顶礼膜拜。但后来我们的产品也没有用上机理模型,因为计算实在太复杂了,难于在线实时实现。最后我们是通过仿真产生大量数据,然后用数理统计的方法来找出多变量之间的静态关系(可以是非线性的),再从少量的工厂测试找到动态特性。这样的模型,从理论上来说,应该说不比DMC的模型差,而且在应用中也确实取得了一些成功。但由于模型的非标准性,在软件的实现上也就难于做成标准化的通用软件。不过我们在天然气加工领域的成功,也引起了DMC的注意,他们也加入了竟争。DMC副总裁还写信向我索要在ISA年会发表过的文章。其实我很清楚,此文章他根本无需向我要,他可能是在向我传递可到他那里工作的信号。我此时仍不认为DMC是多了不起的产品,而且觉得如此跳槽到自己公司的竞争对手有些不符合职业道德,回了他的信后就没有再和他联系。后来有个比我低一级的校友Z博士,也是控制专业的,从外州来,要去DMC面试。他先和我见了面,我说你可以向那个副总裁说是我的朋友。他获得DMC录用不久,Aspen Tech收购了DMC。他在十年前就回中国为Aspen打市场,听说商业上做得很成功,但DMC技术上的应用并不好。

C公司产品的一个致命弱点是开始没有采用MPC的标准算法,而是运用多变量的Smith预估器原理,因此在业界并未被看作真正的MPC产品。后来该产品经过改进,C公司竟被通用电气(GE)收购,公司的投资人应该获得了不错的回报。顺便说点八卦。与我同时被C公司录用的,还有一位北京来的才俊,他负责软件的编程。熟了以后知道,其父是1948年的斯坦福物理学博士,后来任职于中国科学院;其母是中国的第一代女飞行员;其泰山大人是中国当时赫赫有名的一位大学校长。一年多以后,我还帮助大学时的三位同班同学进了C公司。在高峰时期,这个30来人的公司,竟有9人来自中国。但正像某位河友在一篇文章里说过的那样,人就像刺猬,靠太近了就不行。为了更好地发展,我们后来都各奔东西。

不过咱们中国人占了世界人口的五分之一强,到哪儿都是一个不小的分数。而你碰巧又是做自动控制这一行的话,这个分数就会更大一些了,甚至可能成为某部门的Majority。话说我1994年离开C公司,加入了R公司,这是家做工程与建筑(E&C)的大公司,颇有名头。它有一个专门做石化工业的部门,我进了其先进过程控制(APC,advanced process control)组。其实这个公司此前并没有什么搞APC的专家和经验,但在接了设计60万吨乙烯厂的任务后,就想罗致一些搞APC的人手。有了项目有了钱,当然就好办事,一时之间,该组就从最初的3人扩张为8人。其组成,你猜怎么样?除了正组长,其余全是老中,其中还有两位高挑的清华MM。这可好,一屋子的刺猬!不过说实话,我们大家相处还是很不错的,中午很多时间都是一起到外面去吃饭,附近众多中餐馆的广东式茶点(dim sum),成了我们的标准午餐。但有和谐,也会有斗争。本组副组长大概是看自己人多势众,他又是这里的元老,还有后台,就想和正组长斗斗法。下面的人当然就要选择站边,长此以往,看在我这样喜欢干净的人眼里,就有些不入目的事情发生。而且大家在想,这个项目做完了,下面怎么办?这几乎是所有在E&C公司工作的人要经常面对的问题。天下哪有不散的宴席,还是先逃吧。我于是进了化学品生产公司H。那是1996年。

这次是在公司的R&D部门,还是控制组。组里除了搞仪表的外,做控制的连我共4个人,但老中却只占了四分之一。我做得还不差,先以动态仿真站住了脚,再帮助厂里的控制工程师搞了一些常规控制系统的改进。那时化学公司在MPC的应用上都比较保守,一是安全生产要紧,不出事保证产品能天天源源不断地生产出来才是上策;二是担心MPC的线性特性不适合化学品生产的控制。因此我们虽然知道MPC的一些优越性,要在工厂里普遍实施却有很大阻力。

中国人对旧时军阀–商人–先生之间的关系有很好的归纳,我举三反三,把公司里的上层管理–生产部门–技术人员也来作一个描述:技术人员不敢得罪生产部门,因为他们的项目预算和实施都必须得到生产部门的支持,生产部门对上层管理必须服从,不然吃不了兜着走,没有谁是不可替换的;上层管理对技术人员有些敬畏,到底生产过程要依靠他们来不断改进。因此,2001年,当公司新上任的总裁一声令下,在公司里全面实施APC时,所有阻力都不见了,整个公司都动了起来。此君是GE前总裁Jack Welch的信徒,员工们知道Six Sigma的不多,但那个百分之十是怎么回事却大体听说过。

不久一看,我们组的十分之一好像是组长。他此前推动APC不力,虽暂未遭到免职,上面却另外命名了一个年轻人领头,成立APC老虎队(Tiger Team),到公司的各大厂家去做调查,找出第一批实施MPC的对象。他当然知道上面是什么意思,很快就自动退休了。我代表R&D,忝列老虎队,到外面转了一圈,回来后就全力扑在MPC上了。六年下来,我们公司在同类公司中,就所有生产装置而言,可能是MPC安装率最高的。而我以前的三个同侪,也都或退或离不在了。但这个组搞控制的人员,却有增无减,目前是8位。你再猜一猜它的组成?4个老中,不少了,两分天下有其一。形势喜人呀,但愿我不再需要逃走。

关键词(Tags): #化工过程控制
家园 提几个问题

谢谢润树大哥的介绍,想请教几个问题。

1、模型。化工应用中使用怎样的模型?是基于理化特性建立的模型,还是基于输出输入特性建立的模型。如果是前者,一般是线性还是非线性模型?非线性模型需要进一步找到稳态工作点并线性化吗?如果是后者,是直接使用比如说阶跃响应辨识出来的非参数模型,就像DMC算法那样的,还是像GPC那样使用模型辨识中的数学模型,像CARIMA那样的?非参数模型需要进一步使用模型降阶来得到低阶的状态空间模型吗?

2、实时优化。工业应用中,在有约束情况下,如何进行实时优化呢?具体说,使用怎样的优化算法呢?如果是线性无约束,当然可以离线解Recatti方程来求解LQR问题;但是当有约束时,如果约束不是简单的线性约束,或者模型有非线性,优化问题不再是凸优化,本来就没有有效的算法来求解,实时控制有如何解决这一问题呢?

家园 问题很好,试回答

1。现在通用MPC软件都是运用输入输出测试建立的试验模型(empirical model),且都是线性的。它们也可以让使用者通过变量变换,比如对数变换,把非线性变量转换成线性变量,但很少有人这么去做。DMC一直是用时间序列函数(time series equation)作模型(不需要降阶,直接用离散方程描述就行了),相对于Honeywell RMPCT的传递函数模型,并没有什么优势,现在转向状态空间(state space)模型了。

2。MPC的动态优化,都是针对线性约束条件,模型也是线性的。

家园 也来插一嘴

化工中理化模型第一不多,第二不精确,很多所谓的机理模型还是有大量的经验参数,像反应速度常数,传质传热就更多了,所以最后还是用输入输出模型的多,还是线形的。DMC那样的非参数模型实际上不完全是非参数,是截断的FIR,赖皮一点,可以看作阶数非常高的只有极点、没有零点的参数模型,在实用时,可以直接推到控制律,不需要降阶到参数模型。

实时最优化不用解析解,都是直接用数学规划搜索,所以用不上Riccati方程之类的东西。没有约束的实时最优化是没有意义的,方程也大多混入能量和物料平衡计算,具有很多非线性。一般情况下,动态部分还是保留为线性的,只有静态约束是非线性的。实时最优化一般一个小时运行一次,和实时控制在时间上是两个数量级的。

全看树展主题 · 分页首页 上页
/ 23
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河