summaryrefslogtreecommitdiff
path: root/Simulator/Simulator/Examples/EquilibriumReactor.mo
diff options
context:
space:
mode:
Diffstat (limited to 'Simulator/Simulator/Examples/EquilibriumReactor.mo')
-rw-r--r--Simulator/Simulator/Examples/EquilibriumReactor.mo81
1 files changed, 81 insertions, 0 deletions
diff --git a/Simulator/Simulator/Examples/EquilibriumReactor.mo b/Simulator/Simulator/Examples/EquilibriumReactor.mo
new file mode 100644
index 0000000..36f51bb
--- /dev/null
+++ b/Simulator/Simulator/Examples/EquilibriumReactor.mo
@@ -0,0 +1,81 @@
+within Simulator.Examples;
+
+package EquilibriumReactor
+
+extends Modelica.Icons.ExamplesPackage;
+
+model ms
+ extends Simulator.Streams.MaterialStream;
+ //material stream extended
+ extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
+ //thermodynamic package Raoults law is extended
+end ms;
+
+model EqRxr
+ extends Modelica.Icons.Example;
+ import data = Simulator.Files.ChemsepDatabase;
+ //instantiation of ethanol
+ parameter data.Hydrogen hyd;
+ //instantiation of acetic acid
+ parameter data.Carbonmonoxide com;
+ //instantiation of water
+ parameter data.Methanol meth;
+
+ parameter Integer Nc = 3;
+ parameter data.GeneralProperties C[Nc] = {hyd,com,meth};
+ Simulator.Examples.EquilibriumReactor.ms Inlet(Nc = Nc, C = C) annotation(
+ Placement(visible = true, transformation(origin = {-108, 46}, extent = {{-20, -20}, {20, 20}}, rotation = 0)));
+ Simulator.Examples.EquilibriumReactor.ms Outlet(Nc = Nc, C = C) annotation(
+ Placement(visible = true, transformation(origin = {88, -46}, extent = {{-20, -20}, {20, 20}}, rotation = 0)));
+ Simulator.UnitOperations.EquilibriumReactor Eqreactor(Basis = "Activity",C = C, Coef_cr = {{-2}, {-1}, {1}}, Kg = {0.5}, Mode = "Isothermal", Nc = Nc, Phase = "Vapour", Rmode = "ConstantK") annotation(
+ Placement(visible = true, transformation(origin = {-2, 10}, extent = {{28, 28}, {-28, -28}}, rotation = 180)));
+equation
+
+ Inlet.T = 366.5;
+ Inlet.P = 101325;
+ Inlet.F_p[1] = 27.7778;
+ Inlet.x_pc[1, :] = {0.667,0.333,0};
+ connect(Inlet.Out, Eqreactor.In) annotation(
+ Line(points = {{-88, 46}, {-30, 46}, {-30, 10}, {-30, 10}}, color = {0, 70, 70}));
+ connect(Eqreactor.Out, Outlet.In) annotation(
+ Line(points = {{26, 10}, {28, 10}, {28, -46}, {68, -46}, {68, -46}}, color = {0, 70, 70}));
+ annotation(
+ Icon(coordinateSystem(initialScale = 0)));
+ annotation(
+ Icon(coordinateSystem(initialScale = 0)));
+
+end EqRxr;
+
+model EqRxra
+ extends Modelica.Icons.Example;
+ import data = Simulator.Files.ChemsepDatabase;
+ //instantiation of ethanol
+ parameter data.Ethanol eth;
+ //instantiation of acetic acid
+ parameter data.Aceticacid acid;
+ //instantiation of water
+ parameter data.Water wat;
+ // instantiation of ethyl acetate
+ parameter data.Ethylacetate eac;
+ parameter Integer Nc = 4;
+ parameter data.GeneralProperties C[Nc] = {eth, acid, wat, eac};
+ Simulator.Examples.EquilibriumReactor .ms Inlet(Nc = Nc, C = C) annotation(
+ Placement(visible = true, transformation(origin = {-118, 48}, extent = {{-20, -20}, {20, 20}}, rotation = 0)));
+ Simulator.Examples.EquilibriumReactor .ms Outlet(Nc = Nc, C = C) annotation(
+ Placement(visible = true, transformation(origin = {88, -46}, extent = {{-20, -20}, {20, 20}}, rotation = 0)));
+ Simulator.UnitOperations.EquilibriumReactor Eqreactor(C = C, Nc = Nc, Mode = "Adiabatic", Basis = "PartialPressure", Phase = "Vapour") annotation(
+ Placement(visible = true, transformation(origin = {-4, 10}, extent = {{28, 28}, {-28, -28}}, rotation = 180)));
+ equation
+ Inlet.T = 343.15;
+ Inlet.P = 101325;
+ Inlet.F_p[1] = 10;
+ Inlet.x_pc[1, :] = {0.5, 0.5, 0, 0};
+ connect(Inlet.Out, Eqreactor.In) annotation(
+ Line(points = {{-98, 48}, {-32, 48}, {-32, 10}, {-32, 10}}, color = {0, 70, 70}));
+ connect(Eqreactor.Out, Outlet.In) annotation(
+ Line(points = {{24, 10}, {24, 10}, {24, -46}, {68, -46}, {68, -46}}, color = {0, 70, 70}));
+
+end EqRxra;
+
+
+end EquilibriumReactor;