超低聚合度PVC树脂生产技术的研究
发布日期:2023-11-17
阅读量:466

1 超低聚合度PVC树脂的研究进展

目前,国外PVC生产企业已经将超低聚合度PVC树脂工业化,国内也有部分PVC生产企业进行了超低聚合度PVC树脂的小试和中试。其中,谢雷用10 L聚合釜制得了平均聚合度600、K值55的超低聚合度PVC糊树脂。刘松涛对分散体系、引发体系及链转移剂的用量进行了优化,用悬浮法小试制得了平均聚合度500~600的PVC树脂。杨卫国通过试验考察了链转移剂用量与PVC聚合度之间的关系。文献[4]公布了一种平均聚合度400的超低聚合度PVC树脂的生产方法。张利明通过试验制得了平均聚合度400的超低聚合度PVC树脂,并且探讨了巯基乙醇加料方式对树脂颗粒形态的影响。王国文对两种链转移剂的效果进行了评估。文献[7]公布了一种新型溴代烷链转移剂在超低聚合度PVC树脂生产领域的应用方法。张京友等研究了平均聚合度500的超低聚合度PVC树脂的聚合工艺,并进行了加工配方及力学性能的评价。詹晓力等系统地研究了链转移剂巯基乙醇对悬浮法PVC树脂颗粒形态的影响,认为巯基乙醇用量增大会使氯乙烯-分散剂水溶液的界面张力降低,分散剂保胶能力减弱,从而导致产生粗料或者结块;同时还发现巯基乙醇可改善树脂内部形态,使树脂的单体脱吸性能提高。王桂华使用巯基乙醇进行了高型号PVC树脂的工业化生产试验,并总结了其经济效益水平。


2 超低聚合度PVC树脂的应用方向

目前国内超低聚合度PVC树脂牌号有:天津渤天化工有限责任公司的TH-400、浙江巨化股份有限公司的SG-9、上海氯碱化工股份有限公司的WS-550及WS-400、中国石油化工股份有限公司齐鲁分公司氯碱厂的S-500等。进口的超低聚合度PVC树脂牌号有日本信越化学公司的均聚型TK-300、TK-400、TK-500和氯醋型SC-400G、SC-400R。

由于低聚合度PVC树脂的分子链段短,所以其分子缠结度低,从而具有极佳的熔体流动性和塑化性能。其中平均聚合度低于600的超低聚合度PVC树脂的凝胶化温度低,熔体流动性极佳,非常适宜于注塑成型加工,尤其适用于有大量细小复杂流道制品的注塑成型,可以不加增塑剂,制品表面光洁,透明度高,热稳定性及阻燃效果好;还可以与ABS、AS、MBS等聚合物共混形成高强度、高韧性、高熔体流动性工程化合金注塑料,应用于家电、数码产品外壳的高光注塑,替代聚酯生产透明瓶,替代氯醋树脂用于模塑;也可以用于改善通用型PVC树脂的加工流动性。

赵劲松使用自己合成的高胶型ABS树脂与平均聚合度450的PVC树脂进行共混,制得了一种难燃、高流动性、高抗冲的PVC/ABS注塑专用合金。堵正康使用K值50~52、平均聚合度500左右的超低聚合度PVC树脂进行共混增韧改性,制得了一种熔融流动性极佳、冲击强度高、涂装性能好的电子产品注塑专用料。张莹等使用透明级MBS增韧助剂对不同聚合度的PVC树脂进行共混增韧,制备了高透明级合金料,并对不同的合金料进行系统的力学性能和加工性能测试,发现随着PVC树脂聚合度降低,MBS增韧助剂的用量增加,其中平均聚合度为400的超低聚合度PVC树脂MBS用量最大;树脂塑化后的透光性能则随着聚合度的下降而提高。沈玮等使用TH-400超低聚合度PVC树脂共混改性,并进行了注塑成型试验,制得的电子产品外壳注塑件阻燃性和热稳定性极好,力学性能良好,低温脆性得到改善,且涂装性能极佳。梁娜等使用S-550型PVC树脂研究了高流动性注塑级PVC/ABS合金的加工性能和流变性能,测试并比较了不同配比条件下合金的力学性能、耐热性能、相容性以及毛细管流变性能,得出了最佳配比。王崇高采用平均聚合度400的PVC树脂与ABS树脂以及各种阻燃剂共混,制得了具有高流动性和高阻燃性的ABS合金,认为超低聚合度PVC树脂可以明显提高共混合金体系的拉伸强度、弯曲强度和弯曲模量,最重要的是可以极大地提高合金的氧指数,从而使其阻燃效果大大提高。


3 超低聚合度PVC树脂的聚合工艺研究

生产低聚合度PVC树脂有2种基本方法:①提高聚合反应温度,②在聚合反应体系中加入链转移剂。笔者对链转移剂方法进行了研究,采用巯基乙醇为链转移剂,聚合反应温度为63.5 ℃。


3.1 巯基乙醇用量与平均聚合度之间的关系

在相同的聚合反应温度条件下,PVC树脂的聚合度主要由链转移剂用量决定。链转移剂用量提高,聚合度降低,其关系见式(1)。

图片

式中,P为平均聚合度,t为反应温度,C为链转移剂用量。

按照式(1)可以计算出63.5 ℃条件下,巯基乙醇用量与PVC树脂平均聚合度的理论关系,结果见表1。

表1 巯基乙醇用量与平均聚合度的理论关系

图片

笔者采用凝胶渗透色谱仪测定了63.5 ℃条件下,以巯基乙醇为链转移剂时PVC树脂的实际聚合度,结果见表2。


表2 巯基乙醇用量与平均聚合度的实测关系

图片

由表1和表2可以看出:PVC树脂聚合度的实测值与理论值存在一定差异,在巯基乙醇用量较小的时候差异并不明显,但随着巯基乙醇用量增大,这一差异越来越明显。笔者认为,这是由于巯基乙醇是一种还原剂,其与自身有强氧化性的有机过氧化物引发剂之间会发生氧化还原反应,从而生成过硫化物,丧失了链转移剂功能,反应式如下:

图片


3.2 巯基乙醇用量与平均聚合度之间的关系

PVC的凝胶化是指在加工过程中,树脂被逐步熔融塑化,然后再结晶形成三维空间网络结构的过程。PVC树脂的凝胶化温度对其加工性能的影响至关重要,凝胶化温度越低,相同条件下所制得的塑料制品凝胶化度越高,制品的力学性能越好。试验证明:PVC制品的凝胶化度在50%~70%时,其冲击强度和断裂韧性最大,而其屈服强度则随着凝胶化度的提高而提高。同时,凝胶化温度越低,PVC树脂的熔体流动性能越好。PVC树脂的凝胶化温度(Tam)与其平均聚合度(P)之间的关系见式(2):

图片

根据式(2)可计算得到PVC树脂凝胶化温度与平均聚合度的关系,结果见表3。

表3 PVC树脂平均聚合度与凝胶化温度(Tam

图片

笔者测试了巯基乙醇用量与PVC树脂凝胶化温度的实际关系,结果见表4。

表4 巯基乙醇用量与凝胶化温度(Tam)的实测关系

图片

由表2~表4可见:PVC树脂的凝胶化温度与聚合度的理论值和实测值对应得比较好,同时也可以证明PVC树脂的凝胶化温度确实是随着聚合度的下降而降低。


4 超低聚合度PVC树脂的加工性能和流变性能

由于超低聚合度PVC树脂分子链段短小,因此可以作为聚合物型增塑剂掺入通用型PVC树脂中,提高其塑化速度和熔体流动性能。由于这种聚合物型增塑剂自身就是PVC,所以几乎不存在小分子增塑剂的迁移污染和降低制品维卡软化温度的问题。为考察超低聚合度PVC树脂作为聚合物型增塑剂的增塑效果,笔者进行了相关性能测试,表5为不同聚合度PVC树脂的熔体流变性能数据,表6为不同超低聚合度PVC树脂作为SG8型PVC树脂的聚合物型增塑剂的增塑效果数据。

表5 不同聚合度PVC树脂的熔体流变数据

图片


由表5可见:随着PVC树脂聚合度的降低,凝胶化温度降低,塑化速度加快,塑化扭矩降低。其中,平均聚合度小于300以后,PVC树脂表现为无明显塑化峰,说明树脂初级粒子在破碎之前就已经熔融。

表6 超低聚合度PVC树脂对SG8型PVC树脂的增塑效果

图片

由表6可以看出:SG8型PVC树脂中,添加3~5份平均聚合度150的超低聚合度PVC树脂时的增塑效果与添加3份DEHP(邻苯二甲酸二异辛酯)的增塑效果很接近。


5 建议

(1)生产超低聚合度PVC树脂需要较高的巯基乙醇用量和较高的聚合反应温度,以生产平均聚合度400的PVC树脂为例,其聚合反应温度为62~65 ℃,巯基乙醇用量达到0.10%~0.20%,但较高的巯基乙醇用量不但会对聚合分散体系有较强干扰,而且对有机过氧化物引发剂的活性也有衰减的作用,因此,选择合适的分散和引发体系是非常重要的。

(2)超低聚合度PVC树脂聚合度越低,凝胶化温度越低,塑化速度越快,熔体黏度越小,越有利于注塑加工。但是聚合度过低会导致材料韧性变差,因此超低聚合度PVC树脂作为注塑材料使用时需要进行增韧改性。常用的增韧改性剂为MBS或ABS高胶粉。

(3)超低聚合度PVC树脂既可以作为高熔体流动性PVC/ABS合金、PVC/MBS合金的基材,也可以作为通用型PVC树脂的聚合物型增塑剂使用(平均聚合度<200为宜)。与普通邻苯二甲酸酯系增塑剂相比,使用超低聚合度PVC树脂进行增塑的制品无增塑剂迁移且维卡软化温度更高。

(4)目前,国内超低聚合度PVC树脂生产厂家相对较少,但是市场应用前景广阔,且下游产品具有较高附加值,是一种极具潜力的特种PVC树脂产品。


摘自:聚氯乙烯,2013年5期


作者:石亮,黄传华


专栏:技术交流
作者: 石亮,黄传华
原文链接: 阅读原文
上一页:金宗赋能“涂”创未来 2023中国涂料展完美收官
下一页:10万吨/年液体环氧树脂生产工艺
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)