matlab 来自工作空间时间序列的Simulink,每个时间步可能有多个数据点吗?

iyfjxgzm  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(113)

我是Simulink的新手,正在做一个项目。我有几个MATLAB Function块,它们使用向量(大小为7200)。我的源代码是From Workspace块,到目前为止只有一个时间点(行)和7200个数据点(列)。现在我想模拟多个时间点,因此我构造了一个由10个数据点组成的时间序列矩阵,但我想按顺序“发送”每一行(时间点),以便我的MatLab FCN块使用大小为7200的向量工作,而不是同时处理所有行,这会导致错误。
你知道我怎么才能做到这一点吗?

hwamh0ep

hwamh0ep1#

当使用From Workspace块时,所读取的工作区数据应该具有特定的格式。该格式取决于所使用的数据类型(即数组、时间序列、带时间的结构等)。
当使用TimeSeries格式时,第一列应该是将其他列中的数据读入模型的(模拟)时间。因此,例如,以以下方式定义的sim_input_data将以0.2秒的间隔(在从0到10秒的时间段上)被读入为3元素向量(即,时间序列的每个)。

>> sim_input_data = timeseries(randn(51,3),linspace(0,10,51))
  timeseries

  Common Properties:
            Name: 'unnamed'
            Time: [51x1 double]
        TimeInfo: [1x1 tsdata.timemetadata]
            Data: [51x3 double]
        DataInfo: [1x1 tsdata.datametadata]

  More properties, Methods

在您的例子中,您需要正确定义第一列,并将时间序列中的数据定义为您当前拥有的数据的转置。

相关问题