虚拟仪器大作业实验报告曲线拟合

2024-01-25 14:59

本文主要是介绍虚拟仪器大作业实验报告曲线拟合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  1. 第1章编程目的

1.1主要实现目的

学习虚拟仪器中“拟合”子选板工具的内容和设计全过程,了解“拟合”子选板中“曲线 拟合”函数的具体使用方法和技巧,进一步加深对数组的认识,掌握“曲线拟合”函数及其他相关选板的应用。曲线拟合(curve fitting)是数据分析中常用的一项技术,广泛地应用于各类工程实践当中。 曲线拟合是用连续曲线近似地刻画或比拟平面上离散点集合或数组所表示的坐标之间的函数关系的一种数据处理方法,这样就可以利用有限的数据画出一条连续的曲线,找出数据的分布 规律,应用于趋势分析等场合。LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。LabVIEW软件是NI设计平台的核心,也是开发测量或控制系统的理想选择。 LabVIEW开发环境集成了工程师和科学家快速构建各种应用所需的所有工具,旨在帮助工程师和科学家解决问题、提高生产力和不断创新。LabVIEW (Laboratory Virtual Instrument Engineering Workbench)是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而 LabVIEW 则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。VI指虚拟仪器,是 LabVIEW 的程序模块。

LabVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创用户界面。用户界面在 LabVIEW 中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称G代码。LabVIEW 的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。

              

       

图1- 1控件选板                        图1- 2函数选板

                 

      

图1- 3前面板界面程序框图界面

LabVIEW(Laboratory Virtual instrument Engineering Workbench)是一种图形化的编程语言的开发环境,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足 GPIB、VXI、RS-232和 RS-485 协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IPActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。

图形化的程序语言,又称为 “G” 语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图框图。它尽可能利用了技术人员、科学家工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。

利用 LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位/64位编译器。像许多重要的软件一样,LabVIEW提供了WindowsUNIXLinuxMacintosh的多种版本。

它主要的方便就是,一个硬件的情况下,可以通过改变软件,就可以实现不同的仪器仪表的功能,非常方便,是相当于软件即硬件!图形化主要是上层的系统,国内已经开发出图形化的单片机编程系统(支持32位的嵌入式系统,并且可以扩展的)。

第2章编程步骤

2.1程序框图主要功能模块介绍

如图2-1所示,“拟合”选板是“数学”子选板中对离散点集合进行拟合操作的重要工具,包括对离散点集合的14种不同的拟合方法,如线性拟合、指数拟合、幕函数曲线拟合、高斯曲线拟合、广义多项式拟合和曲线拟合等。

图2- 1曲线拟合

  

“配置曲线拟合[曲线拟合]”对话框,该对话框包含4部分:模型类型、数据图、残差 图和结果。配置界面各部分的介绍如下。

(1) 模型类型(Model Type)部分。

(2) 结果:  显示根据用户选择的选项和输入值生成的参数值。

(3)  数据图:显示原始数据和最佳拟合。

(4)  残差图:显示原始数据和最佳拟合之间的差异。

图2- 2

1"曲线拟合”函数节点的输入端子汇总

输入参数

说 明

信号

指定因变量的观测值

位置

指定自变量的值

错误输入(无错误)

描述该VI或函数运行前发生的错误情况

2"曲线拟合”函数节点的输出端子汇总表(图11-62中未完全显示出来)

输出参数

说 明

aO

返回最佳二次拟合的常量

al

返回一阶项系数

a2

返回二阶项系数

残差

返回原始数据和最佳拟合之间的差异

错误输出

包含错误信息。例如,错误输入表明在该VI或函数运行前已出现错误,则错误输出将包含相同错误信息,否则将表示VI或函数中出现的错误状态

多项式系数

返回最佳拟合多项式的系数。多项式系数中元素的总量为/n+1,其中机是多项式阶数

非线性系数

返回最能代表输入数据的非线性模型系数集合(按照最小二乘法)

广义最小二乘估计系数

返回最能代表输入数据的系数集合(按照最小二乘法)

均方误差

返回最佳拟合的均方误差

截距

返回最佳线性拟合的截距

斜率

返回最佳线性拟合的斜率

样条插值

返回插值函g(x)的二阶导数。样条插值是插值函数g(x)i = 0, 1,2,···,n- 1处的二阶导数

最佳拟合

返回拟合数据。VI使用下列方程计算最佳拟合。

Zi=F(xi)*A

式中,A为最佳拟合系数

2.2详细设计步骤

使用"曲线拟合”函数,用控件本身包含的3种不同的拟合模型,即线性、多项式和样条插值,对一组2D数组(离散点集)输入进行拟合,观察不同拟合方法的差异和特点。 曲线拟合实例的详细设计步骤如下。

2.2.1前面板的设计

    1.创建新VI,命名为Curve-Fitting.vio其操作路径为“文件新建VI”

2.放置数组控件、枚举控件、数值控件和图形控件。

执行''控件-新式-数组、矩阵和簇-数组”和“控件-新式-数值-数值输入控件” 操作,将数值输入控件拖入数组控件中,建立一个二维数组,并更改数值输入数组控 件标签为“原始数据”。

执行“控件-新式-数组、矩阵和簇-数组”和“控件新式-数值-数值显示控件” 操作,建立4个二维数组,并依次将控件标签命名为“拟合数据”、“项系数”、“样条插值”和“截距和斜率”。

执行“控件-新式-下拉列表和枚举-枚举”操作,并将控件标签更名为“拟合模型” 。用鼠标右键单击枚举控件,在弹出的快捷菜单中单击“编辑项...”, 弹出枚举属性:拟合模型”对话框,添加项值Linear, PolynomialSpline,如图2-3所示。

图2- 3

执行“控件-新式-数值-数值显示控件”操作,并将控件标签命名为“MSE”。

执行“控件-新式-图形-波形图”操作,添加2个波形图控件,并将控件标签更改 为“原始数据和拟合数据”和“残差图”,然后用鼠标右键单击波形图控件的图例,在 弹出的快捷菜单中设置前者的图例“原始数据”的线条颜色为绿色, 点样式为* 。类似地,设置''拟合数据”的线条颜色为红色,点样式为口;设置后者的图例“残差”的线条颜色为蓝色,点样式为・。如图2-4。前面板设置完成。

图2- 4

2.2.2程序框图的编辑

  1. 打开程序框图编辑窗口,相应的控件图标已经显示出来。其操作路径为"窗口显示程序框图”。
  2. 1放置条件结构、索引数组、曲线拟合控件,创建数组节点。

2执行“函数-编程-结构-条件结构”操作,将拟合模型节点与条件结构的选择器终端相连,此时条件结构包括3个分支,即Linear, PolynomialSpline。在以下的步骤中将在不同的分支中添加程序框图,以实现相应的拟合功能。

3.在的对话框中对线性(Linear)多项式(Polynomial)和样条插值(Spline) 这3种不同拟合模型的“曲线拟合”函数节点进行配置,配置完成后函数节点的输入/输出数据转换函数节点。这两种函数节点的调用路径为“函数-Express-信号端子情况当对多维数组进行创建操作时,由于“曲线拟合”函数节点的输入/输出端子数据类型 为动态数据,故将索引数组节点的输出端子与“曲线拟合”函数节点的输入端子相连时,会自动在两者端子中间生成“转换至动态数据”函数节点同样地,当“曲线拟合”函数节点的输出端子与创建数组节点相连时,需要使用从动态操作-从动态数据 转换/转换至动态数据”如图2-5示。

4.由于采用的拟合模型不同,所以曲线拟合控件端子的输出也不尽相同。为了实时显示不同模型的输出参数,同时保证前面板显示的整洁性和美观,在这里使用了属性节点的禁用(Disabled)特性。在需要进行操作的对象上,如本例中的截距和斜率节点上右键单击鼠标,弹出如图2-6所示的快捷菜单,选中“禁用(Disabled)”属性节点后 将其放置在绘图区,然后右键单击节点,在弹出的快捷菜单上根据需要选择“全部转换为写入”或“全部转换为读取”,这里使用其写入状态。其中禁用(属性节点)有三种状态:0为使用,1为禁用,2为禁用并变灰。图中也给出了禁用(属性节点的示意图。重复进行此操作,建立“项系数”和“样条插值”控件的禁用(属性节点)。

5.参照曲线拟合的端子定义,用连线工具将程序框图中的各个控件连接起来,连接好的程序框图如图2-7所示。

图2-5

图2-6、

6.对应的程序框图,如图2-7所示。

图2-7

第3章调试过程

3.1对完成的项目进行调试

单击连续运行圏按钮,如图3-1所示,可在数值和图形显示控件中观察到运行结果。切换“拟合模型”的项值,可以分别显示Linear PolynomialSpline 3种不同模型的曲线拟合结果。观察“截距和斜率”、“项系数”和“样条插值”控件的变化情况,就可以领会禁用(属性节点)的功能和妙用了。单击中 止执行凰按钮即可使程序停止运行。另外,如图3-2所示,还可以通过右键单击“曲线拟合”函数节点,在弹出的快捷菜单 中单击“属性”,对图2-3中的模型类型进行切换,以观察数据图和残差图的变化。

3.2实验总结

对Ni LabVIEW使用更加收悉,对虚拟仪器的了解更加深刻。

另简附输入数值的微积分的vi实现。

调试结果:

第4章参考文献

  1.  LabVIEW门与实战开发100例(第3版)严雨 夏宁.[M].北京:电子工业出版社,2017
  2. 虚拟仪器技术分析与设计(第二版)张重雄 张思维 .[M].京:电子工业出版社,2012
  3. LabVIEW虚拟仪器设计及应用 郝丽 赵伟.[M].北京;清华大学出版社,2018

这篇关于虚拟仪器大作业实验报告曲线拟合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

作业提交过程之HDFSMapReduce

作业提交全过程详解 (1)作业提交 第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。 第2步:Client向RM申请一个作业id。 第3步:RM给Client返回该job资源的提交路径和作业id。 第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。 第5步:Client提交完资源后,向RM申请运行MrAp

Java高级Day38-网络编程作业

112.网络编程作业 //1.使用字符流的方式,编写一个客户端程序和服务器端程序//2.客户端发送"name",服务器端接收到后,返回"我是nova"//3.客户端发送"hobby",服务器端接收到后,返回"编写java程序"//4.不是这两个问题,回复"你说啥呢"​​===============//客户端//===============public class SocketT

0906作业+思维导图梳理

一、作业: 1、创捷一个类似于qq登录的界面 1)源代码 #include "widget.h"#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget){ui->setupUi(this);//QPushbutton:登录、退出this->join = new QP

2024.9.6 作业

1> 手写unique_ptr指针指针 #include <iostream>using namespace std;template <typename T>class my_unique_ptr{public:explicit my_unique_ptr(T *p = nullptr) noexcept // 构造函数{ptr = p;}~my_unique_ptr() noexcep

9月6号作业

1:.h文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QWidget> #include<QIcon> //图标类 #include<QLabel> //标签类 #include<QMovie> //动图类 #include<QLineEdit> //行编辑器类

Flink实例(六十九): flink 作业提交(四)总结

独立集群提交 # 启动集群bin/start-cluster.sh# 提交job./bin/flink run ./examples/batch/WordCount.jar --input hdfs:/user/yuan/input/wc.count --output hdfs:/user/yuan/swwwttt yarn session # 启动集群./bin/

【#第三期实战营闯关作业 ## 茴香豆:企业级知识库问答工具】

今天学习了《 茴香豆:企业级知识库问答工具》这一课,对大模型的应用有了更深得认识。以下是记录本课实操过程及截图: 搭建茴香豆虚拟环境: 输入以下命令 ``studio-conda -o internlm-base -t huixiangdou 成功安装虚拟环境截图 安装茴香豆 cd /root 克隆代码仓库 git clone https://github.com/internlm/h

Quartz 作业调度器

1、Quartz  java实现  注:这里使用的是Quartz1.6.5版本(包:quartz-1.6.5.jar)   [java]  view plain copy //测试main函数   //QuartzTest.java   package quartzPackage;         import java.text.SimpleDateFormat

清华MEM作业-利用管理运筹学的分析工具slover求解最优解的实现 及 通过使用文件或者套节字来识别进程的fuser命令

一、清华MEM作业-利用管理运筹学的分析工具slover求解最优解的实现         最近又接触了一些线性求解的问题,以前主要都是在高中数学里接触到,都是使用笔算,最后通过一些函数式得出最小或者最大值,最近的研究生学业上接触到了一个Excel solver分析工具,对这种线性求最优解的问题感觉使用起来真是得心应手。在使用这个工具前,EXCEL里需要先装上solver工具,装起来很也简单,网上

opencv作业

作业下载地址: 链接:http://pan.baidu.com/s/1qYQnbkw 密码:v7y9