比如和Carsim联合仿真,Carsim做一个匀加速从0加速到5,输出速度给simulink,假设速度变化步长为1,理想的结果是有一数组[0 1 2 3 4 5]记录速度的变化,还有能否改成移位操作 t1时刻为[0 0 0 0 1] t2时刻为[0 0 0 1 2],不用to workspace,因为这个数组要实时调取
输出到MATLAB工作空间的方法-二、使用To Workspace模块导出数据到工作空间- 在simulink中想要得到数据的地方添加To Workspace模块,点击下图位置:
然后进行如下配置:设置变量名称。
最后运行Simulink仿真,就可以看到定义的变量和仿真得到的数据出现在matlab的工作区了。在matlab中可以通过读取该变量来获取仿真得到的数据,具体的代码如下:
data = sim('your_simulink_model');
speed_array = data.speed.signals.values; % 获取速度信号的数据
如果要实现速度变化数组的存储,可以通过添加Memory模块来实现。在每个时刻,将当前的速度值存储在Memory模块中,并将其输出到To Workspace模块中,最后通过读取该变量来获得速度变化数组。具体的Simulink模型如下图所示:
其中,Memory模块用来存储当前的速度值,To Workspace模块用来输出速度值到matlab的工作区。读取速度变化数组的matlab代码如下:
data = sim('your_simulink_model');
speed_array = data.speed_change.signals.values; % 获取速度变化数组
如果要实现移位操作,可以通过添加Delay模块来实现。在每个时刻,将当前的速度值存储在Delay模块中,并将其输出到To Workspace模块中,Delay模块的延迟时间为1,即实现移位操作。具体的Simulink模型如下图所示:
其中,Delay模块用来实现移位操作,To Workspace模块用来输出速度值到matlab的工作区。读取速度变化数组的matlab代码如下:
data = sim('your_simulink_model');
speed_array = data.speed_shift.signals.values; % 获取速度变化数组
综上所述,可以通过添加Memory或Delay模块并将数据输出到To Workspace模块来实现实时变量的存储,并通过读取该变量来获取速度变化数组。