LabVIEW开发空气动力学实验室的采集和控制系统 点击:177 | 回复:0



fjczd

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:552帖 | 36回
  • 年度积分:703
  • 历史总积分:1294
  • 注册:2008年8月14日
发表于:2023-07-08 22:03:47
楼主

LabVIEW开发空气动力学实验室的采集和控制系统

在航空航天模拟设施中,通常的做法是准备一种针对当前正在进行的实验的数据采集和控制软件。该软件通常是根据当前要求编辑的更通用程序的修订版,或者可能是专门为该测试编写的自定义程序,具体取决于测试规范和复杂性。这些软件以多种语言编写,如FORTRAN,C/C++甚至自定义语言以及最近的环境,如LabVIEW和MATLAB。它们通常被编写为按顺序控制和触发子系统的数据流过程。LabVIEW有利于这一传统,使修订更轻松、更快捷。

从每个单独的实验的角度来看,这似乎是权宜之计:获取最适合当前需求的现有软件并进行一些修改来完成工作,或者编写一个完全适合您需求的新程序。但是,随着时间的推移,这种方法存在严重的缺点。它导致反映这种可变性的软件版本和数据激增。不断的代码更改意味着反复引入错误,这些错误在传播到其他测试之前可能会或可能不会检测到。这些不一致加剧了支持和维护工作,并且随着时间的推移,临时修订会累积,导致软件变得越来越难以理解和修订。从设施的角度来看,而不是从测试的角度来看,许多相同或类似的事情正在一遍又一遍地完成,但微小的差异会产生大部分问题,并消耗了不断增加的大部分努力。如果有一种架构可以适应测试的可变性,而无需不断进行软件修订,那么这个问题的大部分都将被消除。

许多现有系统由一个中央的全知过程或控制相对愚蠢的子系统的过程组成。职责按采集、实时显示、运动控制、报警等行划分。并在进程之间划分或仅在一个整体进程中运行。此过程或这些进程的代码需要密切了解系统硬件的详细信息。不幸的是,系统硬件在物理或功能上并没有按照相同的路线划分。因此,系统硬件的任何更改都会导致整个代码中的软件更改。

但是,如果智能可以推送到子系统,并且这些子系统能够相互协调,并与促进其协调的中央程序协调,那么任何子系统的细节都将在该子系统中隔离。随着子系统的添加、重新配置或从设施中删除,中央程序和子系统代码都不需要更改。

优点很多,一旦代码不再需要不断修改,它就会变得彻底调试和稳定。重新配置和排除设施故障变得更快、更容易、更可靠。任何新硬件都可以独立于整个设施软件编写子系统软件,只要它可以通过一个通用接口与之协调。对这种稳定系统提供的数据有更大的信心。

从中央流程到更自主的子系统的转变与结构化编程和面向对象编程之间的区别非常相似。子系统作为一个对象,也与可能从设施中连接或移除的真实硬件平行。这种匹配使得探索修订后的体系结构的面向对象编程变得很自然。还有其他选择,但这是一个很好的选择。

关于面向对象编程存在许多误解。有些人认为面向对象编程是一个难以掌握且令人困惑的概念,它取代了他们更熟悉的结构化编程,并且需要学习一种新的面向对象语言。他们可能会反驳说,在面向对象编程中可以完成的任何事情都可以通过传统的结构化编程来完成,那么为什么要付出努力呢?但这就像说,如果没有飞机,我们可以到达地球上任何我们想去的地方,所以为什么要经历制造它们的麻烦。飞机的许多优点是显而易见的。它们更快、更直接、更便宜,适合长途旅行。它们也更安全,有时可以避免其他旅行方式无法避免的恶劣天气。但有些飞机的制造完全是为了利用飞行提供的独特视角。面向对象编程也是如此。我们将在下面探讨许多优点,但也许最重要的是它为编程问题提供了更好的视角,特别是随着它的范围和复杂性的增长。

面向对象编程的优势现在已经确立,大多数组织都在利用它们。大多数商业应用程序都是面向对象的编写,大多数大型开发项目也使用它。

LabVIEW的开发人员使用面向对象的编程来创建它。但是,它提供的编程环境最初并不是面向对象的,它遵循数据流范式。LabVIEW旨在提供一种简单、快速的方法来获取采集设备收集数据。为此,它非常成功。环境响应速度非常快,可以快速开发和排除代码故障。但是,随着LabVIEW应用范围和复杂程度的不断增长,将面向对象编程技术应用于它们的自然需求也随之发展。在LabVIEW的后续版本中添加了各种函数,以及一个向导,用于创建标准实用工具以启用LabVIEW对象。面向对象编程和LabVIEW的功能现在结合了,尽管其他面向对象语言中自动完成的许多工作必须“手动”完成。这种组合被命名为面向图形对象编程GOOP。它是面向对象编程的一种独特风格,需要一些努力才能掌握,但结果的改进是值得的。LabVIEW8.2引入了完全面向对象的编程,包括继承等。

GOOP采集和控制系统的试点应用

隧道不仅用于进行空气动力学实验,还用于测试各种风洞设计。它具有各种可互换的测试部分。添加/删除或重新配置的子系统包括天平、横移器、压力扫描仪、风速计、模拟扫描仪、PIV等。为每个子系统开发了一个类,这些子系统被聚合v进入一个名为PLTDAS的容器类,用于PiLot隧道数据采集系统,该系统控制和协调子系统。

由此产生的系统成功地展示了分布式子系统方法以及GOOP在航空航天仿真设施中的应用。该界面足够用户友好,研究人员只需半小时的培训即可使用它。子系统更多的标准化也是可能的和有用的。

一系列测试需要一个具有开路隧道和结冰设施相结合功能的设施。为了提供这一点,在开路推进风洞中添加了一个结冰系统。这个结冰系统的控制系统为应用GOOP和分布式架构提供了另一个机会。

喷雾系统由一系列喷雾杆组成,空气和水流向由一系列开/关阀控制的杆上的各个喷嘴。阀门可以按偶数、奇数或全部模式分组。为了保持一致的喷雾,有必要单独不断调整每个酒吧的流量,因为几英尺的高度变化会使水压变化到足以使喷雾无法接受。该流程由前馈PID回路维持。供水和气压也由PID回路维持。用压力传感器测量棒之间的压力。

在控制系统软件中,每个条由相应的喷条对象表示。它根据传递给对象的设定点管理阀门的配置。这些对象被聚合到一个喷雾条阵列对象中,该对象管理各个条形以提供各种整体模式和相对设定点。该系统是聚合的一个例子,以及抽象如何将职责划分为更易于管理的层。

然后将这些对象合并到一个更大的,主要是结构化的程序中。然而,这些对象被证明是该程序中最稳定和可靠的部分。修订可以忽略不计。它展示了将程序抽象为对象级别的优势,既可以澄清问题,也可以控制程序不同部分之间的范围和相互依赖关系。

 

这是LabVIEW的一个应用,更多的开发案例,欢迎登录北京瀚文网星官网,了解更多信息。有需要LabVIEW项目合作开发,请与我们联系。




楼主最近还看过


热门招聘
相关主题

官方公众号

智造工程师