主题中讨论的其他器件: MSP430F6779A
尊敬的 TI 团队:
我们正在基于 TIDA-01094参考设计三相能量计。
当我们连接单相仪表、首次系统上电时、能量计测量 其他相位(无连接 L1-L2、仅连接线路3)的电流、有时也测量电压。这种情况需要几秒钟。几秒钟后、仪表工作稳定。您能帮助我们解决这个问题吗?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
尊敬的 TI 团队:
我们正在基于 TIDA-01094参考设计三相能量计。
当我们连接单相仪表、首次系统上电时、能量计测量 其他相位(无连接 L1-L2、仅连接线路3)的电流、有时也测量电压。这种情况需要几秒钟。几秒钟后、仪表工作稳定。您能帮助我们解决这个问题吗?
您好、Milen、
不良行为是电流测量(180A、170A…… 在首次系统上电时、L1-L2相位(未连接的相位)下降至0。几秒钟后、该相位的电流被称为"0A。 此外、在这段时间内、有功功率、能量的测量方式与反向一样。 在三相连接时,我们不会遇到这样的问题。
我们已将软件化。我们的观察结果;
- ADC_I_CURRENT[0]和 ADC_I_CURRENT[1]值将变为等于-4194305 (0xFFBFFFFF)。
您好 Candan、
非常感谢您提供的更多详细信息和软件分析、现在我了解了您的问题。
我认为、您在系统上电后会立即得到较大的值、例如180A 或170A、然后降至0.A、这表示在启动时有一些值
处理错误的 ADC 数据 、直到处理正确的值。
几秒钟后、正如您描述的那样、MSP430能源算法在未连接的 L1和 L2上计算正确的(或0A)值。
问:这种行为是否在每个未连接的阶段发生?
例如、如果您连接 L1并使 L2和 L3 保持未连接状态:L1在系统上电后是否正常工作、L2和 L3在电流测量中显示相同的问题?
此致、
米伦
您好 Candan、
我认为您看到的效果是直流滤波器稳定所需的时间。
可以使用 PC GUI 设置电流的直流滤波器变量的初始值;但是,必须注意处理24位的电流样本,但初始电流直流滤波器的值为16位。
例如、假设 GUI 的"电流直流偏移"值显示为-682.757。 您需要在舍入前将该电流直流偏移变量除以256。 这将为您提供-2 作为电流初始直流滤波器值的良好值。
可以通过修改 A 相的 DEFAULT_I_DC_맀 볆_A 宏、B 相的 DEFAULT_I_DC_맀 볆_B 宏和 C 相的 DEFAULT_I_DC_맀 볆_C 宏来设置未校准仪表的电流直流滤波器变量的初始值
用一个足够接近最终直流滤波器变量值的直流滤波器初始值来刷写 MSP 可以使仪表的启动速度足够快、可用于许多仪表; 但是、如果希望尽可能快地启动仪表、您可能需要在校准时设置直流滤波器的初始值。
在我们的代码中、GUI 会在校准期间更改这些值之前询问所有校准系数。 电压和电流直流滤波器值是要求提供的一些参数。 在询问并获取所有校准因子后、GUI 将为除直流滤波器值之外的所有校准因子计算新的计量参数、这些值设置为 GUI 在询问校准因子时发送到该 GUI 的值。
因此、我们可以通过修改 get_i_dc_맀 볆 值和 get_v_dc_맀 볆 函数来将最新的直流滤波器值存储到初始直流滤波器变量校准系数中、从而发送最新的直流滤波器值。
int16_t GET_I_dc_Estim估算(int phx、int which) {
//#if defined (nel_monitor_support)
// if (PHX ==假相位中性)
// {
// #if NUM_Phases > 1.
// 返回 cal_info->neutral.initial_dc_estimate[which];
// #else
// 返回 cal_info->phase[0].curry[1].initial _dc_Estimate [which;
// #endif
// }
//#endif
//return cal_info->phases[phx].curry[0].initial_dc_Estimate [which;
return (dc_filter_curry_맀 볆 值(working_data.phases[PHX].metal量 计量.curry[0].i_dc_Estimate [0])>16);
}
///////////////////////////////////////////////////////////
int16_t get_v_dc_Estimate (int phx、int which) {
//return cal_info->phases[phx].initial_v_dc_맀 볆[which;
返回(dc_filter_volte_맀 볆 值(working_data.phases[PHX].metal量 度量.V_dc_Estimate [0])>8);
}
我建议关闭此主题并进行直接电子邮件对话、请发送电子邮件至: m-stefanov@ti.com
此致、
米伦