Hysys Recycle模块与物流撕裂技巧

2017-03-05  本文已影响0人  Meatle

本文主要是对Hysys 8.8/9.0 的新版说明文档中Recycle模块的翻译,加入了一些个人理解。
本文的内容仅供参考,若有错误,你打我啊=w=(告诉我也行)。

稳定而高效地求解循环物流的能力,对任一流程模拟器来说都至关重要。在这一方面,Hysys相对其他模拟软件具有先天优势。Hysys中能够以非序贯的方式对部分单元模型进行反向计算,可以明确地解决部分循环物流,例如,你可以通过换热器的出口物流参数计算该单元的进料物流。而当下游物流与上游物流出现了混合时,则需要使用Recycle单元。

大多数情况下,对于换热和压力变化模块是可以通过下游物料计算上游组成的。但也有例外的情况,比如上游的温度是一个已知值,下游虽然是初值,但其状态也是可变的时(多见于塔器热回收)此时与其依靠你想计算+Adjust,不如使用Recycle。

Recycle是流程中的一个概念模块。该模块允许物料参数从入口到出口(forward),或是从出口到入口(backward)进行传递。在问题求解的角度上,也就是确定两个物流中,哪个作为假定而哪个作为计算值。如果用户选择从入口到出口作为温度变量的传送方向,则假定值是入口温度,而计算值是出口温度。(上面的假定值和计算值是数值方法中的概念,在这里主要是只解Recycle所内含的非线性方程时所使用的迭代算法中所用的概念。下文将会有所涉及。)

Hysys将遵循下列步骤对Recycle进行计算:

  1. Hysys使用假定值计算Recycle模块附近的流程;
  2. 完成计算后,Hysys会提取连接到Recycle的物流的参数,将假定值与计算值进行对比;
  3. 根据计算值和假定值的差异,Hysys会生成下一次计算的所用的假定值;
  4. 当假定值与计算值的差异小于容差(tolerance)时,计算结束。

注意:使用循环建议(Recycle Adviser)可以减少流程中的Recycle模块数量,并将Recycle模块调整到最适合进行物流撕裂的位置。该功能不单单调整了物流撕裂的位置,也优化了各个Recycle的计算顺序。


- Property View 属性总览 选项卡

项目 描述
Continue按钮 当循环迭代计算达到限制的次数后,点击该按钮可以继续进行迭代计算。

+ Connection Tab 物流连接

物流连接 选项卡里包含了两组页面:

具体的连接方式在这里就不详细翻译了。
但还是要提示一点,连接页面中的Fluid Package(物性包)会影响Recycle模块推算下一个假定物流。如果上下游出现物性差异,请确定这里的选择是否合适。


- Parameters Tab 参数 选项卡

参数选项卡包含了下面两组页面:

如果安装了Hysys petroleum Refining还会多一个收敛(Convergence)页面。对不起我没有

+ Variable Pages 变量设置 界面

Hysys允许您为列出的每个变量和组件设置收敛指标。 此处输入的灵敏度(sensitivity)实际上充当Hysys内部收敛容差的倍率。看例子呗
下表中是各个参数的内置容差,除了流量是相对差,其他参数均使用绝对差。

变量类型 内置容差
气相比率 Vapour Fraction 0.01
温度 Temperature 0.01
压力 Pressure 0.01
流量 Flow 0.001
焓 Enthalpy 1.00
组分 Composition 0.0001
熵 Entropy 0.01

注意:在乘以灵敏度(默认为10)以后,气相比率的内置容差为0.1,看起来过于宽容。然而,在大多数情况下,如果其他的变量均已收敛,则Recycle两侧物流的相态一致。对于近沸点(露点/泡点)的体系而言,由于其他参数的细微变化就会引起气相比率的剧变,宽容的气相比率会有助于收敛的进行。


例如,温度内置容差为0.01,默认乘以10(灵敏度),因此回收收敛算法使用的绝对容差为0.01 * 10 = 0.1。因此,如果Recycle要收敛,假定温度和计算温度必须之差在0.1℃之内(℃是内部单位。在执行计算之前,Hysys总是将输入值转换为内部单位)。

灵敏度=10(默认)是正常的,建议用于常见的计算。 小于10的值更严格,也就是说,乘数越小,收敛宽容度越小。


注意:无需把各个参数的倍率(灵敏度)设置为同一数值。若你对关键组分的要求是ppm级别,你可以只把该组份的倍率调少。ppm级别的话,至少要在0.001以下


Transfer Direction(传递方向)列允许你设置参数的传递方向。其中有三种选项:

如果您只想传递部分物流变量,则可以使用未转移选项。 例如,如果您只想传递P、T、组分和流量,则其他变量可以设置为“not to transfer”。

若你勾选了部分步进(Take Partial Steps)复选框后,只要能传递的变量足够Recycle进行计算的,Recycle就会进行计算;反之,Recycle会等待所有变量都计算结束后才进行下一个迭代循环的计算。默认情况下,复选框是没有勾选的。

除了能收敛基本物性外,Recycle还能对各个组分在设定容差下进行迭代。循环物流的物流会自动添加到Recycle的计算逻辑中。若勾选了使用组分灵敏度(Use Component Sensitive)复选框时,Recycle会使用单独组分的灵敏度会覆盖整体的灵敏度进行计算。默认情况下,该复选框不会被勾选。 选择使用组分灵敏度后,各个组分的灵敏度会在列表中列出。默认的组分灵敏度为10.00。你所做的每一个变动都会被记录。


+ Numerical Page 数值方法设置 页面

数值方法设置页面包含了Wegstein加速方式(Wegstein Acceleration Method)的各种选项。Recycle会根据设置修改参数的传递方式,而非直接替换。

下表列出了数值方法设置的参数:

参数 描述
计算模式 Calculation Mode 嵌套 Nested:使用嵌套模式后,当求解器计算到Recycle模块时,才进行Recycle的计算。如果流程中有多个不相连的Recycle,可使用嵌套模式。
同时 Simultaneous:所有设置为同时模式的Recycle会在循环物流(计算端)计算结束后被唤醒。如果流程中有多个相连的Recycle,使用同时模式。
加速方式 Acceleration Method Wegstein:忽略被加速的变量之间的关系。
主导特征值 Dominant Eigenvalue:包含被加速变量之间的关系。进而,该模式更适用于物系非理想度高或有强烈相互作用的情况下
迭代限制 Maximum Iteration Recycle自动停止前可进行的最大的迭代次数。你可以点击Continue按钮以继续计算。
闪蒸计算方式 Flash Type Recycle计算假定物流所使用的闪蒸方式。
Wegstein 参数 Wegstein Parameters 加速频率 Acceleration Frequency:为Recycle设定两次应用变量加速的间隔(数值越小加速次数更多)
松弛系数上限 Q Maximum:加速时所用的松弛系数上限。(默认0,最大1)。
松弛系数下限 Q Minimum: 加速时所用的松弛系数的下限。(默认-20)
加速延时 Acceleration Delay:为Recycle设定收敛运行多少次后才开始引入加速。
颗粒大小分布 PSD Properties 颗粒大小分布Practicle size distribution - 要使流股数据中包含PSD,组分表中必须含有颗粒物。一般不会用到...

这里我调整了一下内容的顺序,先解释下各种功能的作用,再说明小细节。

* 收敛次数上限 Maximum Number of Iterations

当Hysys达到最大迭代次数时,弹出一个警告窗口,说明Recycle在给定的迭代次数内为收敛。您可以选择是否继续计算。
如果你建立了一个新流程,我们建议你是用一个较少的迭代次数上限,比如3。若计算十分顺利,可以提升迭代次数上限。所需的迭代次数不单单受流程的复杂度影响,迭代开始时是用的初值也会影响到迭代的次数。

* 松弛因子 Damping Factors - Qmax and Qmin

在进行迭代收敛时,会使用Wegstein加速来产生下一步计算的假定值。估算值的计算方法如下:


其中:

Hysys会根据持续迭代的结果确认使用的松弛因子Q
的大小。用户设定的Qmax和Qmin则设定了松弛因子的上下限。注意当Q=0时,系统会使用直接迭代;当Q<0时则使用加速;当1>Q>0,则处于松弛状态。

注意:如果您发现Recycle在振荡迭代,同时数个迭代都使用了直接迭代,此时可以将Qmax设置为一个更大的数值,此时每次循环的步进更为保守

* 加速频率 Acceleration Frequency

原文是 迭代计数(iteration count) 但是按照文意来说应该是Acceleration Frequency。
实际上迭代计数所代表的是本次迭代实际执行的次数。

加速频率规定了两次迭代加速之间进行了多少步迭代。默认次数为3;在3次迭代后(假定迭代延时小于3),Recycle会使用Wegstein加速法结合假定值和计算值计算下一步迭代所使用的假定值。若下一步迭代无需使用加速(比如加速延时内的任意一次迭代),则将本次的计算值直接作为下一步的假定值。

要注意加速延迟优先于迭代频率,即若加速延迟的值为x,前x次迭代均采用直接迭代,无论迭代频率是否小于x。而第x+1次则会应用迭代加速。

虽然加速迭代对大多数问题都有好的效果,但在某些情况下,可能导致过校正、振荡、甚至不收敛。 比如高敏感度循环过程,或存在多个强相互作用的循环的流程。 在这些情况下,直接迭代可能是最佳方法。 要避免使用加速迭代,只需将加速频率(或加速延迟)设置为无法达到的数值(例如100)。 在罕见的情况下,直接迭代也无法达到收敛,此时需要调节$Q_{max}$$Q_{min}$来实现松弛迭代。

* 加速延迟 Acceleration Delay

加速延迟将加速迭代的引入推迟到所设定迭代步数后。 该延迟只适用于迭代开始后的几步迭代,当迭代计数超过迭代延迟后,迭代频率将起效。 也就是说,在达到延迟值之前不执行加速,并且在延迟之后,根据迭代频率施加加速。 迭代延迟的默认值为2。 例如,如果“delay”设置为5,迭代计数为3,则前5次迭代使用直接替换,第6次使用加速,然后在每第三次迭代后应用加速。


终于能把注意点搬下来了。

对于Recycle还需要注意下列几点:

注意:Monitor Tab(监视 选项卡)提供了记录收敛历史的功能。所以后面几个选项卡我都不会翻译了 =w=


Monitor Tab 和 User Variable这两个就不在这写了,这两个基本上跟大多模块都一样呢。
倒是日后有空写个UV的使用教程。


- Calculation 计算

HYSYS提供了一种非常简单的解决循环问题的方法,并通过界面为用户提供了对求解过程的全面控制和反馈。

注意:在动态模拟(Dynamic mode)中,所有Recycle将会被忽略,此时模块的出入口物流参数一致。

当单个Recycle被设置时,它代表了一股被撕裂的循环物流。多个Recycle则代表了多股循环物流,这些循环物流可以是相连的、嵌套的或两者俱备的。与多个Adjust相似,Recycle可以根据设置对多个循环流进行同时求解。

设置Recycle的过程如下:

  1. 估计连接到Recycle的物流的参数(温度、压力、流量、组成)。流量的值可以是0,但为了更快收敛,应给出一个估算值。

注意:如果Recycle是连接到塔器中,必须给出估算值,确保塔器先收敛。

比较简单的确定冷凝/再沸量的技巧是,手算一次全塔的进出物料平衡,这样可以得出各个物流的大体流量;然后通过Hysys估算各个物流的热焓,可以计算大概的塔顶冷凝量/再沸量。

  1. 构建你的流程,直到循环流的另一侧的计算值可以由Hysys确定。

注意:Recycle的进出口物流的名称必须不同。

  1. 创建Recycle模块。

提示两点:

  1. Recycle中物流参数传递的设定,最好与使用假定值的物流的设定集一致。比如物流使用的是T-P-F-x(温度、压力、流量、组成)来定义的话,Recycle中相应要传递上述参数中的一种或数种。具体根据循环中的设备来选择,比如,循环中有精馏塔,则应该全部选上;如果循环中只有压缩机/换热器,那么只需传递T-P。
  2. 根据你的传递方式选择合适的闪蒸方式。比如上游是换热,而且出现相变的话,选择P-H闪蒸会比较合适。选择方法请看化工热力学(口胡)
  3. 这条并不存在。有时候加上Vapour Fraction的传递并不有害,嗯。
  4. 最讨厌别人说个不停=w=。

- 缩短收敛时间的建议

循环流股的撕裂位置对Recycle的求解至关重要。尽管看上撕裂流股就应该是循环流股,但实际上在循环中的任意一股物流都能被撕裂。对于复杂流程模拟而言,必须考虑一些因素,下面是一些通用指引:

总体上,Hysys所建议的撕裂规也是适用于A+的,实际用的时候拿过去干就好。

这一期就到此结束了。

上一篇下一篇

猜你喜欢

热点阅读