PHEMlightdll.CEP.GetCO2Emission C# (CSharp) Method

GetCO2Emission() public method

public GetCO2Emission ( double _FC, double _CO, double _HC, System.Helpers VehicleClass ) : double
_FC double
_CO double
_HC double
VehicleClass System.Helpers
return double
        public double GetCO2Emission(double _FC, double _CO, double _HC, Helpers VehicleClass)
        {
            //Declaration
            double fCBr;
            double fCHC = 0.866;
            double fCCO = 0.429;
            double fCCO2 = 0.273;

            switch (_fuelType)
            {
                case Constants.strGasoline:
                    fCBr = 0.865;
                    break;
                case Constants.strDiesel:
                    fCBr = 0.863;
                    break;
                case Constants.strCNG:
                    fCBr = 0.693;
                    fCHC = 0.803;
                    break;
                default:
                    VehicleClass.ErrMsg = "The propolsion type is not known! (" + _fuelType + ")";
                    return 0;
            }

            return (_FC * fCBr - _CO * fCCO - _HC * fCHC) / fCCO2;
        }
        #endregion

Usage Example

Ejemplo n.º 1
0
        static public VehicleResult CreateVehicleStateData(Helpers Helper,
                                                           CEP currCep,
                                                           double time,
                                                           double inputSpeed,
                                                           double inputAcc,
                                                           double Gradient = 0)
        {
            //Declaration
            double speed = Math.Max(inputSpeed, 0);
            double acc;
            double P_pos;

            //Speed/Acceleration limitation
            if (speed == 0)
            {
                acc = 0;
            }
            else
            {
                acc = Math.Min(inputAcc, currCep.GetMaxAccel(speed, Gradient));
            }

            //Calculate the power
            double power = currCep.CalcPower(speed, acc, Gradient);
            double P_eng = currCep.CalcEngPower(power);

            //Power limitation
            if (P_eng >= 0)
            {
                P_pos = power;
            }
            else
            {
                P_pos = 0;
            }

            //Calculate the result values (BEV)
            if (Helper.tClass == Constants.strBEV)
            {
                return(new VehicleResult(time,
                                         speed,
                                         Gradient,
                                         power,
                                         P_pos,
                                         P_eng / currCep.RatedPower,
                                         P_eng / currCep.DrivingPower,
                                         acc,
                                         0,
                                         currCep.GetEmission("FC", power, speed, Helper),
                                         0,
                                         0,
                                         0,
                                         0,
                                         0));
            }

            //Calculate the decel costing
            double decelCoast = currCep.GetDecelCoast(speed, acc, Gradient);

            //Calculate the result values (Zero emissions by costing, Idling emissions by v <= 0.5m/s²)
            if (acc >= decelCoast || speed <= Constants.ZERO_SPEED_ACCURACY)
            {
                return(new VehicleResult(time,
                                         speed,
                                         Gradient,
                                         power,
                                         P_pos,
                                         P_eng / currCep.RatedPower,
                                         P_eng / currCep.DrivingPower,
                                         acc,
                                         currCep.GetEmission("FC", power, speed, Helper),
                                         0,
                                         currCep.GetCO2Emission(currCep.GetEmission("FC", power, speed, Helper), currCep.GetEmission("CO", power, speed, Helper), currCep.GetEmission("HC", power, speed, Helper), Helper),
                                         currCep.GetEmission("NOx", power, speed, Helper),
                                         currCep.GetEmission("HC", power, speed, Helper),
                                         currCep.GetEmission("PM", power, speed, Helper),
                                         currCep.GetEmission("CO", power, speed, Helper)));
            }
            else
            {
                return(new VehicleResult(time,
                                         speed,
                                         Gradient,
                                         power,
                                         P_pos,
                                         power / currCep.RatedPower,
                                         power / currCep.DrivingPower,
                                         acc,
                                         0,
                                         0,
                                         0,
                                         0,
                                         0,
                                         0,
                                         0));
            }
        }
All Usage Examples Of PHEMlightdll.CEP::GetCO2Emission