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

news2024/9/23 13:30:45

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.coloradmin.cn/o/732463.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iview-admin前后台分离管理系统

加油,新时代打工人! layui已淘汰,下面介绍vue管理后台系统,当然市场上不止下面一种框架。 layuimini后台管理系统的简单使用 iview-admin是iview生态圈的成员之一。是一套基于 Vue.js,搭配ivew UI(https://www.iviewu…

【LeetCode周赛】2022上半年题目精选集——二分

文章目录 2141. 同时运行 N 台电脑的最长时间解法1——二分答案补充:求一个int数组的和,但数组和会超int 解法2——贪心解法 2251. 花期内花的数目解法1——二分答案代码1——朴素二分写法代码2——精简二分⭐ 解法2——差分⭐⭐⭐ 2258. 逃离火灾解法1—…

在VSCode中导出安装的所有插件并在其他计算机进行导入

插件导出: 1、切换要导出的文件路径 cd D:\桌面文件\DownLoads2、导出到extensions文本 code --list-extensions > extensions.txt如图所示: 插件导入: 当您在另一台计算机上导出了 Visual Studio Code 编辑器已安装的扩展程序列表…

MySQL为什么选择B+树创建索引

不同方式查找数据 1. 全表遍历2. 哈希结构2.1 使用哈希结构创建索引的缺点2.2 哈希索引的适用性 3. 二叉搜索树4. AVL树5. B树6. B树6.1 B 树和 B 树的差异6.2 采用B树创建索引的优势6.3 一些需要注意的问题 1. 全表遍历 将磁盘中存储的所有数据记录依次加载,与给定…

linux下的mosquitto服务安装及使用(避坑指南)

Mosquitto是一个开源的MQTT消息代理服务器。MQTT是一个轻量级的、基于发布/订阅模式的消息传输协议。 mosquitto的安装使用比较简单,可以方便的来进行一些测试。 mosquitto介绍 Mosquitto的特点: 1. 轻量级:Mosquitto是一个轻量级的MQTT代理…

Git学习(mac)

Git基础 1.安装与配置 下载与安装:git官网 使用入口: win:右键菜单 git bash Mac: 终端 查看git版本: git --version使用Git工作之前,我们需要做个一次性的配置。方便后续Git能跟踪到谁做了修改,我们需…

第四章——复合类型

数组 数组(array)是一种数据格式,能够存储多个同类型的值。例如30个int类型的值,12个float类型的值。每个值都存储在一个独立的数组元素中,计算机在内存中依次存储数组的各个元素。 创建数组时应指出以下三点&#x…

10.1UEC++/UObject

1. 1.new出的对象,不用自己管理内存释放; 2.比如两个类对象指针a,b同时指向一个苹果,若苹果消亡,会将a,b同时指向空。 3.保存时,将工程中的actor,属性等能够保存在本地就是uob在发挥作用。 4.不管在ue&…

自然语言处理实战项目12-基于注意力机制的CNN-BiGRU模型的情感分析任务的实践

大家好,我是微学AI,今天给大家介绍一下自然语言处理实战项目12-基于注意力机制的CNN-BiGRU模型的情感分析任务的实践,本文将介绍一种基于注意力机制的CNN-BiGRU模型,并将其应用于实际项目中。我们将使用多条CSV数据样例&#xff0…

虚拟机ubuntu系统IP地址变成127.0.0.1了

使用sudo dhclient -v指令动态获取IP地址 注意要把电脑网线拔掉,如果WIFI和有线同时连着设备就会出现如下情况 拔掉网线后正常

网络应用基础交换机(NETBASE第五课)

网络应用基础交换机(NETBASE第五课) 交换机的定义 交换是按照通信两端传输信息的需要,用人工或设备自动完成的方法,把要传输的信息送到符合要求的相应路由上的技术的统称。交换机根据工作位置的不同,可以分为广域网交…

Tubi 时间序列 KPI 的异常值检测

欢迎来到 Tubi—— 在这里,广告型视频点播永不停歇! 作为全球最大的流媒体服务之一,Tubi 保持稳定增长,并始终关注对业务发展至关重要的前沿趋势。基于此,Tubi 数据科学团队创建了一套全新警报系统,对 Key…

【Kubernetes运维篇】RBAC认证授权详解(一)

文章目录 一、RBAC授权认证理论知识1、什么是RBAC授权?2、认证基本流程3、K8S客户端访问apiserver的认证几方式1、第一种:客户端认证2、第二种:Bearertoken方式3、第三种:Serviceaccount方式 4、RBAC授权常见角色绑定方式1、第一种…

安装OSAR_Co_X

在找开源的QSAR平台 在WOS里用“open source”、“QSAR”、“platform”为关键字找到一个描述QSAR-Co-X的文献,这是一个基于python开发的QSAR平台(额,,,目前还不是很清楚)。 根据链接找到Github里代码的所…

讲故事vs讲知识,区别太大

讲故事vs讲知识,区别很大 以故事化的方式讲知识,一般受众爱听 讲故事,通常受众爱听 趣讲大白话:但不是所有的故事都爱听 【趣讲信息科技219期】 #非著名IT人安志强的趣味笔记# **************************** 有一小部分故事&#…

CTFshow-pwn入门-栈溢出pwn49(静态链接pwn-mprotect函数的应用)

pwn49 首先我们先将pwn文件下载下来,然后赋上可执行权限,再来查看pwn文件的保护信息。 chomd x pwn checksec pwn file pwn我们可以看到这是一个32位的pwn文件,并且保护信息开启了NX和canary,也就是堆栈不可执行且有canary。最最…

算数运算符

运算符介绍:运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。 算术运算符赋值运算符关系运算符逻辑运算符位运算符三元运算符 算术运算符 算术运算符是对数值类型的变量进行运算的。 % 取模,取余 在 % 的本质,a % b…

UE5.1.1 C++从0开始(17.GAS游戏能力系统)

教程的链接:https://www.bilibili.com/video/BV1nU4y1X7iQ 教程内的老师没用GAS的插件,而是自己写了一个。这一篇文章只是开头,还有很多的内容没有往里面写。 新增了一个object类,新增了一个使用这个类的组件。然后把这个组件用…

text-to-3d方面的论文列表分享

以下给出几篇我个人觉得比较有价值的text-to-3d的论文列表,论文的超链接会连接到arxiv上。 DreamfusionFantasia3DTangoLatent-NeRFMagic-3dClip-ForgeClip-MeshDreamfieldAvatarCLIPPoint-EShape-EText2Mesh

P3804 【模板】后缀自动机(SAM)

题目描述 给定一个只包含小写字母的字符串 S。 请你求出 S 的所有出现次数不为 11 的子串的出现次数乘上该子串长度的最大值。 输入格式 一行一个仅包含小写字母的字符串 S。 输出格式 一个整数,为所求答案。 题解:这里就不讲后缀自动机的模板相关…