当前位置:首页 > 智能硬件 > 安全设备/系统
[导读] 概览 功能原型系统系列 是帮助您了解原型开发过程的一系列文章。通过阅读,可以了解关键概念、原型开发的优点、产品选择讨论以及其他技术资源。 算法工程 算法工程是为应用算法设

概览

功能原型系统系列 是帮助您了解原型开发过程的一系列文章。通过阅读,可以了解关键概念、原型开发的优点、产品选择讨论以及其他技术资源。

算法工程

算法工程是为应用算法设计而造的术语。它所指的是将纸上的算法草稿转换为鲁棒、经过完整测试、简单易用实现的过程。在原型系统中实现算法提供需要的功能可能是整个产品开发生命周期中最具有挑战性的部分,但是它也可能是最有回报的部分。通过应用现实世界的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的目标上实现本地算法。使用在NI CompactRIO和PXI平台中的实时处理器,集成带有确定性控制的I/O,得到更多可靠性。这对于硬件在环应用是很重要的,因为需要将硬件和软件紧密整合在一起,动态仿真控制算法设法控制的环境。

处理使用带有FPGA的实时处理器,您可以将LabVIEW集成到您的应用中,将代码从一个类型的商用硬件移植到另一个硬件上。举例而言,您可以移植在台式机上对实际世界I/O信号进行分析的代码,无需大量重写就可以将它用于PXI、PDA以及嵌入式处理器等平台上。实际上,先在台式机上设计并验证原型,然后将它转换到32位处理器上,进行嵌入式系统部署可以大大节省因为忽略设计限制而增加的开发时间和重复编码。

图2:LabVIEW目标

用于仿真和控制设计的工具

由于LabVIEW是一个开放式平台,您可以将您的测量数据映射到仿真结果上。您可以将用于行为建模的仿真数据与实时数据进行互换。此外,您可以使用仿真激励驱动物理测量,提供鲁棒的测试环境。

使用LabVIEW仿真验证并估计设计准则的性能。您可以将设计导入到不同的仿真工具中,进行早期设计评估。下一步包括自动化布局或模型建立工具,对构造过程进行自动化。保存可用的系统状态信息和输出信号帮助您调试应用程序以及建立应用程序性能规范。

使用例如LabVIEW控制设计和仿真模块中的控制方块图设计线性、非线性、离散或连续控制系统。使用这个抽象编程风格,您可以使用例如传递函数模块、积分器、微分器和反馈循环等传统控制概念进行编程。使用高级方块图,您可以在概念级开发解决方案,从而可以利用过去的系统经验和知识。

图3:使用控制设计与仿真的PID控制

下一步

对算法进行工程设计,实现原型系统的功能是个具有挑战性的过程。图形化系统设计是利用直观的图形化软件与商业硬件之间紧密整合优点帮助您克服与算法工程相关挑战的方法,从而让您可以用更低的成本更快地完成原型系统开发。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭