// 交流电压表应用 typedef struct { float input_rms; // 输入RMS值(V) float output_dc; // 输出DC值(V) float crest_factor; // 峰值因数 float thd_percent; // 总谐波失真(%) } ac_measurement_t; // 测量交流参数 ac_measurement_t measure_ac_signal(void) { ac_measurement_t result; // 读取RMS输出 result.output_dc = read_rms_output() - zero_offset; result.input_rms = result.output_dc; // 假设1:1转换比 // 测量峰值用于计算峰值因数 float peak_value = measure_peak_value(); result.crest_factor = peak_value / result.input_rms; // 估算THD(基于峰值因数) if(result.crest_factor > 1.41 * 1.05) { // 峰值因数偏离正弦波理论值,可能存在失真 result.thd_percent = (result.crest_factor - 1.414) / 1.414 * 100; } else { result.thd_percent = 0; } return result; } // 功率测量应用 float calculate_ac_power(float voltage_rms, float current_rms, float power_factor) { // 有功功率 P = U × I × cosφ float active_power = voltage_rms * current_rms * power_factor; return active_power; }