Matlab_Simulink中导入CSV数据与仿真实现方法

发布于:2025-03-31 ⋅ 阅读:(19) ⋅ 点赞:(0)

前言

在Simulink仿真中,常需将外部数据(如CSV文件或MATLAB工作空间变量)作为输入信号驱动模型。本文介绍如何高效导入CSV数据至MATLAB工作空间,并通过From Workspace模块实现数据到Simulink的精确传输,适用于运动控制、信号处理等需要真实数据激励的仿真场景。

Matlab/Simulink 版本:MATLAB R2024b

CSV 文件:“DSLogic” 逻辑分析仪采集 marlin固件 100mm/s 下 X、Y 轴脉冲方向序列简化数据

脉冲当量:165 (pulse/mm)

一.Matlab工作空间导入CSV 数据

1.导入CSV 数据

打开Matlab 软件,点击【主页】,选择【导入数据】,这里选择“marlin_xy_20s.csv”文件

2.数据处理

在导入弹窗截取有效数据,这里选取 10s 时间;可以用鼠标框选,也可以在范围 【A6:E633960】;如果要截取特定的列,按【A6:B20,D6:D20】格式可以截取特定列; 输出类型为“数值矩阵”。时间戳,需要作为信号导入的数据1;

3.工作空间检查数据

打开 Matlab工作空间截取数值矩阵表,查看截取数据是不是按要求截取的。

二.方法一: Simulink配置中导入

1.配置中更改输入输出

打开Simulink 模型, 点击【模型设置】,选择【数据导入/导出】,勾选【输入】,在输入框中导入 Matlab工作空间的文件

2.仿真效果

构建一个简单模型查看仿真效果

3.出现问题

输入端口要跟导入的数据接口一致。

三.方法二: FromWorkspace 模块导入(推荐)

1.选择FromWorkspace模块

进入simulink模块库,在“simulink ”-“Source ”下,选择“FromWorkspace”模块

或者在空白处双击搜索“FromWorkspace”模块

2.编辑模块属性

双击模块,编辑其属性。数据主要输入选择从工作空间导入的数据,插值数据这里就取消勾选,这里数据最终输出设为 0,这里设置看个人需要,不一定按照教程来;

3.仿真效果

构建一个简单模型查看仿真效果

四.验证数据

1.搭建其它模块

搭建一个简单模型验证 marlin 固件速度是不是跟设置一样;构建一个脉冲计数模块,速度采样模块,采样周期为 10ms,运行简单测试;

2.模型属性设置

模型仿真步长为 1e-6,求解器用自动,其它默认;

3.仿真验证

仿真出来的最大速度是 100mm/s,跟marlin固件设置的最大速度基本一致;

资源下载

Simulink 模型是 2024b 版本,低版本可能不兼容;

资源在 Simulink-Simulation-Group\test_marlin_csv\ 文件夹目录下

github仓库:https://github.com/chase2025/Simulink-Simulation-Group.git

gitee仓库:https://gitee.com/chase2025/Simulink-Simulation-Group.git

gitcode仓库:https://gitcode.com/chase2025/Simulink-Simulation-Group.git