コード例 #1
0
        /// <summary>
        /// TODO - die ganze funktion ist noch nicht ausgegoren
        ///
        /// write measured variable at time t in given mySubstrate
        ///
        /// </summary>
        /// <param name="t">current simulation time</param>
        /// <param name="mySensors"></param>
        /// <param name="mySubstrate">changed in this call</param>
        public static void set_substrate_params_from_sensor(double t, biogas.sensors mySensors,
                                                            biogas.substrate mySubstrate)
        {
            string substrate_id = mySubstrate.id;

            substrateparams_sensor substrate_param_sensor =
                (substrateparams_sensor)mySensors.get("substrateparams_" + substrate_id);

            if (!substrate_param_sensor.isEmpty())
            {
                physValue[] measVec = substrate_param_sensor.getMeasurementVectorAt(t);

                // hier werden nur TS und VS geändert
                mySubstrate.set_params_of("TS", measVec[0],
                                                           // umrechung in % TS wird in c# bib gemacht (substrateparams_sensor)
                                                           // s.unten in doMeasurement methode
                                                           // this value measVec[1] is measured in % TS, this OK
                                          "VS", measVec[1],
                                          "pH", measVec[2] //,

                                                           /*"Sac", measVec[3],
                                                            * // umrechnung von g/l in mmol/l
                                                            * // g/l / 50 g/mol * 1000 m = 1000 / 50 mmol/l
                                                            * // TODO convertTo nutzen
                                                            * "TAC", measVec[4] * 1000 / 50, */
                                          /*"Snh4", measVec[5]*/);
                //'COD', measVec.Get(6));

                //mySubstrate.calc

                //if (mySubstrate.ismanure)
                //{
                //  mySubstrate.set_params_of("RF", measVec[6]);

                //  // TODO outcomment
                //  // measured in gCOD/l
                //  //mySubstrate.set_params_of("COD", measVec[7]);
                //  //mySubstrate.set_params_of("COD_S", 0.3 * measVec[7].Value);
                //}
                //else
                //{
                //  // TODO - delete
                //  //if (substrate_id == "bullmanure")
                //  //  throw new exception("AAAAAAAAAAAA");

                //  mySubstrate.set_params_of("RL", measVec[6], "RP", measVec[7],
                //                            "RF", measVec[8]);

                //  // measured in kgCOD/m^3, same as gCOD/l
                //  //physValue COD_c= biogas.substrate.calcXc(mySubstrate);//.convertUnit("gCOD/l");

                //  //// TODO
                //  //// 0.3

                //  //double COD_c2 = 0;

                //  //// TODO delete
                //  //if (substrate_id == "maize")    // für geiger kalibrierung
                //  //  COD_c2= COD_c.Value * 1.1;//5;
                //  //else
                //  //  COD_c2= COD_c.Value;

                //  //mySubstrate.set_params_of("COD", COD_c2);
                //  //mySubstrate.set_params_of("COD_S", 0.3 * COD_c2);

                //}
            }
        }