Exemplo n.º 1
0
        /// <summary>
        /// calc methane yield [m^3 CH4 / kgVS]
        ///
        /// http://www.bioconverter.com/technology/primer.htm#Methane%20Yield%20%28m3%20CH4%20/%20kg%20VS%20added%29
        ///
        /// if methane yield is high, everything is ok, if it is too low
        /// maybe decrease substrate feed, digester could be overburdened
        ///
        /// </summary>
        /// <param name="x">ADM state vector</param>
        /// <param name="pQ">Q   : m^3/d  : total feed into the digester</param>
        /// <param name="pVS">VS  : % TS   : volatile solids content of feed</param>
        /// <param name="pTS">TS  : % FM   : total solids content of feed</param>
        /// <param name="prho">rho : kg/m^3 : density of feed</param>
        /// <returns></returns>
        public physValue calcCH4Yield(double[] x, physValue pQ, physValue pVS,
                                      physValue pTS, physValue prho)
        {
            physValue Qgas_h2, Qgas_ch4;

            ADMstate.calcBiogasOfADMstate(x, Vliq, T, out Qgas_h2, out Qgas_ch4);

            physValue Q   = pQ.convertUnit("m^3/d");
            physValue VS  = pVS.convertUnit("% TS");
            physValue TS  = pTS.convertUnit("% FM");
            physValue rho = prho.convertUnit("kg/m^3");

            VS = substrate.convertFrom_TS_To_FM(VS, TS);

            // VS [% FM] * [100 % / % FM] * m^3/d * kg/m^3 = VS kg/d
            physValue VS_kg = VS.convertUnit("100 %") * Q * rho;

            if (VS_kg.Value == 0)
            {
                return(new physValue(0, "m^3/kg"));
            }

            // m^3/d / kgVS/d= m^3/kgVS
            // Einheit ist: m^3/kg
            physValue CH4Yield = Qgas_ch4 / VS_kg;

            return(CH4Yield);
        }
Exemplo n.º 2
0
        /// <summary>
        /// calc methane production rate [m^3/m^3/day]
        ///
        /// http://www.bioconverter.com/technology/primer.htm#Methane%20Production%20Rate
        ///
        /// http://www.bioconverter.com/technology/primer.htm#Methane%20Production%20Rate%20%28m3/m3-day%29
        ///
        /// </summary>
        /// <param name="x">ADM state vector</param>
        /// <returns></returns>
        public physValue calcCH4ProductionRate(double[] x)
        {
            physValue Qgas_h2, Qgas_ch4;

            ADMstate.calcBiogasOfADMstate(x, Vliq, T, out Qgas_h2, out Qgas_ch4);

            Qgas_ch4 = Qgas_ch4.convertUnit("m^3/d");
            _Vliq    = Vliq.convertUnit("m^3");

            if (Vliq.Value == 0)
            {
                return(new physValue(0, "1/d"));
            }

            // m^3/d/m^3= 1/d
            physValue CH4ProductionRate = Qgas_ch4 / Vliq;

            return(CH4ProductionRate);
        }