lbl-srg / modelica-buildings

Modelica Buildings library
256 stars 159 forks source link

Adding a steam pressure regulating valve model with the URBANopt Project #2848

Open SaranyaAnbarasu opened 2 years ago

SaranyaAnbarasu commented 2 years ago

Pressure regulating valve (PRV) for Steam District Heating with the URBANopt Project

@bravache: Hi Baptiste, could you please open a new branch for the steam PRV models as described below? If you have any questions or comments, please let us know. Thank you!

(@mwetter: Dr. Wetter, we're mentioning you here as well in case you would like to provide any particular input. Thanks!) (@khinkelman, mentioning you for your reference).

The existing Buildings.Fluid.Actuators.Valves.TwoWayLinear are specific to incompressible media and do not include density to compute the pressure drop across valves. Whereas steam is a compressible medium, so the pressure drop varies with changes in density (density of the steam medium is considered variable over the range of pressure conditions seen in real systems). The existing valve models do not capture this thermodynamic property.

This valve model will be essential for district heating applications on the demand side (reducing the high-pressure steam from boilers before passing through the heat exchangers).

Our proposed solution

To capture the correct performance, we are proposing new steam valves: (1) SteamTwoWayValve – Two-way valve with opening y input, similar to Buildings.Fluid.Actuators.Valves.TwoWayLinear

(2) SteamTwoWayValveSelfActing - SteamTwoWayValve with a PI controller to maintain the outlet pressure to the required setpoint. From testing, this seems to be the most numerically efficient way to mimic the self-actuating (damped springs) in the physical valves.

The implementation is similar to Buildings.Fluid.Actuators.Valves.TwoWayLinear, extended from the base class SteamValveParameters and PartialSteamTwoWayValveKv. The valve parameters are implemented based on ISA 75.01.01/IEC 60534 steam (compressible medium). The instantaneous inlet density is used in the calculation of pressure drop across the valve.

We had earlier proposed the steam valve models in the DHC package (https://docs.google.com/document/d/12GaIloYaMds4USyhZt1W_s2hB2W2_GWR/edit), but Buildings.Fluid.Actuators.Valve package seems to be a better fit. Please let us know your thoughts on the package structure below:

Buildings.Fluid.Actuators
•   Valves
    •   SteamTwoWayValve
    •   SteamTwoWayValveSelfActuating
    •   Examples
        •   SteamTwoWayValve
        •   SteamTWoWayValveSelfActing
    •   Validation
        •   SteamTwoWayValveParameterization
    •   BaseClasses
        •   PartialStreamTwoWayValve
        •   SteamValveParameters

Potential alternates We believe it could be possible to reuse some of the existing base classes (such as Buildings.Fluid.Actuators.BaseClasses.PartialTwoWayValve and/or Buildings.Fluid.Actuators.BaseClasses.ValveParameters) if they are modified, but we are unsure about the best way to do this. If you would like us to reuse base classes, please advise on your preferred methodology.

Some additional context Valve models with density (W_rho) and without density (Wo_rho) in the computation of pressure drop are exhibited below. A constant mass flow rate of 0.5kg/s is passed through the valve, with a constant valve opening of y=0.5. In typical steam systems, the inlet pressure of steam served at the building side fluctuates between +/- 0.5 to 3 bar. Thus, we varied the inlet pressure from 9 bar to 7.5 bar in this example case.

image 148276014-8981f6db-91df-411e-aa48-66caf3de1056

Thank you

bravache commented 2 years ago

@SaranyaAnbarasu Thank you for the detailed description.

I opened the following branch for these changes: https://github.com/lbl-srg/modelica-buildings/tree/issue2848_steamvalve

Is that what you needed? If not, can you clarify your request?

Regarding the detail of the steam pressure regulating valve, this looks good at first glance. I believe there will likely be opportunities to reuse/extend the existing PartialTwoWayValve and ValveParameters, but I would have to look at the implementation to give any suggestion on changes that would be required.

SaranyaAnbarasu commented 2 years ago

@bravache Thank you for opening the branch. In an earlier technical meeting, Dr. Wetter suggested a few changes to the SteamTwoWayValveSelfActuating and the model location. We are currently working on those changes and we will update the revised models into the branch for your review.

Suggested changes:

SaranyaAnbarasu commented 2 years ago

Hi @bravache

We have simplified the self-acting steam valve model based on the discussion with Dr. Wetter (GED meeting, 02.28.2022) and addressed the suggestions on PR #2908

With this revision, we now would like to propose one self-acting valve model and an example to demonstrate its performance. Proposed models:

Experimental.DHC.Loads.Steam
  BaseClasses
  • ValveSelfActing
        Examples 
          • ValveSelfActing

Please review the PR and let us know if you have any questions. Thank you

SaranyaAnbarasu commented 2 years ago

Hi @bravache

Dr. Wetter suggested a few minor changes to the PRV models during the GED discussion and we are working on the revisions. We saw that you have merged the Boiler PR and would start reviewing the next ones (Networks and Valves). Please keep PR #2908 on hold, until we update the changes (expected early next week).

Thanks.