【本期由创举科技冠名播出,想了解更多点击】
在上一章节《非均相共沸精馏的模拟优化设计、APP技术稿第6期》中,对正丁醇/水体系进行了稳态的分离设计。
在此基础上,添加合适的阀门,泵等压力驱动设备进行动态的设计。详细添加的流程如图1所示,
图1.添加压力驱动设备的流程图
在上述操作完成以后,对其塔釜罐子和倾析器的尺寸进行设计,在这里未进行详细的设计。分别选择直径为3米,高度为6米进行输入。两个塔的塔径分别为1.0米和1.7米。然后点击Pressure Checker压力检查器,进行压力的校验。出现如图2所示的即可进行下一步的操作,
图2.压差压力是否满足要求
在上述的压力检查合格的情况下,将Aspen文件导出为*.dynf格式的文件。这是动态的压力驱动模型文件,点击保存即可直接到Aspen Dynamics软件界面,
图3.导出*.dynf格式的文件
在动态软件添加控制器和控制方法的设计之前,首先需要选择最为重要的两个塔板的温度控制点,一般有三种方法:斜率法,敏感度分析法和奇异值分析法。在这里选择斜率法,根据塔体的温度剖型得到斜率的曲线如图4所示,两个塔分别选择第10块和第9块塔板作为灵敏板的位置,然后进行下一步控制方案的设计,
图4.温度剖型(上面两张)和斜率曲线(下面两张)
图5.控制方案的设计
图6控制面板
控制方案如图5所示,LC1,LC2分别为油相和水相;LC3和LC4分别为两个塔的塔釜液位控制器;T1_S1PC和T2_S1PC分别为两个汽提塔的塔顶压力控制器;TC1和TC2分别为两个精馏塔的灵敏板控制器;TC3为塔顶冷凝器的温度控制器,与其对应的控制面板见图6所示。
图7.温度控制器的整定参数
一般来说,控制方面的问题主要就是 PID控制参数的调试和联锁逻辑关系。在模型运行初期,所有控制器的PID参数都是建模时给的初始值,这些大多候并不合理,需要进行调试和修改。
例如工艺中的 液位控制器、流量等。PID参数调节时先高 P低 I,观察曲线的震荡情况;如果震荡频繁,减小P,观察曲线的震荡情况;使曲线趋于周期性缓慢震荡;再适当加大 I,减小余差,同时为了防止曲线震荡适当,减小余差同时为了防止曲线震荡适当P;上述均为手动调节的时候的方法,操作较为繁琐。
因此本文使用Tyreus-Luyben整定方法,直接得到三个温度控制器的PI参数,如图7所示。
主要的参数调谐完以后,就需要对控制方案的稳定性进行测定了,本文采用±10的流量和组分的扰动来对控制方案进行检测,详细的扰动图如下图所示;
图8. 流量扰动
function BW1
clear all;clc
x=xlsread('D:\\CS3.xlsx','sheet1','A3:A1003');
x1=xlsread('D:\\CS3.xlsx','sheet1','B3:B1003');
x11=xlsread('D:\\CS3.xlsx','sheet1','N3:N1003');
x2=xlsread('D:\\CS3.xlsx','sheet1','C3:C1003');
x22=xlsread('D:\\CS3.xlsx','sheet1','O3:O1003');
y1=xlsread('D:\\CS3.xlsx','sheet1','F3:F1003');
y11=xlsread('D:\\CS3.xlsx','sheet1','R3:R1003');
y2=xlsread('D:\\CS3.xlsx','sheet1','G3:G1003');
y22=xlsread('D:\\CS3.xlsx','sheet1','S3:S1003');
z2=xlsread('D:\\CS3.xlsx','sheet1','J3:J1003');
z22=xlsread('D:\\CS3.xlsx','sheet1','V3:V1003');
z3=xlsread('D:\\CS3.xlsx','sheet1','K3:K1003');
z33=xlsread('D:\\CS3.xlsx','sheet1','W3:W1003');
subplot(3,2,1)
plot(x,x1,'r-',x,x11,'b--','LineWidth',2)
set(gca,'XTick',0:2:10)
legend('-10% feed flow','+10% feed flow')
xlabel('Time (hr)')
ylabel('水的纯度')
subplot(3,2,2)
plot(x,x2,'r-',x,x22,'b--','LineWidth',2)
set(gca,'XTick',0:2:10)
legend('-10% feed flow','+10% feed flow')
xlabel('Time (hr)')
ylabel('正丁醇的纯度')
subplot(3,2,3)
plot(x,y1,'r-',x,y11,'b--','LineWidth',2)
set(gca,'XTick',0:2:10)
legend('-10% feed flow','+10% feed flow')
xlabel('Time (hr)')
ylabel('温度,℃')
subplot(3,2,4)
plot(x,y2,'r-',x,y22,'b--','LineWidth',2)
set(gca,'XTick',0:2:10)
legend('-10% feed flow','+10% feed flow')
xlabel('Time (hr)')
ylabel('温度,℃')
subplot(3,2,5)
plot(x,z2,'r-',x,z22,'b--','LineWidth',2)
set(gca,'XTick',0:2:10)
legend('-10% feed flow','+10% feed flow')
xlabel('Time (hr)')
ylabel('流量,kmol/h')
subplot(3,2,6)
plot(x,z3,'r-',x,z33,'b--','LineWidth',2)
set(gca,'XTick',0:2:10)
legend('-10% feed flow','+10% feed flow')
xlabel('流量,kmol/h')
图9. 组分扰动
function BW2
clear all;clc
x=xlsread('D:\\CS3.xlsx','sheet1','A3:A1003');
x1=xlsread('D:\\CS3.xlsx','sheet2','B3:B1003');
x11=xlsread('D:\\CS3.xlsx','sheet2','N3:N1003');
x2=xlsread('D:\\CS3.xlsx','sheet2','C3:C1003');
x22=xlsread('D:\\CS3.xlsx','sheet2','O3:O1003');
y1=xlsread('D:\\CS3.xlsx','sheet2','F3:F1003');
y11=xlsread('D:\\CS3.xlsx','sheet2','R3:R1003');
y2=xlsread('D:\\CS3.xlsx','sheet2','G3:G1003');
y22=xlsread('D:\\CS3.xlsx','sheet2','S3:S1003');
z2=xlsread('D:\\CS3.xlsx','sheet2','J3:J1003');
z22=xlsread('D:\\CS3.xlsx','sheet2','V3:V1003');
z3=xlsread('D:\\CS3.xlsx','sheet2','K3:K1003');
z33=xlsread('D:\\CS3.xlsx','sheet2','W3:W1003');
subplot(3,2,1)
plot(x,x1,'r-',x,x11,'b--','LineWidth',2)
set(gca,'XTick',0:2:10)
legend('9 mol% B','11 mol% B')
xlabel('Time (hr)')
ylabel('水的纯度 ')
subplot(3,2,2)
plot(x,x2,'r-',x,x22,'b--','LineWidth',2)
set(gca,'XTick',0:2:10)
legend('9 mol% B','11 mol% B')
xlabel('Time (hr)')
ylabel('正丁醇的纯度 ')
subplot(3,2,3)
plot(x,y1,'r-',x,y11,'b--','LineWidth',2)
set(gca,'XTick',0:2:10)
legend('9 mol% B','11 mol% B')
xlabel('Time (hr)')
ylabel('温度,℃')
subplot(3,2,4)
plot(x,y2,'r-',x,y22,'b--','LineWidth',2)
set(gca,'XTick',0:2:10)
legend('9 mol% B','11 mol% B')
xlabel('Time (hr)')
ylabel('温度,℃')
subplot(3,2,5)
plot(x,z2,'r-',x,z22,'b--','LineWidth',2)
set(gca,'XTick',0:2:10)
legend('9 mol% B','11 mol% B')
xlabel('Time (hr)')
ylabel('流量,kmol/h ')
subplot(3,2,6)
plot(x,z3,'r-',x,z33,'b--','LineWidth',2)
set(gca,'XTick',0:2:10)
legend('9 mol% B','11 mol% B')
xlabel('Time (hr)')
ylabel('流量,kmol/h ')
此为MATLAB的画图程序,可以放在新建的脚本里面,把相应的动态数据放在Excel里面,置于D盘即可运行得到文章内的图。
从图8可以看出,在流量扰动(900kmol/h和1100kmol/h)的两种情况下,水和正丁醇的纯度;两块灵敏板的温度;产品的流量扰动较为明显,可以看出此控制方案对流量扰动的敏感性较大,可能是因为倾析器的尺寸设计问题,导致有机相和水相未达到最佳的分离效果即进入两个汽提塔进行分离了。
从图9可以看出水和正丁醇的纯度可以再较短的时间内恢复稳定,说明此控制方案对组分波动可以实现较好的控制。
在后续的工作中,可以对此控制方案进一步的改进和优化。使用前馈控制方案来增大控制方案的抗干扰性。
声明:对于设计的初始值均来自于文献[1],如有雷同或者涉及到机密请联系删除,谢谢。
参考文献:
[1]. William L. Luyben Control of the Heterogeneous Azeotropic n-Butanol/Water Distillation System. Energy & Fuels 2008, 22, 4249–4258.
[2] William L. Luyben and I-Lung Chien Design and Control of Distillation Systems for Separating Azeotropes, 2010.
作者简介
1. 姓名:杨傲;性别:男
2. 邮箱:yang-ao@cqu.edu.cn联系地址:重庆市沙坪坝区重庆大学虎溪校区兰苑
3. 毕业院校:重庆大学
专业:化学工程与技术
学历:硕士
4. 专业领域:化工过程研发与优化;在反应过程、分离过程等实验数据的基础上,进行流程设计、单元计算、过程优化;化工过程系统集成与网络优化,系统热力学分析与评价。
主要针对萃取精馏,共沸精馏,变压精馏,萃取分隔壁精馏,反应分隔壁精馏及热泵精馏等进行优化设计和控制。
针对优化采用SQP优化算法和遗传算法NSGA-II对流程进行优化,引入新的目标函数可以避免非线性函数的影响。针对稳态流程的模拟,采用Aspen Plus Dynamic对其进一步的动态研究。
扫码报名
点个赞,让世界多一份美好:)
1、头条易读遵循行业规范,任何转载的稿件都会明确标注作者和来源;
2、本文内容来自“化工707”微信公众号,文章版权归化工707公众号所有。