Changeset 1953
- Timestamp:
- 12/05/2008 02:11:11 PM (5 weeks ago)
- Location:
- Modelica_Fluid/branches/StreamConnector/Modelica_Fluid
- Files:
-
- 3 modified
-
Pipes.mo (modified) (17 diffs)
-
Test/TestOverdeterminedSteadyStateInit.mo (modified) (4 diffs)
-
Volumes.mo (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
Modelica_Fluid/branches/StreamConnector/Modelica_Fluid/Pipes.mo
r1951 r1953 8 8 redeclare model HeatTransfer=BaseClasses.HeatTransfer.PipeHT_none(nTubes=nTubes)); 9 9 10 replaceablePressureDrop pressureDrop(10 PressureDrop pressureDrop( 11 11 redeclare final package Medium = Medium, 12 12 final n=1, … … 23 23 final length=length, 24 24 final height_ab=height_ab, 25 final g=system.g) "Edit pressure drop parameters" 26 annotation (editButton=true,Placement(transformation(extent={{-38,-18},{ 27 38,18}}, 28 rotation=0))); 25 final g=system.g) "Pressure drop model" 26 annotation (Placement(transformation(extent={{-38,-18},{38,18}},rotation=0))); 29 27 equation 30 28 port_a.m_flow = pressureDrop.m_flow[1]*nTubes; … … 73 71 annotation (Dialog(tab="Initialization", enable=Medium.nXi > 0)); 74 72 75 replaceableHeatTransfer heatTransfer(73 HeatTransfer heatTransfer( 76 74 redeclare final package Medium = Medium, 77 75 final n=1, 78 76 final nTubes=nTubes, 79 diameter=4*crossArea/perimeter,80 area=perimeter*length,77 final diameter=4*crossArea/perimeter, 78 final area=perimeter*length, 81 79 final crossArea=crossArea, 82 80 final length=length, 81 final use_fluidHeatPort=true, 83 82 state={volume.medium.state}, 84 m_flow = {0.5*(port_a.m_flow - port_b.m_flow)}/nTubes, 85 final useFluidHeatPort=true) "Edit heat transfer parameters" 86 annotation (editButton=true, Placement(transformation(extent={{-11,14},{ 87 11,36}}, rotation=0))); 83 m_flow = {0.5*(port_a.m_flow - port_b.m_flow)}/nTubes) 84 "Heat transfer model" 85 annotation (Placement(transformation(extent={{-11,14},{11,36}},rotation=0))); 88 86 89 87 StaticPipe staticPipe1( … … 223 221 224 222 // Pressure drop model 225 replaceablePressureDrop pressureDrop(223 PressureDrop pressureDrop( 226 224 redeclare final package Medium = Medium, 227 225 final n=nFlows, … … 234 232 final m_flow_start=m_flow_start/nTubes, 235 233 final roughness=roughness, 236 diameter=4*crossArea/perimeter,234 final diameter=4*crossArea/perimeter, 237 235 final length=length, 238 236 final height_ab=height_ab, 239 final g=system.g) "Edit pressure drop parameters" 240 annotation (editButton=true,Placement(transformation(extent={{-77,-57},{77, 241 -23}}, 242 rotation=0))); 237 final g=system.g) "Pressure drop model" 238 annotation (Placement(transformation(extent={{-77,-57},{77,-23}},rotation=0))); 243 239 244 240 // Flow quantities … … 256 252 annotation (Placement(transformation(extent={{-10,44},{10,64}}), iconTransformation(extent={{-30,44},{32,60}}))); 257 253 258 replaceableHeatTransfer heatTransfer(254 HeatTransfer heatTransfer( 259 255 redeclare each final package Medium = Medium, 260 256 final n=n, 261 257 final nTubes=nTubes, 262 diameter=4*crossArea/perimeter,263 area=perimeter*length,258 final diameter=4*crossArea/perimeter, 259 final area=perimeter*length, 264 260 final crossArea=crossArea, 265 261 final length=length, 266 262 state=medium.state, 267 m_flow = 0.5*(m_flow[1:n]+m_flow[2:n+1])/nTubes) 268 "Edit heat transfer parameters" 269 annotation (editButton=true, Placement(transformation(extent={{-20,-5},{20,35}}, rotation=0))); 263 m_flow = 0.5*(m_flow[1:n]+m_flow[2:n+1])/nTubes) "Heat transfer model" 264 annotation (Placement(transformation(extent={{-20,-5},{20,35}}, rotation=0))); 270 265 271 266 equation … … 496 491 constrainedby BaseClasses.PressureDrop.PartialPipePressureDrop 497 492 "Characteristics of wall friction and gravity" 498 annotation(Dialog(group="Pressure drop"), editButton=false,choicesAllMatching=true);493 annotation(Dialog(group="Pressure drop"), choicesAllMatching=true); 499 494 500 495 // Heat transfer … … 503 498 constrainedby 504 499 Modelica_Fluid.Pipes.BaseClasses.HeatTransfer.PartialPipeHeatTransfer 505 "Wall heat transfer model"506 annotation (Dialog(group="Heat transfer"), editButton=false,choicesAllMatching=true);500 "Wall heat transfer" 501 annotation (Dialog(group="Heat transfer"),choicesAllMatching=true); 507 502 508 503 annotation (defaultComponentName="pipe",Icon(coordinateSystem( … … 541 536 partial model PartialPipePressureDrop 542 537 "Base class for pipe wall friction models" 538 543 539 replaceable package Medium = 544 Modelica.Media.Interfaces.PartialMedium "fluid medium"; 545 parameter Integer n=1 "number of flow segments"; 540 Modelica.Media.Interfaces.PartialMedium "fluid medium" 541 annotation(Dialog(tab="Internal Interface", enable=false)); 542 546 543 input Medium.ThermodynamicState[n+1] state 547 544 "states along design flow"; … … 549 546 "mass flow rates along design flow"; 550 547 548 // Discretization 549 parameter Integer n=1 "number of flow segments" 550 annotation(Dialog(tab="Internal Interface", enable=false)); 551 551 552 // Mandadory geometry parameters 552 parameter SI.Length length "Length of pipe" annotation(Dialog(group="Geometry")); 553 parameter SI.Length length "Length of pipe" 554 annotation(Dialog(tab="Internal Interface", enable=false,group="Geometry")); 553 555 parameter SI.Diameter diameter 554 "Hydraulic diameter of pipe (typically 4*crossArea/perimeter)" annotation(Dialog(group="Geometry")); 556 "Hydraulic diameter of pipe (typically 4*crossArea/perimeter)" 557 annotation(Dialog(tab="Internal Interface", enable=false,group="Geometry")); 555 558 parameter SI.Length roughness(min=0) 556 559 "Average height of surface asperities" 557 annotation(Dialog( group="Geometry",enable=WallFriction.use_roughness));560 annotation(Dialog(tab="Internal Interface", enable=false,group="Geometry",enable=WallFriction.use_roughness)); 558 561 parameter SI.Length height_ab "Height(state_b) - Height(state_a)" 559 annotation(Dialog( group="Static head"));562 annotation(Dialog(tab="Internal Interface", enable=false,group="Static head")); 560 563 561 564 // Additional parameters … … 563 566 // as a PressureDrop model is intended as sub-component of other models 564 567 parameter SI.Acceleration g "Constant gravity acceleration" 565 annotation(Dialog( group="Static head"));568 annotation(Dialog(tab="Internal Interface", enable=false,group="Static head")); 566 569 parameter Boolean allowFlowReversal 567 570 "= true to allow flow reversal, false restricts to design direction (state[1] -> state[n+1])" 568 annotation(Dialog(tab=" Assumptions"), Evaluate=true);571 annotation(Dialog(tab="Internal Interface", enable=false,group="Assumptions"), Evaluate=true); 569 572 parameter Modelica_Fluid.Types.Dynamics dynamicsType 570 573 "Dynamics option, e.g. for models with dynamic momentum balance" 571 annotation( Evaluate=true, Dialog(tab = "Assumptions"));574 annotation(Dialog(tab="Internal Interface", enable=false,group = "Assumptions"), Evaluate=true); 572 575 parameter Modelica_Fluid.Types.Init initType 573 576 "Initialization option, e.g. for dynamic momentum balance" 574 annotation(Evaluate=true, Dialog(tab = "Initialization"));577 annotation(Evaluate=true, Dialog(tab="Internal Interface", enable=false,group = "Initialization")); 575 578 parameter Medium.AbsolutePressure p_a_start 576 579 "Start value for p[1] at design inflow" 577 annotation(Dialog(tab = "Initialization"));580 annotation(Dialog(tab="Internal Interface", enable=false,group = "Initialization")); 578 581 parameter Medium.AbsolutePressure p_b_start 579 582 "Start value for p[n+1] at design outflow" 580 annotation(Dialog(tab = "Initialization"));583 annotation(Dialog(tab="Internal Interface", enable=false,group = "Initialization")); 581 584 parameter Medium.MassFlowRate m_flow_start 582 585 "Start value of mass flow rate" 583 annotation(Dialog(tab = "Initialization"));586 annotation(Dialog(tab="Internal Interface", enable=false,group = "Initialization")); 584 587 585 588 // Variables … … 789 792 790 793 // Parameters 791 replaceable package Medium=Modelica.Media.Interfaces.PartialMedium; 792 parameter Integer n=1 "Number of heat transfer segments"; 793 parameter Real nTubes "Number of parallel tubes, used for HeatPorts only"; 794 parameter SI.Length length "Pipe length"; 794 replaceable package Medium=Modelica.Media.Interfaces.PartialMedium 795 annotation(Dialog(tab="Internal Interface", enable=false)); 796 parameter Integer n=1 "Number of heat transfer segments" 797 annotation(Dialog(tab="Internal Interface", enable=false), Evaluate=true); 798 parameter Real nTubes "Number of parallel tubes, used for HeatPorts only" 799 annotation(Dialog(tab="Internal Interface", enable=false)); 800 parameter SI.Length length "Pipe length" 801 annotation(Dialog(tab="Internal Interface", enable=false)); 795 802 parameter SI.Length diameter 796 "Hydraulic diameter (typically 4*crossArea/perimeter)"; 797 parameter SI.Area crossArea "Cross flow area"; 798 parameter SI.Area area "Heat transfer area (typically perimeter*length)"; 803 "Hydraulic diameter (typically 4*crossArea/perimeter)" 804 annotation(Dialog(tab="Internal Interface", enable=false)); 805 parameter SI.Area crossArea "Cross flow area" 806 annotation(Dialog(tab="Internal Interface", enable=false)); 807 parameter SI.Area area "Heat transfer area (typically perimeter*length)" 808 annotation(Dialog(tab="Internal Interface", enable=false)); 809 parameter Boolean use_fluidHeatPort=false 810 "= true to use fluidHeatPort instead of output Q_flow" 811 annotation(Dialog(tab="Internal Interface", enable=false)); 799 812 800 813 // Inputs provided to heat transfer model … … 810 823 rotation=0), iconTransformation(extent={{-20,60},{20,80}}))); 811 824 812 Modelica_Fluid.Interfaces.HeatPorts_b[n] fluidHeatPort if use FluidHeatPort825 Modelica_Fluid.Interfaces.HeatPorts_b[n] fluidHeatPort if use_fluidHeatPort 813 826 "Thermal port to fluid" 814 827 annotation (Placement(transformation(extent={{-10,-70},{10,-50}}, … … 817 830 // Internal variables 818 831 SI.Temperature[n] T; 819 parameter Boolean useFluidHeatPort = false820 "= true to use fluidHeatPort instead of output Q_flow"821 annotation(Dialog(tab="No input", enable=false), Evaluate=true, HideResult=true);822 832 Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow[n] 823 833 prescribedHeatFlow "Needed to connect to conditional connector" … … 829 839 T = Medium.temperature(state); 830 840 wallHeatPort.Q_flow = Q_flow*nTubes; 831 if use FluidHeatPort then841 if use_fluidHeatPort then 832 842 prescribedHeatFlow.Q_flow = Q_flow*nTubes; 833 843 else … … 854 864 Base class for heat transfer models that can be used in distributed pipe models. 855 865 </html>"), 856 Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100}, {857 100,100}}),866 Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100}, 867 {100,100}}), 858 868 graphics)); 859 869 end PartialPipeHeatTransfer; … … 1070 1080 state={volume.medium.state}, 1071 1081 m_flow = {0.5*(port_a.m_flow - port_b.m_flow)}, 1072 final use FluidHeatPort=true) "Edit heat transfer parameters"1082 final use_fluidHeatPort=true) "Edit heat transfer parameters" 1073 1083 annotation (editButton=true, Placement(transformation(extent={{-20,0},{20,40}}, rotation=0))); 1074 1084 -
Modelica_Fluid/branches/StreamConnector/Modelica_Fluid/Test/TestOverdeterminedSteadyStateInit.mo
r1950 r1953 86 86 graphics), 87 87 Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100, 88 -100},{100,100}}), graphics={Rectangle(extent={{-100,100},{100,-100}}, 88 -100},{100,100}}), graphics={Rectangle(extent={{-100,100},{100,-100}}, 89 89 lineColor={0,0,255}), Text( 90 90 extent={{-60,60},{60,-60}}, … … 155 155 diameter=0.03, 156 156 T_start=Modelica.SIunits.Conversions.from_degC(80), 157 redeclare model PressureDrop =158 Modelica_Fluid.Pipes.BaseClasses.PressureDrop.QuadraticTurbulentFlow,159 157 initType=Modelica_Fluid.Types.Init.InitialValues, 160 158 length=2, … … 162 160 Modelica_Fluid.Pipes.BaseClasses.HeatTransfer.PipeHT_ideal, 163 161 p_a_start=400000, 164 p_b_start=390000) 162 p_b_start=390000, 163 redeclare model PressureDrop = 164 Modelica_Fluid.Pipes.BaseClasses.PressureDrop.QuadraticTurbulentFlow 165 (use_nominal=true)) 165 166 annotation (Placement(transformation(extent={{12,-14},{32,6}}, rotation=0))); 166 167 … … 171 172 diameter=0.05, 172 173 T_start=Modelica.SIunits.Conversions.from_degC(40), 173 redeclare model PressureDrop =174 Modelica_Fluid.Pipes.BaseClasses.PressureDrop.QuadraticTurbulentFlow,175 174 initType=Modelica_Fluid.Types.Init.InitialValues, 176 175 redeclare model HeatTransfer = 177 176 Modelica_Fluid.Pipes.BaseClasses.HeatTransfer.PipeHT_ideal, 178 177 p_a_start=110000, 179 p_b_start=105000) 178 p_b_start=105000, 179 redeclare model PressureDrop = 180 Modelica_Fluid.Pipes.BaseClasses.PressureDrop.QuadraticTurbulentFlow 181 (use_nominal=true)) 180 182 annotation (Placement(transformation(extent={{28,-76},{8,-56}}, rotation= 181 183 0))); -
Modelica_Fluid/branches/StreamConnector/Modelica_Fluid/Volumes.mo
r1952 r1953 332 332 lineColor={0,0,0}, 333 333 textString=DynamicSelect(" ", realString( 334 level, 335 1, 334 level, 335 1, 336 336 integer(precision)))), 337 337 Line(
