各种解惑汇总,主要是概念和理解,关于Aspen的集中在这边。
Conversion
Single pass conversion: Before vs After Reactor(reactor only)
Overall Conversion: General Inlet vs General Outlet (overall process)
e.g. A+B->C, A+C->D, 考虑A->D的selectivity应该要考虑的反应是2A+B->D才对
Tear Stream
有循环流股时,就要找一个流股断开,做迭代计算的头,这个就是撕裂流股。。。。通俗的解释。
有循环时作为迭代起始的流股,每次循环后该流股的计算值与本次循环的初值进行比较,当所有收敛参数都达到容差(默认为万分之一)后收敛成功,参数一般为各组分的摩尔流量和焓吧
撕裂流在一些迭代中十分重要,像一个恒沸精馏的模拟,在恒沸剂的补充量,都会用到的
我的理解:
从抽象的角度,这些有recycle的调和的数据像是一个环,第二个点取决于第一个点,最后一个点取决于倒数第二个点,第一个点又取决于最后一个点,绕来绕去回到原点很混乱,那不如在拓扑上选一个点“撕裂”这个环,迭代尝试一个头,一直推到尾,尝试直到头尾相同,就得出了一个解答。
这个拆开环的地方就叫做撕裂流,简单说就是迭代头。
Data Reconciliation
所谓Reconciliation和之前的Regression还不一样,Regression意思是回归,感觉更加线性,但是这里说的是一个“调和”,会涉及到更多的变量,并且有可能是非线性的。
比如说全程没有recycle和化学反应的一个流程,中间经过splitter又合流,如果分别测这两个flow rate,理论上应该是相等的,但是实际测出来可能是不一样的。这里的不一样有很多原因,可能是测量错误、设备问题等等等等。
如果记这两个flow rate measurement分别为$m_1^+$和$m_2^+$,那么理应所有的data point都在$m_1=m_2$这条线上,但是实际有偏差。那就必须从$(m_1^+,m_2^+)$到$m_1=m_2$做垂线交于$(\hat{m}_1,\hat{m}_2)$,这个 过程也可以用最小二乘法代替。
如果这个时候加入了第三个测量点m3+,那么调和的方法就是找到这样的一组点$(\hat{m}_1,\hat{m}_2,\hat{m}_3)$,使得这三个点构成的平面与$(m_1^+,m_2^+,m_3^+)$的距离最近。
更多variable也就可以拓展到更高维度,具体的算法就是最小二乘法 $\sum( \frac{m_i+ - \hat{m}_i }{\sigma_i}^2 ) = minimum$
这样我们可以找出相应的$\hat{m}_i$,每个对应一个adjustment$ \nu_i = m_i^+ - \hat{mi}$
说到底,这是在利用质量守恒进行调和。
prof提供的两个参考资料是:
Balancing and Data Reconciliation Minibook (V.G Veverka)
The Reconciliation of the Material Balance of a Natural Gas Processing Plant
第一个介绍了整体的方法论,第二个介绍了一个相对复杂的例子,还需要measured->corrected->reconciliated
说一下我自己遇到的问题
issue:用了element balance
solution:应该按照handout用selectivity和conversion
issue:最后的sum太大了(1e+0 order)
solution:排除了公式问题,这里面reactant和product调和的公式用的不一样
solver里面GNC nonlinear总是给出很离谱的结果,但是evolutionary的确有点慢,不过时间上倒是还好。但是这两个都很烦的就是,每次都中途而废,不能一次走到头吗
Heat Integration & SPRINT
Data Extraction
(1) Don’t Extract utility that can be replaced 通用utilities(x)
(2) Don’t extract stream or utility that cannot be replaced (e.g. Quenching, steam for reaction, steam for stripping) 直接接触(x)
(3) Pump, compressor, valve and splitter
(4) Insignificant or non-recoverable
- Streams with a very small duty
- Stream temperature very closes to the ambient temperature and not need to be controlled (product or purge stream)
- Streams that is not suitable for heat exchange (e.g. a solid stream)
(5) Stream with multiple segments
- If the mCp of this stream does not vary too much, one stream ok
- If the mCps vary a lot, this is extracted as a multi-segment stream
(6) stream mixing
- add heat exchanger to provide potential for heat exchange
(7) non-linear mCp
- for cold stream, take lower side
- for hot stream, take the upper side
Tips:
- no need to make it very precise, 1 or 2 degree difference is ok
坑:
Q: 太多stream了不知道如何下手
A: 可以删掉一点小的duty
Q: hot streams are cold, cold streams are hot
A: 只对几个有限的stream进行交换,其他还是直接走utilities?(prof回答,不是所有的process都有heat potential)
sprint的optimization只是建立在已有设计基础之上求一个local maxima,如果本身HEN天差地别,optimize选项也无济于事。
最后无奈之下的办法:
首先全部安utilities,然后随便拉两个看上去可以交换的stream交换一下,没有bug的话,就把utilities duty也调整一下,确保stream balance和DTmin符合要求。最后用这个方法,勉强搞出了一个没有bug的结果。