所有 DEBUG 模式参数均在 metrology_main_file.c 文件顶部的 #ifdef DEBUG 块内定义:
- V_RMS — 所生成正弦波的均方根 (RMS) 电压,单位为伏特。默认值:120.0.
- I_RMS — 所生成正弦波的 RMS 电流,单位为安培。默认值:10.0.
- POWER_FACTOR — 仿真负载的功率因数(0.0 至 1.0)。将电压和电流之间的相位角设置为 phaseDiff = acosf(POWER_FACTOR)。默认值:0.5(滞后,60° 移位)。
- V_SCALING — 用于归一化所生成样本的电压比例因子。必须与 template.h 模板中的 PHASE_A_VOLTAGE_SCALE_FACTOR 匹配。默认值:1585.2.
- I_SCALING — 用于归一化所生成样本的电流比例因子。必须与 template.h 模板中的 PHASE_A_CURRENT_SCALE_FACTOR 匹配。默认值:125.0.
- SAMPLES_PER_CYCLE — 查找表中每个市电周期的样本数。必须等于 SAMPLE_RATE | MAINS_NOMINAL_FREQUENCY。默认值:160 (8000Hz / 50Hz)。
- PHASE_INCREMENT — 查找表中相位之间的起始索引偏移。默认值:53.
将谐波注入生成的信号
为了测试总谐波失真 (THD) 计算,可以通过在 metrology_main_file.c 文件的 #ifdef DEBUG 块内定义 INJECT_HARMONIC,将谐波分量注入生成的波形。定义 INJECT_HARMONIC 时,在执行 debugInit() 函数期间,会向电压和电流查找表添加一个额外的正弦分量:
- voltage[i] ± (V_RMS × SQRT2) / (V_SCALING) × HARMONIC_PERCENT × sinf(HARMONIC_ORDER × t)
- current[i] ± (I_RMS × SQRT2) / (I_SCALING) × HARMONIC_PERCENT × sinf(HARMONIC_ORDER × t - phaseDiff)
- HARMONIC_ORDER — 要注入谐波的整数阶数(例如,5 表示以 250Hz 的频率注入 5 次谐波)。默认值:5.
- HARMONIC_PERCENT — 注入谐波的幅值占基波幅值的比例(例如,0.50 = 50%)。预期的 THD 结果约等于该值。默认值:0.50.
通过在 debugInit() 函数的循环内手动添加更多项,可以注入多个谐波。