private Model_CommonParameters _CommonParameters;                         //公共参数
 public Assembly_ParametersAndProperties_V1()
 {
     _CementProperties              = new Model_CementProperties();             //水泥属性
     _ClinkerProperties             = new Model_ClinkerProperties();            //熟料属性
     _CoalProperties                = new Model_CoalProperties();               //煤粉属性
     _CogenerationProperties        = new Model_CogenerationProperties();       //余热发电属性
     _RecuperationProperties        = new Model_RecuperationProperties();       //余热利用属性
     _ClinkerProcessPowerProperties = new List <Model_MartieralsProperties>(1); //熟料工序用电属性
     _ClinkerProcessCoalProperties  = new List <Model_MartieralsProperties>(1); //熟料工序用煤属性
     _CementProcessPowerProperties  = new List <Model_MartieralsProperties>(1); //水泥磨工序用电属性
     _CementProcessCoalProperties   = new List <Model_MartieralsProperties>(0); //水泥磨工序用煤属性
     _CommonParameters              = new Model_CommonParameters();             //公共参数
 }
        /// <summary>
        /// 计算可比水泥综合电耗
        /// </summary>
        /// <param name="myCementProperties">水泥属性</param>
        /// <param name="myCementProcessMartieralsProperties">各耗电工序物料属性</param>
        /// <param name="myCommonParameters">公共参数</param>
        /// <param name="myClinkerPowerConsumption">熟料综合电耗</param>
        /// <param name="myClinkerInput">熟料消耗量</param>
        /// <returns>可比水泥综合电耗</returns>
        public Model_CaculateValue GetCementPowerConsumptionComparable(Model_CementProperties myCementProperties, List <Model_MartieralsProperties> myCementProcessMartieralsProperties, Model_CommonParameters myCommonParameters, decimal myClinkerPowerConsumption)
        {
            Model_CaculateValue            m_Model_CaculateValueComparable = new Model_CaculateValue();
            List <Model_BaseELCParameters> m_CementELCParameters           = new List <Model_BaseELCParameters>();

            Model_BaseELCParameters m_Model_BaseELCParameters = new Model_BaseELCParameters();

            m_Model_BaseELCParameters.ProcessName    = "水泥综合电耗";  //获取工序名称
            m_Model_BaseELCParameters.MarterialsName = "水泥";      //获取物料名称
            m_Model_BaseELCParameters.ProcessElectricityConsumption = GetCementPowerConsumption(myCementProperties, myCementProcessMartieralsProperties, myClinkerPowerConsumption).CaculateValue;
            m_Model_BaseELCParameters.ProcessMaterialsUsedQuantity  = myCementProperties.MarterialsOutput;
            m_CementELCParameters.Add(m_Model_BaseELCParameters);
            m_Model_CaculateValueComparable = m_Base_PowConsumption.GetCementPowerConsumptionComparable(m_CementELCParameters, myCommonParameters, myCementProperties);
            m_Model_CaculateValueComparable.CaculateName = "可比水泥综合电耗";
            return(m_Model_CaculateValueComparable);
        }
        /// <summary>
        /// 计算可比水泥综合煤耗
        /// </summary>
        /// <param name="myCementProperties">水泥属性</param>
        /// <param name="myCoalProperties">煤粉属性</param>
        /// <param name="myCementProcessMartieralsProperties">各耗煤工序物料属性</param>
        /// <param name="myClinkerCoalConsumption">熟料综合煤耗</param>
        /// <param name="myCommonParameters">公共参数</param>
        /// <returns>可比水泥综合煤耗</returns>
        public Model_CaculateValue GetCementCoalConsumptionComparable(Model_CementProperties myCementProperties, Model_CoalProperties myCoalProperties, List <Model_MartieralsProperties> myCementProcessMartieralsProperties,
                                                                      decimal myClinkerCoalConsumptionComparable, Model_CommonParameters myCommonParameters)
        {
            Model_CaculateValue            m_Model_CaculateValueComparable = new Model_CaculateValue();
            List <Model_BaseCLCParameters> m_CementBaseCLCParameters       = new List <Model_BaseCLCParameters>(1);

            if (myCementProcessMartieralsProperties != null)
            {
                for (int i = 0; i < myCementProcessMartieralsProperties.Count; i++)
                {
                    //求工序干基煤耗
                    Model_BaseCLCParameters m_Model_BaseCLCParameters = new Model_BaseCLCParameters();
                    m_Model_BaseCLCParameters.ProcessName    = myCementProcessMartieralsProperties[i].ProcessName;             //获取工序名称
                    m_Model_BaseCLCParameters.MarterialsName = myCementProcessMartieralsProperties[i].MarterialsName;          //获取物料名称
                    if (myCementProcessMartieralsProperties[i].MarterialsOutput != 0 && myCementProcessMartieralsProperties[i].MarterialsWaterContent < 1 && myCementProcessMartieralsProperties[i].MarterialsWaterContent >= 0)
                    {
                        m_Model_BaseCLCParameters.ProcessCoalConsumption = (myCementProcessMartieralsProperties[i].CoalQuantity * (1 - myCoalProperties.CoalWaterContent)) / (myCementProcessMartieralsProperties[i].MarterialsOutput * (1 - myCementProcessMartieralsProperties[i].MarterialsWaterContent)) / 1000;
                    }
                    else
                    {
                        m_Model_BaseCLCParameters.ProcessCoalConsumption = 0;
                    }
                    m_Model_BaseCLCParameters.ProcessMaterialsUsedQuantity = myCementProcessMartieralsProperties[i].MarterialsInput * (1 - myCementProcessMartieralsProperties[i].MarterialsWaterContent);
                    m_Model_BaseCLCParameters.CoalLowCalorificValue        = myCoalProperties.CoalLowCalorificValue;
                    m_Model_BaseCLCParameters.CoalWaterContent             = myCementProcessMartieralsProperties[i].MarterialsWaterContent;
                    m_CementBaseCLCParameters.Add(m_Model_BaseCLCParameters);
                }
            }
            if (myCementProperties != null)
            {
                Model_BaseCLCParameters m_Model_CementCLCParameters = new Model_BaseCLCParameters();
                //增加熟料综合煤耗
                m_Model_CementCLCParameters.ProcessName                  = "可比熟料综合煤耗"; //获取工序名称
                m_Model_CementCLCParameters.MarterialsName               = "熟料";       //获取物料名称
                m_Model_CementCLCParameters.ProcessCoalConsumption       = myClinkerCoalConsumptionComparable / 1000;
                m_Model_CementCLCParameters.ProcessMaterialsUsedQuantity = myCementProperties.ClinkerInput;
                m_Model_CementCLCParameters.CoalLowCalorificValue        = myCommonParameters.StandardCalorificValue;
                m_Model_CementCLCParameters.CoalWaterContent             = 0;
                m_CementBaseCLCParameters.Add(m_Model_CementCLCParameters);

                m_Model_CaculateValueComparable = m_Base_CoalConsumption.GetCementCoalConsumptionComparable(m_CementBaseCLCParameters, myCommonParameters, myCementProperties);
            }
            m_Model_CaculateValueComparable.CaculateName = "可比水泥综合煤耗";
            return(m_Model_CaculateValueComparable);
        }
        /////////////////////////////////////////水泥磨////////////////////////////////////////////
        /// <summary>
        /// 计算水泥综合电耗
        /// </summary>
        /// <param name="myCementProperties">水泥属性</param>
        /// <param name="myCementProcessMartieralsProperties">各耗电工序物料属性</param>
        /// <param name="myClinkerPowerConsumption">熟料综合电耗</param>
        /// <param name="myClinkerInput">熟料消耗量</param>
        /// <returns>水泥综合电耗</returns>
        public Model_CaculateValue GetCementPowerConsumption(Model_CementProperties myCementProperties, List <Model_MartieralsProperties> myCementProcessMartieralsProperties, decimal myClinkerPowerConsumption)
        {
            Model_CaculateValue            m_Model_CaculateValue     = new Model_CaculateValue();
            List <Model_BaseELCParameters> m_CementBaseELCParameters = new List <Model_BaseELCParameters>(1);

            if (myCementProcessMartieralsProperties != null)
            {
                for (int i = 0; i < myCementProcessMartieralsProperties.Count; i++)
                {
                    Model_BaseELCParameters m_Model_BaseELCParameters = new Model_BaseELCParameters();
                    //求工序干基电耗
                    m_Model_BaseELCParameters.ProcessName    = myCementProcessMartieralsProperties[i].ProcessName;    //获取工序名称
                    m_Model_BaseELCParameters.MarterialsName = myCementProcessMartieralsProperties[i].MarterialsName; //获取物料名称
                    if (myCementProcessMartieralsProperties[i].MarterialsOutput != 0 && myCementProcessMartieralsProperties[i].MarterialsWaterContent < 1 && myCementProcessMartieralsProperties[i].MarterialsWaterContent >= 0)
                    {
                        m_Model_BaseELCParameters.ProcessElectricityConsumption = myCementProcessMartieralsProperties[i].ElectricityQuantity / (myCementProcessMartieralsProperties[i].MarterialsOutput * (1 - myCementProcessMartieralsProperties[i].MarterialsWaterContent));
                    }
                    else
                    {
                        m_Model_BaseELCParameters.ProcessElectricityConsumption = 0;
                    }
                    m_Model_BaseELCParameters.ProcessMaterialsUsedQuantity = myCementProcessMartieralsProperties[i].MarterialsInput * (1 - myCementProcessMartieralsProperties[i].MarterialsWaterContent);
                    m_CementBaseELCParameters.Add(m_Model_BaseELCParameters);
                }
            }
            if (myCementProperties != null)
            {
                Model_BaseELCParameters m_Model_ClinkerELCParameters = new Model_BaseELCParameters();
                //增加熟料综合电耗
                m_Model_ClinkerELCParameters.ProcessName    = "熟料综合"; //获取工序名称
                m_Model_ClinkerELCParameters.MarterialsName = "熟料";   //获取物料名称
                m_Model_ClinkerELCParameters.ProcessElectricityConsumption = myClinkerPowerConsumption;
                m_Model_ClinkerELCParameters.ProcessMaterialsUsedQuantity  = myCementProperties.ClinkerInput;
                m_CementBaseELCParameters.Add(m_Model_ClinkerELCParameters);

                m_Model_CaculateValue = m_Base_PowConsumption.GetPowerConsumption(m_CementBaseELCParameters, myCementProperties.MarterialsOutput, "水泥");
            }
            m_Model_CaculateValue.CaculateName = "水泥综合电耗";
            return(m_Model_CaculateValue);
        }
        /// <summary>
        /// 计算水泥可比电耗
        /// </summary>
        /// <param name="myCementELCParameters">水泥电耗参数</param>
        /// <param name="myCommonParameters">公共参数</param>
        /// <param name="myCementProperties">水泥属性</param>
        /// <returns>水泥可比电耗</returns>
        public Model_CaculateValue GetCementPowerConsumptionComparable(List <Model_BaseELCParameters> myCementELCParameters, Model_CommonParameters myCommonParameters, Model_CementProperties myCementProperties)
        {
            Model_CaculateValue m_Model_CaculateValue = new Model_CaculateValue();
            decimal             m_CementPowerConsumptionComparable    = 0;
            decimal             m_CementPowerConsumption              = GetPowerConsumption(myCementELCParameters, myCementProperties.MarterialsOutput, "水泥").CaculateValue;
            decimal             m_CompressiveStrengthCorrectionFactor = (decimal)Math.Pow((double)(myCommonParameters.Cement_CompressiveStrength / myCementProperties.CompressiveStrength), 1 / 4); //强度修正系数
            decimal             m_AltitudeCorrectionFactor            = 1;

            m_Model_CaculateValue.CaculateFormula = "水泥综合电耗";
            Model_CaculateFactor m_Model_CaculateFactor = new Model_CaculateFactor();

            m_Model_CaculateFactor.FactorName  = "水泥综合电耗";
            m_Model_CaculateFactor.FactorValue = m_CementPowerConsumption;
            m_Model_CaculateValue.CaculateFactor.Add(m_Model_CaculateFactor);

            if (myCementProperties.Altitude > myCommonParameters.Altitude)
            {
                m_AltitudeCorrectionFactor = (decimal)Math.Sqrt((double)(myCementProperties.AtmosphericPressure / myCommonParameters.AtmosphericPressure));
                //海拔修正系数
                m_Model_CaculateValue.CaculateFormula = "Sqrt(海拔修正系数)" + " * " + m_Model_CaculateValue.CaculateFormula;
                Model_CaculateFactor m_Altitude_CaculateFactor = new Model_CaculateFactor();
                m_Altitude_CaculateFactor.FactorName  = "海拔修正系数";
                m_Altitude_CaculateFactor.FactorValue = m_AltitudeCorrectionFactor;
                m_Model_CaculateValue.CaculateFactor.Add(m_Altitude_CaculateFactor);
            }
            //水泥强度修正系数
            m_Model_CaculateValue.CaculateFormula = "pow(水泥强度修正系数,1/4)" + " * " + m_Model_CaculateValue.CaculateFormula;
            Model_CaculateFactor m_CompressiveStrength_CaculateFactor = new Model_CaculateFactor();

            m_CompressiveStrength_CaculateFactor.FactorName  = "水泥强度修正系数";
            m_CompressiveStrength_CaculateFactor.FactorValue = m_CompressiveStrengthCorrectionFactor;
            m_Model_CaculateValue.CaculateFactor.Add(m_CompressiveStrength_CaculateFactor);
            m_CementPowerConsumptionComparable = m_CementPowerConsumption * m_CompressiveStrengthCorrectionFactor * m_AltitudeCorrectionFactor;

            m_Model_CaculateValue.CaculateValue = m_CementPowerConsumptionComparable;
            return(m_Model_CaculateValue);
        }
Beispiel #6
0
        /// <summary>
        /// 计算水泥可比煤耗
        /// </summary>
        /// <param name="myCementCLCParameters">水泥煤耗参数</param>
        /// <param name="myCommonParameters">公共参数</param>
        /// <param name="myCementProperties">熟料属性</param>
        /// <returns>可比水泥煤耗</returns>
        public Model_CaculateValue GetCementCoalConsumptionComparable(List <Model_BaseCLCParameters> myCementCLCParameters, Model_CommonParameters myCommonParameters, Model_CementProperties myCementProperties)
        {
            Model_CaculateValue m_Model_CaculateValue = new Model_CaculateValue();

            m_Model_CaculateValue = GetCoalConsumption(myCementCLCParameters, myCementProperties.MarterialsOutput, myCommonParameters.StandardCalorificValue, "水泥");

            return(m_Model_CaculateValue);
        }