西西河

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

共:💬332 🌺795
分页树展主题 · 全看首页 上页
/ 23
下页 末页
        • 家园 也来插一嘴

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

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

          • 家园 多谢晨枫大哥答疑,再接着问

            你所说的输入输出模型,是指静态的I/O mapping,y=Au;还是说dx/dt=f(x,u),这里的f(x,u)是个线性函数?

            动态部分还是保留为线性的,只有静态约束是非线性的

            你这里所说的好像和润树不大一样。一个线性动态方程dx/dt=Ax+bu加上非线性约束,不是还是很难求解的问题吗?

            你这里的实时最优化和实时控制就是递阶控制的意思,对吧?

            我以前的老板是国内最早搞MPC的,我在那儿还混了第一个PhD。不过我们是偏理论的,对应用不熟。当时答辩的主席就是蒋先生

            • 家园 对不起,反而增加混淆了

              化工上用于控制的动态模型基本上是输入输出类型的,具体来说,就是CARIMAX或者截断的FIR,DMC用截断的FIR,RMPCT用CARIMAX,在一定的精度要求下,两者是可以互换的。

              dx/dt=f(x,u)中f(x,u)是线性函数的话,何不直接写成dx/dt=Ax+Bu呢?我说的线性动态家非线性约束,是指:

              dx/dt=Ax+Bu (或者其传递函数/差分方程、FIR的等价表达)

              f(x,u)<0 其中f是非线性函数

              对于这样的问题,没有一般的解析解,只有用约束最优化的数值方法搜索。DMC里f是线性函数,所以用线性规划。

              我上面说的实时最优化确实就是递阶控制的意思。

              这里同行真多,“当时答辩的主席就是蒋先生”,那我们还沾一点“学亲”呢,我的硕士导师就是蒋先生。

          • 家园 弱弱问一句

            实时最优化不用解析解,都是直接用数学规划搜索

            这个数学规划是不是诸如单纯形方法之类的东西。

            • 家园 意思差不多

              但单纯形搜索速度太慢了,一般用牛顿-拉夫逊法的变形,引入种种加速因子什么的。

        • 家园 问题很好,试回答

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

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

          • 家园 多谢润树

            还有些问题请指教。

            1。我看到前面一个帖子中你提到用多项式从实验数据建模,这里的模型是指用多项式插值的方法吗?

            2。线性状态方程模型即使加上线性约束,也不是一个容易求解的问题。实时如何解决呢?是否利用到了凸优化中的一些技术比如说SDP和LMI什么的?我很多年前就此写过篇论文,不过后来再也没碰过这个问题。

            3。我不是很理解你所说的静态仿真和动态仿真的定义。从数学上来说,静态仿真就是求解一系列代数方程,而动态仿真是求解微分方程,这样的理解对么?

            4。我做仿真主要是用matlab和我们自己开发的仿真工具。我觉得matlab中的s-function非常有用,通过它,可以仿真以前用C或Fortran语言写的模块;也可以直接使用别人封装起来、不希望外人了解内部细节的模块。

            熊光楞的书我记得也学过:这个名字太逗了。在matlab之前,当时国内有一个仿真软件CSSF(Continuous System Simulation in Fortran),是80年代初从美国引进的;其核心就是四阶龙格库塔方法,加上自定义的一套描述语言。

            • 家园 再试答

              1。我做的多项式模型是用线性递归(linear regression)的方法。

              2。如果都是线性的话,可以用线性规划(linear programming)来求解吧?

              3。静态仿真也要求解微分方程,只是不是对时间的微分。动态仿真是在静态解的基础上对时间微分。

              4。Matlab作为一种数学工具,确实很厉害,不花不行。

            • 家园 我理解静态就是稳态?

              与时间无关。动态嘛,就是和时间有关了,不管是不是关于时间的微分方程。

      • 家园 【原创】故事(三)

        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): #化工过程控制
    • 家园 【原创】自编动态仿真程序

      上两节讲到的商业性通用仿真软件,功能很强,可在工业界广泛使用。但在某些特殊场合,对过程的静态特性不能作出准确的数学描述,这些软件就不能派上用场。比如在化学品制造业,很多化学反应的数学模型或者没有,或者仅为业者由内部研究所获,不对外公开,商用软件就使不上力。在后者这样的情况下,要么想办法把自己的模型输入通用软件,要么甘脆针对此特殊问题自己编程。而对于前者,别无它途,必须想办法先建立起模型。十几年前,某化学公司在全球范围内有二十几套将醋酸(acetic acid)裂解来或得Ketene的裂解炉。为了对该过程进行优化控制,公司专门建了一个实验裂解炉,对各种工况进行反复试验,并在其高温出口处安装质谱仪对其裂解后的成分进行检测,以期获得该过程的数学模型。此建模过程延续了一年,设备和人工费加起来近千万美元。老外迷信模型,由此可见一斑。

      对于静态仿真,有了数学模型,程序就好编了。如果需要在静态的基础上加入动态特性,则要费事一些,但也仍然有章可循。几十年来,这方面的专著很多。但弱水三千,也只需取一瓢饮足矣。我在十几年前,就凭手头的一本《控制系统数字仿真》(清华大学熊光楞著,1982年),自己由简单到复杂,编了一些针对特殊问题的动态仿真程序。我所应用过的一些动态环节主要有:

      1) 一阶微分加纯滞后响应

      2) 二阶微分过/欠阻尼响应

      3) PID调节器

      4) 多变量预估控制

      5) 开关控制/逻辑控制

      下面是几个应用实例,都是用Microsoft Visual Basic来自编程序实现的。VB的功能也很强,其视窗下的图像接口,为像我这样的非专业软件编程者,提供了足够专业的编程工具。图2.3.1是我在下面要讲到的应用实例时所写的几个子程序。第一个是PID算法,第二个是一阶微分加纯滞后(FOPDT)响应特性,第三个是在仿真中的暂停,第四个是历史数据的图像显示。(做出第四个子程序我颇有成就感,苦思瞑想了好半天,再逐渐完善。它可以同时显现6个变量,每个变量可以自动改变上下限,可以随时间无限推移,还可以改变要显示的时间长度,等等。如图2.3.2所示。当然,这对专业的编程员,不过是小儿科。)

      点看全图

      图2.3.1 VB程序中的子程序

      点看全图

      图2.3.2 由VB程序做出的仿真变量历史跟踪

      A。乙烯厂的先进控制系统

      某工程与建筑公司为一石化企业设计一个年产60万吨乙烯的工厂,该企业同时要求在设计常规控制的同时也设计出多变量模型预估控制系统(MPC)。传统上,MPC的模型是从工厂的实际测试中辨识而得,但这对于一个正在设计中的新厂显然是不现实的。不过由于乙烯裂解炉的进料是乙烷,其裂解过程有比较成熟的数学模型,其后的分离过程也相对容易进行静态和动态仿真,因此可以在仿真的基础上来获得数据和建立模型。图2.3.3是该厂的简化流程。我在为该公司工作期间,设计了裂解炉,乙炔反应器和乙烯分离塔的MPC。

      点看全图

      图2.3.3 乙烯厂简化流程

      对于裂解炉 (图2.3.4),由于乙烷和蒸汽混合后通过炉体的过程很快(毫秒级),只要用静态模型就可以了。但是精确的静态模型很复杂,所需输入变量多,计算较慢,不适于直接用在动态控制系统中。因此,我们用该模型产生的数据作出简化的多项式模型来快速(每分钟一次)计算过程输出,而用低频运行的精确模型的计算结果去校正简化模型的结果。其控制逻辑如图2.3.5所示。用VB写的这个动态仿真程序,主要用来演示为该过程设计的MPC的控制效果。

      点看全图

      图2.3.4 乙烯裂解炉的控制系统

      点看全图

      图2.3.5 控制系统方框图

      对于乙烯分离塔(C2 Splitter),动态响应的时间很长,必须做出动态模型。十几年前,如果要对该塔(有96块塔板)进行在线精确的动态仿真,并以此为控制模型,对计算机的计算能力来说,是不现实的。因此实际应用时,是根据精确的动态仿真的数据,把它的一些动态特性用一阶滞后来近似。图2.3.6是该塔的控制流程图。

      点看全图

      图2.3.6 乙烯分离塔控制流程图

      B.乙基丙酸酯的物料平衡控制

      如图2.3.7所示,该过程的生产流程是,作为反应物之一的乙烯(C2H4)气体从V-490顶端进入反应器,在催化剂(H2SO4)的作用下,与循环喷洒的反应器母体容液中的丙酸(HAcA)产生酯化反应生成乙基丙酸酯(EtAcA)。产品从V-490底部送出至分离塔T-73,在塔顶获得EtAcA产品,塔底的大部分重主份液体循环回反应器,小部分送至下一段工艺回收处理。

      点看全图

      图2.3.7 乙基丙酸酯过程和控制流程图

      按原有的控制系统,T-73的塔底液位是由另一反应物即丙酸的流量来控制的。由于丙酸是从反应器的循环回路进入反应器,它的流量的变化要经过反应器的液位控制来影响T-73的进料流量,从而控制T-73的塔底液位,因此这两个塔的液位控制是相互作用的,不似一般情况下,只有上一个塔对下一个塔有影响。由于控制效果不好,该装置的控制控制师希望中央工程部能够对这个控制系统进行动态仿真,以期寻求改进措施。因为通用软件没有该反应器的机理模型,最后只能用VB自编程序来研究。

      自编程序对该装置的物料平衡作了精确的计算,但对T-73的热量平衡计算进行了简化,以避免对该塔的各塔板进行精确计算。在研究仿真结果的基础上,提出了以下改进建议:

      1)在不改变现有控制回路的前提下,增大T-73调节器的增益,但大大延长它的积分时间。图2.3.8和2.3.9是该调节器参数整定前后对T-73液位控制设定点改变的响应;图2.3.10和2.3.11是分别对V-490进料流量变化的响应。

      点看全图

      图2.3.8 该调节器参数整定前对T-73液位控制设定点改变的响应

      点看全图

      图2.3.9 该调节器参数整定后对T-73液位控制设定点改变的响应

      点看全图

      图2.3.10 参数整定前T-73液位控制对V-490进料流量阶越干扰的响应

      点看全图

      图2.3.11 参数整定后T-73液位控制对V-490进料流量阶越干扰的响应

      2)改进控制方案,用T-73塔底的循环流量来控制T-73塔底液位,使该回路的过程动态特性大大加快。如此将使丙酸流量成为自由变量,与乙烯进料流量形成比例控制,满足该化学反应的物料平衡。

      C. 丙酸反应器的安全生产研究

      某丙酸(HAcA)生产装置,如图2.3.12所示,有四台并行操作的化学反应器。反应机理是,丙烯(C3H6)气体在催化剂作用下,与由压缩机提供的空气中的氧气进行氧化反应,生成丙酸。四台反应器的出口物流合并后进入回收塔T-61,丙酸被该塔的循环母液吸收,而其它轻主分气体从塔顶排出,经过焚烧后向大气排放。由于该气体在进入焚烧炉前这一段管道中含有氧气和有机物,它们在满足一定的成分组合时将自燃,引发事故,因此必须保证它的成分组合在任何情况下都不会进入自燃区间。在四台反应器都正常操作的情况下,不会有问题。但在以下情况下则有可能出现安全隐患:

      点看全图

      图2.3.12 丙酸生产过程仿真流程图

      当某一台反应器在停车后重新启动,按操作规程需要先向其提供空气流量(有了额外的氧气),恰在此时另一台反应器因某种原因紧急停车,控制系统将启动紧急停车步骤,按预定程序向反应器输送蒸汽。这样T-61塔顶的气体成分将偏离正常的工作区间,而有可能进入自燃区间。当然也有可能是两台反应器同时/相继启动,或同时/相继停车,为了不漏过任何可能的安全隐患,必须对它们中较危险的几种组合进行研究。人们不应对此抱有侥幸心理,若干年前,该装置确实发生过一次严重的自燃事故。也正是在此次事故之后,该公司专门成立了几个小组对不同的课题进行调查,找出事故原因,并提出改进之道。其中的一个小组,就是专门研究上面提到的特殊情况。显然,此种研究只能通过动态仿真来进行。

      同样,由于通用仿真软件缺乏该化学反应器精确的机理模型,加之各种开车停车的程序组合,动态仿真难以用标准软件来实现。但公司自己有静态机理模型,加入相应的动态特性后,即可通过VB编程来进行动态仿真,对各种可能的情况进行研究。其结果是,在几个月的努力工作后,找到了某些安全生产的隐患,并改进了反应器开/停车的自动操作程序,不在此详述。

      • 家园 上花上花

        谢谢:作者意外获得【西西河通宝】一枚

        鲜花已经成功送出。

        此次送花为【有效送花赞扬,涨乐善、声望】

      • 家园 用VB仿真呀!

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

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

        好主意。

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

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

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


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

Copyright © cchere 西西河