コード例 #1
0
ファイル: digesters.cs プロジェクト: puttak/matlab_toolboxes
        /// <summary>
        /// Returns true if myDigesters contains the given id
        /// </summary>
        /// <param name="myDigesters"></param>
        /// <param name="id">digester id</param>
        /// <returns>true if myDigesters contains id, else false</returns>
        public static bool contains(digesters myDigesters, string id)
        {
            foreach (digester myDigester in myDigesters)
            {
                if (myDigester.id == id)
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #2
0
        /// <summary>
        /// TODO!!!
        ///
        /// Verstehe die funktion nicht, da x von einem Fermenter kommt, aber ich über anzahl fermenter
        /// in Anlage iteriere. komisch!
        /// </summary>
        /// <param name="x"></param>
        /// <param name="Digesters"></param>
        /// <param name="Qgas_h2"></param>
        /// <param name="Qgas_ch4"></param>
        /// <param name="Qgas_co2"></param>
        /// <param name="Qgas"></param>
        public static void calcBiogasCompositionOfADMstate(double[] x, digesters Digesters,
                                                           out physValue[] Qgas_h2, out physValue[] Qgas_ch4,
                                                           out physValue[] Qgas_co2, out physValue[] Qgas)
        {
            // number of digesters
            int n_digester = Digesters.Count;

            // TODO: geht so nicht, Qgas muss ein 2dim array sein, das beliebig viele gase und nicht
            // nur die 3 enthalten kann
            Qgas_h2  = new physValue[n_digester];
            Qgas_ch4 = new physValue[n_digester];
            Qgas_co2 = new physValue[n_digester];
            Qgas     = new physValue[n_digester];

            //

            int idigester = 0;

            foreach (digester Digester in Digesters)
            {
                physValue Vliq = Digester.Vliq;

                physValue T = Digester.T;

                //

                calcBiogasOfADMstate(x, Vliq, T, out Qgas_h2[idigester], out Qgas_ch4[idigester],
                                     out Qgas_co2[idigester], out Qgas[idigester]);

                // normalize
                // TODO - es gibt auch methoden in der BioGas klasse
                if (Qgas[idigester].Value != 0)
                {
                    Qgas_h2[idigester]  = Qgas_h2[idigester] / Qgas[idigester];
                    Qgas_ch4[idigester] = Qgas_ch4[idigester] / Qgas[idigester];
                    Qgas_co2[idigester] = Qgas_co2[idigester] / Qgas[idigester];
                }

                // convert from "100 %" to "%"
                Qgas_h2[idigester]  = Qgas_h2[idigester].convertUnit("%");
                Qgas_ch4[idigester] = Qgas_ch4[idigester].convertUnit("%");
                Qgas_co2[idigester] = Qgas_co2[idigester].convertUnit("%");

                //

                idigester++;
            }
        }