-
Notifications
You must be signed in to change notification settings - Fork 156
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
Thermal wheels #3554
base: master
Are you sure you want to change the base?
Thermal wheels #3554
Conversation
Issue3538 air2air recovery
@JayHuLBL : What are the next steps, and who needs to act on them? |
@mwetter The PR will be ready for your review when CI test passed. One questions however is about the base class |
I think |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did a quick review and it is clear that this model is not yet ready for a final review. Please see comments and review first the code; afterwards I am happy to do a last review.
Buildings/Fluid/HeatExchangers/AirToAirHeatRecovery/BaseClasses/Effectiveness.mo
Outdated
Show resolved
Hide resolved
Buildings/Fluid/HeatExchangers/AirToAirHeatRecovery/BaseClasses/Effectiveness.mo
Outdated
Show resolved
Hide resolved
Buildings/Fluid/HeatExchangers/AirToAirHeatRecovery/BaseClasses/Effectiveness.mo
Outdated
Show resolved
Hide resolved
vRat = v_ave/v_sup_nom, | ||
</pre> | ||
<p> | ||
where <code>v_ave</code> is the average volumetric air flow rate, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See how we otherwise refer to volume or mass flow rates. (Moreover, if you were to use mass flow rate, then the sensor would be simpler, and the result would in my opinion not change much if at all).
Buildings/Fluid/HeatExchangers/AirToAirHeatRecovery/BaseClasses/Effectiveness.mo
Outdated
Show resolved
Hide resolved
...Exchangers/AirToAirHeatRecovery/BaseClasses/Validation/HeatExchagerWithInputEffectiveness.mo
Outdated
Show resolved
Hide resolved
m1_flow(start=5), | ||
m2_flow(start=5), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why are there start attribute set?
dp1_nominal=100, | ||
dp2_nominal=100, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is that realistic for a wheel? I think more common are around 300 Pa.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@SenHuang19 In class Examples.WheelWithBypassDamper
and Examples.WheelWithVariableSpeed
, the dp1_nominal
and dp2_nominal
are still set to be 100. Is it typical?
epsL_heat_nominal=0.7, | ||
epsL_heat_partload=0.6) "Wheel" | ||
annotation (Placement(transformation(extent={{6,-4},{26,16}}))); | ||
Modelica.Blocks.Sources.Ramp DamPos( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Naming convention.
inner Modelica.Fluid.System system | ||
"Ambient environment" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this needed?
@mwetter It's ready for your review. |
epsSenPL = Buildings.Utilities.Math.Functions.regStep(TSup-TExh, epsSenCooPL, epsSenHeaPL, 1e-5); | ||
epsSen_nominal = Buildings.Utilities.Math.Functions.regStep(TSup-TExh, epsSenCoo_nominal, epsSenHea_nominal, 1e-5); | ||
epsLatPL = Buildings.Utilities.Math.Functions.regStep(TSup-TExh, epsLatCooPL, epsLatHeaPL, 1e-5); | ||
epsLat_nominal = Buildings.Utilities.Math.Functions.regStep(TSup-TExh, epsLatCoo_nominal, epsLatHea_nominal, 1e-5); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These 4 calls to regStep
should be changed: There should only be one call to regStep
as the first argument is always the same.
In many configurations, the parameters for the efficiency are the same, in which case no regStep
(or weighting of the two values) is needed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I changed these calls.
@SenHuang19 Would you please address the comments? |
Modelica.Blocks.Sources.RealExpression VSup_flow( | ||
final y(final unit="m3/s")=hex.port_a1.m_flow/ | ||
Medium1.density(state=Medium1.setState_phX( | ||
p=hex.port_a1.p, | ||
h=hex.port_a1.h_outflow, | ||
X=hex.port_a1.Xi_outflow))) | ||
"Supply air volume flow rate" | ||
annotation (Placement(transformation(extent={{-160,30},{-140,50}}))); | ||
Modelica.Blocks.Sources.RealExpression VExh_flow( | ||
final y(final unit="m3/s")=hex.port_a2.m_flow/ | ||
Medium2.density(state=Medium2.setState_phX( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All efficiency calculations must be based on mass flow rate.
Buildings.Fluid.Actuators.Dampers.Exponential bypDamSup( | ||
redeclare package Medium = Medium1, | ||
final m_flow_nominal=m1_flow_nominal, | ||
final dpDamper_nominal=dp1_nominal) | ||
"Supply air bypass damper" | ||
annotation (Placement(transformation(extent={{-60,70},{-40,90}}))); | ||
Buildings.Fluid.Actuators.Dampers.Exponential damSup( | ||
redeclare package Medium = Medium1, | ||
final m_flow_nominal=m1_flow_nominal, | ||
final dpDamper_nominal=dp1_nominal) | ||
"Supply air damper" | ||
annotation (Placement(transformation( | ||
extent={{-10,-10},{10,10}},rotation=0,origin={-50,40}))); | ||
Buildings.Fluid.Actuators.Dampers.Exponential damExh( | ||
redeclare package Medium = Medium2, | ||
final m_flow_nominal=m2_flow_nominal, | ||
final dpDamper_nominal=dp2_nominal) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is unreasonable -- and wrong -- to set the damper pressure drops to the same value as the heat exchanger pressure drop, which is by default 500 Pa.
Sure, will do. |
|
Change the way to define the wheel energy efficiency for #3554 (comment) Current Implementation
Literature Review
Proposed calculation
@mwetter and @JayHuLBL could you please take a look at the proposed change? Based on the discussion on 5/21/2024, the followings are the required changes:
|
Add realistic examples
|
Based on the discussion on 6/12/2024.
|
@SenHuang19 : Note that it should be plural not singular, e.g., Also, the first and last bullet are the same. What needs to be corrected is the layout of the connection lines so that they don't lay on top of other lines, and are aligned with the grid. |
@mwetter thank you so much for your clarification. I have updated the task list. |
Updates are made in #3909, which is ready for Jianjun's review. |
This closes #3538.