Martin, C. and A. Urquia and S. Dormido (2004): JARA 2i - A Modelica Library for Interactive Simulation of Physical-Chemical Processes Proceedings of the 18th European Simulation and Modelling Conference, 128-132.
Martin, C. and A. Urquia and S. Dormido (2005): Object-Oriented Modeling of Virtual Laboratories for Control Education. Proceedings of the 16th IFAC World Congress, paper code: Th-A22-TO/2.
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).
Name | Description |
---|---|
steamPowerBoilerInteractive | Industrial boiler interactive model |
Type | Name | Default | Description |
---|---|---|---|
Boolean | Ejs | true | Global variable - Runtime interactiviy |
Boolean | Sysquake | false | Global variable - Batch interactivity |
Real | perfGasConst | 8.31 | Constant of the perfect gases [J/(mol*K)] |
Real | CpCoefML[1, 7] | [4.18E3, 0, 0, 0, 0, 0, 0] | Heat capacity per mass unit of the liquid. [Cp]: J/(Kg*K) |
Real | CpCoefNG[1, 7] | [55.486, 54.24E-3, 0, 0, 0, ... | Molar heat capacity, at constant pressure, of the vapor. [Cp]:J/(mol*K) |
Real | molecWeigth[:] | {18E-3} | Molecular weigth of the water [Kg/mol] |
Real | density[:] | {1E3} | Density of liquid water [Kg/m3] |
Real | molEnthalpyGRef[:] | {-241.8322E3} | Reference molar enthalpy of the vapor [J/mol] |
Real | massEnthalpyLRef[:] | {-15.88E6} | Reference enthalpy per mass unit of the liquid [J/Kg] |
Real | tempRef | 298 | Enthalpy reference temperature [K] |
Real | Kprop | 10 | Parameter of the boiling model [Kg/(s*K)] |
Real | Kvalve | (1.1E-7/molecWeigth[1]) | Valve coefficient [mol/(s*N/m**2)] |
Real | pressDownStreamInitial | 1.14E6 | Output pressure [N/m**2] |
Real | tempDownStreamInitial | 294 | Output temperature [K] |
Real | sectionInitial | 1 | Boiler cross-section [m2] |
Real | vesselVolumeInitial | 5.66 | Boiler volume [m3] |
Real | molVaporInitial[:] | {1200} | [mol] |
Real | tempVaporInitial | 700 | [K] |
Real | massWaterInitial[:] | {2840} | [Kg] |
Real | tempWaterInitial | 294 | [K] |
model steamPowerBoilerInteractive "Industrial boiler interactive model" // Physical model extends PhysicalModel.steamPowerBoiler; // Interactivity inner parameter Boolean Ejs = true; inner parameter Boolean Sysquake = false; // Interface input Real Iparam; input Real Ivar[6]; input Real Istate[4]; input Real CKparam; input Real CKvar; input Real CKstate; output Real O[25]; output Real Release; protected Boolean CKparamIs0( start = true, fixed=true); Boolean CKvarIs0( start = true, fixed=true); Boolean CKstateIs0( start = true, fixed=true); equation // Model release // ------------- {Release} = {9.0}; // Interactive change of the parameters // ------------------------------------ when CKparam > 0.5 and pre(CKparamIs0) or CKparam < 0.5 and not pre(CKparamIs0) then CKparamIs0 =CKparam < 0.5; reinit(vessel.vesselVolume,Iparam); end when; // Interactive change of the input variables // ----------------------------------------- when CKvar > 0.5 and pre(CKvarIs0) or CKvar < 0.5 and not pre(CKvarIs0) then CKvarIs0 =CKvar < 0.5; reinit(outValvePress.pressG,Ivar[1]); reinit(outValvePress.tempG,Ivar[2]); reinit(sourceLiqCtrl.flowVSP, -Ivar[3]); // Possitive: liquid flow into the boiler reinit(sourceLiqCtrl.tempSP,Ivar[4]); reinit(heatSourceCntrl.heatFlowSP, Ivar[5]); // Possitive: heat flow into the boiler reinit(valveG.valveOpening,Ivar[6]); end when; // Interactive change of the state variables // ----------------------------------------- when CKstate > 0.5 and pre(CKstateIs0) or CKstate < 0.5 and not pre(CKstateIs0) then CKstateIs0 =CKstate < 0.5; reinit(vapor.molG[1],Istate[1]); reinit(vapor.tempG,Istate[2]); reinit(water.massL[1],Istate[3]); reinit(water.tempL,Istate[4]); end when; // Output variables // ---------------- O = { vapor.molG[1], vapor.tempG, vapor.inMol.pressG, vapor.fluidV, water.massL[1], water.tempL, water.inMassBot.pressL, water.fluidV, vessel.vesselVolume, boil.tempBoiling, boil.totalMassF, boil.totalMolF, boil.tempF, boil.massHeatPhaseChg, -heatSource.inHeat.heatF, -heatSourceCntrl.heatFlowSP, valveG.totalMolF, valveG.inHeat.tempF, outValvePress.pressG,outValvePress.tempG, -liqSource.totalMassF,-liqSource.totalMassFSP,liqSource.tempF, -sourceLiqCtrl.flowVSP,sourceLiqCtrl.tempSP}; end steamPowerBoilerInteractive;