首页 文章

在Simulink中输入'From Workspace'块的参数

提问于
浏览
1

我有一个.mat文件,其结构已加载到Workspace中 . 我创建了一个simulink模型,并希望从Workspace导入信号 . “From Workspace”块的数据参数的输入值应该是什么 . 结构的名称是Measurements,Signal Name是B_cal,它还有其他元素,如时间,名称,单位和值 . 我知道可以像这个命令一样访问结构:

Measurements.B_cal.value

但我无法设置输入参数 . 任何人都可以帮我这个吗?

1 回答

  • 2

    通过FromWorkspace块使用结构有一些限制:

    评估为以下之一的MATLAB表达式:MATLAB时间序列对象MATLAB时间序列对象的结构二维矩阵:每个矩阵行的第一个元素是时间戳 . 每行的其余部分是信号值的标量或向量 . 一个有或没有时间的结构,它包含:1)一个signal.values字段,它包含一个信号值向量2)一个可选的signals.dimensions数组,它包含信号的维数3)一个可选的时间向量,包含时间戳

    您可以在help找到更多有用的信息 .

    所以在你的情况下你可以使用不同的方法 . 我举几个例子:

    1)以必要的格式定义 struct

    t = (1:10)'; %'
    v = [6 9 3 1 7 0 7 3 8 1]'; %'
    measure.time = t;
    measure.signals.values = v;
    

    重要时刻: tv 必须是一列!行不行!如果需要使用多行数据,请使用multidimensional v 并添加

    measure.signals.dimentions = size(v,2);
    

    2)你可以看到 time 字段是可选的 . 如果没有,则需要在0以外的块中设置采样时间,并清除插值数据,在最终数据值之后将表格输出设置为除外推之外的值 . 此外,您需要定义时间字段:

    mystruct.time = [];
    

    3)如果您不想更改结构,可以使用下一个:

    t = (1:10)'; %'
    

    并在FromWorkspace块的数据中设置它: [t, Measurements.B_cal.value] .

    4)有一些有用的方法:使用时间序列或只是矩阵 . 但是如果你需要使用你的结构,那真的不是你的情况 .

相关问题