Simulink 中 'From Workspace' 块的输入参数
Input Parameters of a 'From Workspace' Block in Simulink
我有一个 .mat 文件,其中的结构已加载到工作区中。我已经创建了一个 simulink 模型并想从工作区导入信号。 'From Workspace' 块的数据参数的输入值应该是多少。结构的名称是 Measurements,信号名称是 B_cal,它还有其他元素,如时间、名称、单位和值。我知道可以通过类似于此命令的方式访问结构:
Measurements.B_cal.value
但是我无法设置输入参数。谁能帮我解决这个问题?
通过 FromWorkspace 块使用结构有一些限制:
A MATLAB expression that evaluates to one of the following:
- A MATLAB timeseries object
- A structure of MATLAB timeseries objects
- A two-dimensional matrix:
The first element of each matrix row is a time stamp.
The rest of each row is a scalar or vector of signal values.
- A structure, with or without time, which contains:
1) A signals.values field, which contains a vector of signal values
2) An optional signals.dimensions array, which contains the dimensions of the signal
3) An optional time vector, which contains time stamps
您可以在 help 中找到更多有用的信息。
所以在你的情况下你可以使用不同的方法。我举几个例子:
1) 以必要的格式定义您的 struct
:
t = (1:10)'; %'
v = [6 9 3 1 7 0 7 3 8 1]'; %'
measure.time = t;
measure.signals.values = v;
重要时刻:t
和v
必须是一列!行将不起作用!
如果您需要使用多行数据,请使用多维 v
和 add
measure.signals.dimentions = size(v,2);
2) 您可以看到 time
字段是可选的。如果没有,则需要将块中的采样时间设置为 0 以外的值,并清除插值数据,将最终数据值后的表格输出设置为外推以外的值。此外,您需要定义时间字段:
mystruct.time = [];
3) 如果你不想改变你的结构,你可以使用next:
t = (1:10)'; %'
并在 FromWorkspace 块的数据中设置:[t, Measurements.B_cal.value]
.
4) 有一些有用的方法:使用时间序列或仅使用矩阵。但如果你需要使用你的结构,那不是你的情况。
我有一个 .mat 文件,其中的结构已加载到工作区中。我已经创建了一个 simulink 模型并想从工作区导入信号。 'From Workspace' 块的数据参数的输入值应该是多少。结构的名称是 Measurements,信号名称是 B_cal,它还有其他元素,如时间、名称、单位和值。我知道可以通过类似于此命令的方式访问结构:
Measurements.B_cal.value
但是我无法设置输入参数。谁能帮我解决这个问题?
通过 FromWorkspace 块使用结构有一些限制:
A MATLAB expression that evaluates to one of the following:
- A MATLAB timeseries object
- A structure of MATLAB timeseries objects
- A two-dimensional matrix: The first element of each matrix row is a time stamp. The rest of each row is a scalar or vector of signal values.
- A structure, with or without time, which contains: 1) A signals.values field, which contains a vector of signal values 2) An optional signals.dimensions array, which contains the dimensions of the signal 3) An optional time vector, which contains time stamps
您可以在 help 中找到更多有用的信息。
所以在你的情况下你可以使用不同的方法。我举几个例子:
1) 以必要的格式定义您的 struct
:
t = (1:10)'; %'
v = [6 9 3 1 7 0 7 3 8 1]'; %'
measure.time = t;
measure.signals.values = v;
重要时刻:t
和v
必须是一列!行将不起作用!
如果您需要使用多行数据,请使用多维 v
和 add
measure.signals.dimentions = size(v,2);
2) 您可以看到 time
字段是可选的。如果没有,则需要将块中的采样时间设置为 0 以外的值,并清除插值数据,将最终数据值后的表格输出设置为外推以外的值。此外,您需要定义时间字段:
mystruct.time = [];
3) 如果你不想改变你的结构,你可以使用next:
t = (1:10)'; %'
并在 FromWorkspace 块的数据中设置:[t, Measurements.B_cal.value]
.
4) 有一些有用的方法:使用时间序列或仅使用矩阵。但如果你需要使用你的结构,那不是你的情况。