亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 物联网技术

利用RTI Connext DDS集成在MATLAB中实时处理IoT数据

分析传感器数据时,典型工作流包括收集原始数据、转换为可用格式,再利用MATLAB强大的分析能力。但数据转换步骤耗时较长。随着MathWorks最新集成,MATLAB现在可直接通过DDS订阅和发布数据——DTS是工业物联网通信的事实标准中间件。这使开发者能以最小开销原型化和测试实时分析。

入门准备

开始前请确保已安装MATLAB和RTI Connext DDS。示例使用版本:

观看安装视频验证所有组件配置正确:安装视频。

初始化

安装后,按以下步骤在MATLAB中初始化DDS:

导入IDL文件会自动生成对应的.m文件。例如导入ShapeType.idl:

> DDS.import('ShapeType.idl','matlab','f')

导入后,该数据类型可用于后续DataReader/DataWriter创建。创建域参与者:

> dp = DDS.DomainParticipant;

为Triangle和Square主题附加ShapeType类型的Writer和Reader:

> dp.addWriter('ShapeType','Triangle') > dp.addReader('ShapeType','Square')

在Shapes Demo中订阅数据

RTI Shapes Demo为Square、Circle和Triangle提供预配置主题,均基于ShapeType。使用Demo创建Triangle主题的订阅者;QoS设置保持默认。

利用RTI Connext DDS集成在MATLAB中实时处理IoT数据

从MATLAB发布数据

配置好DataWriter后,发布一个绿色三角形:

%% 创建ShapeType实例 myData = ShapeType; myData.x = int32(75); myData.y = int32(100); myData.shapesize = int32(50); myData.color = 'GREEN'; %% 写入数据到DDS dp.write(myData);

Shapes Demo显示单个绿色三角形:

利用RTI Connext DDS集成在MATLAB中实时处理IoT数据

其他发布模式:

%% 1Hz频率发布一排绿色三角形 for i=1:10 myData.x = int32(20 + 10*i); myData.y = int32(40 + 10*i); dp.write(myData); pause(1); end %% 20Hz频率发布圆周轨迹绿色三角形 for i=1:1000 angle = 10*pi * (i/200); myData.x = int32(100 + (50 * cos(angle))); myData.y = int32(100 + (50 * sin(angle))); myData.shapesize = int32(40); myData.color = 'GREEN'; dp.write(myData); pause(0.05); end

Demo可视化这些模式:

利用RTI Connext DDS集成在MATLAB中实时处理IoT数据 利用RTI Connext DDS集成在MATLAB中实时处理IoT数据

在Shapes Demo中发布数据

在Shapes Demo中为Square主题创建发布者。选择颜色(如橙色),保持QoS默认。Demo每30毫秒广播方块的X、Y位置。

利用RTI Connext DDS集成在MATLAB中实时处理IoT数据 利用RTI Connext DDS集成在MATLAB中实时处理IoT数据

在MATLAB中订阅数据

使用Square DataReader从Shapes Demo消费数据。以1秒间隔读取十个样本:

%% 读取数据 for i=1:10 dp.read() pause(1); end

MATLAB输出十条消息,如截图所示:

利用RTI Connext DDS集成在MATLAB中实时处理IoT数据

进阶用例:转换与可视化

建立双向通信后,转换接收到的方块数据(交换X、Y坐标),重新发布为红色三角形,并绘制X位置随时间变化曲线。以下MATLAB脚本演示此工作流:

%% 分配100样本数组 xArray = zeros(1,100); %% 收集、转换、重发布 for i=1:100 [myData, status] = dp.read(); if ~isempty(myData) x = myData(1).x; y = myData(1).y; xArray(i) = x; yArray(i) = y; myData(1).y = x; myData(1).x = y; myData(1).color = 'RED'; dp.write(myData(1)); end pause(0.05); end %% 绘制X位置 t = 1:100; plot(t,xArray); legend('xPos'); xlabel('Time'); ylabel('Position'); title('X Positions');

Shapes Demo现在显示镜像橙色方块的红色三角形,MATLAB渲染X位置图:

利用RTI Connext DDS集成在MATLAB中实时处理IoT数据 利用RTI Connext DDS集成在MATLAB中实时处理IoT数据

DDS与MATLAB集成简化了数据摄取、注入和分析。虽然演示使用简单的Shapes应用,但相同方法适用于任何基于DDS的IoT数据源。深入了解MATLAB DDS集成,请访问MathWorks的MATLAB DDS集成页面。探索Connext DDS更多资源,请访问开发者资源页面。

物联网技术

  1. MQTT 与 DDS:为物联网选择正确的 M2M 协议
  2. Connext DDS 在工业物联网中的 5 大关键洞见:可靠性、安全性与可扩展性
  3. 使用 RTI Recording Service 与 DDS 回放 ROS2 LiDAR 数据
  4. 汉诺威工业博览会启示:利用IT赋能工业运营的5大经验策略
  5. 确保物联网数据合规
  6. 你的制造工厂准备好迎接物联网了吗?实战指南
  7. 普惠物联网:新一代卫星物联网带来全球可负担连接
  8. 释放物联网数据价值:安全、洞察驱动的策略
  9. 物联网数据变现实战指南:从数据洪流到可执行洞察
  10. 利用物联网数据实现制造卓越
  11. 2026 年领先云原生物联网分析平台
  12. MATLAB 数据类型完全指南:15 种基本类型、转换函数与类型判断函数速查表