MATLAB Simulink与数据分发服务整合

描述

数据分发服务和MATLAB Synergy

这 数据分发服务(DDS™) 技术是一组由 标准API 以及 互操作协议建立以数据为中心的系统的中间件平台。这项开放技术受国际标准协会对象管理组®(OMG®)管理。

借助DDS,数据及其相关的服务质量是将分布式应用程序绑定和集成在一起的唯一协定。数据可以表示系统状态,命令或答复,视频和音频流,文档和消息。

从这个角度来看,DDS可以协助构建解耦和灵活的分布式体系结构,使应用不必公开其位置,API,内部行为,也不需要同时处于活动状态。使用DDS,解耦是二维的,它会同时发生 在时间和空间。。

这种颠覆性的创新提供了 安全, 低延迟 以及 超–高吞吐量 的数据交换率。此外,它提供了极高的 可靠性自动 发现 以及 超扩展性 ,具有业务和任务关键型物联网(IoT)应用需求。

DDS每次在正确的时间,正确的位置以完全分离的方式共享正确的数据。

从概念上讲,DDS构建了分布式的 全球数据空间 ,在其中产生和使用数据的应用能够以实时和容错的方式共享数据。DDS保证了出色的确定性行为,同时提供了无与伦比的可靠性,安全性和性能。

在过去的十年中,已经证明DDS是唯一覆盖了广泛应用范围的技术。它涵盖了所有方面,从实时性极强的嵌入式系统到系统架构,IIoT(工业物联网)或洲际范围内包括空中交通管制,作战管理,数据采集与监视控制(Scada)指挥和控制系统等。该技术还部署在智能城市,智能工厂,智能电网,软件定义网络,机器人技术,医疗保健和医疗设备,交通和汽车市场中。

VortexDDS® 是DDS技术的市场领导者。 VortexDDS® 提供了用于智能数据共享的中间件平台以及必要的生产力工具,使用户能够随时随地开发、测试、调整、部署和监控基于DDS的应用。在局域网,广域网,低带宽,临时,移动网络或超范围的网络。

另一方面, MATLAB®广泛用于数值,科学和工业计算。 基于矩阵 的MATLAB语言轻松表达了计算数学概念。其内置的图形使其易于可视化并从数据中获得见解。庞大的预先构建的函数库可让您在特定领域中构建复杂的算法。您可以在 更大的数据集 并扩展到集群和云中进行分析。MATLAB代码可以与其他语言和技术( 包括Vortex DDS, )进行整合,使您能够为您的应用和算法提供生产系统的 和 实时的数据一种 并将其部署在 边缘 或 云。

同样, Simulink®是具有框图环境的建模工具,用于多域仿真和基于模型的设计。它支持系统动力学仿真,系统级设计,自动代码生成以及嵌入式系统的连续测试和验证。Simulink提供了图形编辑器和可自定义的块库。它与MATLAB®以及 Vortex DDS整合,使您能够表示和建模关键DDS计算实体,并将MATLAB算法合并到一个模型中。随后,您可以生成代码并将仿真结果导出到MATLAB进行进一步分析,或通过Vortex DDS在DDS全球数据空间中进行传播。

VortexDDS®,MATLAB®和Simulink®现在已全面整合 ,使您能够设计和开发各种先进产品,包括汽车系统, 国防,航空飞行控制和航空电子设备, 电信,工业机械, 医疗设备,以及其他电子设备。它们是您进行研发的基本工具和平台。

Simulink与Vortex DDS的整合

Vortex DDS产品随附 免费的DDS-Simulink集成模块。 DDS-Simulink集成模块提供了专用的构建模块库,用于在Simulink模型中对DDS的交互方式进行建模。如图1所示,每个DDS实体,例如 发布者/订阅者,访问者/撰写者和 主题 由Simulink模型中的专用块表示。

matlab

图1:Vortex DDS与Simulink的整合。此外,每个DDS块都有一个关联的QoS配置文件,可以对其进行调整和完善以控制DDS实体的行为。

Simulink数据表示为需要映射DDS数据类型的总线 类型。 巴士 需要映射的类型 DDS 数据类型因此,将Simulink数据发送到DDS需要将Simulink类型转换为DDS类型。 Simulink总线将映射到DDS主题类型,反之亦然。用户可以通过从IDL文件中生成或使用Simulink总线编辑器来生成或创建Simulink总线定义。

matlab

图2:使用Simulink总线编辑器映射数据类型。如果需要,您可以使用DDS SQL92查询语言过滤或查询数据,如图3所示。

matlab

图3:使用Vortex DDS Simulink集成模块进行查询定义。一旦定义了关键的DDS构建模块和数据类型并将其与DDS主题相关联,用户就可以将DDS构建模块包括Simulink本机建模模块(例如Math函数,Time函数或Simulink Display模块)进行连接并互连以构建完整的仿真模块。然后,用户可以如下图所示运行模拟。

matlab

图4:与Simulink集成的Vortex DDS发布者和订阅者模型。一旦通过仿真模式验证了模型,就可以生成和编译(或交叉编译)模型的关联代码。Vortex DDS Simulink集成模块与 Simulink编码器 生成相应的 C DDS构建模块中的代码。编译后,即可通过DDS以分布式方式在所选目标上运行仿真。

现在,生成的仿真模型可以与任何其他DDS应用进行通信,可以通过网络传播仿真结果,或者向仿真模型提供来自现场的实时数据。

下一节将说明如何在MATLAB中创建MATLAB Vortex DDS类的实例,以及如何与DDS实体进行交互。

MATLAB与Vortex DDS的整合

DDS与MATLAB的整合提供了DDS MATLAB类,使用户能够使用MATLAB语言为DDS通信建模。

通常,在开发阶段,用户需要:

使用标准的OMG IDL数据定义语言定义一个 DDS数据模型 。

将DDS数据模型转换为 MATLAB DDS实体类 (例如,主题类)。

代码 使用 适用于Vortex DDS的MATLAB API对MATLAB程序进行编码。。

下面的代码快照中总结了这些步骤:

matlab

图5:基于MATLAB的Pub Sub DDS应用。适用于Vortex DDS的MATLAB API支持QoS,数据过滤和查询方面的所有DDS功能。

结论

使用Vortex DDS,您可以实现基于MATLAB/ Simulink应用的系统集成,并构建一个 分布广泛的全局数据空间。这样可以有效地将测试和仿真框架进行统一。

考虑到所有有价值数据的语义,QoS,类型,内容和格式,全球数据空间将对其 实时的, 没有 单点故障 的进行处理和管理。

使您的仿真模型在Vortex DDS上进行交互,并从通过MATLAB/ Simulink进行实时数据分析和交互中受益。

matlab

图6:全球数据空间整合并传输MATLAB和Simulink数据流。这种集成技术将帮助您在全球数据空间的顶部构建自己的 情境意识层 来控制和监控系统,并 以最低的成本为最终用户创建增值服务。。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分