【问题标题】:Simulink from workspace timeseries multiple datapoints each timestep possible?来自工作区时间序列的 Simulink 每个时间步可能有多个数据点?
【发布时间】:2019-11-12 18:49:37
【问题描述】:

我对 Simulink 还很陌生,正在做一个项目。我有几个 MATLAB Function 块可以与向量(大小为 7200)一起使用。我的来源是From Workspace 块,到目前为止有一个时间步(行)和 7200 个数据点(col)。现在我想模拟多个时间步长,因此我构建了一个包含 10 个数据点的时间序列矩阵,但我想按顺序“发送”每一行(时间步长),以便我的 Matlab fcn 块在大小为 7200 的向量中工作, 不是所有行同时出现,[7200x10] 会出错。

有什么想法可以实现吗?

【问题讨论】:

  • 1. 退后一步。 2. 定义(对您自己和/或我们)您使用 Simulink 的原因。 3. 尝试在 Simulink 中解决问题,而不是在 Simulink 中使用 MATLAB 代码。好像你只是想要一个脚本在这里......

标签: matlab function time-series block simulink


【解决方案1】:

使用From Workspace 块时,正在读取的工作区数据应具有特定格式。该格式取决于所使用的数据类型(即数组、时间序列、随时间变化的结构等)

当使用 Timeseries 格式时,第一列应该是其他列中的数据被读入模型的(模拟)时间。因此,例如,以下列方式定义的sim_input_data 将以 0.2 秒的间隔(超过0 到 10 秒的时间段)。

>> 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

在您的情况下,您需要正确定义第一列,并将时间序列中的数据定义为您当前拥有它的方式的转置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多