APP下载

基于PyQt的PEMFC引射器优化设计平台开发

2024-01-04张迪博施鎏鎏张文杰

电脑知识与技术 2023年32期
关键词:引射器代理数值

张迪博,施鎏鎏,张文杰

(上海理工大学能源与动力工程学院,上海 200093)

0 引言

“双碳”背景下,氢能得到了人们的重点关注。氢能的应用方式之一:质子交换膜燃料电池(PEMFC)具有零污染、转化过程噪声低、电池效率高的优点[1]。由于电池处于变工况的工作环境下,通过供应过量氢气的方法来保证输出功率的稳定,导致部分氢气未被完全消耗,目前常用引射器(图1)对该部分氢气进行回收利用。

图1 引射器

根据目前主流引射器设计方法所得到的引射器存在严重的设计点偏离问题[2]。对前人的工作进行研究总结,发现优化引射器的结构尺寸可以提高引射器的性能[3]。引射器的优化通常经过以下几个步骤:结构参数计算、计算域建模、网格划分和数值模拟,再经过多轮迭代从而得到一个性能较优的设计方案。手动进行多次迭代所需时间成本较高,尚不一定能找到最佳方案,且不考虑人为因素带来的各种影响。本文针对PEMFC 引射器,通过Python 将结构参数计算、计算域建模、网格划分、数值模拟、代理模型、优化算法等功能集成,形成一套参数化自动仿真设计平台,提升引射器性能以及提高开发速度。

PEMFC 引射器优化设计平台的功能分为5 个模块:1)引射器设计工况点参数的输入;2)引射器结构参数初步计算及结果展示;3)调节优化参数范围;4)选择文件保存目录并输入SSH远程连接所需参数;5)优化结果展示等功能。

1 PyQt介绍

Qt是一个C++可视化开发平台,是一个跨平台的C++图形用户界面应用程序框架(C++ GUI),能够为应用程序开发者提供建立图形用户界面所需的功能。Qt是完全面向对象的、易扩展,可应用于组件编程,并可以用于嵌入式开发。它是目前流行的Linux桌面环境KDE 的基础,是Linux 和嵌入式操作系统下的主流图形界面开发环境,其最大优势在于只需编写一次代码,就能编译部署在任何操作系统和硬件上。

PyQt是一个创建Python GUI应用程序的工具包,是Qt 和Python 结合的一个产物,可以说是为了将Qt的功能用于Python 开发的一个Qt 的Python 包装器。它是Python编程语言和Qt库的成功融合。

Qt Designer 是一个使用PyQt 库进行图形化界面开发时可视化的界面设计工具,可以方便地通过拖拽等方式来设计界面。

2 引射器基本工作原理

如图2所示,来自高压氢气罐的气体(工作流体)通过压力调节器达到适当的压力,经喷嘴加速后在喷嘴出口处会产生一个低压区,在压差的作用下使来自燃料电池中未被完全消耗的氢气(引射流体)到达吸入腔,二者在混合室充分混合后进入扩压室,经减速扩压达到允许压力后通过电池阳极侧入口进入电池,重新参与反应[2]。

图2 PEMFC氢气循环流程

通常用引射系数(ER)来评价引射器的性能[2],它表示引射流体质量流量与工作流体质量流量之比:

式中:ms为引射流体的质量流量,kg/s;mp为工作流体的质量流量,kg/s。

3 平台功能分析及模块设计

基于Python 的PEMFC 引射器优化设计平台是一个可以通过输入引射器设计点工况参数、参数的变化范围、优化过程文件的存储位置及SSH远程连接所需的参数后实现引射器结构参数的初步计算、拉丁超立方(LHS)实验设计方案(DOE)的设计、Python 调用OpenFOAM进行流体域建模,网格划分,数值模拟、基于试验设计方案和数值模拟结果构建代理模型并进行超参数寻优、使用优化算法进行全局寻优并判断是否达到收敛结果等功能,最后将展示优化结果。具体优化流程如图3所示。

图3 基于Python的引射器自动设计流程

1)PEMFC 引射器结构参数初步计算。使用Python编程语言并参照索科洛夫引射器设计方法[2]编写引射器结构参数计算程序,对引射器的结构尺寸进行初步计算。

Python 作为一门简单易用且功能强大的开源免费计算机语言,其以学习成本相较于其他编程语言较低、应用范围广等优点得到人们的广泛使用。

2)拉丁超立方(LHS)实验设计方案(DOE)的设计。基于上一步获得的PEMFC引射器的初步结构尺寸,采用拉丁超立方(LHS)试验设计方法,创建PEMFC 引射器结构优化参数的初始样本点集合,样本点个数为n= 90个。

由于PEMFC 引射器喷嘴的等熵效率较高,引射流体入口处的形状对引射器效率的影响可以忽略不计[4]。因此,引射器的几何形状可以简化为如图4 所示的轴对称形式,并且该轴对称模型完全可由图4中所标识的9 个PEMFC 引射器几何参数进行数学计算得到。为了最大限度地提高引射器的性能,对这9个几何参数进行全因子优化。

图4 PEMFC引射器对称计算模型

试验设计方法(DOE)主要对试验进行合理安排,以较小的试验规模(试验次数)、较短的试验周期和较低的试验成本,获得理想的试验结果以及得出科学的结论。LHS试验设计方法通过保证各水平距离均匀、避免重复与随机化,能高效生成高质量的试验设计方案。

3)Python 调用OpenFOAM 进行流体域建模、网格划分、数值模拟。针对各样本点,通过OpenFOAM 中的blockMesh 工具和rhoSimpleF-oam 求解器分别进行计算域建模、网格划分和数值模拟计算,获得各样本点的真实响应值。

Windows 系统下的Python 调用Linux 系统下的OpenFOAM进行相关操作时需要注意以下两点:

①Windows 系统与Linux 系统是通过Secure Shell(SSH)进行远程连接的。首先在Linux 系统下通过键入“sudo apt install openssh-server”和“sudo apt install openssh-clien”命令分别安装SSH 服务的服务器与客户端;接着键入“sudo service ssh status”命令查询sshserver 是否已经启动,若未启动则键入“sudo service ssh start”命令打开ssh-server。SSH 有两种远程登录方式,分别是口令登录与公钥登录。使用口令方式登录远程主机时,每次都需要键入“ssh 客户端用户名@服务器ip 地址”和密码(其中服务器ip 地址可以通过键入“ip a”来获得服务器的ip地址),在优化过程中并不能实现自动化。而使用公钥登录则可以解决该问题,利用密钥对进行连接,还可以提高安全性。首先键入“ssh-keygen-t rsa”命令生成密钥对,执行结束以后会在“/home/当前用户目录”下生成一个.ssh文件夹,其中包含“私钥文件id_rsa”和“公钥文件id_rsa.pub”,接着可将“公钥文件id_rsa.pub”复制到远程主机。经过以上两个步骤,以后再登录这个远程主机就无须再输入密码。

②通过SSH 远程连接Linux 成功后,调用Open-FOAM 执行流体域建模、网格划分、数值模拟等功能时,建议使用OpenFOAM 案例中的“./Allrun”脚本进行,这样可以省去重复且费时的操作步骤。但是在编写“./Allrun”脚本文件时,须特地在文件头部加上如下4句命令,否则并不能成功调用OpenFOAM相关功能,这是笔者经过大量试错所得到的经验:

4)构建代理模型并进行超参数寻优。根据样本数据中的所有样本点及其对应的真实响应值,构造径向基函数(RBF)代理模型,并对该代理模型进行Bayes超参数调优,提高代理模型性能。

采用代理模型方法不仅可大大提高优化设计效率,而且可降低优化难度,并有利于滤除数值噪声和实现并行优化设计。常用的代理模型有多项式响应曲面模型、径向基函数模型、Kriging 模型等。由于径向基函数模型的预测精度高、模型预测曲线的光顺程度好[5],故选择径向基函数模型。

Bayes 超参数优化[6]是在已有的超参数设置和对应的模型性能的基础上,通过不断地探索新的超参数组合来更新超参数的后验分布,并最终选择能够提高代理模型性能的超参数组合。

5)全局优化及加点策略。首先对构造的径向基函数代理模型进行Bayes 超参数优化,在已有的超参数设置和对应的模型性能的基础上,通过不断地探索新的超参数组合来更新超参数的后验分布,并最终选择能够提高代理模型性能的超参数组合;接着使用粒子群优化算法(PSO)[7]对超参数优化过后的径向基函数代理模型进行全局寻优;最后判断是否满足收敛条件,如果满足则停止优化并输出结果,否则,将寻优后的最优解加入样本点中构造新的代理模型进行迭代。

6)判断是否满足收敛条件。若满足,则停止优化并输出优化结果;否则,继续迭代。

4 案例展示

通过使用Python 编程语言并结合PyQt5、Qt Designer设计出如图5所示的PEMFC引射器优化设计平台的GUI 界面。界面共分为5 个部分:1)引射器设计工况参数的输入;2)引射器结构参数初步计算结果的展示;3)调节优化参数的可变范围;4)选择文件保存目录并输入SSH 远程连接所需参数;5)优化结果的展示。

图5 PEMFC引射器优化设计平台界面

输入如图5 中第①部分所示的PEMFC 引射器的设计工况点参数,点击“计算结构参数”按钮后会自动执行使用Python编写的引射器结构尺寸计算程序,运行结构尺寸计算程序后会将引射器结构参数具体数据展示在第②部分中以及第③部分的原始设计数据列。

第③部分中变化范围(其值介于0~1)决定的是第②部分中所示的结构参数可以变化的上、下限具体值。调节好所需的变化范围值后点击确认即可固定引射器所有结构参数的具体变化范围。以扩压室长度Ld为例,图5 中第③部分所示变化范围的值为0.1,意味着扩压室长度Ld的可变范围为[0.9*Ld,1.1*Ld];同理0.2即意味着[0.8*Ld,1.2*Ld]。

确定好具体的变化范围后,通过点击图5 中第④部分中的“浏览”按钮,选择具体的文件存放位置,将优化时所产生的数据文件保存在其中。接着通过输入Ubuntu 中的用户名以及相应的IP 地址用以使用SSH 进行远程连接调用OpenFOAM 功能进行计算域建模、网格划分、数值模拟计算。最后,点击开始优化后即可进行如图3所示的引射器的设计优化流程。

优化完成后的结果将在图5中的第⑤部分进行展示。二者中,位置居上的为优化后引射器的二维模型,居下位的是优化后引射器的内部速度云图。

5 结论

本文针对PEMFC 引射器,通过Python 编程语言将结构参数计算、计算域建模、网格划分、数值模拟、代理模型、优化算法等功能集成,形成一套参数化的自动仿真设计平台。该平台可以显著加快引射器的设计优化过程,降低研发人员所需投入的时间,促进相关行业的发展。

该平台尚有进一步的提升空间,如:提高网格质量以适应各种引射器模型、提高数值模拟的精度等,这也是以后要努力的方向。

猜你喜欢

引射器代理数值
用固定数值计算
Φ1.2 m 高超声速风洞引射系统设计与性能试验
变循环发动机后涵道引射器调节工况的数值研究
代理圣诞老人
高超声速风洞两级引射器气动性能试验研究
代理手金宝 生意特别好
复仇代理乌龟君
基于Fluent的GTAW数值模拟
一个村有二十六位代理家长
带凹腔支板的数值模拟