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

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项目合作开发,请与我们联系。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/13878.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql重点复习

1.MySQL如何对用户smart授权访问,密码为123456。 2.授权用户tom可以在网络中的192.168.4.254主机登录,仅对对userdb库下的user表有查看记录、更新name字段的权限 , 登录密码userweb888。 GRANT SELECT,UPDATE(name) ON userdb.user TO tom192…

基于matlab使用两个图像估计校准相机的姿势(附源码)

一、前言 运动结构 (SfM) 是从一组 3-D 图像估计场景的 2-D 结构的过程。此示例演示如何从两个图像估计校准相机的姿势,将场景的三维结构重建为未知比例因子,然后通过检测已知大小的对象来恢复实际比例因子。 此示例演示如何从使…

网络管理(包括网络管理的功能,管理系统及相关协议:SNMP,CMIS/CMIP)

1.OSI定义的网络管理 OSI定义的网络管理功能有以下5大类 (1)性能管理(PerformanceManagement) 在最少的网络资源和最小时延的前提下,网络能提供可靠、连续的通信能力。性能管理的功能有性能检测、性能分析、性能管理、性能控制。 (2)配置管理(ConfigurationManagem…

【Docker】Docker安装MySQL

🚀欢迎来到本文🚀 🍉个人简介:陈童学哦,目前专攻C/C、Python、Java等方向,一个正在慢慢前行的普通人。 🏀系列专栏:陈童学的日记 💡其他专栏:CSTL、蓝桥杯&am…

K个一组反转链表

K个一组反转链表 题目:力扣25 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有…

LangChain: 大语言模型的新篇章

本文介绍了LangChain框架,它能够将大型语言模型与其他计算或知识来源相结合,从而实现功能更加强大的应用。接着,对LangChain的关键概念进行了详细说明,并基于该框架进行了一些案例尝试,旨在帮助读者更轻松地理解LangCh…

GIS杂记(二):Arcgis对采样点进行裁剪,获取指定区域内的采样点

有时候需要对栅格数据进行采样处理,如果采样点过多则会使得采样时间过长,今天在进行数据采样时,使用了1km*1km的渔网建立的采样点,大概有1百万个点,程序运行时间大概4个小时,但是其中有绝大部分数据都是空值…

NotePad++ 正则匹配文件路径

([a-zA-Z]:(([\\\\/])[^\\\\/:*?<>|])*([\\\\/])[^\\\\/:*?<>|]\\.[^\\\\/:*?<>|],)*[a-zA-Z]:(([\\\\/])[^\\\\/:*?<>|])*([\\\\/])[^\\\\/:*?<>|]\\.[^\\\\/:*?<>|]$CTRLH -> 标记 -> 输入上面正则匹配&#xff0c;勾选如下…

HTML5 游戏开发实战 | 俄罗斯方块

俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏&#xff0c;它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。这款游戏看似简单但却变化无穷&#xff0c;游戏过程仅需要玩家将不断下落的各种形状的方块移动、翻转&#xff0c;如果某一行被方块充满了&…

玩转ChatGPT:Code interpreter (vol. 1)

一、写在前面 喜大普奔&#xff0c;GPT-4传说中的Code interpreter插件已经可以用了&#xff01;&#xff01;&#xff01; 二、什么是Code interpreter 代码解释器&#xff08;Code Interpreter&#xff09;是一个工具&#xff0c;它能够读取和执行编程代码。这里有几个主要…

Spring Boot 配置文件

目录 1、配置文件作用 2、配置文件的格式 1、application.properties 配置文件 - 效果演示 2、application.yml 配置文件 - 效果演示 为配置⽂件安装提示插件 - 社区版 idea application.properties 配置文件说明 properties 基本语法 查看更多系统配置项 - properties …

C# MVC 多图片上传预览

一.效果图&#xff1a; 开发框架&#xff1a;MVC&#xff0c;Layui 列表主界面这里就不展示了&#xff0c;可以去看看这篇文章&#xff1a;Layui项目实战&#xff0c;这里讲的是“上传Banner”界面功能&#xff1a; 其中包括&#xff0c;多文件上传&#xff0c;预览&#xff0c…