来自系列:验证,验证和测试电池管理系统
Chirag Patel,Mathworks
此视频演示了如何使用Simulink万博1manbetx®,Simscape™,Si万博1manbetxmulink Real-time™和Speedgoat实时系统,以执行硬件循环(HIL)仿真以验证和测试电池管理系统(BMS)。测试所有操作和故障方案的实际BMS是耗时的,并且您可能会发现难以锻炼BMS所有条件。使用Simulink和Simscape进行系统级建模,万博1manbetx让您模拟电池组模型的BMS控制算法和行为。从此系统模型中,您可以从控制算法和电池组模型中生成C代码,然后可以分别部署到微控制器和HIL实时系统。
当您观看此视频时,您将学习如何:
[HIL部分]
在本节中,我们将仔细研究电池管理系统的硬件环路测试。
需要对电池管理系统进行广泛的端到端测试,包括所有可能的故障条件,以确保系统的行为符合预期。
为电池管理系统进行这种类型的测试可能会非常耗时。例如,在开始测试充电模式功能之前,必须将电池组放电到适当的充电状态。
测试典型电动车电池组的完整充电和放电循环需要数小时。当我们包括温度,充电状态和其他参数的不同操作条件时,我们正在谈论几天的测试。
此外,再现设计问题和故障条件可能很困难,并且涉及安全考虑因素。
在使用实际单元进行测试时,实现测试自动化,测试排序和报告生成可能非常昂贵,需要大量资源,尤其是涉及许多测试设备时。
对最终系统集成测试和功能测试需要使用实际电池组进行广泛测试。但这对于每个软件修订或设计迭代进行这种类型的测试并没有意义。
在你的设计迭代中获得高可信度的一个方法是通过模拟电池组测试BMS控制器和电子元件。这种实时测试真实控制器和模拟设备模型的方法称为“硬件在环”测试。
在HIL测试中,我们从电池组的工厂模型开始。这是您可能在桌面模拟中用于测试BMS算法的模型。
接下来,我们从电池模型生成C代码并编译成实时应用程序,该应用程序通过专用的实时目标计算机实时部署和实时执行。
这台目标计算机必须有外设来将数值转换成物理信号,如电池电压和温度。我们将实时计算机外设与BMS控制器连接,进行闭环测试。
通过使用可编程的电池组更换实际的电池组,我们现在可以更有效和安全地对软件和电子设备进行端到端测试。
现在,在我们可以为BMS控制器进行HIL测试之前,我们需要注意的事情很少。
首先,我们需要在BMS控制器所要求的步长时间内实时运行大型小区网络模型。
对于最常见的电池应用,BMS算法在100Hz到500Hz之间执行。因此,在1KHz实时执行我们的电池设备模型比HIL测试足够。如果电池组串联的电池组少于50个单元,则实现所需的步骤时间可以是简单的。
第二个挑战与硬件有关。由于我们想要模拟电池的电行为,我们需要有方法来产生孤立的电压,并能够将它们串联或并联,就像实际的电池一样。此外,您还需要温度传感器仿真和故障仿真。
要了解我们如何在Simulink中解决第一个挑战,请查看一个示例模型。万博1manbetx
在这里,我们有一个电池型号,具有16个单元模块,每个电池模块串联连接6个单元,使其总共有96个单元串联连接。每个电池单元块模拟电气和热行为。我们使用受控电流源充电和放电电池组。最后,测量各个电池电压,温度,包装电流和包装电压并发送到BMS控制器。
从桌面模拟到实时测试的第一步是选择正确的固定步长求解器。这通常是一个迭代的过程,在本次网络研讨会中我们不会深入讨论细节。
相反,我建议您在“使用Simscape的实时模拟实时仿真”主题中访问此专用网络研讨会。
在遵循本网络研讨会中描述的步骤之后,我们为Simscape Network选择了本地求解器,并确定了一致性迭代的数量为1.这些求解器设置会产生1ms步进时间的所需结果。
我们还注意到,对于特定的拓扑,“分区”求解器通过减少模拟的计算成本来提高性能。这有助于为桌面模拟和实时测试实现更快的模拟速率。分块求解器将附加Simscape网络的整个方程组转换成几个较小的切换线性方程组,这些方程组通过非线性函数连接。计算成本降低了,因为计算几个小方程组的解比计算一个大方程组的解更有效。万博 尤文图斯
现在,求解器名称“分区”可能会导致一些混乱。刚刚明确,分区求解器不会分区模型。分区求解器不会允许您拆分模型并在多核处理器上运行。有其他方法可以实现这一目标。万博1manbetxSimulink Real-Time在可能的情况下,默认情况下会自动利用多核处理器。
接下来,让我们继续在Real-Time中执行电池模型。
为了节省时间,我已经通过单击Build按钮构建并将应用程序部署到目标计算机。在目标对象中,我们可以注意到部署到目标机器上的应用程序的名称、应用程序状态、示例时间和其他有用的调试信息。
让我们开始在目标计算机上执行应用程序。在模拟的过程中,我们可以观察我们感兴趣的信号并调整参数。
此模拟仅为10秒。一旦结束,我们就可以检查目标计算机是否能够在1milliSecond的所需采样时间执行模型。
通过检查目标对象,我们可以注意到在模型执行期间没有报告CPU过载,最大任务执行时间(TET)在1毫秒之内。这为我们未来的模型增长提供了足够的空间。
当您在模型中添加更复杂和细节时,通过选择右解算器,您可能无法实现所需的采样时间。在这种情况下,特定于电池建模,您还有一些您可以考虑的选项。
第一个选项是选择电池块的正确变型。在这里,您可以注意到通过选择具有较低保真度的变体,您可以轻松获得任务执行时间的10倍。
另一种选择是选择电池的低阶动力学。这也有助于显著减少任务执行时间。这种性能的提高来自于保真度的降低。
现在,如果你的模型复杂度较低,或者串联电池的数量小于50,很有可能你不需要做任何优化来实现任务执行时间小于1毫秒。
正如我们之前讨论的那样,对BMS应用的HIL测试的第二个重要方面是模拟传感器信号和传感器故障。
为了模拟电池电压,Speedgoat提供了电池仿真卡IO991-06。每个电池仿真卡提供6个隔离通道。每个通道可以提供高达7V的电压,这让我们可以模拟不同的细胞化学。此外,每个通道可以源达300毫安和汇达100毫安。此外,多个I/O模块可以串联或并行组合,以达到所需的功率水平。
除了电池电压仿真外,我们还需要温度传感器仿真卡和故障插入卡来完成BMS HIL设置。SpeedGeat为温度传感器仿真器卡和故障插入提供各种选项。
在我们的演示中,我们只使用IO991进行电池电压仿真。
现在,让我们看一个BMS HIL测试的现场演示。
我们从测试模型开始,这使我们能够模拟电池单元并生成故障方案。
在此测试模型中,我们有一个小电池组,其中6个单元串联连接。为了模拟故障,我们添加了一个开关,它允许我们短两个单元终端,而没有任何真实的物理后果并测试控制器的响应。我们使用切换开关块以交互方式注入故障。
受控电流源块用于在滑块块的帮助下模拟充电或放电电流。要在单元格上执行诊断,我们测量两个单元终端之间的电压。
测量的电池电压值输入到IO991块,它将这些数值转换成与单个电池有关的电气隔离电压。
IO991-06卡的输出端子连接到您在此处看到的电子板,这使得电池电压的物理测量并将信息传送到BMS控制器,在这种情况下是德州仪器控制器板。
BMS控制器对单元电压执行诊断,并在两个终端之间的情况下或欠压故障或短路之间生成故障状态。在这种情况下,BMS控制器在任何故障时打开LED,并在数字输出端口上输出其状态。
我们使用IO133的数字输入端口从BMS控制器读取故障状态,检查控制器逻辑是否按照要求执行。
现在,让我们连接目标机器。
在实时执行此模型,我们可以将当前的当前更改为10安培,以检查任何过压故障或-10安培,以检查来自控制器的任何欠压故障。
我们还没有看到任何错误。当我们注入短路故障时,我们可以立即注意到控制器板上的LED发光,并在模型中看到我们的灯在更换绿色到红色的颜色,表示控制器上存在故障。
让我们看看整个实验模拟数据检查器的结果。由于电流的变化,我们可以注意到电池电压的小变化。当我们触发故障时,其中一个电池电压显着下降,并查看故障状态的相应变化。
在本演示文稿中,我们演示了如何快速设计和测试BMS算法的大型系统级模型,以及电气,软件等不同域的工程师可以使用Simulink作为公共设计平台进行协作。万博1manbetx我们还讨论了不同的方法,实时运行大电池型号,以进行硬件环路测试。最后,我们展示了如何为BMS应用程序设置HIL测试以及如何帮助您对电池管理系统的设计带来更多的信心。
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。