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