反应釜各种搅拌桨的工作原理及选择
发布日期:2023-12-12
阅读量:612

  搅拌器是反应釜关键部件之一,根据釜内不同介质的物理学性质、容量、搅拌目的选择相应的搅拌器,对促进化学反应速度、提高生产效率能起到很大的作用。


  1、平涡轮、折叶涡轮、曲叶涡轮搅拌器一般适应于气、液相混合的反应,搅拌器转数一般应选择300r/min以上。


  2、推进式搅拌器一般适用于固、液相催化悬浮反应,它可以将沉淀于釜底比重较大的物料(如Ni催化剂)全部搅起,并悬浮于液体中,搅拌器直径一般取釜体直径1/3左右,搅拌线速为5-15m/s。


  3、锚板式或框式搅拌器一般使用于粥状物料的搅拌,搅拌转数以60-130r/min为宜。


  4、双螺旋桨带式搅拌器适用于粘度大、流动性差的物料搅拌,它可使物料上下窜动混合搅匀,搅拌转数一般不超过60r/min。


  5、可用两种或两种以上搅拌器组合成得合搅拌器,如桨式加锚板式、涡轮式加推进式等,可根据实际需要进行选配。


  催化加氢的搅拌类型比较多,大致可以分为以下几种:


  01、锚式搅拌器


  作为标准搅拌器之一,锚式搅拌器以其价格低、使用方便最初在液相催化加氢中得到了广泛的应用。锚式搅拌器叶轮的叶径较大,且贴近釜底,使之用于悬浮密度很大、很难悬浮的催化剂(如雷尼镍)也有一定的悬浮效果。


  但是,锚式搅拌器通常在低速下运行,在低粘液体搅拌时不产生大的剪切力,氢气几乎未经分散即上升到釜顶,上部的氢气和下部的催化剂接触的几率低,导致反应速率很慢。另外,锚式搅拌器在搅拌时以产生水平回转流为主,轴向流很少,釜内物料的整体循环与交换较少,因此,在液相催化加氢反应釜中采用锚式桨是低效的。目前,锚式桨已逐渐被淘汰。


  02、轴流式搅拌器


  为了实现相间的充分混合,提高传质效率,一些翼型轴流桨,以其循环量大、能耗低、气体分散能力强的优势在液相催化加氢中逐渐取代了锚式桨。这种搅拌器叶片面积率较大,即水平投影面上叶片面积占由叶端画出的圆的面积的百分数较大,大面积的叶片与盘式涡轮中的圆盘类似,可阻止气体从叶轮穿过,延长了气液接触时间。


  在不考虑催化剂悬浮时,翼型轴流式搅拌器使流体在釜内的流型为一个整体大循环,氢气进入桨叶区后被叶轮排出流产生的剪切作用分散为大小不同的气泡,随后进入主体循环,形成整体气液分散。由于反应釜内的湍流程度较弱,气泡在运动过程中发生碰撞而聚并的机率小,气泡直径的变化幅度相对较小,因此不同区域的气泡大小比较均一,气含率的空间分布也较为均匀,且整体气含率较大。


  在不考虑氢气的情况下,轴流式搅拌器循环能力强、排出量大,流体在釜内形成的整体循环流动对催化剂的悬浮操作是十分有效的。并且轴流式搅拌器在对催化剂达到同样的悬浮程度时所需要的功率明显低于径流桨。但是,在液相催化加氢反应中,当氢气从下方通入反应釜后,如气量比较大,气泡因浮力而产生的上升流动使得釜内液体的轴向流动型态被破坏,这时轴流式搅拌器对催化剂悬浮和氢气的分散效果都显著降低了。


  03、组合式搅拌器


  组合桨被开发出来后,催化剂悬浮与氢气分散的问题同时得到了很好的解决,在液相催化加氢中逐渐得到应用。其中应用最广泛的是两层搅拌器,下层为轴流式搅拌器,用于固体悬浮;上层为径流桨,用于气体分散。采用这种组合时,下层桨将上层桨有效分散的气体循环进入下部区域,在下部分散不良而凝并的气泡进入上部区域后又重新被高剪切的桨所分散而再一次循环,因此可有效延长气相停留时间,提高气含率,有利于气液传质比表面积的增加。在这种组合中,下层轴流桨的排出流方向对液相催化加氢中的气液传质有重要影响。排出流向上时,流体流动几乎为轴向流;而排出流向下时则带有较多的径向流成分,有较强的分区倾向,且区间混合效果与径向流桨相似。因此,排出流向上可比向下搅拌能更有效地促进全釜循环、延长气相的停留时间从而提高搅拌釜的气含率。组合桨的选用还受到通气位置与通气量的影响,只有把气升作用与搅拌作用协调起来才能取得最佳的效果。在反应釜中,主体流动是催化剂颗粒悬浮起来的动力,在小通气量时,气升作用使催化剂颗粒悬浮变得更加容易,而大的通气量可能会恶化催化剂的悬浮效果。


  但是,由于气液的不相容性,且密度差别非常大,氢气仅在上升过程中得到组合桨的分散而反应,大量未反应的氢气聚积在反应器内的上部空间,严重影响了反应速率和效率。因此,很多科研人员开始考虑开发新的设备以提高气液相的接触面积,从而提高反应的时空收率。


  04、自吸式搅拌器


  许多科研工作者将目光聚集在了自吸式搅拌器上,这种搅拌器将釜内液面上的氢气重新吸入并分散于液相,可大幅度提高气含率和气液相的接触面积,从而提高了反应速率。目前,自吸式搅拌器在国内已有许多专利发表,在工业上也逐步得到应用,并开始占据高端市场。


  自吸式叶轮由一根空心轴和带两个圆盘的涡轮搅拌器组成,空心轴上端开有小孔,圆盘外缘加有打碎气泡的挡板。当自吸式搅拌器以一定速度旋转时,高速运行的叶轮能使大量液体在叶轮内外进行循环,根据文丘里喷射原理,液面上的气体通过空心搅拌轴被高速运动的液体夹带后从叶轮排出,在自吸式叶轮的两圆盘间形成负压,反应器内液面上方的气体由空心轴上端小孔处吸入,沿空心轴向下,并由下端圆盘间小孔鼓出,气泡从桨端逸出,运动至釜壁,被两圆盘边缘的挡板打碎成很小的气泡,气体在反应器内形成循环,固体颗粒悬浮在液体中,气体与颗粒充分接触。这样,气体在反应器内不断被吸入至液相深层,并被搅拌分散,周而复始,形成均匀的气液混合,实现高效气液接触,强化气液传质过程,缩短气液反应时间,获得了高的宏观反应速率。

图片
图片

专栏:技术交流
作者: JZ
原文链接: 阅读原文
上一页:医药化工废气收集安全的这些要点,你知道吗?
下一页:反应釜的常规保养维护及常见故障处理方法
FreeMarker template error (HTML_DEBUG mode; use RETHROW in production!)

The following has evaluated to null or missing:
==> langConfig  [in template "public_include/wap/module/version_1/language.html" at line 49, column 14]

----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if langConfig.status?string = "false"  [in template "public_include/wap/module/version_1/language.html" at line 49, column 9]
	- Reached through: #include "/public_include/wap/module/...  [in template "tpl/2018/03/17/2613443926933696//wap/com_5.html" at line 5, column 1]
	- Reached through: #include "com_5.html"  [in template "tpl/2018/03/17/2613443926933696//wap/displaynews.html" at line 69, column 6]
----

Java stack trace (for programmers):
----
freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...]
	at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134)
	at freemarker.core.UnexpectedTypeException.newDesciptionBuilder(UnexpectedTypeException.java:80)
	at freemarker.core.UnexpectedTypeException.<init>(UnexpectedTypeException.java:43)
	at freemarker.core.NonHashException.<init>(NonHashException.java:49)
	at freemarker.core.Dot._eval(Dot.java:48)
	at freemarker.core.Expression.eval(Expression.java:81)
	at freemarker.core.BuiltInsForMultipleTypes$stringBI._eval(BuiltInsForMultipleTypes.java:692)
	at freemarker.core.Expression.eval(Expression.java:81)
	at freemarker.core.EvalUtil.compare(EvalUtil.java:111)
	at freemarker.core.ComparisonExpression.evalToBoolean(ComparisonExpression.java:62)
	at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48)
	at freemarker.core.Environment.visit(Environment.java:327)
	at freemarker.core.Environment.visit(Environment.java:333)
	at freemarker.core.Environment.include(Environment.java:2509)
	at freemarker.core.Include.accept(Include.java:171)
	at freemarker.core.Environment.visit(Environment.java:327)
	at freemarker.core.Environment.visit(Environment.java:333)
	at freemarker.core.Environment.include(Environment.java:2509)
	at freemarker.core.Include.accept(Include.java:171)
	at freemarker.core.Environment.visit(Environment.java:327)
	at freemarker.core.Environment.visit(Environment.java:333)
	at freemarker.core.Environment.process(Environment.java:306)
	at freemarker.ext.servlet.FreemarkerServlet.processEnvironment(FreemarkerServlet.java:946)
	at freemarker.ext.servlet.FreemarkerServlet.process(FreemarkerServlet.java:910)
	at freemarker.ext.servlet.FreemarkerServlet.doGet(FreemarkerServlet.java:769)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
	at com.kenfor.iyong.web.util.filter.NotAllowedToTunFilesFilter.doFilter(NotAllowedToTunFilesFilter.java:154)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
	at com.kenfor.iyong.web.util.filter.InvalidXSSFilter.doFilter(InvalidXSSFilter.java:40)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	at com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve.invoke(RedisSessionHandlerValve.java:26)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
	at org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:873)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)

FreeMarker template error: The following has evaluated to null or missing: ==> langConfig [in template "public_include/wap/module/version_1/language.html" at line 49, column 14] ---- Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #if langConfig.status?string = "false" [in template "public_include/wap/module/version_1/language.html" at line 49, column 9] - Reached through: #include "/public_include/wap/module/... [in template "tpl/2018/03/17/2613443926933696//wap/com_5.html" at line 5, column 1] - Reached through: #include "com_5.html" [in template "tpl/2018/03/17/2613443926933696//wap/displaynews.html" at line 69, column 6] ---- Java stack trace (for programmers): ---- freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...] at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134) at freemarker.core.UnexpectedTypeException.newDesciptionBuilder(UnexpectedTypeException.java:80) at freemarker.core.UnexpectedTypeException.(UnexpectedTypeException.java:43) at freemarker.core.NonHashException.(NonHashException.java:49) at freemarker.core.Dot._eval(Dot.java:48) at freemarker.core.Expression.eval(Expression.java:81) at freemarker.core.BuiltInsForMultipleTypes$stringBI._eval(BuiltInsForMultipleTypes.java:692) at freemarker.core.Expression.eval(Expression.java:81) at freemarker.core.EvalUtil.compare(EvalUtil.java:111) at freemarker.core.ComparisonExpression.evalToBoolean(ComparisonExpression.java:62) at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48) at freemarker.core.Environment.visit(Environment.java:327) at freemarker.core.Environment.visit(Environment.java:333) at freemarker.core.Environment.include(Environment.java:2509) at freemarker.core.Include.accept(Include.java:171) at freemarker.core.Environment.visit(Environment.java:327) at freemarker.core.Environment.visit(Environment.java:333) at freemarker.core.Environment.include(Environment.java:2509) at freemarker.core.Include.accept(Include.java:171) at freemarker.core.Environment.visit(Environment.java:327) at freemarker.core.Environment.visit(Environment.java:333) at freemarker.core.Environment.process(Environment.java:306) at freemarker.ext.servlet.FreemarkerServlet.processEnvironment(FreemarkerServlet.java:946) at freemarker.ext.servlet.FreemarkerServlet.process(FreemarkerServlet.java:910) at freemarker.ext.servlet.FreemarkerServlet.doGet(FreemarkerServlet.java:769) at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at com.kenfor.iyong.web.util.filter.NotAllowedToTunFilesFilter.doFilter(NotAllowedToTunFilesFilter.java:154) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at com.kenfor.iyong.web.util.filter.InvalidXSSFilter.doFilter(InvalidXSSFilter.java:40) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve.invoke(RedisSessionHandlerValve.java:26) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528) at org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:873) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)