Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue3618 air filter #3676

Open
wants to merge 56 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
4c1f2ae
first implementation
Dec 27, 2023
ca8b5fe
cleanup
Dec 28, 2023
5422c41
add OM scripts
Dec 28, 2023
f1557a8
update the plot script
Dec 28, 2023
526d305
reference data generation
Dec 28, 2023
5c410d4
improve model doc
Dec 29, 2023
4702143
model restruct
Jan 11, 2024
763d5d2
model doc update
Jan 14, 2024
b0477ad
update release note
Jan 14, 2024
7ddd341
Merge pull request #3620 from SenHuang19/issue3618_airFilter
JayHuLBL Mar 1, 2024
083dc1f
Merge branch 'master' into issue3618_airFilter
JayHuLBL Mar 1, 2024
27d9538
deleted invalid word [ci skip]
JayHuLBL Mar 1, 2024
8e2a608
refactored formatting
JayHuLBL Mar 1, 2024
d3f0636
fixed validation folder
JayHuLBL Mar 1, 2024
87e5370
improved graphic arrangement
JayHuLBL Mar 1, 2024
2602d9c
corrected release note
JayHuLBL Mar 4, 2024
033ac22
merged master
JayHuLBL Apr 10, 2024
0a6a806
changed connector name
JayHuLBL Apr 10, 2024
0be4dbb
improved text [ci skip]
JayHuLBL Apr 10, 2024
54cc4a6
merged master
JayHuLBL Apr 12, 2024
e37292a
add asserts
SenHuang19 Apr 15, 2024
1b6cbae
format update
SenHuang19 Apr 16, 2024
92fe476
Merge pull request #3807 from SenHuang19/issue3618_airFilter
JayHuLBL Apr 19, 2024
f7c67ee
improved text and documentation
JayHuLBL Apr 19, 2024
ed0bd65
added variable in reference results
JayHuLBL Apr 19, 2024
2a98e8a
refactoring and adding an example
SenHuang19 Aug 26, 2024
5d10a8e
script update
SenHuang19 Aug 26, 2024
6c49dab
example update
SenHuang19 Sep 2, 2024
63142ce
ref dataset update
SenHuang19 Sep 2, 2024
db1b8b0
model doc update and small issues fix
SenHuang19 Sep 2, 2024
021d6b7
model doc improve
SenHuang19 Sep 3, 2024
a11b196
typos fix
SenHuang19 Sep 4, 2024
7e1f587
minor fix
SenHuang19 Sep 4, 2024
07ad4e9
minor doc update
SenHuang19 Sep 25, 2024
f649536
model doc enhance and move the per to the top level class
Nov 8, 2024
d3a9dfe
model doc improve
Nov 11, 2024
5fd768e
eliminate unnecessary calculations
Nov 12, 2024
2f7c2f2
minor model doc update
Nov 13, 2024
b731d7a
update the file name
Nov 13, 2024
d53922b
fix typo
Nov 13, 2024
929e92b
Merge pull request #3986 from SenHuang19/issue3618_airFilter
JayHuLBL Nov 20, 2024
2a5e2c1
merged master
JayHuLBL Nov 20, 2024
18e0ad8
corrected package order
JayHuLBL Nov 20, 2024
c70d36a
updated reference
JayHuLBL Nov 20, 2024
53a0558
Deleted openmodelica script
JayHuLBL Nov 20, 2024
e746684
improved code
JayHuLBL Jan 2, 2025
2c71507
move all the paras to the dataset
Jan 10, 2025
01cdd28
model doc update and package restructure
Jan 15, 2025
5cc2922
refer result update
Jan 15, 2025
fc585cd
clean up
Jan 16, 2025
6cc13a9
fix typo
Jan 16, 2025
0d724ec
model doc update
Jan 16, 2025
0073880
Merge pull request #4095 from SenHuang19/issue3618_airFilter
JayHuLBL Jan 17, 2025
a59aa8f
corrected package order
JayHuLBL Jan 17, 2025
e915073
improved text
JayHuLBL Feb 5, 2025
23d15da
Merge branch 'master' into issue3618_airFilter
JayHuLBL Feb 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
example update
  • Loading branch information
SenHuang19 committed Sep 2, 2024
commit 6c49dab7b2295aa73a23078580b94f0f403868db
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@ record filtrationEfficiencyParameters
<p>
Data record that describes the relative mass of the contaminant captured by the filter <code>rat</code> versus
the filteration efficiency <code>eps</code>.
The <code>rat</code> must be increasing,
The elements of the vector <code>rat</code> should be in ascending order,
i.e.,<code>rat[i] &lt; rat[i+1]</code>.
Both vectors, <code>rat</code> and <code>eps</code>
must have the same size.
10 changes: 5 additions & 5 deletions Buildings/Fluid/AirFilters/Empirical.mo
Original file line number Diff line number Diff line change
@@ -261,7 +261,7 @@ The dynamic characteristics of the filters are defined by
<ul>
<li>
The <code>mCon_nominal</code> determines the maximum mass of the contaminants that the
filter can capture.
filter can held.
</li>
<li>
A performance dataset <code>per</code> that determines
@@ -281,10 +281,10 @@ with the contaminant accumulation for each contaminant.
</ul>
<p>
See more detailed descriptions in
<a href=\"modelica://Buildings.Fluid.AirFilters.BaseClasses.FiltrationEfficiency\">
Buildings.Fluid.AirFilters.BaseClasses.FiltrationEfficiency</a> and
<a href=\"modelica://Buildings.Fluid.AirFilters.BaseClasses.FlowCoefficientCorrection\">
Buildings.Fluid.AirFilters.BaseClasses.FlowCoefficientCorrection</a>.
Buildings.Fluid.AirFilters.BaseClasses.FlowCoefficientCorrection</a>
and <a href=\"modelica://Buildings.Fluid.AirFilters.BaseClasses.FiltrationEfficiency\">
Buildings.Fluid.AirFilters.BaseClasses.FiltrationEfficiency</a>, respectively.
</p>
<p>
The input boolean flag, <code>uRep</code>, triggers the filter replacement.
@@ -299,7 +299,7 @@ when the captured contaminant mass becomes greater than the
maximum contaminant mass (<code>mCon_nominal</code>).
</li>
<li>
when the <code>extraPropertiesNames</code> in the medium model don't contain all the contaminants
or when the <code>extraPropertiesNames</code> in the medium model don't contain all the contaminants
defined in the <code>per</code>.
</li>
</ul>
36 changes: 19 additions & 17 deletions Buildings/Fluid/AirFilters/Examples/SpaceCooling.mo
Original file line number Diff line number Diff line change
@@ -3,7 +3,8 @@ model SpaceCooling
"Space cooling system"
extends Modelica.Icons.Example;

replaceable package MediumA = Buildings.Media.Air(extraPropertiesNames={"CO2"}) "Medium for air";
replaceable package MediumA = Buildings.Media.Air(extraPropertiesNames={"PM10"})
"Medium for air";
replaceable package MediumW = Buildings.Media.Water "Medium for water";

Buildings.Fluid.MixingVolumes.MixingVolume vol(
@@ -162,19 +163,22 @@ model SpaceCooling
annotation (Placement(transformation(extent={{-128,-10},{-108,10}})));
Buildings.Fluid.AirFilters.BaseClasses.Data.Generic per(
mCon_nominal=5,
filterationEfficiencyParameters(rat={{0,0.5,1}}, eps={{0.5,0.4,0.2}}), b=1.2)
substanceName={"PM10"},
filterationEfficiencyParameters(rat={{0,0.5,1}}, eps={{0.5,0.4,0.2}}),
b=1.3)
"Performance dataset of the air filter"
annotation (Placement(transformation(extent={{-80,64},{-60,84}})));
Modelica.Blocks.Sources.Ramp C_inflow(
duration=87600/2,
height=50/1000000*1.53,
offset=100/1000000*1.53,
height=5/1000000000/1.293,
offset=10/1000000000/1.293,
startTime=15552000 + 87600/2)
"Contaminant mass flow rate fraction"
annotation (Placement(transformation(extent={{-170,-70},{-150,-50}})));
Buildings.Fluid.Sensors.TraceSubstancesTwoPort C_out(redeclare package
Medium =MediumA,
m_flow_nominal=mA_flow_nominal)
m_flow_nominal=mA_flow_nominal,
substanceName="PM10")
"Trace substance sensor of outlet air"
annotation (Placement(transformation(extent={{-102,-10},{-82,10}})));
Buildings.Controls.OBC.CDL.Logical.Sources.Constant repSig(k=false)
@@ -279,31 +283,29 @@ equation
This block is identical to
<a href=\"modelica://Buildings.Examples.Tutorial.SpaceCooling.System3\">
Buildings.Examples.Tutorial.SpaceCooling.System3</a>,
except that an air filter is added.
except that an air filter is added to the cooling system.
</p>
<p>
The major input signals for the air filter are configured as follows:
</p>
<ul>
<li>
The operating signal <i>uRot</i> changes from <code>false</code> to <code>true</code> at 6:00 (15552000+6*3600 seconds)
and from <code>true</code> to <code>false</code> at 18:00 (15552000+18*3600 seconds).
</li>
<li>
The supply air flow rate <i>mAir_flow</i> changes from <i>0</i> to <i>0.646</i> at around 5:00
and from <i>0.646</i> to <i>0</i> at around 17:00.
The input trace substance <i>C_inflow.y</i> changes from 10 &#181;g/m&sup3; (7.73e-9 kg/kg) to 15 &#181;g/m&sup3;
(1.15e-8 kg/kg) at 12:00 (15552000+12*3600 seconds).
</li>
<li>
The bypass damper positions are controlled to maintain the temperature of the air leaving the thermal wheel,
<code>senTemHXOut.T</code>, at 298.15 K.
the filter replacement signal <code>repSig</code> is false.
</li>
</ul>
<p>
The expected output is:
The expected output are:
</p>
<ul>
<li>
<code>senTemHXOut.T</code> is less or equal to 298.15 K.
The ratio of the outlet trace substance <i>C_out.C</i> to the <i>C_inflow.y</i> slightly decreases.
</li>
<li>
The fan power <i>fan.P</i> slightly increases.
</li>
</ul>
</html>", revisions="<html>
@@ -318,7 +320,7 @@ Buildings.Examples.Tutorial.SpaceCooling.System3</a>.
Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-180,-160},{120,
100}})),
__Dymola_Commands(file=
"modelica://Buildings/Resources/Scripts/Dymola/Examples/Tutorial/SpaceCooling/System3.mos"
"modelica://Buildings/Resources/Scripts/Dymola/Fluid/AirFilters/Examples/SpaceCooling.mos"
"Simulate and plot"),
experiment(StartTime=15552000, Tolerance=1e-6, StopTime=15638400));
end SpaceCooling;
16 changes: 8 additions & 8 deletions Buildings/Fluid/AirFilters/Validation/Empirical.mo
Original file line number Diff line number Diff line change
@@ -31,14 +31,14 @@ model Empirical "Example for using the empirical air filter model"
annotation (Placement(transformation(extent={{-50,40},{-30,60}})));
Modelica.Blocks.Sources.Ramp C_CO2_inflow(
duration=30,
height=-0.3,
offset=1,
height=-0.03,
offset=0.1,
startTime=20) "Contaminant mass flow rate fraction for CO2"
annotation (Placement(transformation(extent={{-160,20},{-140,40}})));
Modelica.Blocks.Sources.Ramp C_VOC_inflow(
duration=40,
height=-0.4,
offset=1,
height=-0.04,
offset=0.1,
startTime=20)
"Contaminant mass flow rate fraction for VOC"
annotation (Placement(transformation(extent={{-160,-40},{-140,-20}})));
@@ -100,17 +100,17 @@ First implementation.
</html>", info="<html>
<p>
From 0 to 12 seconds, the testing case is warming-up and the inlet trace substances of
are fixed at <i>1kg/kg</i>.
are fixed at <i>0.1kg/kg</i>.
</p>
<p>
From 20 to 50 seconds, the inlet trace substances changes from <i>1</i> to <i>0.7kg/kg</i>.
From 20 to 50 seconds, the inlet trace substances changes from <i>0.1</i> to <i>0.07kg/kg</i>.
</p>
<p>
At the 30 seconds and , the filter replacement signal <code>repSig</code> changes from <i>false</i> to <i>true</i>.
At the 30 seconds, the filter replacement signal <code>repSig</code> changes from <i>false</i> to <i>true</i>.
</p>
<p>
From 12 to 30 seconds, the trace substance of the outlet port <code>C_out</code> doesn't change much;
From 30 to 45 seconds, the outlet trace substances first decrease and then increase.
From 30 to 45 seconds, the outlet trace substances first decrease and then becomes relatively smooth.
</p>
</html>"),
Diagram(coordinateSystem(extent={{-180,-100},{140,100}})),