前言
在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