JARA2i.CaseStudies.Boiler.Sysquake

Modelica model of the industrial boiler to be used in a virtual lab implemented in combination with Sysquake

Information


 

Modelica model of the industrial boiler to be used in a virtual lab implemented in combination with Sysquake



The implementation of the batch reactor virtual-lab by combining Sysquake and Modelica/Dymola is discussed in (Martin, Urquia and Dormido 2005b).

References

Martin, C. and A. Urquia and S. Dormido (2005b): Modelado Orientado a Objetos de Laboratorios Virtuales con Aplicación a la Enseñanza de Control de Procesos Químicos. Proceedings of the 1st Congreso Español de Informática (CEDI-EIWISA).


Package Content

NameDescription
JARA2i.CaseStudies.Boiler.Sysquake.Limiter Limiter Limit the range of a signal
JARA2i.CaseStudies.Boiler.Sysquake.LimPID LimPID PID controller with limited output, anti-windup compensation and setpoint weighting
PIDSteamPowerBoiler Steam Power Boiler + 2 PID controllers
PoleZeroSteamPowerBoiler Steam power boiler + PID controller + compensator network
steamPowerBoiler Steam power boiler
steamPowerBoilerIdentification Steam power boiler model used for identification
JARA2i.CaseStudies.Boiler.Sysquake.steamPowerBoilerOpen steamPowerBoilerOpen Steam power boiler plant. Inputs: heat flow set-point and input liquid flow set-point. Outputs: vapor flow and water volume


JARA2i.CaseStudies.Boiler.Sysquake.Limiter JARA2i.CaseStudies.Boiler.Sysquake.Limiter

Limit the range of a signal

JARA2i.CaseStudies.Boiler.Sysquake.Limiter

Information


The Limiter block passes its input signal as output signal as long as the input is within the specified upper and lower limits. If this is not the case, the corresponding limits are passed as output.


Parameters

TypeNameDefaultDescription
RealuMax1Upper limits of input signals
RealuMin-1Lower limits of input signals

Connectors

TypeNameDescription
input RealInputuConnector of Real input signal
output RealOutputyConnector of Real output signal

Modelica definition

block Limiter "Limit the range of a signal" 
  import Modelica.Blocks;
  import Modelica.SIunits;
  import Modelica.Blocks.Interfaces;
  parameter Real uMax=1 "Upper limits of input signals";
  parameter Real uMin =   -1 "Lower limits of input signals";
  extends Interfaces.SISO;
  
equation 
  y = if u > uMax then uMax else if u < uMin then uMin else u;
end Limiter;

JARA2i.CaseStudies.Boiler.Sysquake.LimPID JARA2i.CaseStudies.Boiler.Sysquake.LimPID

PID controller with limited output, anti-windup compensation and setpoint weighting

JARA2i.CaseStudies.Boiler.Sysquake.LimPID

Information


This is a PID controller incorporating several practical aspects. It is designed according to chapter 3 of the book

   K. Astroem, T. Haegglund: PID Controllers: Theory, Design, and Tuning.
                             2nd edition, 1995.

Besides the additive proportional, integral and derivative part of this controller, the following practical aspects are included:

This is an adaptation of the LimPID Modelica model included in the Standard Modelica library.

Parameters

TypeNameDefaultDescription
Realk1Gain of PID block
TimeTi0.5Time constant of Integrator block [s]
TimeTd0.1Time constant of Derivative block [s]
RealyMax1Upper limit of output
RealyMin0Lower limit of output
Realwp1Set-point weight for Proportional block (0..1)
Realwd0Set-point weight for Derivative block (0..1)
RealNi0.9Ni*Ti is time constant of anti-windup compensation
RealNd10The higher Nd, the more ideal the derivative block
Realy_start0 

Connectors

TypeNameDescription
input RealInputu_sConnector of setpoint input signal
input RealInputu_mConnector of measurement input signal
output RealOutputyConnector of actuator output signal

Modelica definition

block LimPID 
  "PID controller with limited output, anti-windup compensation and setpoint weighting" 
  
 extends Interfaces.SVcontrol;
  import Modelica.Blocks;
  import Modelica.SIunits;
  import Modelica.Blocks.Interfaces;
 parameter Real k =   1 "Gain of PID block";
 parameter SIunits.Time Ti(min=Modelica.Constants.small) = 0.5 
    "Time constant of Integrator block";
 parameter SIunits.Time Td(min=0) = 0.1 "Time constant of Derivative block";
 parameter Real yMax=1 "Upper limit of output";
 parameter Real yMin=0 "Lower limit of output";
 parameter Real wp(min=0) = 1 "Set-point weight for Proportional block (0..1)";
 parameter Real wd(min=0) = 0 "Set-point weight for Derivative block (0..1)";
 parameter Real Ni(min=100*Modelica.Constants.eps) = 0.9 
    "Ni*Ti is time constant of anti-windup compensation";
 parameter Real Nd(min=100*Modelica.Constants.eps) = 10 
    "The higher Nd, the more ideal the derivative block";
 parameter Real y_start = 0;
 Limiter limiter(uMax=yMax, uMin=yMin);
  
 Blocks.Math.Add addP(k1=wp, k2=-1);
 Blocks.Math.Add addD(k1=wd, k2=-1);
 Blocks.Math.Gain P;
 Blocks.Continuous.Integrator I(        y_start=y_start, k=(1/Ti));
 Blocks.Continuous.Derivative D(T=(max([Td/Nd,1.e-14])), k=(Td));
 Blocks.Math.Gain gainPID(k=(k));
 Blocks.Math.Add3 addPID;
 Blocks.Math.Add3 addI(k2=-1, k3=1);
 Blocks.Math.Add addSat(k2=-1);
 Blocks.Math.Gain gainTrack(k=(1/(k*Ni)));
equation 
 assert(yMax >= yMin, "PID: Limits must be consistent");
 connect(u_s, addP.u1);
 connect(u_m, addP.u2);
 connect(u_s, addD.u1);
 connect(u_m, addD.u2);
 connect(u_s, addI.u1);
 connect(u_m, addI.u2);
 connect(gainTrack.y, addI.u3);
 connect(addP.y, P.u);
 connect(addD.y, D.u);
 connect(addI.y, I.u);
 connect(P.y, addPID.u1);
 connect(D.y, addPID.u2);
 connect(I.y, addPID.u3);
 connect(addPID.y, gainPID.u);
 connect(gainPID.y, addSat.u2);
 connect(addSat.y, gainTrack.u);
 connect(gainPID.y, limiter.u);
 connect(limiter.y, y);
 connect(limiter.y, addSat.u1);
end LimPID;

JARA2i.CaseStudies.Boiler.Sysquake.PIDSteamPowerBoiler

Steam Power Boiler + 2 PID controllers

JARA2i.CaseStudies.Boiler.Sysquake.PIDSteamPowerBoiler

Information


 

Steam Power Boiler + Control system



This control system is composed of two decoupled control loops: (1) the water level inside the boiler is controlled by manipulating the pump throughput; and (2) the output flow of vapor is controlled by manipulating the heater power.

Modelica definition

model PIDSteamPowerBoiler "Steam Power Boiler + 2 PID controllers" 
  steamPowerBoilerOpen steamPowerBoilerOpen1(tempWaterInitial=420);
  
  LimPID PID_Volume(
    Ti=9,
    Td=0.1,
    yMax=0.01,
    k=1,
    wd=1,
    yMin=-0.01,
    y_start=0);
  LimPID PID_flowVapor(
    Ti=1.1,
    Td=3e-2,
    k=7e6,
    yMax=5e6,
    yMin=0,
    wd=1,
    y_start=0);
  Modelica.Blocks.Sources.Pulse FlowVaporPulse(
    amplitude=0.5,
    offset=8,
    period=700,
    startTime=300);
  Modelica.Blocks.Sources.Pulse VolumePulse(
    amplitude=0.03,
    offset=1.6,
    period=350,
    startTime=50);
equation 
  connect(PID_flowVapor.y,       steamPowerBoilerOpen1.heatFlowC);
  connect(PID_Volume.y,       steamPowerBoilerOpen1.flowVSPC);
  connect(PID_Volume.u_m,      steamPowerBoilerOpen1.waterVolumeC);
  connect(FlowVaporPulse.y,PID_flowVapor.u_s);
  connect(VolumePulse.y,PID_Volume.u_s);
  connect(PID_flowVapor.u_m,      steamPowerBoilerOpen1.flowVaporC);
end PIDSteamPowerBoiler;

JARA2i.CaseStudies.Boiler.Sysquake.PoleZeroSteamPowerBoiler

Steam power boiler + PID controller + compensator network

JARA2i.CaseStudies.Boiler.Sysquake.PoleZeroSteamPowerBoiler

Information


 

Steam Power Boiler + Control system



This control system is composed of two decoupled control loops: (1) the water level inside the boiler is controlled by a PID. The manipulated variable is the pump throughput; and (2) the output flow of vapor is controlled by a compensator network. The manipulated variable is the heater power.

Modelica definition

model PoleZeroSteamPowerBoiler 
  "Steam power boiler + PID controller + compensator network" 
  
  steamPowerBoilerOpen steamPowerBoilerOpen1;
  Modelica.Blocks.Continuous.TransferFunction FlowVaporControl(b={44000000,
        15000000}, a={7.87,1});
  Modelica.Blocks.Math.Feedback Feedback1;
  Modelica.Blocks.Sources.Pulse FlowVaporPulse(
    amplitude=0.5,
    offset=8,
    period=700,
    startTime=300);
  LimPID PID_Volume(
    Ti=9,
    Td=0.1,
    yMax=0.01,
    k=1);
  Modelica.Blocks.Sources.Pulse VolumePulse(
    amplitude=0.03,
    offset=1.6,
    period=350,
    startTime=450);
  Limiter limiter(uMax=5e6, uMin=0);
equation 
  connect(Feedback1.y,FlowVaporControl.u);
  connect(steamPowerBoilerOpen1.flowVaporC,Feedback1.u2);
  connect(FlowVaporPulse.y,Feedback1.u1);
  connect(PID_Volume.y,       steamPowerBoilerOpen1.flowVSPC);
  connect(VolumePulse.y,PID_Volume.u_s);
  connect(PID_Volume.u_m,      steamPowerBoilerOpen1.waterVolumeC);
  connect(FlowVaporControl.y, limiter.u);
  connect(limiter.y, steamPowerBoilerOpen1.heatFlowC);
end PoleZeroSteamPowerBoiler;

JARA2i.CaseStudies.Boiler.Sysquake.steamPowerBoiler

Steam power boiler

JARA2i.CaseStudies.Boiler.Sysquake.steamPowerBoiler

Parameters

TypeNameDefaultDescription
BooleanEjsfalse 
BooleanSysquaketrue 
RealsectionInitial1Boiler cross-section [m2]
RealvesselVolumeInitial5.66Boiler volume [m3]
RealmolVaporInitial[:]{1200}[mol]
RealtempVaporInitial700[K]
RealmassWaterInitial[:]{2840}[Kg]
RealtempWaterInitial294[K]

Modelica definition

partial model steamPowerBoiler "Steam power boiler" 
  
   // Interactivity
   inner parameter Boolean Ejs =      false;
   inner parameter Boolean Sysquake = true;
  
   parameter Real sectionInitial(      unit="m2") =   1 "Boiler cross-section";
   parameter Real vesselVolumeInitial( unit="m3") =   5.66 "Boiler volume";
  
   parameter Real molVaporInitial[:](  unit="mol") =    {1200};
   parameter Real tempVaporInitial(    unit="K") =      700;
  
   parameter Real massWaterInitial[:]( unit="Kg") =      {2840};
   parameter Real tempWaterInitial(    unit="K") =       294;
  
   // Input variables
  
   Real heatFlowSP;
   Real valveOpening(              min=0, max=1);
   Real pressG_downStream(         unit="M.L-1.t-2");
   Real tempG_downStream(          unit="T");
   Real flowVSP_sourceLiqCntrl(    unit="L3.t-1");
   Real tempSP_sourceLiqCntrl(     unit="T");
  
   // Public variables
  
  Real vapor_mol;
  Real vapor_temp;
  Real vapor_pressure;
  Real vapor_volume;
  
  Real water_mass;
  Real water_temp;
  Real water_pressBottom;
  Real water_volume;
  
  Real boil_temp;
  Real boil_totalMassFlow;
  Real boil_totalMolFlow;
  Real boil_tempFlow;
  Real boil_massHeatPhaseChg;
  
  Real heatSource_heatFlow;
  
  Real valve_totalMolFlow;
  Real valve_tempFlow;
  
  Real liqSource_totalMassFlow;
  Real liqSource_totalMassFlowSP;
  Real liqSource_tempFlow;
  
protected 
   parameter Real perfGasConst(   unit="J/(mol*K)") = 8.31 
    "Constant of the perfect gases";
   parameter Real CpCoefML[1,7] = [ 4.18E3, 0, 0, 0, 0, 0, 0] 
    "Heat capacity per mass unit of the liquid. [Cp]: J/(Kg*K)";
   parameter Real CpCoefNG[1,7] = [ 55.486, 54.24E-3, 0, 0, 0, 0, 0] 
    "Molar heat capacity, at constant pressure, of the vapor. [Cp]:J/(mol*K)";
   parameter Real molecWeigth[:](  unit="Kg/mol") =  {18E-3} 
    "Molecular weigth of the water";
   parameter Real density[:](      unit="Kg/m3") =   {1E3} 
    "Density of liquid water";
  
   parameter Real molEnthalpyGRef[:](  unit="J/mol") = {-241.8322E3} 
    "Reference molar enthalpy of the vapor";
   parameter Real massEnthalpyLRef[:]( unit="J/Kg") =  {- 15.88E6} 
    "Reference enthalpy per mass unit of the liquid";
   parameter Real tempRef(          unit="K") =     298 
    "Enthalpy reference temperature";
  
   parameter Real Kprop(  unit="Kg/(s*K)") = 10 
    "Parameter of the boiling model";
  
   parameter Real Kvalve( unit="mol/(s*N/m**2)") =  ( 1.1E-7 / molecWeigth[1]) 
    "Valve coefficient";
  
protected 
   JARA2i.gas.semiPerfGasCp6B vapor(   nComp=1,perfGasConst=perfGasConst,CpCoefN=CpCoefNG,
                                     tempRef=tempRef,molEnthalpyRef=molEnthalpyGRef,
                                     molGinitial=molVaporInitial,tempGinitial=tempVaporInitial);
  
protected 
   JARA2i.liq.liquidCp6B water( nComp=1,CpCoefMInitial=CpCoefML,
      massEnthalpyRefInitial =                                                       massEnthalpyLRef,
                              tempRefInitial=tempRef,densityInitial=density,
      sectionInitial =                                                                     sectionInitial,
                              massLinitial=massWaterInitial,tempLinitial=tempWaterInitial,
    percentVolSmallStep=1.1);
  
protected 
   JARA2i.liq.vesselLiqB vessel(       vesselVolumeInitial=vesselVolumeInitial);
  
protected 
   PhysicalModel.waterBoil boil(            nComp=1,CpCoefML=CpCoefML,CpCoefNG=CpCoefNG,Kprop=Kprop,
                              molecWeigth=molecWeigth,molEnthalpyGRef=molEnthalpyGRef,
                              massEnthalpyLRef=massEnthalpyLRef,tempRef=tempRef);
  
protected 
   JARA2i.heat.sourceHeatFB heatSource(   nComp=1);
  
protected 
   PhysicalModel.heatSourCntrl heatSourceCntrl;
  
protected 
   PhysicalModel.valve valveG(      Kv=Kvalve,CpCoefN=CpCoefNG,molEnthalpyRef=molEnthalpyGRef,
                      tempRef=tempRef);
  
protected 
   PhysicalModel.pressDownStream outValvePress;
  
protected 
   JARA2i.liq.sourceVolLiqFB liqSource(  nComp=1, densityInitial=density,
                                       CpCoefMInitial=CpCoefML,tempRefInitial=tempRef,pmax=1E8,
                                       pcodo=9.5E7,pmin=100, peps=50,
      massEnthalpyRefInitial =                                                               massEnthalpyLRef);
  
protected 
   PhysicalModel.sourceLiqCntrl sourceLiqCtrl;
  
equation 
   // Input variables
  
   heatFlowSP             = heatSourceCntrl.heatFlowSP;
   valveOpening           = valveG.valveOpening;
   pressG_downStream      = outValvePress.pressG;
   tempG_downStream       = outValvePress.tempG;
   flowVSP_sourceLiqCntrl = sourceLiqCtrl.flowVSP;
   tempSP_sourceLiqCntrl  = sourceLiqCtrl.tempSP;
  
   // Public variables
  
  vapor_mol      = vapor.molG[1];
  vapor_temp     = vapor.tempG;
  vapor_pressure = vapor.inMol.pressG;
  vapor_volume   = vapor.fluidV;
  
  water_mass        = water.massL[1];
  water_temp        = water.tempL;
  water_pressBottom = water.inMassBot.pressL;
  water_volume      = water.fluidV;
  
  boil_temp             = boil.tempBoiling;
  boil_totalMassFlow    = boil.totalMassF;
  boil_totalMolFlow     = boil.totalMolF;
  boil_tempFlow         = boil.tempF;
  boil_massHeatPhaseChg = boil.massHeatPhaseChg;
  
  heatSource_heatFlow   = heatSource.inHeat.heatF;
  
  valve_totalMolFlow    = valveG.totalMolF;
  valve_tempFlow        = valveG.inHeat.tempF;
  
  liqSource_totalMassFlow   =  -liqSource.totalMassF;
  liqSource_totalMassFlowSP = liqSource.totalMassFSP;
  liqSource_tempFlow        = liqSource.tempF;
  
  when water_volume>0.99*vesselVolumeInitial then
      terminate("Boiler full of water");
  end when;
  
   // Mass flow
  
   connect(   vapor.inMol, boil.outMol);
   connect(   water.inMassTop, boil.inMass);
   connect(   vapor.inMol,  valveG.inMol);
   connect(   outValvePress.inMol,  valveG.outMol);
   connect(   liqSource.inMass,   water.inMassBot);
   connect(   vapor.constraintV, vessel.constraintV);
   connect(   water.constraintV, vessel.constraintV);
   connect(   heatSource.inHeat, water.inHeat);
   connect(   heatSource.setPointSignal,  heatSourceCntrl.setPointSignal);
   connect(   liqSource.setPointSignal,  sourceLiqCtrl.setPointSignal);
  
   // Volume constraint
  
   // Heat flow
  
   // Control signals
  
end steamPowerBoiler;

JARA2i.CaseStudies.Boiler.Sysquake.steamPowerBoilerIdentification

Steam power boiler model used for identification

Parameters

TypeNameDefaultDescription
RealVolumeControl0 
RealAmpInit5.8e5 
RealAmpFin6e5 
Realtini9000 
RealvesselVolume3[m3]
RealmolVaporInitial700[mol]
RealtempVaporInitial450[K]
RealmassWaterInitial1600[Kg]
RealtempWaterInitial420[K]
RealflowVSP_sourceLiqCntrlParam1.82e-4[L3.t-1]
RealheatFlowSPParam5.8e5 
RealvalveOpening0.7 
RealpressG_downStream1.2e5[M.L-1.t-2]
RealtempG_downStream300[T]
RealtempSP_sourceLiqCntrl300[T]

Modelica definition

model steamPowerBoilerIdentification 
  "Steam power boiler model used for identification" 
  
  Real systemOutput;
  Real systemInput;
  parameter Real VolumeControl= 0;
 // parameter Real AmpInit= 1.779e-4;
 // parameter Real AmpFin= 1.9e-4;
 // parameter Real tini= 8000;
  parameter Real AmpInit= 5.8e5;
  parameter Real AmpFin = 6e5;
  parameter Real tini= 9000;
//System Parameters
  parameter Real vesselVolume( unit="m3") =   3;
//Working Conditions
  parameter Real molVaporInitial(  unit="mol") = 700;
  parameter Real tempVaporInitial(    unit="K") =      450;
  parameter Real massWaterInitial( unit="Kg") =      1600;
  parameter Real tempWaterInitial(    unit="K") =       420;
//Input Variables
   Real heatFlowSP;
   Real flowVSP_sourceLiqCntrl(    unit="L3.t-1");
  
   parameter Real flowVSP_sourceLiqCntrlParam(    unit="L3.t-1") = 1.82e-4;
   parameter Real heatFlowSPParam = 5.8e5;
  
   parameter Real valveOpening(              min=0, max=1)= 0.7;
   parameter Real pressG_downStream(         unit="M.L-1.t-2")= 1.2e5;
   parameter Real tempG_downStream(          unit="T")= 300;
   parameter Real tempSP_sourceLiqCntrl(     unit="T")= 300;
protected 
   parameter Real molVaporInitialV[:](  unit="mol") =    {molVaporInitial};
   parameter Real massWaterInitialV[:]( unit="Kg") =      {massWaterInitial};
  steamPowerBoiler Planta(vesselVolumeInitial = vesselVolume, molVaporInitial=molVaporInitialV,
      tempVaporInitial =                                                                                          tempVaporInitial,
      massWaterInitial =                                                                                                    massWaterInitialV,
      tempWaterInitial =                                                                                                    tempWaterInitial);
equation 
  
   heatFlowSP = if (VolumeControl <0.5) then systemInput else heatFlowSPParam;
   flowVSP_sourceLiqCntrl = if (VolumeControl >0.5) then systemInput else flowVSP_sourceLiqCntrlParam;
  
   systemInput =if (time<tini) then AmpInit else AmpFin;
  
   Planta.heatFlowSP = heatFlowSP;
   Planta.valveOpening = valveOpening;
   Planta.pressG_downStream = pressG_downStream;
   Planta.tempG_downStream = tempG_downStream;
   Planta.flowVSP_sourceLiqCntrl = flowVSP_sourceLiqCntrl;
   Planta.tempSP_sourceLiqCntrl = tempSP_sourceLiqCntrl;
  
   systemOutput = if (VolumeControl <0.5) then Planta.valve_totalMolFlow else Planta.water_volume;
end steamPowerBoilerIdentification;

JARA2i.CaseStudies.Boiler.Sysquake.steamPowerBoilerOpen JARA2i.CaseStudies.Boiler.Sysquake.steamPowerBoilerOpen

Steam power boiler plant. Inputs: heat flow set-point and input liquid flow set-point. Outputs: vapor flow and water volume

JARA2i.CaseStudies.Boiler.Sysquake.steamPowerBoilerOpen

Parameters

TypeNameDefaultDescription
RealvesselVolume3[m3]
RealmolVaporInitial700[mol]
RealtempVaporInitial450[K]
RealmassWaterInitial1600[Kg]
RealtempWaterInitial300[K]
RealvalveOpening0.7 
RealpressG_downStream1.2e5[M.L-1.t-2]
RealtempG_downStream300[T]
RealtempSP_sourceLiqCntrl300[T]

Connectors

TypeNameDescription
input RealInputheatFlowCConnector of Real input signal
input RealInputflowVSPCConnector of Real input signal
output RealOutputflowVaporCConnector of actuator output signal
output RealOutputwaterVolumeCConnector of actuator output signal

Modelica definition

model steamPowerBoilerOpen 
  "Steam power boiler plant. Inputs: heat flow set-point and input liquid flow set-point. Outputs: vapor flow and water volume" 
  
//System Parameters
  parameter Real vesselVolume( unit="m3") =   3;
//Working Conditions
  parameter Real molVaporInitial(  unit="mol") = 700;
  parameter Real tempVaporInitial(    unit="K") =      450;
  parameter Real massWaterInitial( unit="Kg") =      1600;
  parameter Real tempWaterInitial(    unit="K") =       300;
//Output Variables
  Real water_volume;
  Real flowVapor;
//Input Variables
   Real heatFlowSP;
   Real flowVSP_sourceLiqCntrl;
   parameter Real valveOpening(              min=0, max=1)= 0.7;
   parameter Real pressG_downStream(         unit="M.L-1.t-2")= 1.2e5;
   parameter Real tempG_downStream(          unit="T")= 300;
   parameter Real tempSP_sourceLiqCntrl(     unit="T")= 300;
  
 Modelica.Blocks.Interfaces.RealInput heatFlowC 
    "Connector of Real input signal";
 Modelica.Blocks.Interfaces.RealInput flowVSPC "Connector of Real input signal";
 Modelica.Blocks.Interfaces.RealOutput flowVaporC 
    "Connector of actuator output signal";
 Modelica.Blocks.Interfaces.RealOutput waterVolumeC 
    "Connector of actuator output signal";
protected 
   parameter Real molVaporInitialV[:](  unit="mol") =    {molVaporInitial};
   parameter Real massWaterInitialV[:]( unit="Kg") =      {massWaterInitial};
  steamPowerBoiler Planta(vesselVolumeInitial = vesselVolume, molVaporInitial=molVaporInitialV,
      tempVaporInitial =                                                                                          tempVaporInitial,
      massWaterInitial =                                                                                                    massWaterInitialV,
      tempWaterInitial =                                                                                                    tempWaterInitial);
  
equation 
  heatFlowSP = Planta.heatFlowSP;
  flowVSP_sourceLiqCntrl =Planta.flowVSP_sourceLiqCntrl;
  flowVapor = Planta.valve_totalMolFlow;
  water_volume = Planta.water_volume;
  Planta.heatFlowSP=heatFlowC;
  Planta.flowVSP_sourceLiqCntrl=-flowVSPC;
  Planta.valve_totalMolFlow =flowVaporC;
  Planta.water_volume =waterVolumeC;
  Planta.valveOpening = valveOpening;
  Planta.pressG_downStream = pressG_downStream;
  Planta.tempG_downStream = tempG_downStream;
  
  Planta.tempSP_sourceLiqCntrl = tempSP_sourceLiqCntrl;
end steamPowerBoilerOpen;

HTML-documentation generated by Dymola Tue Jul 24 19:08:01 2007.