2015-03-02 65 views
0

我想将多个数据数组导入到Simulink中,以便我可以遍历每个数组,每次操作一列,并随机选择一个不同的数组。 (所以,假设我开始循环访问数组1的列1秒,然后我将移动到数组2,然后是数组3并返回到数组1)。 我无法使用来自文件块,因为每个列都有一个与之关联的特定时间戳,所以我既不能循环也不能开始模拟,每次都选择一个不同的数组。如何将数据数组导入Simulink

在Simulink中有没有解决这个问题的方法?

回答

1

使用MATLAB功能块。将你的数组作为参数输入,这意味着它将在模型初始化期间从MATLAB Workspace中选择整个数组。

根据您想要索引到矩阵 - 你有没有给予足够的信息来确定这一点 - 你既可以,

  1. 有2个信号输入到代表MATLAB的功能块行索引和列索引。然后,您将在模型中具有指定这些信号/索引值的逻辑。
  2. 在MATLAB函数块中有2个永久变量,它们定义了行和列索引。在块中有逻辑指定这些变量如何在每个时间步骤中改变。
+0

噢,真好。非常感谢你的帮助!所以我做了一个常量块,并用它的变量名称调用数组。但这意味着我必须始终在Matlab中打开数据文件,然后运行模拟。没有办法直接从文件直接将数据导入Simulink,而无需首先将其调入工作区? – Moppentapper 2015-03-03 06:56:51

+0

您可以使用“从文件”块直接加载.mat文件,因为它具有标准格式。对于通用文件,它可能具有通用格式,假定通用块将能够加载它是不现实的。但是,在模拟初始化时,编写自定义块(s函数,MATLAB函数,甚至解释的MATLAB函数)以读取特定格式的特定文件是很简单的。或者,您可以使用模型的StartFcn(或类似的)为您自动执行(一旦您编写代码)。 – 2015-03-03 14:55:56

+0

非常感谢,我会看看这些选项,谢谢! – Moppentapper 2015-03-03 23:28:12