在本系列文章的第一至第四部分中[1-4],我们从硬件角度分享并广泛介绍了 25 kW 电动汽车充电桩的开发。图 1 代表到目前为止所讨论的系统。第五部分则将从另一个维度深入探讨充电桩设计,我们将针对此类系统的控制策略和算法实现进行探讨,并提供实用见解。
我们的目的不是讨论控制理论,而是提供第一手详细信息,介绍开发团队所采取的控制硬件和软件开发的有益方法,帮助加快固件开发和验证过程。这些信息既适用于 ARM 控制器上的状态机,也适用于 FPGA 上的主控制算法,我们稍后会详细介绍。
同时,此处描述的特定开发过程可确保最大限度地减少错误,并能及早发现错误,甚至可在提供或设计原型硬件之前。在以下章节中,我们将介绍实现这种方法的步骤和工具(MathWorks 和 Xilinx)、功率因数校正 (PFC) 的状态机和算法模块,以及 DAB 转换器的主算法模块。
图 1.25 kW 电动汽车直流充电桩的高级框图。
PFC 控制软件的总体架构如图 2 所示。该设计的核心是 Xilinx 的 Zynq 7000 SoC,它包含 ARM 内核和 FPGA 内核。Zynq 7000 安装在通用控制器板 (UCB) 上,该板还包含外设、ADC、多个存储器板以及 SoC 和其他元件所需的电源树。[5]
首先,ARM 内核运行状态机(固件中的高级例程)以及其他辅助任务,包括通信协议、保护功能等。其次,FPGA 充当主控制算法的提供者,运行驱动转换器的控制环路,根据需要处理电源,实现AC-DC转换、PFC 并将电压升压至所需的直流链路电平。因此,FPGA 上的“主算法”是状态机一个特定状态,可称之为稳态。DAB 转换器在 ARM 内核和 FPGA 之间采用相同的任务分配方式。
图 2.25 kW PFC 转换器控制架构概览。任务在 UCB 上的 Xilinx Zynq 7000 的 FPGA 和 ARM MCU 之间的分配示意图。DAB 转换器的控制架构概览与此相同。
图 3 说明了在整个项目开发链中出现错误和检测到错误的典型分布情况。可以看到,大多数错误是在初期的制定规格和设计阶段引入的;但是,它们大多直到测试后期才被发现。
图 3.引入的错误与检测到的错误。(资料来源:Clive Maxfield 和 Kuhoo Goyal 的著作,《EDA:电子学的起点》。)
为了解决图 3 中呈现的现象,我们采用了一个开发过程,其目的是在开发的早期阶段检测到大部分这些错误。如果实施得当,从项目资源和时间表的角度来看,这种方法会带来一些优势,包括:
为此,安森美固件和控制工程师采取基于模型的测试方法,该方法充分利用了 MATLAB 工具和生态系统[6]。该方法的成功实施取决于四大关键支柱,开发人员需要解决以下问题:
为了加速这些特性的实现,我们充分利用了以下工具的优点(如表 1 所示)。
表 1:安森美工程团队使用的开发和仿真工具,用于开发、仿真、部署和测试 25 kW 快速直流电动汽车充电桩设计的固件。
图 4 描绘了固件开发和执行过程的简化流程图,按表 2 中总结的三个主要阶段进行划分。在本文中,只深入讨论仿真模型开发,这是最重要的一个阶段。
图 4.25 kW 快速直流充电桩固件开发流程图。
表 2:固件开发过程的各个阶段。
仿真模型开发阶段包括开发用于验证系统控制算法的仿真模型(或仿真模块)。本项目中包含的最重要的模块是:
在此开发阶段,我们使用“轻”模型(不含改进细节的代表性模型),这使我们能够在各种条件(电网阻抗、电流命令——取决于输出功率水平的变化——以及其他条件)下运行多种情况/场景,验证控制器对许多不同场景的响应。因此,在此阶段应避免使用开关模型,因为这些模型包含非常多的细节,运行模型需要花费大量时间——我们在本系列文章第三部分的电源仿真中对此已经有所了解。
我们使用平均开关等效模型[7]作为替代方案,该模型允许使用 FPGA IP 内核构建仿真模块。同时,我们保留了硬件的所有重要/有影响的特性,以确保仿真的完整性,例如转换器压降效应、噪声测量、PWM 传输和模数延迟等。
本章节进入到详情部分,将介绍实现特定仿真模型的关键步骤以及如何充分利用 MATLAB 环境所提供的功能。图 5 显示了具有表 1 中介绍的元件的通用电能转换系统的简化表示。
图 5.通用电能转换系统的简化表示(并非特指 25 kW 直流充电桩)。
“电源转换器”是模型的核心元件(我们的硬件代表),“控制器”是相关的主算法模块,也是我们正在开发和评估的算法模块。最终,通过使用 MATLAB 仿真生态系统提供的自动化工具,该算法模块将转换成 FPGA IP 内核本身。
我们的团队在模型开发阶段使用了一系列的六个步骤,贯穿至最终的 IP 生成。这些步骤的概览参见图 6 中的简化流程图,其简要说明如下文所示。
步骤 1:我们采用双精度浮点开发模型,而电源转换器则使用平均模型。如上一章节所述,在此阶段,开发的模型起着重要作用,既要尽可能轻以允许合理的仿真运行时间,又要足够准确以反映系统的实际行为。
步骤 2:我们使用 MATLAB 提供的自动化工具来生成系统的定点等效模型。此任务采用的工具是 MATLAB Fixed Point Designer。
步骤 3:将双精度变换为定点精度后,运行一次验证仿真,以确保定点转换不会影响系统的工作行为。
步骤 4:验证后,加入要在 UCB 控制器的 ARM 内核中运行的状态机。允许在 Simulink 模型中模拟手写 C 代码的工具是 S 函数。此时,我们应该能够在合理的仿真运行时间内针对多种情况和各种条件测试控制器。在这个过程中,可能会发生各种重要的子任务。例如,比例积分控制器增益的验证、控制器负载阶跃响应的评估、状态机的过电流反应以及错误处理等。
步骤 5:在生成 FPGA IP 内核之前,我们强烈建议针对选定的情况/场景运行一些仿真,将转换器的平均模型替换为开关模型。这个过程相当耗时,应对极少数的仿真情况进行重复。然而,重要的是要确保控制器免受转换器开关行为所引入的非线性的影响。
步骤 6:对所开发的算法有足够的信心后,我们现在可以使用自动化工具生成 FPGA IP 内核。这个过程显著减少了编程错误,实现了面积优化的可合成式 RTL,并且满足时序约束。
图 6.仿真模型开发阶段的六步骤流程图。为了便于表示,该流程图中省略了图 5 中的“外设”模块。它所在的位置以及与其他模块的连接与图 5 中的相同。