- Timestamp:
- Oct 26, 2007, 12:44:56 PM (15 years ago)
- Location:
- trunk/eml/stage_separators
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/eml/stage_separators/column.mso
r363 r398 79 79 trays(NTrays) as tray; 80 80 81 EQUATIONS82 "Pressure Drop through the tray"83 trays([top:topdown:bot]).OutletV.F = (1 + tanh(1 *84 (trays([top:topdown:bot]).OutletV.P -85 trays([top:topdown:bot]).InletL.P)/'Pa'))/2 *86 trays([top:topdown:bot]).Ah/trays([top:topdown:bot]).vV *87 sqrt(2*(trays([top:topdown:bot]).OutletV.P -88 trays([top:topdown:bot]).InletL.P + 1e-8 * 'atm') /89 (trays([top:topdown:bot]).alfa*trays([top:topdown:bot]).rhoV));90 91 81 CONNECTIONS 92 82 trays([top+topdown:topdown:bot]).OutletV to trays([top:topdown:bot-topdown]).InletV; … … 139 129 top as Integer(Brief="Number of top tray"); 140 130 bot as Integer(Brief="Number of bottom tray"); 141 131 VapourFlow as Switcher(Valid = ["on", "off"], Default = "on"); 132 142 133 SET 143 134 top = (NTrays-1)*(1-topdown)/2+1; … … 150 141 sptop as splitter; 151 142 pump1 as pump; 152 143 alfaTopo as Real; 144 153 145 EQUATIONS 154 if (reb.OutletV.P > reb.InletL.P) then 155 "Pressure Drop through the reboiler" 156 reb.OutletV.F = trays(bot).Ah/reb.vV * sqrt((reb.OutletV.P - trays(bot).OutletL.P) 157 / (trays(bot).beta*reb.rhoV) ); 158 else 159 "No flow in reboiler" 160 reb.OutletV.F = 0.0 * 'mol/s'; 161 end 162 163 "Pressure Drop through the tray" 164 trays(top).OutletV.F = (1 + tanh(1 * (trays(top).OutletV.P - cond.OutletL.P)/'Pa'))/2 * 165 trays(top).Ah/trays(top).vV * sqrt(2*(trays(top).OutletV.P - 146 switch VapourFlow 147 case "on": 148 cond.InletV.F*trays(top).vV = alfaTopo * trays(top).Ah * sqrt(2*(trays(top).OutletV.P - 166 149 cond.OutletL.P + 1e-8 * 'atm') / (trays(top).alfa*trays(top).rhoV)); 150 when cond.InletV.F < 1e-6 * 'kmol/h' switchto "off"; 167 151 168 trays([top+topdown:topdown:bot]).OutletV.F = (1 + tanh(1 * 169 (trays([top+topdown:topdown:bot]).OutletV.P - 170 trays([top+topdown:topdown:bot]).InletL.P)/'Pa'))/2 * 171 trays([top+topdown:topdown:bot]).Ah/trays([top+topdown:topdown:bot]).vV * 172 sqrt(2*(trays([top+topdown:topdown:bot]).OutletV.P - 173 trays([top+topdown:topdown:bot]).InletL.P + 1e-8 * 'atm') / 174 (trays([top+topdown:topdown:bot]).alfa*trays([top+topdown:topdown:bot]).rhoV)); 152 case "off": 153 cond.InletV.F = 0 * 'mol/s'; 154 when trays(top).OutletV.P > cond.OutletL.P + 1e-1 * 'atm' switchto "on"; 155 end 175 156 176 157 CONNECTIONS … … 239 220 top as Integer(Brief="Number of top tray"); 240 221 bot as Integer(Brief="Number of bottom tray"); 222 VapourFlow as Switcher(Valid = ["on", "off"], Default = "on"); 241 223 242 224 SET … … 253 235 sptop as splitter; 254 236 pump1 as pump; 237 alfaTopo as Real; 255 238 256 239 EQUATIONS 257 if (reb.OutletV.P > reb.InletL.P) then 258 "Pressure Drop through the reboiler" 259 reb.OutletV.F = trays(bot).Ah/reb.vV * sqrt((reb.OutletV.P - trays(bot).OutletL.P) 260 / (trays(bot).alfa*reb.rhoV) ); 261 else 262 "No flow in reboiler" 263 reb.OutletV.F = 0.0 * 'mol/s'; 240 switch VapourFlow 241 case "on": 242 cond.InletV.F*trays(top).vV = alfaTopo * trays(top).Ah * sqrt(2*(trays(top).OutletV.P - 243 cond.OutletL.P + 1e-8 * 'atm') / (trays(top).alfa*trays(top).rhoV)); 244 when cond.InletV.F < 1e-6 * 'kmol/h' switchto "off"; 245 246 case "off": 247 cond.InletV.F = 0 * 'mol/s'; 248 when trays(top).OutletV.P > cond.OutletL.P + 1e-1 * 'atm' switchto "on"; 264 249 end 265 266 "Pressure Drop through the tray"267 trays(top).OutletV.F = (1 + tanh(1 * (trays(top).OutletV.P - ttop.Outlet.P)/'Pa'))/2 *268 trays(top).Ah/trays(top).vV /2* sqrt(2*(trays(top).OutletV.P -269 ttop.Outlet.P + 1e-8 * 'atm') / (trays(top).alfa*trays(top).rhoV));270 271 trays([top+topdown:topdown:bot]).OutletV.F = (1 + tanh(1 *272 (trays([top+topdown:topdown:bot]).OutletV.P -273 trays([top+topdown:topdown:bot]).InletL.P)/'Pa'))/2 *274 trays([top+topdown:topdown:bot]).Ah/trays([top+topdown:topdown:bot]).vV /2*275 sqrt(2*(trays([top+topdown:topdown:bot]).OutletV.P -276 trays([top+topdown:topdown:bot]).InletL.P + 1e-8 * 'atm') /277 (trays([top+topdown:topdown:bot]).alfa*trays([top+topdown:topdown:bot]).rhoV));278 250 279 251 CONNECTIONS … … 343 315 top as Integer(Brief="Number of top tray"); 344 316 bot as Integer(Brief="Number of bottom tray"); 317 VapourFlow as Switcher(Valid = ["on", "off"], Default = "on"); 345 318 346 319 SET … … 356 329 sptop as splitter; 357 330 pump1 as pump; 331 alfaTopo as Real; 358 332 359 333 EQUATIONS 360 if (reb.OutletV.P > reb.InletL.P) then 361 "Pressure Drop through the reboiler" 362 reb.OutletV.F = trays(bot).Ah/reb.vV * sqrt((reb.OutletV.P - trays(bot).OutletL.P) 363 / (trays(bot).alfa*reb.rhoV) ); 364 else 365 "No flow in reboiler" 366 reb.OutletV.F = 0.0 * 'mol/s'; 367 end 368 369 "Pressure Drop through the tray" 370 trays(top).OutletV.F = (1 + tanh(1 * (trays(top).OutletV.P - cond.OutletL.P)/'Pa'))/2 * 371 trays(top).Ah/trays(top).vV * sqrt(2*(trays(top).OutletV.P - 334 switch VapourFlow 335 case "on": 336 cond.InletV.F*trays(top).vV = alfaTopo * trays(top).Ah * sqrt(2*(trays(top).OutletV.P - 372 337 cond.OutletL.P + 1e-8 * 'atm') / (trays(top).alfa*trays(top).rhoV)); 338 when cond.InletV.F < 1e-6 * 'kmol/h' switchto "off"; 373 339 374 trays([top+topdown:topdown:bot]).OutletV.F = (1 + tanh(1 * 375 (trays([top+topdown:topdown:bot]).OutletV.P - 376 trays([top+topdown:topdown:bot]).InletL.P)/'Pa'))/2 * 377 trays([top+topdown:topdown:bot]).Ah/trays([top+topdown:topdown:bot]).vV * 378 sqrt(2*(trays([top+topdown:topdown:bot]).OutletV.P - 379 trays([top+topdown:topdown:bot]).InletL.P + 1e-8 * 'atm') / 380 (trays([top+topdown:topdown:bot]).alfa*trays([top+topdown:topdown:bot]).rhoV)); 340 case "off": 341 cond.InletV.F = 0 * 'mol/s'; 342 when trays(top).OutletV.P > cond.OutletL.P + 1e-1 * 'atm' switchto "on"; 343 end 381 344 382 345 CONNECTIONS … … 444 407 top as Integer(Brief="Number of top tray"); 445 408 bot as Integer(Brief="Number of bottom tray"); 409 VapourFlow as Switcher(Valid = ["on", "off"], Default = "on"); 446 410 447 411 SET … … 456 420 sptop as splitter; 457 421 pump1 as pump; 422 alfaTopo as Real; 458 423 459 424 EQUATIONS 460 if (reb.OutletV.P > reb.InletL.P) then 461 "Pressure Drop through the reboiler" 462 reb.OutletV.F = trays(bot).Ah/reb.vV * sqrt((reb.OutletV.P - trays(bot).OutletL.P) 463 / (trays(bot).beta*reb.rhoV) ); 464 else 465 "No flow in reboiler" 466 reb.OutletV.F = 0.0 * 'mol/s'; 467 end 468 469 "Pressure Drop through the tray" 470 trays(top).OutletV.F = (1 + tanh(1 * (trays(top).OutletV.P - ttop.Outlet.P)/'Pa'))/2 * 471 trays(top).Ah/trays(top).vV * sqrt(2*(trays(top).OutletV.P - 472 ttop.Outlet.P + 1e-8 * 'atm') / (trays(top).alfa*trays(top).rhoV)); 425 switch VapourFlow 426 case "on": 427 cond.InletV.F*trays(top).vV = alfaTopo * trays(top).Ah * sqrt(2*(trays(top).OutletV.P - 428 cond.OutletL.P + 1e-8 * 'atm') / (trays(top).alfa*trays(top).rhoV)); 429 when cond.InletV.F < 1e-6 * 'kmol/h' switchto "off"; 473 430 474 trays([top+topdown:topdown:bot]).OutletV.F = (1 + tanh(1 * 475 (trays([top+topdown:topdown:bot]).OutletV.P - 476 trays([top+topdown:topdown:bot]).InletL.P)/'Pa'))/2 * 477 trays([top+topdown:topdown:bot]).Ah/trays([top+topdown:topdown:bot]).vV * 478 sqrt(2*(trays([top+topdown:topdown:bot]).OutletV.P - 479 trays([top+topdown:topdown:bot]).InletL.P + 1e-8 * 'atm') / 480 (trays([top+topdown:topdown:bot]).alfa*trays([top+topdown:topdown:bot]).rhoV)); 431 case "off": 432 cond.InletV.F = 0 * 'mol/s'; 433 when trays(top).OutletV.P > cond.OutletL.P + 1e-1 * 'atm' switchto "on"; 434 end 481 435 482 436 CONNECTIONS … … 512 466 * the feed stream of each tray (Inlet); 513 467 * the Murphree eficiency for each tray Emv; 514 * the InletV stream of the bottom tray ;468 * the InletV stream of the bottom tray unless its flow; 515 469 * the pump pressure difference; 516 470 * the heat supllied in the condenser; … … 535 489 top as Integer(Brief="Number of top tray"); 536 490 bot as Integer(Brief="Number of bottom tray"); 491 VapourFlow as Switcher(Valid = ["on", "off"], Default = "on"); 537 492 538 493 SET … … 545 500 sptop as splitter; 546 501 pump1 as pump; 502 alfaTopo as Real; 547 503 548 504 EQUATIONS 549 "Pressure Drop through the tray"550 trays(top).OutletV.F = (1 + tanh(1 * (trays(top).OutletV.P - cond.OutletL.P)/'Pa'))/2 *551 trays(top).Ah/trays(top).vV* sqrt(2*(trays(top).OutletV.P -505 switch VapourFlow 506 case "on": 507 cond.InletV.F*trays(top).vV = alfaTopo * trays(top).Ah * sqrt(2*(trays(top).OutletV.P - 552 508 cond.OutletL.P + 1e-8 * 'atm') / (trays(top).alfa*trays(top).rhoV)); 509 when cond.InletV.F < 1e-6 * 'kmol/h' switchto "off"; 553 510 554 trays([top+topdown:topdown:bot]).OutletV.F = (1 + tanh(1 * 555 (trays([top+topdown:topdown:bot]).OutletV.P - 556 trays([top+topdown:topdown:bot]).InletL.P)/'Pa'))/2 * 557 trays([top+topdown:topdown:bot]).Ah/trays([top+topdown:topdown:bot]).vV * 558 sqrt(2*(trays([top+topdown:topdown:bot]).OutletV.P - 559 trays([top+topdown:topdown:bot]).InletL.P + 1e-8 * 'atm') / 560 (trays([top+topdown:topdown:bot]).alfa*trays([top+topdown:topdown:bot]).rhoV)); 511 case "off": 512 cond.InletV.F = 0 * 'mol/s'; 513 when trays(top).OutletV.P > cond.OutletL.P + 1e-1 * 'atm' switchto "on"; 514 end 561 515 562 516 CONNECTIONS … … 592 546 * the feed stream of each tray (Inlet); 593 547 * the Murphree eficiency for each tray Emv; 594 * the InletV stream of the bottom tray ;548 * the InletV stream of the bottom tray unless its flow; 595 549 * the pump head; 596 550 * the condenser pressure drop; … … 616 570 top as Integer(Brief="Number of top tray"); 617 571 bot as Integer(Brief="Number of bottom tray"); 572 VapourFlow as Switcher(Valid = ["on", "off"], Default = "on"); 618 573 619 574 SET … … 627 582 sptop as splitter; 628 583 pump1 as pump; 584 alfaTopo as Real; 629 585 630 586 EQUATIONS 631 "Pressure Drop through the tray" 632 trays(top).OutletV.F = (1 + tanh(1 * (trays(top).OutletV.P - ttop.Outlet.P)/'Pa'))/2 * 633 trays(top).Ah/trays(top).vV * sqrt(2*(trays(top).OutletV.P - 634 ttop.Outlet.P + 1e-8 * 'atm') / (trays(top).alfa*trays(top).rhoV)); 587 switch VapourFlow 588 case "on": 589 cond.InletV.F*trays(top).vV = alfaTopo * trays(top).Ah * sqrt(2*(trays(top).OutletV.P - 590 cond.OutletL.P + 1e-8 * 'atm') / (trays(top).alfa*trays(top).rhoV)); 591 when cond.InletV.F < 1e-6 * 'kmol/h' switchto "off"; 635 592 636 trays([top+topdown:topdown:bot]).OutletV.F = (1 + tanh(1 * 637 (trays([top+topdown:topdown:bot]).OutletV.P - 638 trays([top+topdown:topdown:bot]).InletL.P)/'Pa'))/2 * 639 trays([top+topdown:topdown:bot]).Ah/trays([top+topdown:topdown:bot]).vV * 640 sqrt(2*(trays([top+topdown:topdown:bot]).OutletV.P - 641 trays([top+topdown:topdown:bot]).InletL.P + 1e-8 * 'atm') / 642 (trays([top+topdown:topdown:bot]).alfa*trays([top+topdown:topdown:bot]).rhoV)); 593 case "off": 594 cond.InletV.F = 0 * 'mol/s'; 595 when trays(top).OutletV.P > cond.OutletL.P + 1e-1 * 'atm' switchto "on"; 596 end 643 597 644 598 CONNECTIONS … … 672 626 * the feed stream of each tray (Inlet); 673 627 * the Murphree eficiency for each tray Emv; 674 * the InletV stream of the bottom tray ;628 * the InletV stream of the bottom tray unless its flow; 675 629 * the pump pressure difference; 676 630 * the heat supllied in the condenser; … … 695 649 top as Integer(Brief="Number of top tray"); 696 650 bot as Integer(Brief="Number of bottom tray"); 651 VapourFlow as Switcher(Valid = ["on", "off"], Default = "on"); 697 652 698 653 SET … … 705 660 sptop as splitter; 706 661 pump1 as pump; 662 alfaTopo as Real; 707 663 708 664 EQUATIONS 709 "Pressure Drop through the tray"710 trays(top).OutletV.F = (1 + tanh(1 * (trays(top).OutletV.P - cond.OutletL.P)/'Pa'))/2 *711 trays(top).Ah/trays(top).vV* sqrt(2*(trays(top).OutletV.P -665 switch VapourFlow 666 case "on": 667 cond.InletV.F*trays(top).vV = alfaTopo * trays(top).Ah * sqrt(2*(trays(top).OutletV.P - 712 668 cond.OutletL.P + 1e-8 * 'atm') / (trays(top).alfa*trays(top).rhoV)); 669 when cond.InletV.F < 1e-6 * 'kmol/h' switchto "off"; 713 670 714 trays([top+topdown:topdown:bot]).OutletV.F = (1 + tanh(1 * 715 (trays([top+topdown:topdown:bot]).OutletV.P - 716 trays([top+topdown:topdown:bot]).InletL.P)/'Pa'))/2 * 717 trays([top+topdown:topdown:bot]).Ah/trays([top+topdown:topdown:bot]).vV * 718 sqrt(2*(trays([top+topdown:topdown:bot]).OutletV.P - 719 trays([top+topdown:topdown:bot]).InletL.P + 1e-8 * 'atm') / 720 (trays([top+topdown:topdown:bot]).alfa*trays([top+topdown:topdown:bot]).rhoV)); 671 case "off": 672 cond.InletV.F = 0 * 'mol/s'; 673 when trays(top).OutletV.P > cond.OutletL.P + 1e-1 * 'atm' switchto "on"; 674 end 721 675 722 676 CONNECTIONS … … 752 706 * the feed stream of each tray (Inlet); 753 707 * the Murphree eficiency for each tray Emv; 754 * the InletV stream of the bottom tray ;708 * the InletV stream of the bottom tray unless its flow; 755 709 * the pump head; 756 710 * the condenser pressure drop; … … 776 730 top as Integer(Brief="Number of top tray"); 777 731 bot as Integer(Brief="Number of bottom tray"); 732 VapourFlow as Switcher(Valid = ["on", "off"], Default = "on"); 778 733 779 734 SET … … 787 742 sptop as splitter; 788 743 pump1 as pump; 744 alfaTopo as Real; 789 745 790 746 EQUATIONS 791 "Pressure Drop through the tray" 792 trays(top).OutletV.F = (1 + tanh(1 * (trays(top).OutletV.P - ttop.Outlet.P)/'Pa'))/2 * 793 trays(top).Ah/trays(top).vV * sqrt(2*(trays(top).OutletV.P - 794 ttop.Outlet.P + 1e-8 * 'atm') / (trays(top).alfa*trays(top).rhoV)); 747 switch VapourFlow 748 case "on": 749 cond.InletV.F*trays(top).vV = alfaTopo * trays(top).Ah * sqrt(2*(trays(top).OutletV.P - 750 cond.OutletL.P + 1e-8 * 'atm') / (trays(top).alfa*trays(top).rhoV)); 751 when cond.InletV.F < 1e-6 * 'kmol/h' switchto "off"; 795 752 796 trays([top+topdown:topdown:bot]).OutletV.F = (1 + tanh(1 * 797 (trays([top+topdown:topdown:bot]).OutletV.P - 798 trays([top+topdown:topdown:bot]).InletL.P)/'Pa'))/2 * 799 trays([top+topdown:topdown:bot]).Ah/trays([top+topdown:topdown:bot]).vV * 800 sqrt(2*(trays([top+topdown:topdown:bot]).OutletV.P - 801 trays([top+topdown:topdown:bot]).InletL.P + 1e-8 * 'atm') / 802 (trays([top+topdown:topdown:bot]).alfa*trays([top+topdown:topdown:bot]).rhoV)); 753 case "off": 754 cond.InletV.F = 0 * 'mol/s'; 755 when trays(top).OutletV.P > cond.OutletL.P + 1e-1 * 'atm' switchto "on"; 756 end 803 757 804 758 CONNECTIONS … … 832 786 * the feed stream of each tray (Inlet); 833 787 * the Murphree eficiency for each tray Emv; 834 * the InletV stream of the bottom tray ;788 * the InletV stream of the bottom tray unless its flow; 835 789 * the pump pressure difference; 836 790 * the heat supllied in the condenser; … … 855 809 top as Integer(Brief="Number of top tray"); 856 810 bot as Integer(Brief="Number of bottom tray"); 811 VapourFlow as Switcher(Valid = ["on", "off"], Default = "on"); 857 812 858 813 SET … … 865 820 sptop as splitter; 866 821 pump1 as pump; 822 alfaTopo as Real; 867 823 868 824 EQUATIONS 869 "Pressure Drop through the tray"870 trays(top).OutletV.F = (1 + tanh(1 * (trays(top).OutletV.P - cond.OutletL.P)/'Pa'))/2 *871 trays(top).Ah/trays(top).vV* sqrt(2*(trays(top).OutletV.P -825 switch VapourFlow 826 case "on": 827 cond.InletV.F*trays(top).vV = alfaTopo * trays(top).Ah * sqrt(2*(trays(top).OutletV.P - 872 828 cond.OutletL.P + 1e-8 * 'atm') / (trays(top).alfa*trays(top).rhoV)); 829 when cond.InletV.F < 1e-6 * 'kmol/h' switchto "off"; 873 830 874 trays([top+topdown:topdown:bot]).OutletV.F = (1 + tanh(1 * 875 (trays([top+topdown:topdown:bot]).OutletV.P - 876 trays([top+topdown:topdown:bot]).InletL.P)/'Pa'))/2 * 877 trays([top+topdown:topdown:bot]).Ah/trays([top+topdown:topdown:bot]).vV * 878 sqrt(2*(trays([top+topdown:topdown:bot]).OutletV.P - 879 trays([top+topdown:topdown:bot]).InletL.P + 1e-8 * 'atm') / 880 (trays([top+topdown:topdown:bot]).alfa*trays([top+topdown:topdown:bot]).rhoV)); 831 case "off": 832 cond.InletV.F = 0 * 'mol/s'; 833 when trays(top).OutletV.P > cond.OutletL.P + 1e-1 * 'atm' switchto "on"; 834 end 881 835 882 836 CONNECTIONS … … 913 867 * the feed stream of each tray (Inlet); 914 868 * the Murphree eficiency for each tray Emv; 915 * the InletV stream of the bottom tray ;869 * the InletV stream of the bottom tray unless its flow; 916 870 * the pump head; 917 871 * the condenser pressure drop; … … 937 891 top as Integer(Brief="Number of top tray"); 938 892 bot as Integer(Brief="Number of bottom tray"); 893 VapourFlow as Switcher(Valid = ["on", "off"], Default = "on"); 939 894 940 895 SET … … 948 903 sptop as splitter; 949 904 pump1 as pump; 905 alfaTopo as Real; 950 906 951 907 EQUATIONS 952 "Pressure Drop through the tray" 953 trays(top).OutletV.F = (1 + tanh(1 * (trays(top).OutletV.P - ttop.Outlet.P)/'Pa'))/2 * 954 trays(top).Ah/trays(top).vV * sqrt(2*(trays(top).OutletV.P - 955 ttop.Outlet.P + 1e-8 * 'atm') / (trays(top).alfa*trays(top).rhoV)); 908 switch VapourFlow 909 case "on": 910 cond.InletV.F*trays(top).vV = alfaTopo * trays(top).Ah * sqrt(2*(trays(top).OutletV.P - 911 cond.OutletL.P + 1e-8 * 'atm') / (trays(top).alfa*trays(top).rhoV)); 912 when cond.InletV.F < 1e-6 * 'kmol/h' switchto "off"; 956 913 957 trays([top+topdown:topdown:bot]).OutletV.F = (1 + tanh(1 * 958 (trays([top+topdown:topdown:bot]).OutletV.P - 959 trays([top+topdown:topdown:bot]).InletL.P)/'Pa'))/2 * 960 trays([top+topdown:topdown:bot]).Ah/trays([top+topdown:topdown:bot]).vV * 961 sqrt(2*(trays([top+topdown:topdown:bot]).OutletV.P - 962 trays([top+topdown:topdown:bot]).InletL.P + 1e-8 * 'atm') / 963 (trays([top+topdown:topdown:bot]).alfa*trays([top+topdown:topdown:bot]).rhoV)); 914 case "off": 915 cond.InletV.F = 0 * 'mol/s'; 916 when trays(top).OutletV.P > cond.OutletL.P + 1e-1 * 'atm' switchto "on"; 917 end 964 918 965 919 CONNECTIONS … … 993 947 * the feed stream of each tray (Inlet); 994 948 * the Murphree eficiency for each tray Emv; 949 * the vapour flow leaving the top of the column; 995 950 * the InletL stream of the top tray; 996 951 * the heat supllied in the reboiler; … … 1023 978 reb as reboiler; 1024 979 1025 EQUATIONS1026 if (reb.OutletV.P > reb.InletL.P) then1027 "Pressure Drop through the tray"1028 reb.OutletV.F = trays(bot).Ah/reb.vV * sqrt((reb.OutletV.P - trays(bot).OutletL.P)1029 / (trays(bot).beta*reb.rhoV) );1030 else1031 "Prato selado"1032 reb.OutletV.F = 0.0 * 'mol/s';1033 end1034 1035 "Pressure Drop through the tray"1036 trays([top:topdown:bot]).OutletV.F = (1 + tanh(1 *1037 (trays([top:topdown:bot]).OutletV.P -1038 trays([top:topdown:bot]).InletL.P)/'Pa'))/2 *1039 trays([top:topdown:bot]).Ah/trays([top:topdown:bot]).vV *1040 sqrt(2*(trays([top:topdown:bot]).OutletV.P -1041 trays([top:topdown:bot]).InletL.P + 1e-8 * 'atm') /1042 (trays([top:topdown:bot]).alfa*trays([top:topdown:bot]).rhoV));1043 1044 980 CONNECTIONS 1045 981 #vapor … … 1071 1007 * the feed stream of each tray (Inlet); 1072 1008 * the Murphree eficiency for each tray (Emv); 1009 * the vapour flow leaving the top of the column; 1073 1010 * the InletL stream of the top tray; 1074 1011 * the heat supllied in bottom tank; … … 1104 1041 tbottom as tank; 1105 1042 1106 EQUATIONS1107 if (reb.OutletV.P > reb.InletL.P) then1108 "Pressure Drop through the tray"1109 reb.OutletV.F = trays(bot).Ah/reb.vV * sqrt((reb.OutletV.P - trays(bot).OutletL.P)1110 / (trays(bot).alfa*reb.rhoV) );1111 else1112 "Prato selado"1113 reb.OutletV.F = 0.0 * 'mol/s';1114 end1115 1116 "Pressure Drop through the tray"1117 trays([top:topdown:bot]).OutletV.F = (1 + tanh(1 *1118 (trays([top:topdown:bot]).OutletV.P -1119 trays([top:topdown:bot]).InletL.P)/'Pa'))/2 *1120 trays([top:topdown:bot]).Ah/trays([top:topdown:bot]).vV *1121 sqrt(2*(trays([top:topdown:bot]).OutletV.P -1122 trays([top:topdown:bot]).InletL.P + 1e-8 * 'atm') /1123 (trays([top:topdown:bot]).alfa*trays([top:topdown:bot]).rhoV));1124 1125 1043 CONNECTIONS 1126 1044 #vapor … … 1152 1070 * the feed stream of each tray (Inlet); 1153 1071 * the Murphree eficiency for each tray Emv; 1072 * the vapour flow leaving the top of the column; 1154 1073 * the InletL stream of the top tray; 1155 1074 * the heat supllied in the reboiler; … … 1182 1101 reb as reboiler; 1183 1102 1184 EQUATIONS1185 if (reb.OutletV.P > reb.InletL.P) then1186 "Pressure Drop through the tray"1187 reb.OutletV.F = trays(bot).Ah/reb.vV * sqrt((reb.OutletV.P - trays(bot).OutletL.P)1188 / (trays(bot).beta*reb.rhoV) );1189 else1190 "Prato selado"1191 reb.OutletV.F = 0.0 * 'mol/s';1192 end1193 1194 "Pressure Drop through the tray"1195 trays([top:topdown:bot]).OutletV.F = (1 + tanh(1 *1196 (trays([top:topdown:bot]).OutletV.P -1197 trays([top:topdown:bot]).InletL.P)/'Pa'))/2 *1198 trays([top:topdown:bot]).Ah/trays([top:topdown:bot]).vV *1199 sqrt(2*(trays([top:topdown:bot]).OutletV.P -1200 trays([top:topdown:bot]).InletL.P + 1e-8 * 'atm') /1201 (trays([top:topdown:bot]).alfa*trays([top:topdown:bot]).rhoV));1202 1203 1103 CONNECTIONS 1204 1104 #vapor … … 1230 1130 * the feed stream of each tray (Inlet); 1231 1131 * the Murphree eficiency for each tray (Emv); 1132 * the vapour flow leaving the top of the column; 1232 1133 * the InletL stream of the top tray; 1233 1134 * the heat supllied in bottom tank; … … 1262 1163 spbottom as splitter; 1263 1164 tbottom as tank; 1264 1265 EQUATIONS1266 if (reb.OutletV.P > reb.InletL.P) then1267 "Pressure Drop through the tray"1268 reb.OutletV.F = trays(bot).Ah/reb.vV * sqrt((reb.OutletV.P - trays(bot).OutletL.P)1269 / (trays(bot).alfa*reb.rhoV) );1270 else1271 "Prato selado"1272 reb.OutletV.F = 0.0 * 'mol/s';1273 end1274 1275 "Pressure Drop through the tray"1276 trays([top:topdown:bot]).OutletV.F = (1 + tanh(1 *1277 (trays([top:topdown:bot]).OutletV.P -1278 trays([top:topdown:bot]).InletL.P)/'Pa'))/2 *1279 trays([top:topdown:bot]).Ah/trays([top:topdown:bot]).vV *1280 sqrt(2*(trays([top:topdown:bot]).OutletV.P -1281 trays([top:topdown:bot]).InletL.P + 1e-8 * 'atm') /1282 (trays([top:topdown:bot]).alfa*trays([top:topdown:bot]).rhoV));1283 1165 1284 1166 CONNECTIONS -
trunk/eml/stage_separators/tray.mso
r353 r398 131 131 alfa as fraction (Brief="Dry pressure drop coefficient"); 132 132 133 VapourFlow as Switcher(Valid = ["on", "off"], Default = "on"); 134 LiquidFlow as Switcher(Valid = ["on", "off"], Default = "on"); 135 133 136 VARIABLES 134 137 rhoL as dens_mass; … … 141 144 rhoV = PP.VapourDensity(InletV.T, InletV.P, InletV.z); 142 145 143 if Level > (beta * hw) then 146 switch LiquidFlow 147 case "on": 144 148 "Francis Equation" 145 OutletL.F = 1.84*'1/s'*lw*((Level-(beta*hw))/(beta))^2/vL; 146 else 149 # OutletL.F*vL = 1.84*'m^0.5/s'*lw*((Level-(beta*hw))/(beta))^1.5; 150 OutletL.F*vL = 1.84*'1/s'*lw*((Level-(beta*hw))/(beta))^2; 151 when Level < (beta * hw) switchto "off"; 152 153 case "off": 147 154 "Low level" 148 155 OutletL.F = 0 * 'mol/h'; 156 when Level > (beta * hw) + 1e-6*'m' switchto "on"; 157 end 158 159 switch VapourFlow 160 case "on": 161 InletV.F*vV = sqrt((InletV.P - OutletV.P)/(rhoV*alfa))*Ah; 162 when InletV.F < 1e-6 * 'kmol/h' switchto "off"; 163 164 case "off": 165 InletV.F = 0 * 'mol/s'; 166 when InletV.P > OutletV.P + Level*g*rhoL + 1e-1 * 'atm' switchto "on"; 149 167 end 150 168
Note: See TracChangeset
for help on using the changeset viewer.