利用LabVIEW FPGA模块构建灵活的发动机仿真器

作者:Matthew Viele - National Instruments

"利用LabVIEW FPGA模块在NI PXI-7831R可重配置I/O板卡的FPGA上编程,不但使我们的系统性能超过了规格要求,还节省了90%的硬件搭建成本。"—— Matthew Viele, National Instruments

挑战:
开发一款发动机仿真器,用于发动机控制模块的硬件在环(Hardware-in-the-loop, HIL)测试。

解决方案:
使用NI LabVIEW,LabVIEW Real-Time模块和LabVIEW FPGA模块以及PXI-7931R可重配置I/O板卡完成实时仿真,并对I/O信号实现精确、灵活的定时与同步。

HIL仿真要求
作为工业能源控制科技的世界巨头,Woodward Industrial Controls公司与发动机、涡轮OEM制造商紧密合作,致力于生产高效的控制系统。Woodward的技术不仅提供了道路速度载荷控制,还提供了多种控制系统,被广泛用于排放系统、发电机、压缩机、涡轮增压器的控制,以及柴油/天然气发动机、燃气/蒸汽涡轮、发电系统、微型燃气轮机和燃料电池的点火控制。为了测试发动机控制器的新生产线,我们需要建立一个系统,能够仿真发动机运行中的所有输入和输出信号。

因为我们测试的发动机控制器能够持续地调整点火、燃料喷射以及其它发动机性能有关的输出,所以其测试系统必须能够以实时闭环的方式根据发动机参数的变化不断作出调整。这些参数包括歧管压力、空气流量、发动机转速和发动机温度。测试系统还必须能够检测发动机的爆震,控制涡轮增压器的废气排放,并达到技术人员通过节流阀设置的发动机速度和扭矩。

利用一台真正的发动机来测试发动机控制系统是一种非常危险和高成本的方法。如果控制器存在程序错误,将会导致诸如爆震、超速、高温的情况发生,并损坏测试发动机,甚至引发测试车间中的危险事故。所以,真正的发动机一般只用于最后的校准工作。

根据控制器输入来仿真发动机的输出,我们可以在没有发动机的情况下得到控制器的HIL测试结果。它还能帮助我们仿真一些在测试试验室内使用真实发动机时难以达到的情形,比如以极限条件运行。除了仿真正常运行环境,测试系统还通过信号的短路和断路来仿真故障情形。使用一个HIL仿真器来测试控制器,我们可以确保针对一台新发动机的控制程序的改进不会引起以前利用旧程序测试发动机时所发现的错误。我们并不需要一批真正的发动机来测试新的控制方式,使用之前已测发动机的仿真数据进行回归测试即可。

实时仿真发动机
多年来,我们已经使用了多种发动机控制器测试系统,包括电动马达驱动、复杂可编程逻辑器件,以及专门为控制单元设计的整套交钥匙系统。尽管这些系统的确能满足了我们的一些要求,但它们很难提供灵活、高效的全自动解决方案,我们也很难进行进一步改进以满足未来测试需要。

对于我们最新的发动机控制器,我们需要建立自己的系统。因为需要只有实时操作系统才能提供的确定性操作,我们选择了LabVIEW Real-Time模块进行仿真。在I/O信号方面,我们还使用了FPGA板卡,以满足我们对定时同步的需求。另外,为了产生输出波形和脉冲串,我们需要FPGA的运行速度远高于仿真主循环。

在我们知道NI LabVIEW FPGA模块和可重配置的I/O硬件以前,我们曾仔细研究过如何建立自己的基于FPGA的硬件系统。我们还寻找到了一块整合了FPGA和集成I/ O口的电路板。但利用LabVIEW FPGA模块在NI PXI-7831R可重配置I/ O板上进行FPGA编程,不但其性能参数优于我们的预定规格,而且还节省了自己开发硬件90%的成本。当然,部分成本节省来源于生产力的提高。但通过LabVIEW FPGA模块,我们可以轻松地在LabVIEW中编程,不再需要雇佣高薪且稀缺的VHDL设计人员了。使用LabVIEW7 Express配置FPGA,即使没有硬件工程师的帮助,我们的软件开发人员也可以自主完成。

信号的同步与产生

为了准确地表示一台发动机的运行状况,我们必须将多种信号与曲轴的转角同步,曲轴的转角代表发动机的运行位置。要正确测试一台控制器​​,我们还必须将对控制器输出进行采集,采样信号和我们系统生成的曲轴信号同步。在此,我们使用了PXI-7831R可重配置I/O板卡上的模拟输出端口,模拟可变磁阻曲轴传感器。我们以一个曲轴角度的分辨率来追踪发动机运行位置。例如,如果发动机工作在4000 rpm时,发动机位置跟踪扫描频率是24kHz。通过使用LabVIEW FPGA模块配置PXI-7831R的FPGA,我们将生成的曲轴转角、爆震以及歧管压力等仿真信号与控制器的测量信号同步,而测量的分辨率可达25纳秒。

产生仿真输出信号时,需要保证I/O板卡的输出通道控制要比发动机仿真主循环更快。我们的LabVIEW Real-Time仿真循环以1KHz运行,也就是决策频率。一旦做出决策,系统必须迅速产生输入输出信号以执行控制指令。例如,在测试时,发动机控制器也许会控制发动机运行在发生爆震的状态。LabVIEW Real-Time模块中运行的模型便可针对某个特定气缸控制产生一定幅度的爆震。PXI-7831R板卡上的FPGA然后就会产生这个输出信号。另外,在曲轴始末角度之间的“爆震窗口”里,系统还必须向被测控制器输出正确频率和幅度的输出信号。总之,通过LabVIEW FPGA模块和PXI-7831R可重配置I/O板卡,我们解决了之前无法完全进行HIL仿真的问题。 

我们还从仿真系统产生了无需与曲轴角度同步的其它信号,包括:开关、温度、踏板位置、油门位置以及车辆速度。我们在PXI-7831R可重配置I/ O板卡的其它独立输出通道上产生了这些信号。每个模拟输入和输出都有一个专用的模数或数模转换器。利用FPGA架构,我们可以同时并行多个进程。尽管FPGA上没有操作系统,它却像一个拥有多个、独立的处理器的芯片,可以为特定任务进行定制设计。

扩展NI汽车测试平台

LabVIEW FPGA模块和可重配置I/O硬件已经将NI汽车测试平台扩展至发动机测试控制器​​HIL仿真应用。在发动机实时仿真中,越来越多的I/O定时同步控制,以及板上输出信号生成的快速决策将变得非常重要。现在,我们已经可以建立、改进一个可以满足基本所有ECU测试需求的测试系统。

推荐配置:
LabVIEW FPGA模块
PXI-7831R FPGA模块