电源转换应用中的 MCU
MCU 在电源转换应用中起着至关重要的作用。人们不断追求使电源转换器更高效、更紧凑、更智能、更便宜,这就需要使用只能以数字方式执行的高度复杂的控制和信号处理算法。MCU 通常可以取代多个分立元件,在某些情况下甚至可以消除对某些传感器的需求。专用于电源转换应用的 MCU 的价格已经下降到即使对成本高度敏感的产品(例如紧凑型 DC-DC 和 AC-DC电源模块)也能从其使用中受益的程度。但是,为此类嵌入式应用程序编写软件并非易事。
在电源转换应用中使用 MCU 的挑战通常来自于开发和调试过程嵌入式代码的难度。这有几个原因,特别是在成本敏感的应用中。重要的是,应用程序充分利用 MCU 的有??限资源(即处理能力和内存)。因此,通常几乎没有空间添加调试和故障排除功能。此外,开发人员通常被迫编写非常“紧凑”的代码,有时甚至仍然使用汇编语言,以限度地利用给定的微处理器。这样的代码可能难以分析和排除故障。开发和测试用于电源转换的嵌入式代码的另一个挑战是高速执行此类代码(通常为 10 – 500 kHz)来控制功率级。这禁止使用传统的调试器,因为调试器会暂停和停止应用程序,并限制了硬件在环 (HIL) 模拟器的适用性
图1:PIL模拟原理
处理器在环 (PIL) 联合仿真
Plexim 推出了一款新的 PIL 模块,该模块带有PLECS 3.6,专门用于帮助电力电子和嵌入式控制工程师测试、验证和确认嵌入式代码。该方法基于将 MCU 和 PLECS 电路模拟器结合到处理器在环 (PIL) 联合仿真中。换句话说,在真实 MCU 硬件上运行的实际代码与 PLECS 模型的虚拟世界相关联,而模拟和嵌入式代码的执行是同步的。
在 PIL 模式下,模拟工具计算出的值将用作嵌入式算法的输入,而不是读取物理传感器。同样,在处理器上执行的控制算法的输出也会反馈到模拟中以驱动虚拟环境。这种方法可以暴露特定于平台的软件缺陷,例如数值溢出和铸造错误。
PLECS PIL 方法与代码的编写/生成方式无关,不需要使用基于模型的开发方法。它仅依靠嵌入在代码中的探针来读取和覆盖变量,其中这种 PIL 方法类似于在印刷电路板上放置测试点以允许注入和测量信号,例如用于在线测试 (ICT) 或网络分析。
图 2:伪实时 PIL 操作中的嵌套嵌入式控制代码执行
在 PIL 操作期间,控制代码的执行必须与 PLECS 同步,以便交换探测信息和更新仿真模型。在同步期间,控制代码的执行完全冻结,包括所有与时间相关的 MCU 外设(如计数器)。一旦发生同步,控制代码就会以正常速度执行一个完整的采样周期。图 2 在多线程应用程序的上下文中进一步说明了这一概念。同步周期由“停止”和“继续”信号标识。可以看出,代码在同步步骤之间以正常和嵌套的方式执行。
这种模式称为“伪实时操作”,能够检测和分析与控制算法的多线程执行相关的潜在问题,包括抖动和资源损坏。它还可以查看延迟和裕度计算的处理器利用率。
PIL 的应用
有几种情况可用于 PIL,例如,在开始开发新的电源转换器时,可以编写和测试实际控制代码,而无需任何控制或电源转换硬件。PIL 模拟的所有要求都是低成本评估板上的 MCU。
PIL 方法有利于自下而上的软件开发,允许在 PLECS 仿真的受控环境中实施和测试诸如滤波器和补偿器之类的构建块。然后可以将经过单独测试和验证的模块组合成完整的控制应用程序,并在应用于实际硬件之前再次与 PLECS 一起进行全面彻底的测试。控制代码只需编写,无需在仿真工具中重复。
在验证和测试阶段,PIL 可以作为 HIL 的补充方法。与 HIL 相反,PIL 不需要专门的仿真硬件,并且仿真模型的复杂性/保真度不受限制,因为它不必真正实时执行。此外,如上所述,PIL 方法可以处理低功耗应用中常见的非常高的采样率。因此,相同的工厂模型可用于详细的离线分析以及 PIL 仿真。与需要维护一个控制代码实现类似,PIL 允许工程师维护和使用单个仿真模型。
图 3:PLECS 中带有防孤岛模型的太阳能逆变器示意图
PIL 方法也远优于软件在环 (SIL) 方法,因为后者无法准确重现多线程操作和处理器/编译器特定行为。,PIL 允许随时访问嵌入式软件测试点(读取和覆盖探针),而无需重新编译代码。这使得 PIL 模拟成为产品发布后回归测试和根本原因分析的强大工具。
使用 PIL 方法的外围设备建模和示例应用
在 PIL 模式下,控制代码的操作与 MCU 的实际数字和模拟 I/O 完全隔离。因此,有必要在 PLECS 仿真模型中镜像 MCU 外设(例如 ADC 和 PWM 模块)。因此,Plexim 发布了一系列高保真 MCU 外设模型作为我们 PIL 产品的一部分。这些模型在行为上与实际 MCU 外设完全相同,并且位准确。有关 PLECS MCU 外设模型的更多信息,
示例应用:具有防孤岛功能的三级太阳能逆变器
图 3 显示了 PIL 方法在并网太阳能逆变器应用中的工作情况。PLECS 电路的下半部分显示了电厂的电气模型,该电厂由一个光伏阵列组成,该阵列为通过三相滤波元件连接到电网的三级逆变器的分离直流链路供电。还显示了符合 IEEE 1547 的防孤岛测试负载。因此,该模型为逆变器控制的所有方面提供了一个虚拟测试台,包括为防止意外孤岛而实施的方法。
需要强调的是,PLECS 模型不包含任何控制算法。与太阳能逆变器示例应用程序相关的所有控制代码均采用纯 C 语言编写,并编程到 TI C2000 MCU 中。PIL 操作将结合上述工厂模型运行实际的嵌入式控制代码。
ADC 和增强型脉冲宽度调制器 (ePWM) 外设模型之间的 PIL 块充当 PLECS 模型和 MCU 之间的接口。它提供了一个简单的图形用户界面 (GUI),如图 4 所示,显示可用于覆盖或读取信号的探针列表(软件“测试点”)。PIL 块直接从编译器生成的二进制文件中包含的调试信息中提取可用测试点列表。因此,无需手动配置即可在 PLECS 中定义和解释探针。
图 4:PIL 块的 GUI 显示可用探测器的列表
图 5 显示了完整的系统仿真结果,一旦锁相环锁定到传感器电网电压,逆变器就会被激活,以提供测试负载所消耗的功率。因此,电网电流降至接近零安培,在 t=50ms 时电网断开,此时反孤岛算法(滑移模式频率偏移)会检测到这种情况并关闭逆变器。请注意,在标准 PC 上,整个 PIL 系统仿真需要不到 40 秒的时间。
图 5:PLECS 示波器显示了具有防孤岛效应 PIL 模拟的太阳能逆变器的结果