很多人在模拟过程中,尤其是在进行流程循环收敛的过程中,经常会有一个困扰:好不容易辛辛苦苦调了好久参数,流程最终运行收敛,文件也保存了,但是重新打开.bkp运行为什么还是会不收敛?这个问题我们需要理解Aspen软件的计算和收敛过程。这篇文章小编仅根据自己的理解来给大家解释,如果有错误还请多多指正!** 序贯模块法** 首先,我们需要知道Aspen在运行流程模拟时的计算方法,有三种:序贯模块法、联立方程法和联立模块法,默认的方法是序贯模块法,也是最为基础的,简单的方法。序贯模块法就是从进料开始,按照流程顺序一个模块一个模块进行求解。照着下面这张图进行说明应该会更好理解,已知进料数据和各模块参数后,运行模拟时,Aspen首先根据最初的进料a和模块1的参数对模块1进行求解,得到两股出料b和f数据;这两股出料数据又作为模块2和5的进料,然后对模块2和5进行求解,接下来是模块3和6,最后是模块4,并得到两股最终出料的结果。** 所以说大家模拟的时候,就应当按照流程顺序一个一个进行模拟,上一个模块没有模拟优化完毕就不要去模拟下一个模块,因为下一个模块的计算是需要用到上一个模块的出料数据的,上一个模块没有模拟优化好,那么出料数据是不对的,这样下一个模块的计算肯定也是不对的。** 撕裂流股与迭代收敛** 简单的流程,从前往后一直计算是不会有太大的难度的。但是一旦出现循环了,那么问题就变得复杂起来了。还是上个流程,如果说模块4会有一个出料需要通过模块7循环回模块2,那么模块2的计算就需要b和j两股进料数据,但是j的数据又需要2→3→4→7这个循环计算得到,那就出现了很尴尬的情况,进料需要出料计算得到,出料又需要通过进料计算得到。** 为此,Aspen解决办法就是撕裂流股和迭代收敛。在软件默认情况下,出现循环,Aspen会自动在循环流股中选择一条流股(例如c)并给它一个初值(比如c0),然后在运行计算时,Aspen会同时从进料流股a和撕裂流股c开始序贯模块计算(a开始依次计算1,5,6,并得到b和h的数据;c开始依次计算3,4,7,并得到j和e的数据)。这样,当计算到模块2时,流股b和流股j均有数据,可以进行计算。** 计算后会产生一个新的c的值(比如c1),这时候软件会比较c0和c1,如果相差很大,那么软件就自动将c1作为新的c的值重新进行一次计算(同样是依次计算3,4,7,2模块),然后得到c2,这个就是迭代过程。迭代过程会一直进行下去,直到得到的某一次cn与cn-1数据一致(或达到收敛容差),流程收敛并输出结果;或者说在循环迭代次数内,无法达到收敛容差,流程收敛失败。** 收敛的关键** 很多情况,Aspen自动进行迭代计算无法实现收敛,除了流程本身有问题(在打循环之前请务必要自行判断循环中是否有无法出循环的物质,这很重要,如果有的话,那么循环你打上一万年也不会收敛的),迭代的初值很关键!初值越接近最终数值,越容易收敛。前面说到默认Aspen会自动给初值进行计算,这个初值很有可能离你的收敛结果太远,导致迭代无法收敛。但是当你对循环流股当中的某一个流股进行赋值的话,那么这个流股就会成为撕裂流股,其初值就会成为迭代计算的初值。** 收敛与Reconcile** 最后我们就要提到最开始的那个问题了,为什么调了很久的参数最终收敛了,但是重新打开文件进行迭代计算还是会不收敛呢?因为Aspen的收敛计算是在上一步计算结果的基础上继续进行计算的,而我们在进行参数调整的时候,上一步的计算结果是没有被清除的,因此有可能上一步的结果已经比较接近收敛结果了,再进行一次迭代计算就成功收敛了。但是当你保存文件重新打开后(或者你reset后),这些中间的结果全部都被清除掉了,初值就变了,所以迭代就可能无法收敛了。**
因此,我们需要在流程得到收敛后,将流股结果(至少对撕裂流股)进行赋值(也就是把流股的results数据复制到input当中),我们可以手动进行赋值,当然也可以通过Reconcile(见上图),点击run运行模拟成功后,Reconcile按钮就会被激活。点进去我们也可以看到这个按钮的作用:copy results to input specifications,就是赋值的意思。有一些可以进行的选项,比如需要赋值哪些流股?赋值哪些参数?默认的其实就可以。** 为什么赋值完成之后,流程就会很快收敛呢?因为赋值完成后,赋值的流股input就有数据了,而且是不会被清除的,在重新运行模拟的时候,这些值就作为收敛运算的初值,而这些初值本来就是最终的收敛结果,因此只需要迭代几次就可以收敛了,收敛当然快了!** 当然Reconcile的效果不止这些,当我们在模拟过程中,显示模拟结果可用(results available),但是点击控制面板发现还有几个警告的时候,就可以使用Reconcile进行警告的消除,而且效果极佳。我个人的理解是,这些警告或者错误可能是在迭代收敛计算的过程中出现的,如果我们进行Reconcile之后,那么整个收敛的过程就变了,并且变得更迅速了,因此这些警告或者错误就可以消除了。** 注:文章首发公众号“化工研学社”,知乎号“叶上初阳”,欢迎关注!**
|