基于 Linux 的蒸汽轮机试验台

作者:Alexandr E. Bravo

尽管数学模型和计算机能力的惊人增长使得现在可以模仿和计算几乎所有事物,但在某些领域,真实的实验仍然非常重要,并且无法用计算机模型代替。

其中一个领域是低压蒸汽轮机 (LPMT) 的设计。LPMT 是任何以蒸汽或联合燃气-蒸汽循环发电厂的重要组成部分,可产生高达发电厂能源 20% 的电力。与高压和中压汽轮机(蒸汽具有众所周知的特性)不同,LPMT 使用非结构化、非对称湿蒸汽工作。对于这种类型的流动,目前还没有完全证明的数学模型。真实的实验对于涡轮机流道的设计和改进涡轮机计算机模型至关重要。

世界上只有少数几个这样的试验台。其中一个试验台是俄罗斯圣彼得堡中央锅炉和汽轮机研究所的一部分,我在那里工作了七年。想象一下一个高 18 米,面积 700 平方米的大厅,里面充满了管道、电线和测量设备。中心有一个巨大的建筑物(见图 1),它是模型涡轮机的外壳,带有两个巨大的排气管。在测试期间,它每小时消耗 40 吨蒸汽,在试验台入口处使用压力为 30 巴、温度为 400°C 的活蒸汽,在模型涡轮机入口处使用压力约为 4 巴、温度为 200°C 的蒸汽,并在排气口处使用低至 30 毫巴绝对压力的深度真空。

A Linux-Based Steam Turbine Test Bench

图 1. 受测涡轮机位于中心,周围环绕着蒸汽管道和测试设备。

计算机和测量设备结构

在我们与 Alstom Power 的 Tanja 联合项目中,试验台的信息基础设施得到了更新。现在它包括三个主要部分:1) 高精度科学测量系统,称为用于流道测量的数据采集系统,或 DAS-Flow;2) 技术测量系统,称为操作人员数据采集系统,或 DASOP;以及 3) 研究人员和工程师的工作站。

DAS-Flow 系统最初主要由我们的客户提供。它提供了测量沿流道 200 多个压力和 50 个温度的能力。该系统的独立部分允许我们使用 12 个可移动探头来研究涡轮机内部的压力分布。每个探头都可以通过步进电机在轴向和角度两个方向上移动,并通过远程控制系统进行控制。所有压力测量均基于 PSI, Inc. 的 PSI-9000 系列压力变送器。这些变送器提供非常高的测量精度:对于少数参考压力低于 0.01%,对于其余压力低于 0.1%。该系统仅在稳定条件下不时执行测量。它并非设计用于动态压力测量。

DASOP 系统是我们自己构建的,用于在测试期间提供对整个试验台的在线控制。它以实时模式工作,从 150 多个压力、温度、转速和振动传感器收集数据。这些数据在控制室的两个监视器和一个串行终端上呈现给操作人员(见图 2),包括有关试验台的水、油和蒸汽系统当前状态的信息。DASOP 还提供安全控制,具有一些警告和紧急级别。

A Linux-Based Steam Turbine Test Bench

图 2. DASOP 实时显示操作和安全信息。

我们使用的所有计算机,除了一台 IBM RISC 工作站外,都是普通的 PC,范围从 386 到奔腾 4 和 Athlon。

为什么选择 Linux?

当我在 1995 年加入 Tanja 项目时,我在构建基于运行 RT-11 或 RSX-11 操作系统的俄罗斯 Digital PDP-11 克隆机的数据采集和评估系统方面有很多实践经验。1994 年,我开始尝试我的第一台 PC,并很快意识到 DOS 由于其单任务和单用户性质,不适合我们的任务。在那段时间里,我的兄弟 Mike 给我带来了我的第一个 Linux 发行版,我记得是 Slackware,它基于 0.99 左右的 Linux 内核版本。我立即发现,通过研究类似程序的源代码并将其用作原型,我可以解决几乎所有的任务。我的第一个数据采集系统于 1994 年完成。它是基于 ncurses 的,它仍然为我的前雇主工作,而无需我进行任何维护。

在 Tanja 项目开始时,我们只有客户提供的 DAS-Flow 系统。它是一个操作系统的大杂烩。我们有 MS-DOS、Microsoft Windows 3.11 和 NT、QNX 和 AIX。积极的一面是所有计算机都连接到本地 TCP/IP 网络。

考虑到整个系统的发展战略,并牢记我的经验,我们决定继续使用 Linux 作为我们技术测量系统 DASOP 和我们网络核心开发的基础。主要原因如下:

  • 可以使用各种现成的应用程序以及应用程序的源代码,用于学习和模板化。

  • 在廉价 PC 上具有出色的稳定性和可靠性,这是我们应用程序的首要要求之一。

  • 我们的预算非常有限,因此 Linux 的零成本非常重要。

  • 可以通过 Fidonet 回声区和 Usenet 新闻组获得非常友好的社区。

我们现在有什么?我们 IT 结构的核心是六台运行 Linux 的 PC。在六年多的时间里,没有发生过故障,我们测量的正常运行时间以年为单位,并且只有两个重启原因:硬件升级和我们的 UPS 无法处理的长时间断电。

我们从 Red Hat 开始,我们仍然有两台计算机运行 Red Hat 4.1 Vanderbilt 和 Red Hat 5.0 Hurricane。然后我们切换到俄罗斯本地化的基于 RPM 的发行版 KSI,并在去年转向 Debian。目前,我们的主服务器和我的开发机器在 Debian/Woody 下工作。我们对 Debian 非常满意,我认为今年我们将把我们所有的 Linux 机器都切换到 Debian。

网络

所有计算机都连接到本地网络,分为三个网段(见图 3)。第一个网段包括所有 DAS-Flow 计算机;第二个网段包括 DASOP 计算机和办公室计算机;第三个网段通过租用线路连接到外部世界。第三个网段只包含一台计算机,它充当我们的互联网网关,带有基于 ipchains 的防火墙和邮件服务器。

A Linux-Based Steam Turbine Test Bench

图 3. 试验台本地网络结构

我们网络的“中间”是我们的主服务器。它充当所有计算机的文件和打印服务器,但这并不是它的主要任务。在测试期间,我们收集大量数据。所有这些数据,作为原始测量值以及后来的评估参数,都自动存储在 MySQL 数据库中。Apache Web 服务器通过 HTTPS 为所有用户(我们的本地研究人员和我们在国外的客户)提供强大的数据库接口。

任何注册用户只需要一个浏览器即可访问数据库,搜索数据并以文本或图形形式获取结果。PNG、CGM 和 PDF 格式可用。我们主要使用 PHP 作为 Apache mod_php 模块来生成数据驱动的页面。几乎所有图形都是使用 gnuplot 程序通过 Perl CGI 脚本动态生成的,这些脚本从数据库中选择参数,将它们管道传输到 gnuplot,然后将生成的图像传递给 Apache。我们编写了 50 多个不同的 CGI 脚本,为用户提供所有可能的绘图类型,用户可以在其中选择所有内容——要绘制的参数、搜索条件、要绘制的特征类型、自动或手动轴缩放、平滑和逼近类型以及其他选择。

我必须特别提到 gnuplot 在我们项目中的重要作用。在我看来,它是最伟大的科学绘图实用程序之一,具有广泛的功能和输出格式。它仍在积极开发中,我总是尝试使用最新的开发版本,即使对于我的生产环境来说,这些版本也非常稳定。我还使用设计良好的 JpGraph PHP 类来生成某些绘图,特别是某些类型的快速搜索结果。

我们开发的另一个重要的软件部分是技术数据采集系统 DASOP(见图 4)。它具有模块化结构,包括数据采集模块、数据评估模块、套接字通信模块和应用程序模块。

A Linux-Based Steam Turbine Test Bench

图 4. DASOP 系统的结构

数据采集模块与可编程数据控制器 (PDC) 一起工作,该控制器通过 RS232 接口连接到 PC。它每秒从 PDC 获取约 150 个值,并在需要时对 PDC 数字 I/O 执行一些操作。所有测量数据都放置在共享内存段中,作为一个二维数组,其中每一列都是所有参数原始值的完整集合。列数是固定的,因此我们始终在内存中保留固定数量的最新测量数据集。

评估模块通过信号量机制与数据采集模块同步,从共享内存中获取最新的测量集,进行一些在线评估,并将评估后的数据放置在同一列中,扩展其长度。

套接字通信模块为远程应用程序模块提供对共享内存段的访问。有几个应用程序模块。其中一些可以在本地运行,直接访问具有测量和评估数据的共享内存段;另一个可以通过通信模块远程执行此操作。应用程序模块包括数据记录模块、安全控制模块和数据演示模块。

数据演示模块提供各种实时图形数据演示。一些示例是参数随时间变化的图、条形图(其中条形的颜色显示参数的状态——正常、警告或紧急)以及看起来像真实外部设备的面板。

A Linux-Based Steam Turbine Test Bench

图 5. DASOP 数据演示模块

由于我们的调度要求,我们不需要硬实时操作。软实时对我们来说已经足够了,因此我们为我们的硬件使用普通的 Linux 内核。数据采集、评估和通信模块是用纯 C 语言编写的,并在同一台 PC 上工作。安全、日志记录和一些演示模块也在该 PC 上工作。部分演示模块在另一台 PC 上工作,该 PC 充当第一台 PC 的 X 终端。这两台 PC 及其监视器都位于试验台的控制室中,以便向操作人员提供所有信息。一些演示模块在研究人员的 PC 上工作,通过通信模块获取信息。

演示模块的开发随着时间的推移而发生了变化。起初,它们是用于 Linux 文本控制台的基于 ncurses 的程序。后来,我切换到 X,仅使用标准 X11 和 Xt 库。下一步是尝试 Motif,我们从 SuSE 购买了它。开源 GTK 在一两年后出现,我切换到了它。在过去的两年里,几乎所有的演示和其他模块都是用 Tcl/Tk 编写的,并广泛使用了 BLT 扩展。我发现 Tcl/Tk 对于快速 GUI 开发、串行和套接字通信以及数据演示非常有用。

结论

在真实工业环境中进行多年的软件开发和使用向我们(以及我们的客户)表明,从任何角度来看,开源解决方案都是有效的——成本、时间、可靠性或功能集。我们的下一步将是用开源软件替换我们项目中剩余的专有软件。

资源

A Linux-Based Steam Turbine Test Bench
电子邮件:abravo@tctube.spb.su

Alexandr E. Bravo 于 1959 年出生于列宁格勒,即现在的圣彼得堡(与 300 年前一样),俄罗斯。他于 1982 年毕业于理工大学,专业是“自动化和远程机械”。他自 1994 年以来一直使用 Linux。

加载 Disqus 评论