作者:Bijesh Poyil and Martin Murnane
模型驱动开发已被业界采用,作为快速原型设计和缩短上市时间的解决方案。但是,在最终实现阶段通常必须投入大量时间和精力,以使产品的性能与模型的性能相匹配。因此,模型驱动开发的全部潜力在实践中并未实现。在本文中,我们将讨论如何在模型开发过程中遵循一些准则和技术来解决这一差距。我们还介绍了如何从模型中生成有效的代码,以缩短产品的上市时间。
介绍
分布式能源(如并网太阳能逆变器)的渗透深度不断提高,导致电力转换社区为这些市场寻找更好、更高效和具有成本效益的解决方案。文献中有许多算法和拓扑可以提高功率转换过程的输出质量和效率。芯片供应商正在推出具有功能和硬件支持的新控制处理器,以有效地实现这些算法。构建完整逆变器的硬件原型并在各种条件下试验其性能是非常昂贵的。此外,在实验过程中算法的任何故障都可能损坏整个系统。这些市场中的产品还需要满足相关的安全标准。因此,电源转换行业在将这些创新技术应用于最终产品方面一直很慢。
模型驱动开发已被采用作为此问题的解决方案。在模型驱动开发中,在生成硬件原型之前构建和仿真系统的完整模型。这验证了算法功能并显着降低了风险。此外,当前的建模工具支持直接从模型生成代码,从而简化和放宽安全认证标准。然而,业界尚未接受完整的模型驱动开发,主要是因为1)最终产品和模型的性能差异很大,2)生成的代码对于目标控制处理器来说效率不高,需要手动修改才能将其带到产品中。
在本文中,我们将讨论可以使模型性能非常接近最终产品性能的技术和方法,以最大程度地降低硬件更改和延迟的风险。我们还讨论了如何从这些模型中有效地生成代码,以使产品更快地进入市场。
模型开发指南
模型驱动开发
考虑并网住宅太阳能逆变器的简化图,如图1所示。太阳能电池板上的太阳辐射产生与辐射强度成比例的直流电。转换器将这种直流电转换为交流电,可用于家用电器,也可以馈送到电网。来自信号链中各个点的电流和电压由适当的传感器检测,并将馈送到逆变器中的控制处理器。在控制处理器上运行的算法分析这些信号并控制功率模块,使产生的电流和电压达到电网所需的频率、幅度和相位。在这种情况下,太阳能电池板充当电源,电网和家用电器充当水槽。在不同的电源转换系统中,源和灌电流会有所不同,但大多数将落入图2所示的结构中。
图1.太阳能逆变器系统。
图2.电源转换组件。
电源转换系统/算法设计人员的主要目的是为模块的控制处理器和转换器硬件(如图2所示)找到合适的组件和算法,并满足所有源极和负载变化所需的性能。因此,在设计系统时,清楚地了解系统将要运行的环境非常重要。例如,在为系统设计太阳能逆变器时(如图1所示),设计人员应该知道逆变器的预期安装位置、太阳辐射强度的变化、太阳能电池板的效率、电网条件等。在模型驱动开发中,设计人员首先创建转换器的模型,模拟预期的变化,并验证模型是否按预期工作。大多数情况下,建模工具将提供用于对源和汇进行建模的模型和库块。例如,Simscape Power Systems™来自 Mathworks 有网格、光伏 (PV) 面板和各种负载的模型。这些可用于模拟和验证系统的各种用例。
系统性能取决于系统的所有组件。在某些情况下,设计人员可以自由地从头开始设计,并决定系统的所有组件,以满足对源和负载的限制。在其他一些情况下,由于设计人员无法控制的原因,系统的一部分可能已经修复,并且他们的自由度仅限于少数组件。在本文中,我们假设设计人员的主要目的是为现有拓扑选择和实现正确的控制算法,但所解释的大多数准则也可以应用于一般情况。
构建模型
使用正确的接口以模块化方式构建模型非常重要。结构良好的模型有助于快速分析和调整模型以适应各种用例。建模工具通常提供各种选项,以在适当的抽象级别对组件进行分组并重用。例如,Simulink 具有创建子系统、库模型或参考模型的规定。考虑图2所示的电源转换系统。图 3 给出了 Simulink 模型的顶层视图作为示例。在此图中,电源转换器和控制处理器封装在标记为ADIInverter的子系统中。Simscape Power Systems 提供的太阳能电池板和电网模型用于对电源进行建模,并配置强度和温度。图中的ADIInverter子系统可以进一步分层划分为控制处理器和控制算法模块。
图3.示例 Simulink 模型。
除控制处理器上运行的控制算法之外的所有块都是硬件块。因此,反映这些组件的所有约束的仿真精度是最重要的标准。
这些模块的接口是模拟信号,最合适的选择是连续模型。块控制算法用于在微控制器上运行,应仅使用离散状态和固定步长。最好将其保留为具有不同配置和求解器设置的单独模型,并从顶级模型中引用该模型。这也将有助于算法的代码生成和处理器在环 (PIL) 测试,如下文所述。
求解器步长和数据类型
仿真的速度和精度主要取决于求解器的类型和步长。较小的步长将提供更准确的结果,但会使模拟运行速度变慢。我们希望以最大的精度模拟硬件组件。在大多数情况下,具有可变步长的连续求解器应该可以工作。但是,当开关频率较高时,可能需要手动调整最大步长。例如,如果步长较大,开关频率为100 kHz(如图4a所示)下的PWM产生可能会失真(如图4b所示)。检查快速开关器件的输出以确认步长是否足够始终是一个好主意。由于控制算法在微控制器上运行,因此应使用具有固定步长的离散模型。使用的步长应该是系统中使用的采样周期的最大公约数(GCD)。大多数情况下,建模软件会自动选择它。
(a). 具有正确步长的输出。
(b). 大步长输出。
图4.100 kHz 的模拟 PWM 输出。
使用的数据类型也决定了模拟的准确性。使用双精度算术的模拟始终比使用单精度算法的模拟更准确。对于仿真硬件块,建议使用建模软件支持的最高数据类型。但是对于控制算法,我们希望获得与在控制处理器上运行相同的算法的性能,而不是更准确。因此,我们应该使用控制处理器支持的数据类型。例如,如果控制处理器是ADI公司的ADSP-CM41x处理器,则适当的数据类型是单精度浮点数,因为它带有带有浮点单元(FPU)的Cortex-M4处理器。如果控制处理器是定点处理器,例如 Cortex-M3,则应以定点数据类型设计和实现算法。建模软件可能支持从浮点数据类型到定点的自动转换,这将有助于加快开发速度。®
采样周期和精度
传感器在功率转换信号链中各个点感测的电流和电压信号通过控制处理器的模数转换器(ADC)提供给算法。ADC的采样速率主要取决于功率模块的开关频率以及应控制的速度。采样频率对控制算法的性能和动态有显著影响。因此,仿真应通过为系统选择合适的采样率来完成。用于控制处理器的ADC仅接受预定义范围内的输入。传感器的输出应归一化,使检测信号的范围完全适合ADC的范围,以获得最佳性能。
ADC的分辨率和精度也因处理器而异,这对算法性能起着重要作用。高精度ADC有助于更好地控制输出,并有助于简化算法并降低指定控制标准的控制频率。为了获得准确的仿真,这些特征应反映在模型中。例如,ADI公司的ADSP-CM41x处理器配备有效位数(ENOB)以上的16位ADC。ADC模块的建模应使其以所需的采样频率和精度将连续信号作为输入和输出离散信号。如果ADC模型支持选择在某些当前采样场景中很重要的采样点,则可以进一步提高仿真精度。
代码生成
通过开发模型和运行用例模拟来验证算法的性能,可显著降低风险并缩短上市时间。但是,当前的建模工具提供了在我们进入硬件原型之前执行更多操作的功能。所有芯片供应商都提供评估平台,用于在其处理器上开发算法。如果我们可以在评估硬件上运行并验证算法性能,这将为算法的性能提供额外的信心,但嵌入式处理器的编译器通常只接受C / C++代码,并且在建模和验证阶段手动开发这些代码通常非常耗时。所以在过去,这个阶段被推到了发展的后期。幸运的是,大多数建模软件现在都支持从模型自动生成代码。可以将控制算法的模型配置为使用预定义的 API 生成代码。仿真工具还提供 PIL 选项,用于直接从建模环境在目标上运行生成的代码。在PIL仿真中,控制算法的输入和输出通过UART等接口与评估板交换。此选项可用于比较在目标上运行算法和在主机上运行算法的性能。
通常,建模和仿真软件支持生成 C 代码,面向更广泛的处理器。硬件供应商将在处理器上具有差异化功能,以加快处理器设计的应用程序的执行速度。例如,ADSP-CM41x处理器带有数学单元加速器,可加快正弦、余弦和平方根等数学运算。利用这些功能以获得最佳处理器性能非常重要。建模工具提供将部分代码替换为自定义代码或将整个算法块替换为其他代码的功能。对于功率转换算法,可以通过为常见算法模块(如直接正交零点(DQZ)变换、锁相环(PLL)等)提供手写优化例程来生成优化代码。代码生成可以配置为使用这些手写例程,而不是默认的泛型例程。芯片供应商可以提供模型库,以加快算法在其处理器上的执行速度。可以利用这些选项为控制处理器生成优化的代码。
除了控制算法代码外,控制处理器还需要用于配置外设(如ADC、PWM等)的代码,以及用于维护系统时序和其他功能的框架代码。建模工具也可用于生成这些代码。但是,框架代码应该做的不仅仅是运行控制算法。为所有这些关联任务开发模型并从中生成代码可能不是一种有效的方法。在这种情况下,框架和外设配置代码可以单独开发,并规定集成生成的控制算法代码。
硬件在环 (HIL) 仿真
电源模块和系统的仿真通常在主机PC上运行。即使在PIL仿真中,也只有控制算法在目标控制处理器上运行。系统的所有其他部分都由主机上的建模软件进行仿真。由于这种模拟需要如此多的资源和执行时间,因此不可能在软件中实时运行这些资源和时间。ADC和PWM的系统动态和性能未在此类测试中得到验证。HIL 仿真 硬件 使用 现场 可 编 程 门 列 (FPGA) 来 仿真 转换 器 组 件、 源 极 和 吸收 器 , 从而 克服 了 这一 缺点。它有助于实时运行整个仿真,并查看ADC采样和PWM控制的实际效果。HIL 硬件 通常 由 不同 的 供应 商 提供, 并 提供 接口 控制 处理 器。应该注意的是,HIL平台无法模拟电源模块的详细开关特性。应单独分析这些影响,以在将其带入最终产品时将风险降至最低。
结论
近年来,建模工具有了很大的改进。在本文中,我们讨论了使模型输出非常接近最终产品输出的各种方法。但是,应该注意的是,有些特性(例如电磁兼容性(EMC))无法在仿真环境中进行验证。识别这些特征并通过替代方法进行分析和验证非常重要。
本文中介绍的步骤(HIL级除外)已成功用于设计和开发针对ADSP-CM41x处理器的控制算法,用于具有3电平ANPC拓扑的逆变器。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !