【空气起动系统控制】使用神经网络PID调节起动机入口压力值

本文主要是介绍【空气起动系统控制】使用神经网络PID调节起动机入口压力值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  前段时间师傅让做一个空起系统的建模,结果给忘了,现在趁着这几天疫情封控期间在家搞一搞,断断续续搞了五天,空起系统控制的相关资料太少了,还好最后弄出来了,虽然最后还存在点小问题,不过大体上ok的。

0 引言

  空气起动系统主要是用于辅助发动机起动,通过为发动机的起动机提供特定压力流量的气流,驱动空气涡轮起动机,并通过传动齿轮带动发动机转子,完成发动机起动过程。
  空气起动系统主要由各阀门(主路调节阀、旁路调节阀等)与连接管道组成。阀门主要是调节管道部位的压力流量,维持特定压力。

  上图中电动球阀、气动阀1和气动阀2为开关阀,通常根据试验所需维持恒定的阀门开度。通过改变主路调节阀开度来调节压力测点2的压力值,改变旁路调节阀开度来调节压力测点3处的压力值。以下针对通过改变旁路阀开度来调节起动机入口压力的情况进行分析与建模仿真

1 阀门流量公式

  主路/旁路控制阀门的工作原理与孔板类似,对于空气等可压缩介质,利用一系列热力学方程,最终可推导出如下流量公式
Q m = [ u 2 1 − u 2 m 2 p r 2 k ⋅ k p r 2 k k − 1 ( 1 − p r k − 1 k ) ] 1 / 2 × A 0 p 1 2 R g T 1 Q_m=\left[ \frac{u^2}{1-u^2m^2p_{r}^{\frac{2}{k}}}\cdot \frac{kp_{r}^{\frac{2}{k}}}{k-1}\left( 1-p_{r}^{\frac{k-1}{k}} \right) \right] ^{1/2}\times A_0p_1\sqrt{\frac{2}{R_gT_1}} Qm=[1u2m2prk2u2k1kprk2(1prkk1)]1/2×A0p1RgT12
  式中, Q m Q_m Qm 阀门出口流量, u u u 流束收缩系数, m m m 节流孔截面积与管道截面积之比, p r p_r pr 阀后与阀前压力之比, k k k 气体绝热指数, A 0 A_0 A0 调节阀等效截面积, R g R_g Rg 空气气体常数, p 1 p_1 p1 阀前压力, T 1 T_1 T1 阀前温度。

2 容腔建模

  将集气罐简化为单通结构,将排气管路简化为单通单出和单进双出结构,并且将集气罐至主路控制阀门前的部分简化为容腔1,主路控制阀至起动机和旁路阀前的部分简化为容腔2,如下图所示。

  不考虑管壁换热情况,通过热力学公式最终可得如下微分方程
d p d t = R V d ( c p − R ) ( c p 1 Q m 1 T 1 − c p Q m T ) d T d t = R T p V d ( c p − R ) ( c p 1 Q m 1 T 1 − c p Q m T ) − R T 2 p V d ( Q m 1 − Q m ) \frac{\mathrm{d}p}{\mathrm{d}t}=\frac{R}{V_d\left( c_p-R \right)}\left( c_{p1}Q_{m1}T_1-c_pQ_mT \right) \\ \frac{\mathrm{d}T}{\mathrm{d}t}=\frac{RT}{pV_d\left( c_p-R \right)}\left( c_{p1}Q_{m1}T_1-c_pQ_mT \right) -\frac{RT^2}{pV_d}\left( Q_{m1}-Q_m \right) dtdp=Vd(cpR)R(cp1Qm1T1cpQmT)dtdT=pVd(cpR)RT(cp1Qm1T1cpQmT)pVdRT2(Qm1Qm)
  式中, p p p 容腔出口压力, T T T 出口温度, R R R 空气气体常数, c p c_p cp c p 1 c_{p1} cp1 分别为进排气比定压热容, Q m Q_m Qm Q m 1 Q_{m1} Qm1 分别为容腔进排气流量, V d V_d Vd 容腔等效面积, T 1 T_1 T1 容腔入口温度。

3 喷管建模

  喷管流量计算公式如上,详情可见书籍《工程热力学,第五版》中第七章。

4 神经网络PID控制器设计

  设计RBF-PID控制器,将神经网络的输出值作为PID参数的的调整值,以达到PID参数自整定的目的,同时与不带神经网络的PID控制进行对比,神经网络RBF-PID控制思路如下:

5 仿真模型搭建

  搭建思路为

  使用matlab搭建仿真模型

  将起动机入口压力设定为8.5e4 pa,主路调节阀开度设置为0.99全开状态,通过神经网络PID控制器来调节旁路阀门的开度,进而调节起动机入口压力值,最终使得起动机的入口压力(容腔2的出口压力)跟踪上给定值,仿真结果如下所示。
  另外,由于容腔2的出口压力变化趋势与旁路阀门的开度变化趋势成反比,所以这里的P值为负。

阀门开度变化曲线:

起动机入口压力跟踪对比曲线:

5 仿真分析

  由仿真结果可得,使用RBF-PID控制器的系统振荡幅度更小,且稳态误差也更小,可能是由于神经网络控制器的参数设置的不是很恰当,所以区别看出来不是很大,不过总的来说,是比传统的PID控制要好一些的,达到了优化的目的。

  同时可见,阀门开度的变化与跟踪误差趋势保持一致,即当起动机入口压力值小于参考值时关阀门,起动机入口压力值大于参考值时开阀门。压力跟踪曲线存在一些振荡但总体效果良好,起动机的实际压力在10s左右时跟踪上参考压力值,且稳态误差维持在0.01%数量级,跟踪效果较好,初步完成了本次仿真试验。

6 总结

  本次仿真主要完成了当主路阀门开度保持不变的情况下,通过控制旁路阀门的开度来调节起动机入口压力,试验效果良好。

  不足之处:本次仿真是从理论入手,考虑的多是系统简化等效后的数学模型,有很多其他因素都没被考虑到,后续可以再进行优化。

  另外,当我同时使用主路调节阀门和旁路调节阀门时仿真效果不好,只有单独使用主路调节阀或者旁路调节阀时才能取得较好的效果,不过话说回来,最终的目的是使起动机入口压力保持稳定,这个目的算是达到了,后续需要再优化的话也可以从这个问题入手。

参考文献

  [1]. 空气起动系统动态特性机理分析与建模研究技术报告.
  [2]. 空气起动系统试验仿真平台设计技术报告.
  [3]. 沈维道, 童钧耕. 工程热力学[M]. 高等教育出版社.
  [4]. 雷勇,李辉,石小江. 航空发动机空气起动系统的前馈-反馈复合控制[J]. 机电工程,2011,28(5):586-589.
  [5]. 丰会萍,胡亚南,李明辉,等. 基于RBF-PID的多功能包装机热封温度控制[J]. 制造业自动化,2018,40(1):16-20.

这篇关于【空气起动系统控制】使用神经网络PID调节起动机入口压力值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/258704

相关文章

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Mysql虚拟列的使用场景

《Mysql虚拟列的使用场景》MySQL虚拟列是一种在查询时动态生成的特殊列,它不占用存储空间,可以提高查询效率和数据处理便利性,本文给大家介绍Mysql虚拟列的相关知识,感兴趣的朋友一起看看吧... 目录1. 介绍mysql虚拟列1.1 定义和作用1.2 虚拟列与普通列的区别2. MySQL虚拟列的类型2

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

关于@MapperScan和@ComponentScan的使用问题

《关于@MapperScan和@ComponentScan的使用问题》文章介绍了在使用`@MapperScan`和`@ComponentScan`时可能会遇到的包扫描冲突问题,并提供了解决方法,同时,... 目录@MapperScan和@ComponentScan的使用问题报错如下原因解决办法课外拓展总结@

mysql数据库分区的使用

《mysql数据库分区的使用》MySQL分区技术通过将大表分割成多个较小片段,提高查询性能、管理效率和数据存储效率,本文就来介绍一下mysql数据库分区的使用,感兴趣的可以了解一下... 目录【一】分区的基本概念【1】物理存储与逻辑分割【2】查询性能提升【3】数据管理与维护【4】扩展性与并行处理【二】分区的

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学