功能原型设计系列:算法工程
时间:03-19
来源:互联网
点击:
概览
功能原型系统系列 是帮助您了解原型开发过程的一系列文章。通过阅读,可以了解关键概念、原型开发的优点、产品选择讨论以及其他技术资源。
算法工程
算法工程是为应用算法设计而造的术语。它所指的是将纸上的算法草稿转换为鲁棒、经过完整测试、简单易用实现的过程。在原型系统中实现算法提供需要的功能可能是整个产品开发生命周期中最具有挑战性的部分,但是它也可能是最有回报的部分。通过应用现实世界的I/O,您能够亲眼看到算法实现工作。
本文说明了开发员可能会在设计算法中遇到的问题,以及使用图形化设计来克服这些挑战的优点。算法工程挑战少数系统级设计师才能够熟练掌握的编程知识。为不同平台编程需要的编程知识通常是少数系统级设计师能精确掌握的。
基本算法实现
为基本功能实现底层算法需要时间。速度在原型开发中是至关重要的,因为缺少现有代码而陷入从头开发的已知算法的困境是开发人员无法接受的。
为多个平台重复实现算法
随着功能原型的发展,算法需要多次重复功能以便移植到不同类型的系统中。代码通常无法在不同的运行环境中工作,这使得应用程序从原型系统到部署的扩展变得困难起来。
测试和验证
通常只有到较晚的时候才能够确定系统是否可以真正满足功能需求,重头开始的代价是昂贵的。举例而言,处理器可能无法足够快速地执行多个并行任务。它可能无法达到需要的循环时间。它还可能无法实时处理处理器密集的分析。
图形化系统设计为算法工程带来的优点
图形化系统设计解决了功能原型系统算法工程中的许多潜在问题。图形化系统设计是将直观的图形化编程与灵活的商用(COTS)硬件结合在一起解决设计挑战的方法。您可以使用这个方法,在设计的所有阶段中使用同一个环境。现在我们来深入了解一下这个方法如何解决以上提出的挑战。
多个计算模型
图形化系统设计的优点之一是它让程序员能够无需考虑实现用的计算模型(MoC)创建算法。随着算法的复杂度不断增加,程序员必须使用不同的计算模型扩展他们的代码能力。下面是您可以用于图形化系统设计的几个计算模型:
数据流
数据流是与NI LabVIEW软件紧密关联的计算模型。使用数据流,需要开发员在开始执行前,输入所有输入的数据。数据流是直观的代码结构,将并行处理等应用的实现变得十分简单。
文本数学
文本数学是简单创建复杂功能的另一个工具。基于文本的数学是将可以用脚本描述形式编写的复杂算法,用人类可以阅读的形式实现的方法。文本数学的实例包括公式节点和LabVIEW MathScript实时模块。使用LabVIEW MathScript,您可以选择最有效的语法用于算法开发,无论您是开发算法、探索信号处理概念或是分析结果。
图1:使用LabVIEW MathScript实时模块重用基于文本的代码
C 代码
有时候您使用的代码原来是用C或C++创建的。在这个情况下,您不必舍弃过去的工作。您可以在LabVIEW中使用内嵌C节点或调用库函数节点直接调用您之前的代码。使用内嵌C节点用于现有的C代码或编写小型的数字或矩阵算法,使用调用库函数节点访问DLL或共享库中的C代码。
开放式软件体系结构
在过去的几年中,LabVIEW平台在众多设计学科中得到了广泛应用,因此需要将数据与不同的设计与仿真工具整合在一起。LabVIEW使用多种整合工具、库和文件格式实现这种交互兼容性。LabVIEW还提供了与其他软件工具和测量资源的众多标准集成,其中包括:
* DLLs, 共享库
* ActiveX, COM, 以及 .NET (Microsoft)
* DDE, TCP/IP, UDP, 以太网、蓝牙
* CAN, DeviceNet, Modbus, OPC
* USB, IEEE 1394, RS232/485, GPIB
* 数据库(ADO、SQL等等)
使用这些工具,来自几乎任何测量和控制设备的数据集成都是可能的。通过将LabVIEW与硬件通信的通用标准整合在一起,开发者可以确保未来多年的兼容性和可扩展性。
LabVIEW方法
LabVIEW中的数百个函数涵盖了数学、信号处理、概率、控制中的许多传统算法,是构造任何定制算法的基础。这些函数减轻了编写底层代码的负担,为工程师提供了关注解决方案而不是关注实现细节的时间。
因为使用LabVIEW将采集现实世界的数据变得十分简单,用户认为能够使用实际数据对算法进行测试,从而使用重复的方法进行微调是十分有价值的。采用这种交互式的测试方法,您可以用不同函数进行实验,检查它们是否给出了期望的结果。举例而言,在使用滤波器处理信号时,您可以从不同解决方案中进行选择,采集您所需要的实际信号,然后在图或文件中查看结果。如果结果并不适用于应用程序,您可以选择其他滤波器。通常采集实际信号应用算法比花时间用软件仿真更加简单。
功能原型系统系列 是帮助您了解原型开发过程的一系列文章。通过阅读,可以了解关键概念、原型开发的优点、产品选择讨论以及其他技术资源。
算法工程
算法工程是为应用算法设计而造的术语。它所指的是将纸上的算法草稿转换为鲁棒、经过完整测试、简单易用实现的过程。在原型系统中实现算法提供需要的功能可能是整个产品开发生命周期中最具有挑战性的部分,但是它也可能是最有回报的部分。通过应用现实世界的I/O,您能够亲眼看到算法实现工作。
本文说明了开发员可能会在设计算法中遇到的问题,以及使用图形化设计来克服这些挑战的优点。算法工程挑战少数系统级设计师才能够熟练掌握的编程知识。为不同平台编程需要的编程知识通常是少数系统级设计师能精确掌握的。
基本算法实现
为基本功能实现底层算法需要时间。速度在原型开发中是至关重要的,因为缺少现有代码而陷入从头开发的已知算法的困境是开发人员无法接受的。
为多个平台重复实现算法
随着功能原型的发展,算法需要多次重复功能以便移植到不同类型的系统中。代码通常无法在不同的运行环境中工作,这使得应用程序从原型系统到部署的扩展变得困难起来。
测试和验证
通常只有到较晚的时候才能够确定系统是否可以真正满足功能需求,重头开始的代价是昂贵的。举例而言,处理器可能无法足够快速地执行多个并行任务。它可能无法达到需要的循环时间。它还可能无法实时处理处理器密集的分析。
图形化系统设计为算法工程带来的优点
图形化系统设计解决了功能原型系统算法工程中的许多潜在问题。图形化系统设计是将直观的图形化编程与灵活的商用(COTS)硬件结合在一起解决设计挑战的方法。您可以使用这个方法,在设计的所有阶段中使用同一个环境。现在我们来深入了解一下这个方法如何解决以上提出的挑战。
多个计算模型
图形化系统设计的优点之一是它让程序员能够无需考虑实现用的计算模型(MoC)创建算法。随着算法的复杂度不断增加,程序员必须使用不同的计算模型扩展他们的代码能力。下面是您可以用于图形化系统设计的几个计算模型:
数据流
数据流是与NI LabVIEW软件紧密关联的计算模型。使用数据流,需要开发员在开始执行前,输入所有输入的数据。数据流是直观的代码结构,将并行处理等应用的实现变得十分简单。
文本数学
文本数学是简单创建复杂功能的另一个工具。基于文本的数学是将可以用脚本描述形式编写的复杂算法,用人类可以阅读的形式实现的方法。文本数学的实例包括公式节点和LabVIEW MathScript实时模块。使用LabVIEW MathScript,您可以选择最有效的语法用于算法开发,无论您是开发算法、探索信号处理概念或是分析结果。
![](../img/eec-system/system-195080fpipyps2b5a.jpg)
图1:使用LabVIEW MathScript实时模块重用基于文本的代码
C 代码
有时候您使用的代码原来是用C或C++创建的。在这个情况下,您不必舍弃过去的工作。您可以在LabVIEW中使用内嵌C节点或调用库函数节点直接调用您之前的代码。使用内嵌C节点用于现有的C代码或编写小型的数字或矩阵算法,使用调用库函数节点访问DLL或共享库中的C代码。
开放式软件体系结构
在过去的几年中,LabVIEW平台在众多设计学科中得到了广泛应用,因此需要将数据与不同的设计与仿真工具整合在一起。LabVIEW使用多种整合工具、库和文件格式实现这种交互兼容性。LabVIEW还提供了与其他软件工具和测量资源的众多标准集成,其中包括:
* DLLs, 共享库
* ActiveX, COM, 以及 .NET (Microsoft)
* DDE, TCP/IP, UDP, 以太网、蓝牙
* CAN, DeviceNet, Modbus, OPC
* USB, IEEE 1394, RS232/485, GPIB
* 数据库(ADO、SQL等等)
使用这些工具,来自几乎任何测量和控制设备的数据集成都是可能的。通过将LabVIEW与硬件通信的通用标准整合在一起,开发者可以确保未来多年的兼容性和可扩展性。
LabVIEW方法
LabVIEW中的数百个函数涵盖了数学、信号处理、概率、控制中的许多传统算法,是构造任何定制算法的基础。这些函数减轻了编写底层代码的负担,为工程师提供了关注解决方案而不是关注实现细节的时间。
因为使用LabVIEW将采集现实世界的数据变得十分简单,用户认为能够使用实际数据对算法进行测试,从而使用重复的方法进行微调是十分有价值的。采用这种交互式的测试方法,您可以用不同函数进行实验,检查它们是否给出了期望的结果。举例而言,在使用滤波器处理信号时,您可以从不同解决方案中进行选择,采集您所需要的实际信号,然后在图或文件中查看结果。如果结果并不适用于应用程序,您可以选择其他滤波器。通常采集实际信号应用算法比花时间用软件仿真更加简单。
LabVIEW 仿真 蓝牙 USB 滤波器 PXI FPGA 嵌入式 自动化 相关文章:
- 基于虚拟仪器的特性测试参数数据库的设计(06-24)
- 基于LabVIEW的USB实时数据采集处理系统的实现(03-26)
- 基于LabVIEW的DSP设计(04-10)
- 图形化系统设计:缩短开发时间的嵌入式设计(11-22)
- 基于DSP+LabVIEW的特高压验电器设计方案(02-18)
- 基于LabVIEW的32位处理器嵌入式系统的开发(05-13)