好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

虚拟仪器第六讲.ppt

57页
  • 卖家[上传人]:xmg****18
  • 文档编号:120215270
  • 上传时间:2020-02-05
  • 文档格式:PPT
  • 文档大小:1,018.50KB
  • / 57 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1 LabVIEW 数 据 类 型 数组 簇和波形 2 q数组的建立方法 q数组函数的介绍 q数组应用举例 q簇的建立方法 q簇函数介绍 q簇应用举例 qWAVEFORM CHART与WAVEFORM GRAPH的区别 3 概述 数组 数组是同类型元素的集合 一个数组可以是一维或者多 维 可以通过数组索引访问其中的每个元素 索引的范 围是0到n 1 其中n是数组中元素的个数 演示索引功能 4 q数组的元素可以是数据 字符串 布尔型等 但所有元素的数据类型必须一致 5 概述 簇 波形 簇 Cluster 是另一种数据类型 它的元素可 以是不同类型的数据 它类似于C语言中的stucture 使用簇可以把分布 在流程图中各个位置的数据元素组合起来 这样 可以减少连线的拥挤程度 减少子VI的连接端子 的数量 波形 Waveform 可以理解为一种簇的变形 它是一种非常实用的数据类型 6 数组的创建 q数组创建的一般方法 创建一个数组有两件事要做 首先要建一个数 组的 壳 shell 然后在这个壳中置入数组 元素 数或字符串等 数组作为数据源创建框图 7 数组的创建的方法 q在前面板中创建数组的方法是 从Controls模 板中选择Array Cluster 把数组放置在前 面板中 然后选择一个对象 例如数值常量 插入到数组框中 这样就创建了一个数值数组 q也可在后面板上用类似方法创建 但是在后面 板上只能创建数组常量 在前面板创建的是数组变量 q利用创建数组函数 Initialize Array和 Build Array 8 数组控制 常数和显示对象 q通过把数组与数值 布尔数 字符串或 者簇组合在一起 可以在前面板和流程 图中创建任何一种数组控制对象 数组 常数对象和数组显示对象 q数组元素不能是数组 图表或者图形 9 数组功能函数 qLabVIEW提供了很多用于操作数组的功能函数 位于Functions Array中 演示 q创建数组 Build Array函数 Functions Array 用于根据标量值或者其他的数组创建一个数组 q初始化数组 Initialize Array 用于创建所有 元素值都相等的数组 下图中 该功能函数创建 了一个一维数组 10 Build Array q利用流程图中的常数对象的值创建和初 始化数组的两种方法 q左侧的方法是 将5个字符串常数放入一个一维字符串 数组中 q右侧的方法是 将三组数值常数放入三个一维数值数 组 再将这三个数组组成一个二维数组 11 Initialize Array q初始化数组 Initialize Array 用于 创建所有元素值都相等的数组 q初始化一维数组 12 数组功能函数 q初始化三维数组 如果所有的维长度输 入都是0 该函数会创建一个具有指定数 据类型和维数的空数组 13 数组功能函数 q数组大小 Array Size函数 返回输入 数组中的元素个数 14 数组功能函数 q数组子集 Array Subset 选取数组 或者矩阵的某个部分 15 数组功能函数 q数组子集 Array Subset n该函数可以返回从某个指针开始的部分数组 并包括了长度元素 下图显示了一些数组 子集的例子 注意 数组索引从0开始 16 数组功能函数 q索引数组 Index Array 用于访问 数组中的某个元素 17 数组功能函数 q索引数组 Index Array 例子 q从二维数组中提取一维数组例子 演示 18 创建数组功能函数 q使用创建数组函数 把一些元素和输出 组织成一个更大的数组 19 自动索引 qFor循环和While循环可以自动地在数组的上下 限范围内进行索引和累计 这些功能称为自动 索引 q在启动自动索引功能以后 当把某个外部节点 的任何一维元素连接到循环边框的某个输入通 道时 该数组的各个元素就将按顺序一个一个 地输入到循环中 循环会对一维数组中的标量 元素 或者二维数组中的一维数组等编制索引 q在输出通道也要执行同样的工作 数组元素 按顺序进入一维数组 一维数组进入二维数组 依此类推 20 自动索引 q备注 在默认情况下 对于每个连接到For循环的数 组都会执行自动索引功能 可以禁止这个功能 的执行 方法是用鼠标右键单击通道 输入数 组进入循环的位置 在快捷菜单中选择 Disable Indexing 任务 利用For循环逐个 读入并显示数组数值 问题 如果左图程序 Disable Indexing将会怎样 21 练习1 创建自动索引的数组 q目的 使用 For 循环的自动索引功能创 建数组 并用一个图形 Graph 显示该 数组 22 练习2 输入数组使用自动索引 q目的 打开并执行一个VI 它将在一个For循 环中使用自动索引功能处理一个数组 将数组 中元素分成正数数组和负数数组 23 Case结构为True的流程图 24 Case结构为False的流程图 移位寄存器可以放数组 25 练习2 q步骤 1 执行该VI 在输入的八个数中 可以看 到4个属于正数数组 另外4个属于负数数 组 2 从流程图中将一个值为5的常数对象连接 到For 循环的计数器端子 执行该 VI 可 以看到尽管输入数组仍然有八个元素 但 是3个位于正数数组 另外2个位于负数数 组 这说明 如果设置了N并开启了自动索 引功能 那么实际循环的次数将取较小的 数 3 关闭该VI 不要保存任何修改 26 q作业 练习建立一个有正负数的数组 并且通过 程序实现将正数和负数分开 并且分别 建立自己的数组 27 上节课内容 q数组的建立 q数组函数的介绍 q循环结构中数组的自动索引 28 循环结构中数组的自动索引 q利用两个FOR循环 创建一个2D数值型 数组 29 使用数组函数处理数组 q使用数组函数将2个1D数组和两个数值元 素 合成一个新的1D数组 q连接顺序 数组1 元素1 元素2 数组 2 合成 最终数组 q计算数组中元素个数 q返回数组中间一个元素值 30 此程序有错 31 数组计算的多态性 32 基本数学运算节点 基本数学运算节点主要实现加 减 乘 除等基本数学运算 基本数学运算节点支持数字类型的数据 但是与一般编程语言的运算功能更强 使 用更灵活 不仅支持单一的数值量输入 还可支持处理不同类型的复合型数值量 比如由数字量构成的数组 簇或簇数组等 数字类型的数据包括浮点数 整数和复 数 33 对于两个输入的节点 可以使用下列输入 组合 1 相同结构 Similar 两个输入的数据 结构相同 节点输出数据的数据结构与输 入数据结构相同 2 单标量 One Scalar 一个输入是数值 标量 另外一个输入是数组或簇 节点的 输出是数组或簇 3 簇数组 Array of Clusters 一个输入 是簇 另一个输入可以是簇构成的数组 运算结果是簇数组 34 练习建立一个有正负数的数组 并且通过 程序实现将正数和负数分开 并且分别 建立自己的数组 35 簇 qLabView中一种特殊的数据类型 由不同 数据类型的数据构成的集合 图所示是一个含 个Control的 簇 也可以在流程图上用类似 的方法创建簇常数 36 簇的应用举例 q一个VI的连接窗口最大有28个端子 使 用全部28个端子传递数据 这既烦琐又 易出错 q 通过把控制或显示对象捆绑成一个簇的 方法 仅使用一个端子就可以实现该功 能 37 簇 创建簇控制和显示 q在前面板上放置一个簇壳 Cluster shell 就创建了一个簇 然后你可以将前面 板上的任何对象放在簇中 图所示是一个含 个Control的 簇 也可以在流程图上用类似 的方法创建簇常数 38 簇的操作 q捆绑 Bundle 数据 演示 nBundle功能将分散的元件集合为一个新的簇 或允许你重置一个已有的簇中的元素 可 以用位置工具拖曳其图标的右下角以增加输 入端子的个数 最终簇的序是取决于被捆绑 的输入的顺序 右图中Bundle图标中部的 Cluster端子用于用新元素重置原簇中的元素 39 簇的操作 q分解 Unbundle 簇 nUnbundle功能是Bundle的逆过程 它将 一个簇分解为若干分离的元件 如果你要对 一个簇分解 就必须知道它的元素的个数 LabVIEW还提供一种可以根据元素的名字 来捆绑或分解簇的方法 稍后介绍 40 q只有同类型的簇之间才可以连接 q两个簇必须有相同的元素个数 q对应元素必须有相同的顺序和数据类型 41 练习簇 q目的 学习创建簇 分解簇 再捆绑簇 并且在另一个簇中显示其内容 q前面板 42 练习簇 q流程图 43 簇内元素的顺序 q簇内元素具有固定的顺序 与它们在框 架内的位置没有关系 q第一个放入的是元素0 第二个放入的是 元素1 q如果删除某个元素 顺序会自动调整 q如果要连接簇到另外一个簇 必须要清 楚簇的顺序 q一次性释放簇 也必须要清楚簇的顺序 44 45 Bundle 函数的解释 46 用名称捆绑与分解簇 q有时你并不需要汇集或分解整个簇 而 仅仅需要对其一 两个元素操作 这时 你可以用名称来捆绑与分解簇 在 Cluster 工具模板中除了Bundle及 Unbundle功能外 还提供有Bundle By Name和Unbundle By Name功能 47 用名称捆绑与分解簇 qBundle By Name和Unbundle By Name功能允 许根据元素的名称 而不是其位置 来查询元 素 q与Bundle不同 使用Bundle By Name可以访问 你需要的元素 但不能创建新簇 它只能替换 一个已经存在的簇的元素 同时你必须给 Bundle By Name图标中间的输入端子一个输入 以申明要替换其元素的簇 Unbundle可返回指 定名称的簇元素 不必考虑簇的序和大小 演示 注意理解 48 49 练习 q创建VI 检测簇中numeric1数值控件的 值是否大于0 如果小于0 VI计算所有 控件绝对值 如果大于等于0 VI不用计 算任何控件的绝对值 无论该值为什么 都将所有值乘以0 5并将结果显示在 output cluster上 50 51 数组和簇的互换 q有时你会发现 将数组变为簇 或者相反 很 方便 尤其是因为LabVIEW包括的关于数组的 操作功能多于簇 例如 前面板上有一个多按 钮的簇 你希望颠倒这些按钮值的序 好了 Reverse 1D Array功能正好可用 但是它仅可 用于数组 这没关系 你可以使用功能Cluster to Array将簇转换为数组 使用Reverse 1D Array切换开关的值 最后再利用Array to Claster 变换回簇 52 练习 q创建VI 产生10个随机数 以簇的形式 存储 然后反转顺序 存为新簇 q创建VI 模仿掷骰子 记录每个值出现 的次数 53 Waveform 数据类型 q一种类似于簇的结构 由一系列数据类型 构成 Waveform数据类型包含了波形的数据 Y 起始时刻 t0 和步长 t三部分构成 p由一些函数 子程序生成 也可以由数据 采集卡采集数据得到 举例 54 Waveform 数据类型 q许多用于数据采集和波形分析的VI和函数 的缺省状态都接受或返回Waveform数据 类型 当你将一个Waveform数据类型连 接到Waveform Graph或Chart时 会自 动画出相应的曲线 Waveform数据类型 是根据原有的数据类型进一步 打包 组合 而成 55 Waveform 数据类型 有关Waveform数据类型的函数或VI在 Functions Waveform和Analyze之中 56 波形数据处理 p波形数据处理 演示图5 81和5 83 知识回顾知识回顾 Knowledge Knowledge ReviewReview 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.