Changeset 1950

Show
Ignore:
Timestamp:
12/05/2008 07:57:47 AM (5 weeks ago)
Author:
rfranke
Message:

add nTubes parameter to DistributedPipe

Location:
Modelica_Fluid/branches/StreamConnector/Modelica_Fluid
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • Modelica_Fluid/branches/StreamConnector/Modelica_Fluid/Examples/AST_BatchPlant.mo

    r1949 r1950  
    12911291              fillColor={85,170,255}, 
    12921292              fillPattern=FillPattern.Solid), 
    1293             Line(points={{-200,100},{-200,-100},{0,-100},{0,100}}, color={0,0,0}),  
    1294  
     1293            Line(points={{-200,100},{-200,-100},{0,-100},{0,100}}, color={0,0,0}), 
    12951294            Text( 
    12961295              extent={{-198,74},{0,38}}, 
     
    20522051              lineColor={0,0,0}, 
    20532052              textString=DynamicSelect(" ", realString( 
    2054                     level,  
    2055                     1,  
     2053                    level, 
     2054                    1, 
    20562055                    3))), 
    20572056            Line( 
  • Modelica_Fluid/branches/StreamConnector/Modelica_Fluid/Pipes.mo

    r1949 r1950  
    182182    extends Modelica_Fluid.Volumes.BaseClasses.PartialDistributedVolume( 
    183183      final n = nNodes, 
    184       Qs_flow=heatTransfer.Q_flow); 
     184      Qs_flow = heatTransfer.Q_flow*nTubes); 
     185 
     186    // Note: define nTubes as Real to support inverse calculations 
     187    parameter Real nTubes(min=1)=1 "Number of parallel tubes"  
     188     annotation(Dialog(group="Geometry")); 
    185189 
    186190    // extending PartialPipe 
     
    259263      final length=length, 
    260264      state=medium.state, 
    261       m_flow = 0.5*(m_flow[1:n]+m_flow[2:n+1])) "Edit heat transfer parameters" 
    262               annotation (editButton=true, Placement(transformation(extent={{-20,-5},{20,35}},  rotation=0))); 
     265      m_flow = 0.5*(m_flow[1:n]+m_flow[2:n+1])/nTubes) 
     266      "Edit heat transfer parameters"  
     267        annotation (editButton=true, Placement(transformation(extent={{-20,-5},{20,35}},  rotation=0))); 
    263268 
    264269  equation 
     
    278283 
    279284    // Source/sink terms for mass and energy balances 
    280     fluidVolume=fill(V/n, n); 
     285    fluidVolume=fill(V/n*nTubes, n); 
    281286    Ws_flow=zeros(n); 
    282287    for i in 1:n loop 
     
    317322      fill(medium[1].p, n-1) = medium[2:n].p; 
    318323      if modelStructure == ModelStructure.a_v_b then 
    319         m_flow[1] = pressureDrop.m_flow[1]; 
     324        m_flow[1] = pressureDrop.m_flow[1]*nTubes; 
    320325        flowState[1] = state_a; 
    321326        flowState[2] = medium[iLumped].state; 
    322327        flowState[3] = state_b; 
    323         m_flow[n+1] = pressureDrop.m_flow[2]; 
     328        m_flow[n+1] = pressureDrop.m_flow[2]*nTubes; 
    324329      elseif modelStructure == ModelStructure.av_b then 
    325330        port_a.p = medium[1].p; 
    326331        flowState[1] = medium[iLumped].state; 
    327332        flowState[2] = state_b; 
    328         m_flow[n+1] = pressureDrop.m_flow[1]; 
     333        m_flow[n+1] = pressureDrop.m_flow[1]*nTubes; 
    329334      elseif modelStructure == ModelStructure.a_vb then 
    330         m_flow[1] = pressureDrop.m_flow[1]; 
     335        m_flow[1] = pressureDrop.m_flow[1]*nTubes; 
    331336        flowState[1] = state_a; 
    332337        flowState[2] = medium[iLumped].state; 
     
    351356        //m_flow[2:n+1] = pressureDrop.m_flow; 
    352357        for i in 2:n+1 loop 
    353           m_flow[i] = pressureDrop.m_flow[i-1]; 
     358          m_flow[i] = pressureDrop.m_flow[i-1]*nTubes; 
    354359        end for; 
    355360        port_a.p = medium[1].p; 
     
    359364        //m_flow[1:n] = pressureDrop.m_flow; 
    360365        for i in 1:n loop 
    361           m_flow[i] = pressureDrop.m_flow[i]; 
     366          m_flow[i] = pressureDrop.m_flow[i]*nTubes; 
    362367        end for; 
    363368        port_b.p = medium[n].p; 
     
    366371        //m_flow[2:n] = pressureDrop.m_flow[1:n-1]; 
    367372        for i in 2:n loop 
    368           m_flow[i] = pressureDrop.m_flow[i-1]; 
     373          m_flow[i] = pressureDrop.m_flow[i-1]*nTubes; 
    369374        end for; 
    370375        port_a.p = medium[1].p; 
     
    463468      //Geometry 
    464469      parameter SI.Length length "Length"   annotation(Dialog(tab="General", group="Geometry")); 
    465       parameter SI.Diameter diameter "Diameter of circular pipe"      annotation(Dialog(group="Geometry", enable=isCircular)); 
    466470      parameter SI.Length roughness(min=0)=2.5e-5 
    467471        "Average height of surface asperities (default = smooth steel pipe)"  
    468472          annotation(Dialog(group="Geometry",enable=WallFriction.use_roughness)); 
     473      parameter SI.Diameter diameter "Diameter of circular pipe"      annotation(Dialog(group="Geometry", enable=isCircular)); 
    469474      parameter Boolean isCircular=true 
    470475        "= true if cross sectional area is circular"  
  • Modelica_Fluid/branches/StreamConnector/Modelica_Fluid/Test/TestOverdeterminedSteadyStateInit.mo

    r1949 r1950  
    1313    Pipes.DistributedPipe pipe( 
    1414      redeclare package Medium = Modelica.Media.Water.StandardWater, 
    15       nNodes=5, 
    1615      h_start=2e6, 
    1716      diameter=0.05, 
     
    1918      use_T_start=false, 
    2019      modelStructure=Modelica_Fluid.Types.ModelStructure.a_vb, 
     20      lumpedPressure=true, 
    2121      p_a_start=10000000, 
    2222      p_b_start=9900000, 
    23       lumpedPressure=true)  
     23      nNodes=5)  
    2424      annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); 
    2525    ControlValves.ValveCompressible valve( 
     
    8686                        graphics), 
    8787                         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}}, 
    8989              lineColor={0,0,255}), Text( 
    9090            extent={{-60,60},{60,-60}}, 
  • Modelica_Fluid/branches/StreamConnector/Modelica_Fluid/Volumes.mo

    r1949 r1950  
    332332            lineColor={0,0,0}, 
    333333            textString=DynamicSelect(" ", realString( 
    334                 level,  
    335                 1,  
     334                level, 
     335                1, 
    336336                integer(precision)))), 
    337337          Line( 
     
    657657            lineColor={0,0,0}, 
    658658            textString=DynamicSelect(" ", realString( 
    659                 level,  
    660                 1,  
     659                level, 
     660                1, 
    661661                3))), 
    662662          Line( 
     
    10731073 
    10741074    //Source terms, have to be set in inheriting class (to zero if not used) 
    1075     protected 
    10761075    SI.Volume[n] fluidVolume 
    10771076        "Discretized volume, determine in inheriting class";