ZHDU006A December   2025  – January 2026

 

  1.   1
  2.   说明
  3.   资源
  4.   特性
  5.   应用
  6.   6
  7. 1系统说明
    1. 1.1 绝缘监测
    2. 1.2 主要系统规格
  8. 2系统概述
    1. 2.1 方框图
    2. 2.2 设计注意事项
      1. 2.2.1 TIDA-010985 概述
      2. 2.2.2 求解未知隔离电阻
      3. 2.2.3 处理大时间常数情况
      4. 2.2.4 预测算法
      5. 2.2.5 了解误差源
    3. 2.3 重点产品
      1. 2.3.1 LP-MSPM0G3507
      2. 2.3.2 TPSI2240-Q1
      3. 2.3.3 RES60A-Q1
      4. 2.3.4 TLV9002-Q1
      5. 2.3.5 TPSM33620-Q1
      6. 2.3.6 TPS7A2033
      7. 2.3.7 ISOW1044
      8. 2.3.8 TSM24CA
      9. 2.3.9 TLV431B
  9. 3硬件、软件、测试要求和测试结果
    1. 3.1 硬件要求
    2. 3.2 软件
    3. 3.3 测试设置
      1. 3.3.1 硬件测试设置
      2. 3.3.2 软件测试设置
    4. 3.4 测试结果
  10. 4设计和文档支持
    1. 4.1 设计文件
      1. 4.1.1 原理图
      2. 4.1.2 BOM
      3. 4.1.3 PCB 布局建议
        1. 4.1.3.1 布局图
    2. 4.2 工具和软件 [必填主题]
    3. 4.3 文档支持
    4. 4.4 支持资源
    5. 4.5 商标
  11. 5关于作者
  12. 6修订历史记录

预测算法

当 SW2 接通时,响应遵循指数衰减公式:

方程式 6. Vt=Vinf+Voe-tτ

其中

  • Vinf 是最终稳定电压(t = 无穷大)
  • Vo 是在时间零点时初始电压 V(t0) 和 Vinf 之间的差值。

请参阅 图 2-6,以便更好地了解这一概念。

需要特别关注稳定电压 Vinf。这个公式中的三个未知数是 Vinf、τ 和 Vo。如果 ADC 在三个不同的时间测量三个样本电压,则会创建一个由三个公式组成的系统:

方程式 7. Vt0=Vinf+Vo
方程式 8. Vt1=Vinf+Voe-t1τ
方程式 9. Vt2=Vinf+Voe-t2τ

通过使用 t2 = 2 × t1,Vinf 的计算得到了显著简化:

方程式 10. Vinf=Vt0×Vt2-Vt12Vt0-2Vt1+Vt2
  • 请注意,计算 Vinf 只需要四则运算。计算 Vinf 后,Vo 可以通过从 V (t0) 中减去 Vinf 来计算。
  • 理论上,只要 t1 和 t2 相对于彼此适当间隔,t0 在衰减曲线上的位置就无关紧要。具体而言,用户必须在三个样本之间保持相同的时间差。对于较长的时间常数,电压稳定曲线在相同的周期时间内可能相对平坦。在有噪声的情况下,增加三个样本之间的时间间隔会增加 SNR,从而提高预测算法性能。

用于求解方程组的 MATLAB 脚本为:

%% solution for exponential decay
clc
syms vt0 vt1 vt2 vinf v0 x
eq1 = vt0 == vinf+v0;
eq2 = vt1 == vinf+v0×x;
eq3 = vt2 == vinf+v0×x×x;
eq4 = vt0 ~= vt1;
eqns = [eq1, eq2, eq3, eq4];
[vinf, v0, x, para, conditions] = solve(eqns,[vinf, v0, x],ReturnConditions=true)

在 TIDA-010985 默认代码中,三个样本之间的时间间隔为 330ms。这会将总 IMD 测量周期时间保持在 2s 以内,同时使定点计算变得简单。要更改默认周期时间,用户可以执行以下操作之一:

  • 更改 IMD.c.中的 E1 #define。例如,将 E1 #define 从 990 更改为 600 (ms) 会将 IMD 周期时间从大约 2s 减小到大约 1.2s。确切的时间取决于数据采集周期后的几毫秒 (ms) 计算时间(约 2ms)。如果用户由于某种原因想要增加周期时间,则除了 E1 #define 之外,还必须相应地更改数据缓冲区“SamplesSize”。在不更改默认 ADC 采样周期的情况下,由于可用的 SRAM(总计 32kB),可以限制增加数据缓冲区:
#define SamplesSize 2000 // ADC buffer size
#define E1 990 // total time for Riso measurement is 2xE1 in ms 
  • 通过更改 syscfg 中的 TIMER_0 周期(例如从 1ms 更改为 0.5ms),可更改 ADC 采样间隔。这需要对其余代码进行一些更改,因为该代码假定采样周期默认为 1ms ADC。

使用以下公式可以计算时间常数:

方程式 11. τ=-VoV'(t0)

对于隔离电阻,只需要 Vinf。对于总系统 Y 电容 (CisoP + CisoN),在两个相邻的 ADC 测量值下,在 t0 处的电压近似为 V'(t)。则 Ciso 为:

方程式 12. Ciso=τRisoP||RisoN||RsP+R1||RsN 
TIDA-010985 采用用于预测算法的 ADC 样本的电压衰减曲线示例图 2-6 采用用于预测算法的 ADC 样本的电压衰减曲线示例

可以对充电曲线进行类似的分析。最终稳态电压 Vinf 的计算公式为:

方程式 13. Vinf=Vt0+Vt02-2×Vt0×Vt1+Vt12-Vt0+2×Vt1-Vt2

用于求解方程组的 MATLAB 脚本为:

%% charging solution
clc
syms vt0 vt1 vt2 vi v0 x
eq1 = vt0 == vi;
eq2 = vt1 == vi+ v0×(1-x);
eq3 = vt2 == vi+ v0×(1-x×x);
eq4 = vt0 ~= vt1;
eqns = [eq1, eq2, eq3, eq4];
%
[svi, sv0, sx, para, conditions] = solve(eqns,[vi, v0, x],ReturnConditions=true)

一个重要的考虑因素是知道何时应用预测算法。如果电压快速稳定,应避免使用预测算法。在求解 Riso 或 Ciso 之前等待更长的时间更为实际。目前,该软件会根据电压时间导数(由 Vbus 电压归一化)执行一些基本检查,以设置预测模式的阈值。此方法确实需要在已知负载的情况下进行一些调整,以提供可靠的运行。以下是代码中可能的存在模式:

  • #define SETTLED_MODE
  • #define DECAY_MODE
  • #define CHARGE_MODE
  • #define OUT_OF_RANGE_MODE