/// <summary> /// 计算法-圆形靶材密度 /// </summary> /// <param name="item"></param> /// <returns></returns> public static TargetDensityResult GetDensityInCalculationWay(TargetDensityCalculationItem item) { //输入异常判断 TargetDensityResult result = new TargetDensityResult(); double averageOD = item.OD.Average(); double averageH = item.H.Average()-item.PaperThickness; double v = Math.PI * averageOD * averageOD * averageH / 1000 / 4; result.CalculateDensity = (item.TargetWeight-item.PaperWeight) / v; result.RelativeDensity = result.CalculateDensity / item.TheoryDensity; return result; }
public void TargetDensityCalculationWayWithPaper() { TargetDensityCalculationItem item = new TargetDensityCalculationItem(); item.TargetWeight = 982; item.PaperThickness = 0.5; item.PaperWeight = 32; item.OD = new double[] { 230.02, 230.00 }; item.H = new double[] { 4.50, 4.48, 4.50, 4.52 }; item.TheoryDensity = 5.75; TargetDensityResult result = TargetDensityCalculation.GetDensityInCalculationWay(item); Assert.AreEqual(5.71584, result.CalculateDensity, 0.02); Assert.AreEqual(0.99406, result.RelativeDensity, 0.02); }