Changeset 873 for branches/gui/eml/stage_separators/column.mso
- Timestamp:
- Oct 29, 2009, 3:47:18 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/gui/eml/stage_separators/column.mso
r868 r873 84 84 TopStageComposition(NComp) as fraction (Brief = "Component Molar Fraction at Top"); 85 85 BottomStageComposition(NComp) as fraction (Brief = "Component Molar Fraction at Bottom"); 86 ColumnHoldup as positive (Brief ="Column holdup", Default=0.1);86 ColumnHoldup as positive (Brief = "Column holdup", Default=0.1); 87 87 88 88 end … … 1745 1745 Model Packed_Section_ColumnBasic 1746 1746 1747 1748 1747 ATTRIBUTES 1749 1748 Pallete = false; … … 1771 1770 outer NComp as Integer (Brief="Number of components"); 1772 1771 1772 low_flow as flow_mol (Brief ="Low Flow",Default = 1E-6, Hidden=true); 1773 low_pressure as pressure (Brief ="Low Pressure",Default = 1E-6, Hidden=true); 1774 zero_flow as flow_mol (Brief ="No Flow",Default = 0, Hidden=true); 1775 1773 1776 NumberOfFeeds as Integer (Brief="Number of Feed Stages",Default=3,Protected=true); 1774 1777 NumberOfStages as Integer (Brief="Number of Stages", Default=3); … … 1785 1788 Pi as constant (Brief="Pi Number",Default=3.14159265, Symbol = "\pi",Hidden=true); 1786 1789 Gconst as acceleration (Brief="Gravity Acceleration",Default=9.81,Hidden=true); 1787 hs as length (Brief="Height of the packing stage",Protected=true);1790 HETP as length (Brief="the Height Equivalent to a Theoretical Plate",Protected=true); 1788 1791 ColumnArea as area (Brief="Column Sectional Cross Area",Protected=true); 1789 1792 … … 1805 1808 1806 1809 STAGES(NumberOfStages) as packedStage; 1807 PressureDrop as pressure ;1810 PressureDrop as pressure (Brief="Column Pressure Drop", Protected=true); 1808 1811 1809 1812 SET 1810 1813 1811 1814 ColumnArea = 0.25*Pi*ColumnDiameter^2; 1812 hs =PackingHeight/NumberOfStages; 1813 V = hs * ColumnArea; 1815 HETP =PackingHeight/NumberOfStages; 1816 V = HETP * ColumnArea; 1817 1818 low_pressure = 1E-4 * 'atm'; 1819 low_flow = 1E-6 * 'kmol/h'; 1820 zero_flow = 0 * 'kmol/h'; 1814 1821 1815 1822 CONNECTIONS 1816 1823 1817 STAGES([2:NumberOfStages]).OutletVapour 1824 STAGES([2:NumberOfStages]).OutletVapour to STAGES([1:NumberOfStages-1]).InletVapour; 1818 1825 STAGES([1:NumberOfStages-1]).OutletLiquid to STAGES([2:NumberOfStages]).InletLiquid; 1819 LiquidConnector to STAGES(1).InletLiquid;1820 VapourConnector to STAGES(NumberOfStages).InletVapour;1826 LiquidConnector to STAGES(1).InletLiquid; 1827 VapourConnector to STAGES(NumberOfStages).InletVapour; 1821 1828 1822 1829 EQUATIONS 1823 1824 "PresureDrop"1825 PressureDrop = STAGES(NumberOfStages).OutletLiquid.P - STAGES(1).OutletLiquid.P;1826 1830 1827 1831 LiquidConnector.F= LiquidInlet.F; … … 1849 1853 VapourOutlet.z = STAGES(1).OutletVapour.z; 1850 1854 1855 "PressureDrop" 1856 PressureDrop = STAGES(NumberOfStages).OutletLiquid.P - STAGES(1).OutletLiquid.P; 1857 1851 1858 for i in [1:NumberOfStages] do 1852 1859 … … 1855 1862 case "on": 1856 1863 "Pressure drop and Vapor flow, Billet (4-58)" 1857 #STAGES(i).deltaP/hs = ResistanceCoeff*AreaPerPackingVol*STAGES(i).uV^2*STAGES(i).rhoV*STAGES(i).invK / (2*(VoidFraction-STAGES(i).hl)^3); 1858 # STAGES(i).invK = (1 + (2*STAGES(i).dp/(3*ColumnDiameter*(1-VoidFraction)))); 1859 1860 STAGES(i).deltaP/hs = ResistanceCoeff *( 0.5*AreaPerPackingVol + 2/ColumnDiameter) * 1/((VoidFraction-STAGES(i).hl)^3) * (STAGES(i).uV^2) * STAGES(i).rhoV; 1861 1862 #deltaP/hs = ResistanceCoeff * (AreaPerPackingVol/2 + 2/ColumnDiameter) * 1/((VoidFraction-hl)^3) * (uV^2) * rhoV; 1863 1864 1865 when STAGES(i).InletVapour.F < 1e-6 * 'kmol/h' switchto "off"; 1864 STAGES(i).deltaP/HETP = ResistanceCoeff *( 0.5*AreaPerPackingVol + 2/ColumnDiameter) * 1/((VoidFraction-STAGES(i).hl)^3) * (STAGES(i).uV^2) * STAGES(i).rhoV; 1865 1866 when STAGES(i).InletVapour.F < low_flow switchto "off"; 1866 1867 1867 1868 case "off": 1868 STAGES(i).InletVapour.F = 0 * 'mol/s'; 1869 1870 when STAGES(i).deltaP > 1e-4 * 'atm' switchto "on"; 1871 1872 end 1873 1869 "Vapour Flow" 1870 STAGES(i).InletVapour.F = zero_flow; 1871 1872 when STAGES(i).deltaP > low_pressure switchto "on"; 1873 1874 end 1875 1874 1876 "Energy Balance" 1875 diff(STAGES(i).E) = ( 1877 diff(STAGES(i).E) = (STAGES(i).Inlet.F*STAGES(i).Inlet.h + STAGES(i).InletLiquid.F*STAGES(i).InletLiquid.h + STAGES(i).InletVapour.F*STAGES(i).InletVapour.h- STAGES(i).OutletLiquid.F*STAGES(i).OutletLiquid.h 1876 1878 - STAGES(i).OutletVapour.F*STAGES(i).OutletVapour.h + HeatSupply ); 1877 1879 1878 1880 "Energy Holdup" 1879 1881 STAGES(i).E = STAGES(i).ML*STAGES(i).OutletLiquid.h + STAGES(i).MV*STAGES(i).OutletVapour.h - STAGES(i).OutletLiquid.P*V; … … 1883 1885 1884 1886 "Volume flow rate of vapor, m^3/m^2/s" 1885 #STAGES(i).uV * ((ColumnArea)*VoidFraction - STAGES(i).Al) = STAGES(i).OutletVapour.F * STAGES(i).vV; 1886 STAGES(i).uV * ((ColumnArea)*VoidFraction - STAGES(i).Al) = STAGES(i).InletVapour.F * STAGES(i).vV; 1887 1887 STAGES(i).uV * (V*VoidFraction/HETP - STAGES(i).Al) = STAGES(i).InletVapour.F * STAGES(i).vV; 1888 1888 1889 "Liquid holdup" 1889 STAGES(i).hl = STAGES(i).ML*STAGES(i).vL/V/VoidFraction; 1890 1891 #"Particle diameter" 1892 # STAGES(i).dp = 6 * (1-VoidFraction)/AreaPerPackingVol; 1893 1894 #"Wall Factor" 1895 # STAGES(i).invK = (1 + (2*STAGES(i).dp/(3*ColumnDiameter*(1-VoidFraction)))); 1896 1897 #"Reynolds number of the vapor stream" 1898 # STAGES(i).Rev*STAGES(i).invK = STAGES(i).dp*STAGES(i).uV*STAGES(i).rhoV / (STAGES(i).miV*(1-VoidFraction)); 1899 1900 #"Pressure drop and Vapor flow" 1901 # STAGES(i).deltaP/hs = ResistanceCoeff*AreaPerPackingVol*STAGES(i).uV^2*STAGES(i).rhoV*STAGES(i).invK / (2*(VoidFraction-STAGES(i).hl)^3); 1902 1903 "Liquid holdup" 1904 STAGES(i).hl = (12*STAGES(i).miL*AreaPerPackingVol^2*STAGES(i).uL/STAGES(i).rhoL/Gconst)^1/3; 1890 STAGES(i).hl*V*VoidFraction = STAGES(i).ML*STAGES(i).vL; 1891 1892 "Liquid velocity as a function of liquid holdup, Billet (4-27)" 1893 STAGES(i).hl^3 = (12/Gconst) * AreaPerPackingVol^2 * (STAGES(i).miL/STAGES(i).rhoL) * STAGES(i).uL; 1894 #STAGES(i).hl = (12*STAGES(i).miL*AreaPerPackingVol^2*STAGES(i).uL/STAGES(i).rhoL/Gconst)^1/3; 1905 1895 1906 1896 "Area occupied by the liquid" 1907 STAGES(i).Al = STAGES(i).ML*STAGES(i).vL/ hs;1897 STAGES(i).Al = STAGES(i).ML*STAGES(i).vL/HETP; 1908 1898 1909 1899 end … … 1916 1906 STAGES(i).OutletLiquid.T = INITIALIZATION.TopStageTemperature+(INITIALIZATION.BottomStageTemperature-INITIALIZATION.TopStageTemperature)*((i-1)/(NumberOfStages-1)); 1917 1907 1918 "The LiquidHoldup of the STAGES"1908 "The Column Holdup of the STAGES" 1919 1909 STAGES(i).hl = INITIALIZATION.ColumnHoldup; 1920 1910
Note: See TracChangeset
for help on using the changeset viewer.