Changeset 692 for branches/gui/eml/stage_separators/column.mso
- Timestamp:
- Nov 21, 2008, 7:57:17 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/gui/eml/stage_separators/column.mso
r678 r692 1118 1118 1119 1119 1120 #*----------------------------------------------------------------------1121 * Model of a Refluxed Stripping column containing:1122 * - NumberOfTrays like tray;1123 * - dymamic condenser without subcooling;1124 * - a splitter which separate reflux and distillate;1125 * - a pump in reflux stream;1126 *---------------------------------------------------------------------*1127 Model Refluxed_StrippingTeste1128 ATTRIBUTES1129 Pallete = true;1130 Icon = "icon/RefluxedCond";1131 Brief = "Model of a refluxed stripping column with dynamic condenser.";1132 Info =1133 "== Specify ==1134 * the feed stream of each tray (Inlet);1135 * the Murphree eficiency for each tray Emv;1136 * the InletV stream of the bottom tray unless its flow;1137 * the pump pressure difference;1138 * the heat supllied in the condenser;1139 * the condenser vapor outlet flow (OutletV.F);1140 * both splitter outlet flows OR one of the splitter outlet flows and the splitter frac.1141 1142 == Initial Conditions ==1143 * the trays temperature (OutletL.T);1144 * the trays liquid level (Level) OR the trays liquid flow (OutletL.F);1145 * (NoComps - 1) OutletL (OR OutletV) compositions for each tray;1146 1147 * the condenser temperature (OutletL.T);1148 * the condenser liquid level (Level);1149 * (NoComps - 1) OutletL (OR OutletV) compositions;1150 ";1151 1152 PARAMETERS1153 outer PP as Plugin(Brief = "External Physical Properties", Type="PP");1154 outer NComp as Integer;1155 NumberOfTrays as Integer(Brief="Number of trays", Default=2);1156 topdown as Integer(Brief="Trays counting (1=top-down, -1=bottom-up)", Default=1);1157 top as Integer(Brief="Number of top tray");1158 bot as Integer(Brief="Number of bottom tray");1159 VapourFlow as Switcher(Valid = ["on", "off"], Default = "on");1160 1161 SET1162 top = (NumberOfTrays-1)*(1-topdown)/2+1;1163 bot = NumberOfTrays/top;1164 1165 VARIABLES1166 trays(NumberOfTrays) as trayTeste;1167 cond as condenser;1168 sptop as splitter;1169 pump1 as pump;1170 alfaTopo as Real;1171 1172 EQUATIONS1173 switch VapourFlow1174 case "on":1175 cond.InletV.F*trays(top).vV = alfaTopo * trays(top).Ah * sqrt(2*(trays(top).OutletV.P -1176 cond.OutletL.P + 1e-8 * 'atm') / (trays(top).alfa*trays(top).rhoV));1177 when cond.InletV.F < 1e-6 * 'kmol/h' switchto "off";1178 1179 case "off":1180 cond.InletV.F = 0 * 'mol/s';1181 when trays(top).OutletV.P > cond.OutletL.P + 1e-1 * 'atm' switchto "on";1182 end1183 1184 CONNECTIONS1185 #vapor1186 trays([top+topdown:topdown:bot]).OutletV to trays([top:topdown:bot-topdown]).InletV;1187 trays(top).OutletV to cond.InletV;1188 1189 #liquid1190 cond.OutletL to sptop.Inlet;1191 sptop.Outlet2 to pump1.Inlet;1192 pump1.Outlet to trays(top).InletL;1193 trays([top:topdown:bot-topdown]).OutletL to trays([top+topdown:topdown:bot]).InletL;1194 end1195 1196 1197 #* -------------------------------------------------------------------1198 * Refluxed Stripping Column with:1199 *1200 * - NumberOfTrays like tray;1201 * - a steady state condenser (with subcooling);1202 * - a vessel drum (layed cilinder);1203 * - a splitter which separate reflux and distillate;1204 * - a pump in reflux stream.1205 *1206 * ------------------------------------------------------------------*1207 Model Refluxed_Stripping_subcoolingTeste1208 ATTRIBUTES1209 Pallete = true;1210 Icon = "icon/RefluxedSubcooling";1211 Brief = "Model of a refluxed stripping column with steady condenser.";1212 Info =1213 "== Specify ==1214 * the feed stream of each tray (Inlet);1215 * the Murphree eficiency for each tray Emv;1216 * the InletV stream of the bottom tray unless its flow;1217 * the pump head;1218 * the condenser pressure drop;1219 * the heat supllied in the top tank;1220 * the heat supllied in condenser;1221 * both top splitter outlet flows OR one of the splitter outlet flows and the splitter frac.1222 1223 == Initial Conditions ==1224 * the trays temperature (OutletL.T);1225 * the trays liquid level (Level) OR the trays liquid flow (OutletL.F);1226 * (NoComps - 1) OutletL (OR OutletV) compositions for each tray;1227 1228 * the top tank temperature (OutletL.T);1229 * the top tank liquid level (Level);1230 * (NoComps - 1) OutletL (OR OutletV) compositions;1231 ";1232 1233 PARAMETERS1234 outer PP as Plugin(Brief = "External Physical Properties", Type="PP");1235 outer NComp as Integer;1236 NumberOfTrays as Integer(Brief="Number of trays", Default=2);1237 topdown as Integer(Brief="Trays counting (1=top-down, -1=bottom-up)", Default=1);1238 top as Integer(Brief="Number of top tray");1239 bot as Integer(Brief="Number of bottom tray");1240 VapourFlow as Switcher(Valid = ["on", "off"], Default = "on");1241 1242 SET1243 top = (NumberOfTrays-1)*(1-topdown)/2+1;1244 bot = NumberOfTrays/top;1245 1246 VARIABLES1247 trays(NumberOfTrays) as trayTeste;1248 cond as condenserSteady;1249 ttop as tank_cylindrical;1250 sptop as splitter;1251 pump1 as pump;1252 alfaTopo as Real;1253 1254 EQUATIONS1255 switch VapourFlow1256 case "on":1257 cond.InletV.F*trays(top).vV = alfaTopo * trays(top).Ah * sqrt(2*(trays(top).OutletV.P -1258 cond.OutletL.P + 1e-8 * 'atm') / (trays(top).alfa*trays(top).rhoV));1259 when cond.InletV.F < 1e-6 * 'kmol/h' switchto "off";1260 1261 case "off":1262 cond.InletV.F = 0 * 'mol/s';1263 when trays(top).OutletV.P > cond.OutletL.P + 1e-1 * 'atm' switchto "on";1264 end1265 1266 CONNECTIONS1267 #vapor1268 trays([top+topdown:topdown:bot]).OutletV to trays([top:topdown:bot-topdown]).InletV;1269 trays(top).OutletV to cond.InletV;1270 1271 #liquid1272 cond.OutletL to ttop.Inlet;1273 ttop.Outlet to sptop.Inlet;1274 sptop.Outlet2 to pump1.Inlet;1275 pump1.Outlet to trays(top).InletL;1276 trays([top:topdown:bot-topdown]).OutletL to trays([top+topdown:topdown:bot]).InletL;1277 end1278 1279 1280 #*----------------------------------------------------------------------1281 * Model of a Refluxed Absorption column containing:1282 * - NumberOfTrays like tray;1283 * - dymamic condenser without subcooling;1284 * - a splitter which separate reflux and distillate;1285 * - a pump in reflux stream;1286 *---------------------------------------------------------------------*1287 Model Refluxed_AbsorptionTeste1288 ATTRIBUTES1289 Pallete = true;1290 Icon = "icon/RefluxedCond";1291 Brief = "Model of a refluxed absorption column with dynamic condenser.";1292 Info =1293 "== Specify ==1294 * the feed stream of each tray (Inlet);1295 * the Murphree eficiency for each tray Emv;1296 * the InletV stream of the bottom tray unless its flow;1297 * the pump pressure difference;1298 * the heat supllied in the condenser;1299 * the condenser vapor outlet flow (OutletV.F);1300 * both splitter outlet flows OR one of the splitter outlet flows and the splitter frac.1301 1302 == Initial Conditions ==1303 * the trays temperature (OutletL.T);1304 * the trays liquid level (Level) OR the trays liquid flow (OutletL.F);1305 * (NoComps - 1) OutletL (OR OutletV) compositions for each tray;1306 1307 * the condenser temperature (OutletL.T);1308 * the condenser liquid level (Level);1309 * (NoComps - 1) OutletL (OR OutletV) compositions;1310 ";1311 1312 PARAMETERS1313 outer PP as Plugin(Brief = "External Physical Properties", Type="PP");1314 outer NComp as Integer;1315 NumberOfTrays as Integer(Brief="Number of trays", Default=2);1316 topdown as Integer(Brief="Trays counting (1=top-down, -1=bottom-up)", Default=1);1317 top as Integer(Brief="Number of top tray");1318 bot as Integer(Brief="Number of bottom tray");1319 VapourFlow as Switcher(Valid = ["on", "off"], Default = "on");1320 1321 SET1322 top = (NumberOfTrays-1)*(1-topdown)/2+1;1323 bot = NumberOfTrays/top;1324 1325 VARIABLES1326 trays(NumberOfTrays) as trayTeste;1327 cond as condenser;1328 sptop as splitter;1329 pump1 as pump;1330 alfaTopo as Real;1331 1332 EQUATIONS1333 switch VapourFlow1334 case "on":1335 cond.InletV.F*trays(top).vV = alfaTopo * trays(top).Ah * sqrt(2*(trays(top).OutletV.P -1336 cond.OutletL.P + 1e-8 * 'atm') / (trays(top).alfa*trays(top).rhoV));1337 when cond.InletV.F < 1e-6 * 'kmol/h' switchto "off";1338 1339 case "off":1340 cond.InletV.F = 0 * 'mol/s';1341 when trays(top).OutletV.P > cond.OutletL.P + 1e-1 * 'atm' switchto "on";1342 end1343 1344 CONNECTIONS1345 #vapor1346 trays([top+topdown:topdown:bot]).OutletV to trays([top:topdown:bot-topdown]).InletV;1347 trays(top).OutletV to cond.InletV;1348 1349 #liquid1350 cond.OutletL to cond.InletV;1351 cond.OutletL to sptop.Inlet;1352 sptop.Outlet2 to pump1.Inlet;1353 pump1.Outlet to trays(top).InletL;1354 trays([top:topdown:bot-topdown]).OutletL to trays([top+topdown:topdown:bot]).InletL;1355 end1356 1357 1358 #* -------------------------------------------------------------------1359 * Refluxed Absorption Column with:1360 *1361 * - NumberOfTrays like tray;1362 * - a steady state condenser (with subcooling);1363 * - a vessel drum (layed cilinder);1364 * - a splitter which separate reflux and distillate;1365 * - a pump in reflux stream.1366 *1367 * ------------------------------------------------------------------*1368 Model Refluxed_Absorption_subcoolingTeste1369 ATTRIBUTES1370 Pallete = true;1371 Icon = "icon/RefluxedSubcooling";1372 Brief = "Model of a refluxed absorption column with steady condenser.";1373 Info =1374 "== Specify ==1375 * the feed stream of each tray (Inlet);1376 * the Murphree eficiency for each tray Emv;1377 * the InletV stream of the bottom tray unless its flow;1378 * the pump head;1379 * the condenser pressure drop;1380 * the heat supllied in the top tank;1381 * the heat supllied in condenser;1382 * both top splitter outlet flows OR one of the splitter outlet flows and the splitter frac.1383 1384 == Initial Conditions ==1385 * the trays temperature (OutletL.T);1386 * the trays liquid level (Level) OR the trays liquid flow (OutletL.F);1387 * (NoComps - 1) OutletL (OR OutletV) compositions for each tray;1388 1389 * the top tank temperature (OutletL.T);1390 * the top tank liquid level (Level);1391 * (NoComps - 1) OutletL (OR OutletV) compositions;1392 ";1393 1394 PARAMETERS1395 outer PP as Plugin(Brief = "External Physical Properties", Type="PP");1396 outer NComp as Integer;1397 NumberOfTrays as Integer(Brief="Number of trays", Default=2);1398 topdown as Integer(Brief="Trays counting (1=top-down, -1=bottom-up)", Default=1);1399 top as Integer(Brief="Number of top tray");1400 bot as Integer(Brief="Number of bottom tray");1401 VapourFlow as Switcher(Valid = ["on", "off"], Default = "on");1402 1403 SET1404 top = (NumberOfTrays-1)*(1-topdown)/2+1;1405 bot = NumberOfTrays/top;1406 1407 VARIABLES1408 trays(NumberOfTrays) as trayTeste;1409 cond as condenserSteady;1410 ttop as tank_cylindrical;1411 sptop as splitter;1412 pump1 as pump;1413 alfaTopo as Real;1414 1415 EQUATIONS1416 switch VapourFlow1417 case "on":1418 cond.InletV.F*trays(top).vV = alfaTopo * trays(top).Ah * sqrt(2*(trays(top).OutletV.P -1419 cond.OutletL.P + 1e-8 * 'atm') / (trays(top).alfa*trays(top).rhoV));1420 when cond.InletV.F < 1e-6 * 'kmol/h' switchto "off";1421 1422 case "off":1423 cond.InletV.F = 0 * 'mol/s';1424 when trays(top).OutletV.P > cond.OutletL.P + 1e-1 * 'atm' switchto "on";1425 end1426 1427 CONNECTIONS1428 #vapor1429 trays([top+topdown:topdown:bot]).OutletV to trays([top:topdown:bot-topdown]).InletV;1430 trays(top).OutletV to cond.InletV;1431 1432 #liquid1433 cond.OutletL to ttop.Inlet;1434 ttop.Outlet to sptop.Inlet;1435 sptop.Outlet2 to pump1.Inlet;1436 pump1.Outlet to trays(top).InletL;1437 trays([top:topdown:bot-topdown]).OutletL to trays([top+topdown:topdown:bot]).InletL;1438 end1439 1440 1441 1120 #* ------------------------------------------------------------------- 1442 1121 * Reboiled Stripping Column model with: … … 1445 1124 * - a kettle reboiler; 1446 1125 * 1447 * ------------------------------------------------------------------* 1448 Model Reboiled_Stripping_kettleTeste 1449 ATTRIBUTES 1126 * ------------------------------------------------------------------*# 1127 Model Reboiled_Stripping_kettle as Section_ColumnBasic 1128 1129 ATTRIBUTES 1450 1130 Pallete = true; 1451 1131 Icon = "icon/ReboiledKettle"; … … 1470 1150 "; 1471 1151 1472 PARAMETERS 1473 outer PP as Plugin(Brief = "External Physical Properties", Type="PP"); 1474 outer NComp as Integer; 1475 NumberOfTrays as Integer(Brief="Number of trays", Default=2); 1476 topdown as Integer(Brief="Trays counting (1=top-down, -1=bottom-up)", Default=1); 1477 top as Integer(Brief="Number of top tray"); 1478 bot as Integer(Brief="Number of bottom tray"); 1479 1480 SET 1481 top = (NumberOfTrays-1)*(1-topdown)/2+1; 1482 bot = NumberOfTrays/top; 1483 1484 VARIABLES 1485 trays(NumberOfTrays) as trayTeste; 1486 reb as reboiler; 1487 1488 CONNECTIONS 1489 #vapor 1490 reb.OutletV to trays(bot).InletV; 1491 trays([top+topdown:topdown:bot]).OutletV to trays([top:topdown:bot-topdown]).InletV; 1492 1493 #liquid 1494 trays([top:topdown:bot-topdown]).OutletL to trays([top+topdown:topdown:bot]).InletL; 1495 trays(bot).OutletL to reb.InletL; 1152 VARIABLES 1153 1154 out VapourDrawOff as vapour_stream (Brief="Vapour Outlet in the section", PosX=1, PosY=0.325,Protected = true); 1155 out LiquidDrawOff as liquid_stream (Brief="Liquid Outlet in the section", PosX=1, PosY=0.47,Protected = true); 1156 1157 in LiquidInlet as stream (Brief="Liquid Inlet in the section", PosX=0.20, PosY=0); 1158 out VapourOutlet as vapour_stream (Brief="Vapour Outlet in the section", PosX=0.05, PosY=0); 1159 1160 REBOILER as reboiler; 1161 1162 CONNECTIONS 1163 #vapor 1164 REBOILER.OutletV to trays(NumberOfTrays).InletV; 1165 1166 #liquid 1167 trays(NumberOfTrays).OutletL to REBOILER.InletL; 1168 1496 1169 end 1497 1170 … … 1506 1179 * 1507 1180 * ------------------------------------------------------------------* 1508 Model Reboiled_Stripping_thermosyphon Teste1181 Model Reboiled_Stripping_thermosyphon 1509 1182 ATTRIBUTES 1510 1183 Pallete = true; … … 1549 1222 tbottom as tank; 1550 1223 1551 CONNECTIONS1552 #vapor1553 reb.OutletV to trays(bot).InletV;1554 trays([top+topdown:topdown:bot]).OutletV to trays([top:topdown:bot-topdown]).InletV;1555 1556 #liquid1557 trays([top:topdown:bot-topdown]).OutletL to trays([top+topdown:topdown:bot]).InletL;1558 trays(bot).OutletL to tbottom.Inlet;1559 tbottom.Outlet to spbottom.Inlet;1560 spbottom.Outlet2 to reb.InletL;1561 end1562 1563 1564 #* -------------------------------------------------------------------1565 * Reboiled Absorption Column model with:1566 *1567 * - NumberOfTrays like tray;1568 * - a kettle reboiler;1569 *1570 * ------------------------------------------------------------------*1571 Model Reboiled_Absorption_kettleTeste1572 ATTRIBUTES1573 Pallete = true;1574 Icon = "icon/ReboiledKettle";1575 Brief = "Model of a reboiled absorption column with dynamic reboiler.";1576 Info =1577 "== Specify ==1578 * the feed stream of each tray (Inlet);1579 * the Murphree eficiency for each tray Emv;1580 * the vapour flow leaving the top of the column;1581 * the InletL stream of the top tray;1582 * the heat supllied in the reboiler;1583 * the reboiler liquid outlet flow (OutletL.F);1584 1585 == Initial Conditions ==1586 * the trays temperature (OutletL.T);1587 * the trays liquid level (Level) OR the trays liquid flow (OutletL.F);1588 * (NoComps - 1) OutletL (OR OutletV) compositions for each tray;1589 1590 * the reboiler temperature (OutletL.T);1591 * the reboiler liquid level (Level);1592 * (NoComps - 1) OutletL (OR OutletV) compositions.1593 ";1594 1595 PARAMETERS1596 outer PP as Plugin(Brief = "External Physical Properties", Type="PP");1597 outer NComp as Integer;1598 NumberOfTrays as Integer(Brief="Number of trays", Default=2);1599 topdown as Integer(Brief="Trays counting (1=top-down, -1=bottom-up)", Default=1);1600 top as Integer(Brief="Number of top tray");1601 bot as Integer(Brief="Number of bottom tray");1602 1603 SET1604 top = (NumberOfTrays-1)*(1-topdown)/2+1;1605 bot = NumberOfTrays/top;1606 1607 VARIABLES1608 trays(NumberOfTrays) as trayTeste;1609 reb as reboiler;1610 1611 CONNECTIONS1612 #vapor1613 reb.OutletV to trays(bot).InletV;1614 trays([top+topdown:topdown:bot]).OutletV to trays([top:topdown:bot-topdown]).InletV;1615 1616 #liquid1617 trays([top:topdown:bot-topdown]).OutletL to trays([top+topdown:topdown:bot]).InletL;1618 trays(bot).OutletL to reb.InletL;1619 end1620 1621 1622 #* -------------------------------------------------------------------1623 * Reboiled Absorption Column model with:1624 *1625 * - NumberOfTrays like tray;1626 * - a vessel in the bottom of column;1627 * - a splitter which separate the bottom product and the stream to reboiler;1628 * - steady state reboiler (thermosyphon);1629 *1630 * ------------------------------------------------------------------*1631 Model Reboiled_Absorption_thermosyphonTeste1632 ATTRIBUTES1633 Pallete = true;1634 Icon = "icon/ReboiledThermosyphon";1635 Brief = "Model of a reboiled absorption column with steady reboiler.";1636 Info =1637 "== Specify ==1638 * the feed stream of each tray (Inlet);1639 * the Murphree eficiency for each tray (Emv);1640 * the vapour flow leaving the top of the column;1641 * the InletL stream of the top tray;1642 * the heat supllied in bottom tank;1643 * the heat supllied in the reboiler;1644 * the Outlet1 flow in the bottom splitter (spbottom.Outlet1.F) that corresponds to the bottom product;1645 1646 == Initial Conditions ==1647 * the trays temperature (OutletL.T);1648 * the trays liquid level (Level) OR the trays liquid flow (OutletL.F);1649 * (NoComps - 1) OutletL (OR OutletV) compositions for each tray;1650 1651 * the bottom tank temperature (OutletL.T);1652 * the bottom tank liquid level (Level);1653 * (NoComps - 1) OutletL (OR OutletV) compositions.1654 ";1655 1656 PARAMETERS1657 outer PP as Plugin(Brief = "External Physical Properties", Type="PP");1658 outer NComp as Integer;1659 NumberOfTrays as Integer(Brief="Number of trays", Default=2);1660 topdown as Integer(Brief="Trays counting (1=top-down, -1=bottom-up)", Default=1);1661 top as Integer(Brief="Number of top tray");1662 bot as Integer(Brief="Number of bottom tray");1663 1664 SET1665 top = (NumberOfTrays-1)*(1-topdown)/2+1;1666 bot = NumberOfTrays/top;1667 1668 VARIABLES1669 trays(NumberOfTrays) as trayTeste;1670 reb as reboilerSteady;1671 spbottom as splitter;1672 tbottom as tank;1673 1674 1224 CONNECTIONS 1675 1225 #vapor
Note: See TracChangeset
for help on using the changeset viewer.