1 changed files with 108 additions and 0 deletions
@ -0,0 +1,108 @@ |
|||||
|
package com.iflytop.colortitration.app.common.utils; |
||||
|
|
||||
|
import java.io.PrintStream; |
||||
|
import java.nio.charset.StandardCharsets; |
||||
|
|
||||
|
public class TitrationResultAnalyzerUtils { |
||||
|
|
||||
|
// 铜的摩尔质量 (g/mol) |
||||
|
private static final double MOLAR_MASS_CU = 63.55; |
||||
|
|
||||
|
/** |
||||
|
* 计算铜离子浓度(mol/L) |
||||
|
* |
||||
|
* @param sampleVolumeTitrant 样品消耗的Na₂S₂O₃体积 (mL) |
||||
|
* @param blankVolumeTitrant 空白消耗的Na₂S₂O₃体积 (mL) |
||||
|
* @param titrantConcentration Na₂S₂O₃标准溶液浓度 (mol/L) |
||||
|
* @param oreSolutionVolume 矿石溶液取样体积 (mL) |
||||
|
* @return 铜离子浓度 (mol/L) |
||||
|
*/ |
||||
|
public static double calculateCopperConcentration( |
||||
|
double sampleVolumeTitrant, |
||||
|
double blankVolumeTitrant, |
||||
|
double titrantConcentration, |
||||
|
double oreSolutionVolume) { |
||||
|
|
||||
|
// 扣除空白后的实际消耗体积 (mL) |
||||
|
double netVolume = sampleVolumeTitrant - blankVolumeTitrant; |
||||
|
|
||||
|
// 计算铜离子浓度 (mol/L) |
||||
|
// 注意:1 mol Cu²⁺ 对应 2 mol Na₂S₂O₃,因此需要除以2 |
||||
|
return (netVolume * titrantConcentration) / (2 * oreSolutionVolume); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 计算铜离子质量浓度(g/L) |
||||
|
* |
||||
|
* @param sampleVolumeTitrant 样品消耗的Na₂S₂O₃体积 (mL) |
||||
|
* @param blankVolumeTitrant 空白消耗的Na₂S₂O₃体积 (mL) |
||||
|
* @param titrantConcentration Na₂S₂O₃标准溶液浓度 (mol/L) |
||||
|
* @param oreSolutionVolume 矿石溶液取样体积 (mL) |
||||
|
* @return 铜离子质量浓度 (g/L) |
||||
|
*/ |
||||
|
public static double calculateCopperMassConcentration( |
||||
|
double sampleVolumeTitrant, |
||||
|
double blankVolumeTitrant, |
||||
|
double titrantConcentration, |
||||
|
double oreSolutionVolume) { |
||||
|
|
||||
|
// 先计算摩尔浓度,再转换为质量浓度 |
||||
|
double molarConcentration = calculateCopperConcentration( |
||||
|
sampleVolumeTitrant, |
||||
|
blankVolumeTitrant, |
||||
|
titrantConcentration, |
||||
|
oreSolutionVolume); |
||||
|
|
||||
|
return molarConcentration * MOLAR_MASS_CU; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 计算矿石中铜的百分比含量(%) |
||||
|
* |
||||
|
* @param sampleVolumeTitrant 样品消耗的Na₂S₂O₃体积 (mL) |
||||
|
* @param blankVolumeTitrant 空白消耗的Na₂S₂O₃体积 (mL) |
||||
|
* @param titrantConcentration Na₂S₂O₃标准溶液浓度 (mol/L) |
||||
|
* @param oreSolutionVolume 矿石溶液总体积 (mL) |
||||
|
* @param sampleMass 矿石样品质量 (g) |
||||
|
* @return 铜含量百分比 (%) |
||||
|
*/ |
||||
|
public static double calculateCopperPercentage( |
||||
|
double sampleVolumeTitrant, |
||||
|
double blankVolumeTitrant, |
||||
|
double titrantConcentration, |
||||
|
double oreSolutionVolume, |
||||
|
double sampleMass) { |
||||
|
|
||||
|
// 计算总铜的质量 (g) |
||||
|
double totalCopperMass = calculateCopperMassConcentration( |
||||
|
sampleVolumeTitrant, |
||||
|
blankVolumeTitrant, |
||||
|
titrantConcentration, |
||||
|
oreSolutionVolume) * oreSolutionVolume / 1000; |
||||
|
|
||||
|
return (totalCopperMass / sampleMass) * 100; |
||||
|
} |
||||
|
|
||||
|
public static void main(String[] args) { |
||||
|
System.setOut(new PrintStream(System.out, true, StandardCharsets.UTF_8)); |
||||
|
// 示例数据 |
||||
|
double sampleVolume = 18.50; // mL |
||||
|
double blankVolume = 0.20; // mL |
||||
|
double na2s2o3Concentration = 0.0200; // mol/L |
||||
|
double oreVolume = 25.00; // mL |
||||
|
double sampleMass = 0.2500; // g |
||||
|
|
||||
|
// 计算结果 |
||||
|
double cuConcentration = calculateCopperConcentration( |
||||
|
sampleVolume, blankVolume, na2s2o3Concentration, oreVolume); |
||||
|
double cuMassConcentration = calculateCopperMassConcentration( |
||||
|
sampleVolume, blankVolume, na2s2o3Concentration, oreVolume); |
||||
|
double cuPercentage = calculateCopperPercentage( |
||||
|
sampleVolume, blankVolume, na2s2o3Concentration, oreVolume, sampleMass); |
||||
|
|
||||
|
// 输出结果 |
||||
|
System.out.printf("铜离子浓度: %.5f mol/L%n", cuConcentration); |
||||
|
System.out.printf("铜离子质量浓度: %.3f g/L%n", cuMassConcentration); |
||||
|
System.out.printf("矿石中铜含量: %.2f%%%n", cuPercentage); |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue