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

Project itz fixes v2 #2

Open
wants to merge 49 commits into
base: project_itz_fixes
Choose a base branch
from
Open

Conversation

Mathadon
Copy link
Owner

@Mathadon Mathadon commented Nov 13, 2023

@kldjonge I have made some revisions to your models:

  • revised some variable names so make more clear what they mean
  • I move part of the stack computation to the outsideAir component. This seemed more logical since you expect this component to give the correct pressure since it already has a variable Habs.
  • This means that I have removed Habs (or it's equivalent) from the stack height computations for walls/windows. As far as I understand this is more correct than the current implementation since right now, assuming you have a zone at height 100m, we'd compute a stack 100m downwards with density a and then a stack 100m upwards with density b, which is now what happens in practice of course.
  • I have add a missing pressure column for the trickle vent (It was missing because I thought It was included in the OutsideAir already.)
  • I have removed the parameter Hpres since I found it too confusing with all the different heights and relative heights already.
  • If I understand correctly, the old implementation also reported the zone pressure incorrectly. It would add, then subtract the relative height of the zone. So a zone at a height of 100m would still be reported as at atmospheric pressure.

Can you verify whether you agree with this logic and whether you agree with the implementation?

@jelgerjansen fyi

@kldjonge
Copy link

kldjonge commented Nov 15, 2023

I suggest to not get rid of Hpres like you did. Now you assume that it is always measured at ground level, which is just not always the case. In meteo-stations it is often done 1m above the ground but I would suggest to make it a parameter for when case studies are modelled and e.g. the pressure is measured on the roof of the building.

So we did not model 100m and then 100m back up. If Hpres was at 1m, we modelled 1m down and then 100m up with the same density. This workaround was nececarry because density colmuns could not have a negative heights and otherwise Hpres could not be higher then the zones. It had the additional benefit that the reference pressure (either port a or port b) could be fixed.

So suggested changes
In: IDEAS.BoundaryConditions.Interfaces.PartialSimInfoManager
add:
parameter Modelica.Units.SI.Length Hpres=1 "Height above ground of meteorological atmospheric pressure measurement" annotation (Dialog(group="Wind"));

In: IDEAS.Fluid.Sources.OutsideAir
change:
Modelica.Blocks.Sources.RealExpression dpStack(y=-(Habs-sim.Hpres)*Modelica.Constants.g_n*rho);

With regards to using the IDEAS.Airflow.Multizone.CrackOrOperableDoor model. Care must be taken for correct implementation of the stack-effect heights. Specifically the IDEAS.Airflow.Multizone.DoorDiscretizedOperable model asks for the position to the reference pressure at the bottom of the cavity because that is how the implementation of this specific model was done. Which is different from the 1/4th-3/4th heights of the cracks.

The cavity stack heights are not correctly implemented now. For each model in which a cavity can be moddelled the correct column heights need to be implemented (hA and hB). This goes back to our discussion here: open-ideas#1338 for internal walls, but the same parameters need to be changed in the window component as it not just the average of the other columns heights.

So in general, I agree with the alternative logic of your implementation but the stack-effect of the open-cavities is not correct due to the convention difference now.

@Mathadon
Copy link
Owner Author

Mathadon commented Nov 19, 2023

@kldjonge I added HPres again in 3f9a5ac :)

Regarding the Door model. I had another look at the equations. It seems that the model does not distinguish between the pressure of the top and bottom ports. The model assumes that both are equal to 'the zone pressure', abstracting the hight within the zone away. This seems consistent with the current use within CrackOrOperableDoor: both ports are directly connected to the outsideAir or the zone.

Then there are the equations within the model, and the parameters of the model. The way I see it, the internally computed 'stack offset' should be zero at the bottom of the door, since you chose the zone pressure to be defined at the floor level (I think?).

So based on:

    pA[i] = port_a1.p + rho_a1_inflow*hAg[i];

  parameter Real hAg[nCom](each unit="m2/s2")=
    {Modelica.Constants.g_n*(hA - (i - 0.5)*dh) for i in 1:nCom}

hAg should be zero for the largest value of pA[i] (i.e. at the bottom of the door). The largest value corresponds to port_a1.p + rho_a1_inflow*Modelica.Constants.g_n*(hA - (1 - 0.5)*dh) (or in fact 0.5 segments below that) and hAg=0=Modelica.Constants.g_n*(hA - (1 - 0.5-0.5)*dh), which results in hA=0. I think that the same reasoning can be used for hB=0. Do you agree wit this analysis? The new can just set hA=hB=0 in the door model?

@kldjonge
Copy link

What you say is correct. The door model only computes stack-effect within the model. So the new implementation is also correct with regards to not having 'external' density columns when a cavity is present.

But I always assumed that the zone-pressure is in the middle of the zone (as this is the assumption of for temperature as well and it seems unlogical to have it at different positions), hence the need to substract half the zone height to position the door at the floor height.

@Mathadon
Copy link
Owner Author

Okay, so hA=hB=-hZone/2?

@kldjonge
Copy link

I commented this in the other issue that proposes a solution:
open-ideas#1338 (comment)

If we don't see it necessary to check for equal absolute floor heights then hA and hB are hZoneA/2 and hZoneB/2 respecitvely for cavities in an internal wall.

@Mathadon
Copy link
Owner Author

Mathadon commented Dec 7, 2023

Todo: verify whether we have to make updates for this:

image

some change in OuterWall

@kldjonge
Copy link

kldjonge commented Jan 4, 2024

6454345 is not be a no-flow situation when simulated. Temperatures indoors do not evolve towards the intended steady-state stay of 10°C. Because of this temperature differences exists as well as airflow. I believe it has to do with the long-wave radiation (solBus.Tenv<10°C).

@jelgerjansen
Copy link

@kldjonge you are correct: the ambient temperature is set to 10°C, but the sky temperature (used for radiation) is calculated somewhere in the WeatherDataReader. This one has to be manually set equal to 10°C.

I sent the simulation results of that specific case (TSky set to 10°C) to Filip, but the changes in the model were not yet included in this branch.

@flosfeld
Copy link

flosfeld commented Jan 16, 2024

I have noticed this also. In DoorDiscretizedOperable the flow coefficient is C = CD * A * sqrt(2/rho) and the aperture area is A = CD/CDRat*L*dpRat^(0.5-m). The flow coefficient is also C = Q / dp^m = q50*A_q50/3600/50^m. Combining these formulas results in L = q50*A_q50/3600/50^m/CD^2*CDRat*sqrt(rho/2)*dpRat^(m - 0.5). This should be the Lclo for CrackOrOperableDoor.

Also in CrackOrOperableDoor, for point_m_flow1, I believe we should have mMea_flow_nominal = if openDoorOnePort and interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.OnePort then wOpe*hOpe*1.2*CDOpe*(2*50/1.2)^m else (if interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts then 1/2 else 1)* q50*A_q50*1.2/3600. For point_m_flow2, mMea_flow_nominal = 1/2*q50*A_q50*1.2/3600.

@kldjonge
Copy link

Just to inform you @flosfeld , I have been busy debugging these things in a different branch: open-ideas#1345, I hope to be done with the review this week.

kldjonge and others added 16 commits January 16, 2024 13:58
The default height is at the top of the window
Also moved around the models to fit in the new column resulting in annotation changes.
After long discussion among MZ airflow modellers it was proposed to use sim.Cs as default value for all surfaces also in the 2-port implementation.

I included an override in the siminfomanager  and outer surfaces to go back to the variable Cs implementation in combination with 2-port.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants