You are on page 1of 22

EKC 217:

MASS TRANSFER
INTEGRATED DESIGN
DISTILLATION

GROUP NUMBER: 17
GROUP MEMBERS:1)
2)
3)
4)
5)

HASIF BIN MIOR HAKIM


MOHAMAD AZZAM BIN CHE RAHIM
MOHD KHAIRI BIN OTHMAN
T. PARRIMALAN A/L THIRUCHELVAN
SITI FARHANA BINTI HISHAM

115841
117890
117893
115877
S-JD0015/15 (R)

LECTURER: ASSOCIATE PROFESSOR DR TAN SOON HUAT


SUBMITTED ON: 4 DECEMBER 2015

Contents
Problem Statement................................................................................................ 3
Operating data:..................................................................................................... 3
Minimum reflux ratio, Rmin................................................................................5
Graphical Method............................................................................................ 5
Number of theoretical stages. *Each group has a different reflux ratio, R..........6
The column of your choice either packed column or tray column....................11
APPENDIX............................................................................................................. 12

Problem Statement
In EKC 157 Chemical Engineering Drawing you were asked to prepare a block
diagram and PFD of a plant producing ethylene through catalytic dehydration of
ethanol based on the process description. Subsequently in the EKC 111 Mass
Balance and EKC 214 Energy Balance, you were asked to perform the material
and energy balance of that plant. The current Integrated Design project for
EKC217, you are requested to perform a calculation/design of distillation column
(T-102). Given the operating data as shown below:-

Operating data:
Mass
Flowrate(ton/hr)
Ethanol
Water
Total mass
flowrate

Feed

Distillate

Condensate

111.2
12.35
123.55

108.81
0.12
108.93

0.10
14.52
14.62

Mol Flowrate(tonmol /hr)


Ethanol
Water
Total mol flowrate

Feed

Distillate

Condensate

2456183
697121.1
3153304.1

2403393
6773.646
2410166.646

2208.798
819611.2
821820.2

Molar Fraction
Ethanol
Water
Total

Feed
0.778924
0.221076
1

Distillate
0.99719
0.00281
1

Condensate
0.002688
0.997312
1

Assumption:

Feed temperature is at bubble point( 81.381 oC)


Constant molar overflow
Constant flowrate
Constant relative volatility
Ideal binary system

Design calculation
Basic design calculation can be done via several methods, most famous method
employ graphical approach as explained in Mc Cabe Thiele graphical method.
For Ethanol-water system the thermodynamic properties are as follows
Volatility
x, ethanol mole y, Relative
ethanol mole
fraction in liquid fraction of
in Ethanol
gas
phase
phase
0
0
0.04
0.08
0.08
0.16
0.12
0.23
0.16
0.3
0.2
0.36
0.24
0.41
0.28
0.47
0.32
0.51
0.36
0.56
0.4
0.6
0.44
0.64
0.48
0.68
0.52
0.71
0.56
0.74
0.6
0.77
0.64
0.8
0.68
0.83
0.72
0.85
0.76
0.88
0.8
0.9
0.84
0.92
0.88
0.94
0.92
0.96
0.96
0.98
1
1
x, ethanol mole
fraction in liquid
phase
0.04
2.08695652
0.08
2.19047619
0.12
2.19047619
0.16
2.25
0.2
2.25
0.24
2.20056497
0.28
2.28032345

0.32
0.36
0.4
0.44
0.48
0.52
0.56
0.6
0.64
0.68
0.72
0.76
0.8
0.84
0.88
0.92
0.96

2.21173469
2.26262626
2.25
2.26262626
2.30208333
2.25994695
2.23626374
2.23188406
2.25
2.29757785
2.2037037
2.31578947
2.25
2.19047619
2.13636364
2.08695652
2.04166667

Minimum reflux ratio, Rmin.


Minimum Reflux ratio can be calculated by using Underwood equation as follows

Rmin =

1
( 1)

)(

x D ( 1x D )

zF
1z F

= n n
n

Rmin =1.028627

Determination of minimum number of stages Nmin

Graphical Method
Graphical Method was obtained by using Matlab software the following result are
as follows

Figure 1 VLE Grapgh using MatLab

We obtain pinch point at (0.7789,0.8865)


Obtain the relation

yx y
D

x x x

Rmin
R min +1

Rmin =1.028713

Number of theoretical stages. *Each group has a different reflux ratio, R


In our Case the reflux ratio is 1.52 times the minimum reflux ratio
Therefore

R=1.56

Number Of Stages
Winn Underwood Gilliland (FUG) Method
Fenske Equation

log
N min =

[( )( )]
xD
1x D

log

1x B
xB

N min =15.199
Based on Gilliland correlation

N N min
RRmin 0.002743
=0.5458270.591422
+
N +1
R+1
RRmin
R+ 1

N=27.6998

N ' =25.6998
Optimal Feed stage
Using Krikbride equation

log

N F 1
'

N N F

=0.206

[( )(
1z F
zf

xB
1x D

() DB )]
2

N F =10.8
Optimum feed stage location is at 11th stage

Mac Cabe-Thiele Graphical Method:


Minimum Number of stages based on graphical method

Figure 2 VLE Graph using Graphical method

Minimum Number of stages is 14.84 stages


Actual Number Of stages using graphical method
Constructing operating line

y n+1=

R
1
xn+
x
R+1
R+1 D

y n+1=0.61 x n +0.3887
Assuming the feed condition is at bubble point,
Therefore q=1
Constructing operating line

y=

y=

q
1
x+
z
q1
1q F

1
0.7719
x+
11
11

At bubble point feed operating line will have infinite gradient

q1
The construction of rectifying line and feed line are shown in diagram below

The graphical method as shown below with staging number by using Matlab ;

Figure 3 Graphical method using Matlab

From the graphical method;


Number of Stages required is 25 stages
Optimal feed location: stage 13th
Result from ASPEN

Figure 4 Result from Aspen

Comparing Result
Method
Calculation
Mc Cabe
Thiele
ASPEN

Rmin

N min

N Actual

N Feed

1.028627
1.028713

15.199
14.84

28
25

11
13

1.01603

14.4388

25

14

The column of your choice either packed column or tray column.


The choice between use of tray column or a packed column for a given mass
transfer operation should, theoretically, be based on a detail cost analysis for the
two types of contactors. However, the decision can be made on the basis of a
qualitative analysis of relative advantages and disadvantages, eliminating the
need for a detailed cost comparison.
Which are:
1.
Because of liquid dispersion difficulties in packed columns, the design of
tray column is considerably more reliable.
2.
Tray columns can be designed to handle wide ranges liquid rates without
flooding.
3.
If the operation involves liquids that contain dispersed solids, use of a tray
column is preferred because the plates are more accessible for cleaning.
4.

For non-foaming systems the plate column is preferred.

5.
If periodic cleaning is required, man holes
will be provided for cleaning.
In packed columns packing must be removed before cleaning.
6.
For large column heights, weight of the packed column is more than plate
column.
7.
Design information for plate column is more readily available and more
reliable than that for packed column.
8.
Inter stage cooling can be provided to remove heat of reaction or solution in
plate column.
9.

When temperature change is involved, packing may be damaged.

10. Random-packed columns generally are not designed with diameters larger
than 1.5 m, and diameters of commercial tray column are seldom less than
0.67m.

For the column of my choice is using tray column instead of packed


column.

o
o

This is because based from the Aspen software result, the average
temperature for the distillation column is higher and almost
approximately same to 98C.
The mixture between ethanol and water is not foaming, hence it is
very suitable to use tray column.
Since the number of stages is around 25, the usage of tray column
is better for the contact of vapor and liquid of the ethanol-water
mixture.

APPENDIX
Calculation using MatLab

function mccabethiele
close all
clc
set(0,'DefaultFigureWindowStyle','docked')
f = figure;
set(f,'name','Specified Parameters','numbertitle','off')
minstep = 1;
maxstep = 1;
column = 1;
fprintf('Enter the following codes to specify given parameters: \n')
fprintf('==============================================================\n')
fprintf('Enter "0" to specify reflux and feed condition \n')
fprintf('Enter "1" to specify reflux and boilup \n')
fprintf('Enter "2" to specify boilup and feed condition \n')
fprintf('==============================================================\n')
M = input('Input Code (see above): ');
fprintf('==============================================================\n')
fprintf('Enter "1" to show stage steps or "0" to not show stage steps \n')
fprintf('==============================================================\n')
stages = input('Stage by Stage? :
');
fprintf('==============================================================\n')
if stages ~= 1
stages = 0;
minstep = 0;
maxstep = 0;
end
VLE = input('Enter VLE Data [x y] or alpha12:
');
if M == 0 || M == 1
reflux = input('Enter External Reflux Ratio:
');
end
if M == 1 || M == 2
boilup = input('Enter External Boilup Ratio:
');
end
if M == 0 || M == 2
q1 = input('Enter the value of q (feed condition): ');
if q1 ~= 1
q = q1;
else
q = 0.999;
end
end
F = input('Enter the feed flow rate [kmol/hr]:
');
comps = input('Enter Xd Xb and Z [Xd Xb Z]:
');

Xd
Xb
Z
if

= comps(1, 1);
= comps(1, 2);
= comps(1, 3);
length(VLE) > 1
xVLE = VLE(1:size(VLE), 1);
yVLE = VLE(1:size(VLE), 2);
if stages == 1
curve = 1;
p = polyfit(xVLE,yVLE,10);
syms K
VLE_EQ = p(1)*K.^10 + p(2)*K.^9 + p(3)*K.^8 + p(4)*K.^7 + p(5)*K.^6
+ p(6)*K.^5 + p(7)*K.^4 + p(8)*K.^3 + p(9)*K.^2 + p(10)*K+ p(11);
end
else
curve = 2;
Alpha12 = VLE;
xVLE = 0:0.001:1;
yVLE = zeros(length(xVLE));
for kk = 1:length(xVLE);
yVLE(kk) = (Alpha12*xVLE(kk))/(1 + xVLE(kk)*(Alpha12 - 1));
end
end
B = F * (Xd - Z)/(Xd - Xb);
D = F - B;
if M == 0;
slopeTOL
= reflux/(reflux + 1);
interceptTOL = (1/(reflux + 1)) * Xd;
slopeFOL
= q/(q - 1);
interceptFOL = (1/(1 - q)) * Z;
Xx = (interceptFOL - interceptTOL) /(slopeTOL - slopeFOL);
if q1 == 1
Xx = Z;
end
Yy = slopeTOL * Xx + interceptTOL;
xTOL = Xx:0.001:Xd;
yTOL = slopeTOL * xTOL + interceptTOL;
if Xx < Z
xFOL = Xx:0.001:Z;
yFOL = slopeFOL * xFOL + interceptFOL;
elseif Xx > Z
xFOL = Z:0.001:Xx;
yFOL = slopeFOL * xFOL + interceptFOL;
else
xFOL = [Xx Xx];
yFOL = [Z Yy];
end
slopeBOL
= (Yy - Xb)/(Xx - Xb);
interceptBOL = Xb - Xb * slopeBOL;
xBOL
= Xb:0.001:Xx;
yBOL
= slopeBOL * xBOL + interceptBOL;
boilup
= 1/(slopeBOL - 1);
elseif M == 1
slopeTOL
= reflux / (reflux + 1);
interceptTOL = (1 / (reflux + 1)) * Xd;
slopeBOL
= (boilup + 1) / boilup;
interceptBOL = - Xb / boilup;
Xx = (interceptBOL - interceptTOL) /(slopeTOL - slopeBOL);
Yy = slopeTOL * Xx + interceptTOL;
xTOL = Xx:0.001:Xd;
yTOL = slopeTOL * xTOL + interceptTOL;

if Xx < Z
xFOL
= Xx:0.001:Z;
slopeFOL
= (Yy - Z) / (Xx - Z);
interceptFOL = Yy - slopeFOL * Xx;
q
= slopeFOL / (slopeFOL - 1);
yFOL
= slopeFOL * xFOL + interceptFOL;
elseif Xx > Z
xFOL = Z:0.001:Xx;
slopeFOL
= (Yy - Z) / (Xx - Z);
interceptFOL = Yy - slopeFOL * Xx;
q
= slopeFOL / (slopeFOL - 1);
yFOL
= slopeFOL * xFOL + interceptFOL;
else
xFOL = [Xx Xx];
yFOL = [Z Yy];
q
= 1;
end
xBOL = Xb:0.01:Xx;
yBOL = slopeBOL * xBOL + interceptBOL;
elseif M == 2
slopeFOL
= q/(q - 1);
interceptFOL = (1/(1 - q)) * Z;
slopeBOL
= (boilup + 1) / boilup;
interceptBOL = - Xb / boilup;
Xx = (interceptFOL - interceptBOL) /(slopeBOL - slopeFOL);
if q1 == 1
Xx = Z;
end
Yy = slopeBOL * Xx + interceptBOL;
xBOL = Xb:0.001:Xx;
yBOL = slopeBOL * xBOL + interceptBOL;
if Xx < Z
xFOL = Xx:0.001:Z;
yFOL = slopeFOL * xFOL + interceptFOL;
elseif Xx > Z
xFOL = Z:0.001:Xx;
yFOL = slopeFOL * xFOL + interceptFOL;
else
xFOL = [Xx Xx];
yFOL = [Z Yy];
end
slopeTOL
= (Yy - Xd)/(Xx - Xd);
interceptTOL = Xd - Xd * slopeTOL;
xTOL
= Xx:0.001:Xd;
yTOL
= slopeTOL * xTOL + interceptTOL;
reflux
= slopeTOL /(1 - slopeTOL);
end
hold off
hold on
title('McCabe-Thiele Diagram at Specified Parameters')
xlabel('Liquid Phase Mole Fraction [x1]')
ylabel('Vapor Phase Mole Fraction [y1]')
axis([0 1 0 1]);
xyx = 0:0.001:1;
xyy = 0:0.001:1;
plot(xyx, xyy, 'k')
plot(xVLE, yVLE, 'k')
plot(xTOL, yTOL, 'g')
plot(xBOL, yBOL, 'r')
plot(xFOL, yFOL, 'c')

if stages == 1
pause
X = Xd;
Y = Xd;
zz = 1;
pinch = 0;
step_over = Xx;
while X(zz) >= step_over && pinch < 40
zz
= zz + 1;
pinch = pinch + 1;
if curve ~= 1;
X(zz) = Y(zz - 1) / (Alpha12*(1 - Y(zz-1)) + Y(zz-1));
else
EQ = VLE_EQ - Y(zz - 1);
S = solve(EQ, K);
for jj = 1:length(S)
if S(jj) > 0 && S(jj) < 1 && isreal(S(jj))
X(zz) = double(S(jj));
end
end
end
Y(zz) = slopeTOL * X(zz - 1) + interceptTOL;
end
if pinch >= 40
error('Pinch point or impossible parameters');
end
FeedLoc = length(X)/2;
while Xb <= X(zz)
zz
= zz + 1;
if curve ~= 1;
X(zz) = Y(zz - 1) / (Alpha12*(1 - Y(zz-1)) + Y(zz-1));
else
EQ = VLE_EQ - Y(zz - 1);
S = solve(EQ, K);
for jj = 1:length(S)
if S(jj) > 0 && S(jj) < 1 && isreal(S(jj))
X(zz) = double(S(jj));
end
end
end
Y(zz) = slopeBOL * X(zz - 1) + interceptBOL;
end
X(length(X)+1) = X(length(X));
Y(length(Y)+1) = X(length(X));
Xlength = length(X);
parStage = (X(Xlength-2) - Xb)/(X(Xlength - 2) - X(Xlength - 1));
stage_tot = floor(length(X)/2);
if parStage >= 0.01
stage_theo = stage_tot - 1 + parStage;
else
stage_theo = stage_tot;
end
Xbottoms
= X(length(X));
Xdistillate = Xd;
for vv = 2:(length(X))
stepx = [X(vv-1) X(vv)];
stepy = [Y(vv-1) Y(vv)];
plot(stepx, stepy, 'b')
end
Xmin = Xd;

Ymin = Xd;
ww = 1;
while Xmin(ww) >= 1.01*Xb
ww = ww + 1;
if curve ~= 1;
Xmin(ww) = Ymin(ww - 1) / (Alpha12*(1 - Ymin(ww-1)) + Ymin(ww1));

else
EQ = VLE_EQ - Ymin(ww - 1);
S = solve(EQ, K);
for jj = 1:length(S)
if S(jj) > 0 && S(jj) < 1 && isreal(S(jj))
Xmin(ww) = double(S(jj));
end
end

end
Ymin(ww) = Xmin(ww - 1);

end
Nmin = length(Xmin)/2;
par_stage_min = (Xmin(length(Xmin)-1)-Xb) / (Xmin(length(Xmin)-1)Xmin(length(Xmin)));
if par_stage_min >= 0.01
Nmin_theo = Nmin - 1 + par_stage_min;
else
Nmin_theo = Nmin;
end
end
if q1 == 1
pinch_x = Z;
if curve == 2
pinch_y = (Alpha12*pinch_x)/(1+pinch_x*(Alpha12 - 1));
else
pinch_y = p(1)*pinch_x^10 + p(2)*pinch_x^9 + p(3)*pinch_x^8 +
p(4)*pinch_x^7 + p(5)*pinch_x^6 + p(6)*pinch_x^5 + p(7)*pinch_x^4 +
p(8)*pinch_x^3 + p(9)*pinch_x^2 + p(10)*pinch_x+ p(11);
end
elseif q1 ~= 1 && curve == 2
syms K2
slopeFOLmin = (Yy - Z)/(Xx - Z);
interceptFOLmin = Z - slopeFOLmin * Z;
PinchEQ = (Alpha12*K2)/(1+K2*(Alpha12 - 1)) - (slopeFOLmin * K2) interceptFOLmin;
S1 = solve(PinchEQ, K2);
for jjj = 1:length(S1)
if S1(jjj) > 0 && S1(jjj) < 1 && isreal(S1(jjj))
pinch_x = double(S1(jjj));
end
end
pinch_y = slopeFOLmin * pinch_x + interceptFOLmin;

else

syms K2
slopeFOLmin = (Yy - Z)/(Xx - Z);
interceptFOLmin = Z - slopeFOLmin * Z;
VLE_EQ2 = p(1)*K2.^10 + p(2)*K2.^9 + p(3)*K2.^8 + p(4)*K2.^7 +
p(5)*K2.^6 + p(6)*K2.^5 + p(7)*K2.^4 + p(8)*K2.^3 + p(9)*K2.^2 + p(10)*K2+
p(11)-slopeFOLmin*K2 - interceptFOLmin;
S2 = solve(VLE_EQ2, K2);
for jjj = 1:length(S2)

if S2(jjj) > 0 && S2(jjj) < 1 && isreal(S2(jjj))


pinch_x = double(S2(jjj));
end

end
pinch_y = slopeFOLmin * pinch_x + interceptFOLmin;

end
if pinch_x <= Xb
pinch_x = Xb;
end
if pinch_y >= Xd
pinch_y = Xd;
end
slopeTOLmin = (pinch_y - Xd) / (pinch_x - Xd);
min_reflux = slopeTOLmin / (1 - slopeTOLmin);
slopeBOLmin = (pinch_y - Xb) / (pinch_x - Xb);
min_boilup = 1 / (slopeBOLmin - 1);
fprintf('\n')
fprintf('==============================================================\n')
fprintf('==============================================================\n')
if stages == 1
fprintf('Actual Distillate Concentration : %6.2f\n', Xdistillate)
fprintf('Actual Bottoms Concentration
: %6.2f\n', Xbottoms)
fprintf('==============================================================\n')
fprintf('Number of Equilibrium Stages
: %6.0f\n', stage_tot)
fprintf('Number of Theoretical Stages
: %6.2f\n', stage_theo)
fprintf('==============================================================\n')
fprintf('Minimum Number of Stages [Nmin] : %6.0f\n', Nmin)
fprintf('Theoretical Minimum Stages
: %6.2f\n', Nmin_theo)
fprintf('==============================================================\n')
fprintf('Minimum Reflux Ratio [L/D]min
: %6.2f\n', min_reflux)
fprintf('Minimum Boilup Ratio [Vbar/B]min : %6.2f\n', min_boilup)
fprintf('==============================================================\n')
fprintf('Feed Stage
: %6.0f\n', FeedLoc)
fprintf('==============================================================\n')
end
fprintf('Feed Condition [q]
: %6.2f\n', q)
fprintf('==============================================================\n')
fprintf('External Reflux Ratio [L/D]
: %6.2f\n', reflux)
fprintf('External Boilup Ratio [Vbar/B]
: %6.2f\n', boilup)
fprintf('==============================================================\n')
fprintf('Overhead Flow Rate [D]
: %6.2f kmol/hr \n', D)
fprintf('Bottoms Flow Rate [B]
: %6.2f kmol/hr \n', B)
fprintf('==============================================================\n')
fprintf('==============================================================\n')
fprintf('\n\n\n\n\n\n\n')
if stages ~= 1
fprintf('\n\n\n\n\n\n\n\n\n\n\n\n\n')
end
if minstep == 1
pause
g = figure;
set(g,'name','Infinte Reflux','numbertitle','off')
hold on
title('McCabe-Thiele Diagram at Infinte Reflux')
xlabel('Liquid Phase Mole Fraction [x1]')

ylabel('Vapor Phase Mole Fraction [y1]')


axis([0 1 0 1]);
plot(xyx, xyy, 'k')
plot(xVLE, yVLE, 'k')
Xmin(length(Xmin)+1) = Xmin(length(Xmin));
Ymin(length(Ymin)+1) = Xmin(length(Xmin));
plot(Xd, Xd, 'mo')
plot(Xb, Xb, 'mo')
for vv = 2:(length(Xmin))
stepx_min = [Xmin(vv-1) Xmin(vv)];
stepy_min = [Ymin(vv-1) Ymin(vv)];
plot(stepx_min, stepy_min, 'b')
end

end
if minstep == 1 && maxstep == 1
pause
q = figure;
set(q,'name','Minimum Reflux','numbertitle','off')
hold on
title('McCabe-Thiele Diagram at Minimum Reflux for Given Feed')
xlabel('Liquid Phase Mole Fraction [x1]')
ylabel('Vapor Phase Mole Fraction [y1]')
axis([0 1 0 1]);
plot(xyx, xyy, 'k')
plot(xVLE, yVLE, 'k')
plot(Xd, Xd, 'mo')
plot(Xb, Xb, 'mo')
minTOLx = [pinch_x Xd];
minTOLy = [pinch_y Xd];
minBOLx = [Xb pinch_x];
minBOLy = [Xb pinch_y];
if pinch_x < Z
minFOLx = [pinch_x Z];
minFOLy = [pinch_y Z];
elseif pinch_x > Z
minFOLx = [Z pinch_x];
minFOLy = [Z pinch_y];
else
minFOLx = [Z Z];
minFOLy = [Z pinch_y];
end
plot(minTOLx , minTOLy, 'g')
plot(minBOLx , minBOLy, 'r')
plot(minFOLx , minFOLy, 'c')
end
pause
if column == 1;
c = figure;
set(c, 'name', 'Column Diagram', 'numbertitle', 'off')
hold on
title('Column at Specs [assuming total condenser and partial reboiler')
axis([0 100 0 100])
col_base = 20;
col_height = col_base + 60;
col_width = col_base + 20;
trays = stage_tot;
feed_tray = FeedLoc;
tray_height = (col_height - col_base) / (trays - 1);
tray_point = col_height - 0.5*tray_height;
bottoms_point = col_base + 0.5*tray_height;

LWx = [col_base col_base];


LWy = [col_base col_height];
RWx = [col_width col_width];
RWy = [col_base col_height];
TWx = [col_base col_width];
TWy = [col_height col_height];
BWx = [col_base col_width];
BWy = [col_base col_base];
up_line1 = 0.8*(col_width-col_base) + col_base;
up_line2 = col_height + 10;
upline_x = [up_line1 up_line1];
upline_y = [col_height up_line2];
rightline1 = [up_line1 (up_line1 + 15)];
rightline2 = [up_line2 up_line2];
r = 2.5;
condenser_centerx = rightline1(2) + r;
condenser_centery = up_line2;
slash_x = [rightline1(2) (rightline1(2)+2*r)];
slash_y = [(rightline2(2)-1.5*r) (rightline2(2)+1.5*r)];
arrow_left_x = [slash_x(1) slash_x(1)];
arrow_right_x = [slash_x(1) (slash_x(1)+2)];
arrow_left_y = [slash_y(1) (slash_y(1)+2)];
arrow_right_y = [slash_y(1) slash_y(1)];
angles = 0:0.001:2*pi;
xp=r*cos(angles);
yp=r*sin(angles);
downlinex = [condenser_centerx condenser_centerx];
downliney = [(condenser_centery - r) tray_point];
horizontal_linex = [col_width (col_width + 20)];
horizontal_liney = [tray_point tray_point];
arrow3x = [col_width col_width+3];
arrow4x = [(col_width + 20) (col_width +17)];
arrow3y = [tray_point (tray_point+2)];
arrow3y2 = [tray_point (tray_point-2)];
plot(arrow_left_x, arrow_left_y,'k')
plot(arrow_right_x,arrow_right_y,'k')
plot(arrow3x, arrow3y,'k')
plot(arrow4x, arrow3y, 'k')
plot(arrow4x, arrow3y2, 'k')
plot(arrow3x, arrow3y2,'k')
plot(horizontal_linex, horizontal_liney,'k')
plot(downlinex, downliney, 'k')
plot(condenser_centerx+xp,condenser_centery+yp, 'k');
plot(slash_x, slash_y, 'k');
plot(rightline1, rightline2, 'k')
plot(upline_x, upline_y, 'k')
up_line3 = 0.8*(col_width-col_base) + col_base;
up_line4 = col_base - 10;
upline_x1 = [up_line3 up_line3];
upline_y1 = [col_base up_line4];
rightline3 = [up_line3 (up_line3 + 15)];
rightline4 = [up_line4 up_line4];
reboiler_centerx = rightline3(2) + r;
reboiler_centery = up_line4;
upslash_x = [rightline3(2) (rightline3(2)+2*r)];
upslash_y = [(rightline4(2)-1.5*r) (rightline4(2)+1.5*r)];
arrow_left_x = [upslash_x(1) upslash_x(1)];
arrow_right_x = [upslash_x(1) (upslash_x(1)+2)];
arrow_left_y = [upslash_y(1) (upslash_y(1)+2)];
arrow_right_y = [upslash_y(1) upslash_y(1)];

xp1=r*cos(angles);
yp1=r*sin(angles);
downlinex = [reboiler_centerx reboiler_centerx];
downliney = [(reboiler_centery + r) bottoms_point];
horizontal_linex = [col_width reboiler_centerx];
horizontal_liney = [bottoms_point bottoms_point];
arrow3x = [col_width col_width+3];
arrow5x = [(reboiler_centerx + r) (reboiler_centerx + 10)];
arrow5y = [reboiler_centery reboiler_centery];
arrow3y = [bottoms_point (bottoms_point+2)];
arrow3y2 = [bottoms_point (bottoms_point-2)];
arrow7x = [reboiler_centerx+r-1.5 reboiler_centerx+r];
arrow7x2 = [arrow7x(2) arrow7x(2)];
arrow7y1 = [upslash_y(2) upslash_y(2)];
arrow7y2 = [upslash_y(2) (upslash_y(2)-2.5)];
arrow6x = [arrow5x(2)-2 arrow5x(2)];
arrow6y1 = [arrow5y(1)+2 arrow5y(1)];
arrow6y2 = [arrow5y(1)-2 arrow5y(1)];
arrow8x = [(reboiler_centerx-r-2) (reboiler_centerx-r)];
arrow8y1 = [(reboiler_centery+2) reboiler_centery];
arrow8y2 = [(reboiler_centery-2) reboiler_centery];
arrow9x = [(condenser_centerx-r-2) (condenser_centerx-r)];
arrow9y1 = [(condenser_centery+2) condenser_centery];
arrow9y2 = [(condenser_centery-2) condenser_centery];
plot(arrow8x, arrow8y1,'k')
plot(arrow8x, arrow8y2,'k')
plot(arrow9x, arrow9y1,'k')
plot(arrow9x, arrow9y2,'k')
plot(arrow6x, arrow6y1,'k')
plot(arrow6x, arrow6y2,'k')
plot(arrow7x, arrow7y1,'k')
plot(arrow7x2, arrow7y2,'k')
plot(arrow5x, arrow5y,'k')
plot(arrow3x, arrow3y2,'k')
plot(arrow3x, arrow3y,'k')
plot(horizontal_linex, horizontal_liney,'k')
plot(downlinex, downliney, 'k')
plot(reboiler_centerx+xp1,reboiler_centery+yp1, 'k');
plot(upslash_x, upslash_y, 'k');
plot(rightline3, rightline4, 'k')
plot(upline_x1, upline_y1, 'k')
tray = col_height;
tray_x = [col_base col_width];
note_position = 0.5*(col_width - col_base);
for nn = 1:(trays-1)
tray = tray - tray_height;
tray_y = [tray tray];
plot(tray_x, tray_y, 'b') ;
if nn == feed_tray && nn ~= trays
feed_x = [10 20];
feed_y = [(0.5*tray_height + tray) (0.5*tray_height + tray)];
plot(feed_x, feed_y, 'r')
arrow_x = [17 20];
arrow_y_top = [(2+feed_y(1)) feed_y(1)];
arrow_y_bot = [(feed_y(1)-2) feed_y(1)];
plot(arrow_x, arrow_y_top, 'r')
plot(arrow_x, arrow_y_bot, 'r')
end
end
if feed_tray == trays

feed_x = [10 reboiler_centerx];


feed_y = [3 3];
feedupx = [reboiler_centerx reboiler_centerx];
feedupy = [3 reboiler_centery-r];
feedup_x1 = [feedupx(1)-1.5 feedupx(1)];
feedup_x2 = [feedupx(1) feedupx(1)+1.5];
feedup_y1 = [feedupy(2)-1.5 feedupy(2)];
feedup_y2 = [feedupy(2) feedupy(2)-1.5];
downlinex = [10 10];
downliney = [30 3];
rlinex = [5 10];
rliney = [30 30];
plot(rlinex, rliney, 'r')
plot(downlinex, downliney, 'r')
plot(feed_x, feed_y,'r')
plot(feedupx, feedupy, 'r')
plot(feedup_x1,feedup_y1,'r')
plot(feedup_x2,feedup_y2,'r')

end
end

end
plot(LWx,
plot(RWx,
plot(TWx,
plot(BWx,

LWy,
RWy,
TWy,
BWy,

'k')
'k')
'k')
'k')

You might also like