数组从工作空间到simulink

17次观看(过去30天)
Christoph
Christoph 2022年10月21日5:45
回答: 沃尔特·罗伯森 2022年10月21日6:33
大家好,
在我的。m文件中,我定义了一个我想在Simulink中使用的2d数组。我通过“From Workspace”块导入它。到目前为止,这工作得很好。当我想使用数组中包含的数据时,我需要下标,我必须在每次迭代开始时增加计数下标。
怎么做呢?
问候,克里斯托弗

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2022年10月21日6:33
你不。"From Workspace"块自动将数据视为信号,并将第一列视为时间。您可以将其配置为保存该值直到下一次,或者为中间时间进行线性插值。
Simulink有两种模式:连续模式和离散模式,默认为连续模式。
在连续模式中,时间几乎可以是任何东西,时间通常可以来回徘徊(如果您使用默认的龙格-库塔求解器),并且时间步长不规则。基于时间的遍历索引对于连续时间很少有意义(但有时将数组作为插值表的参数是有意义的)。
离散时间有一个接一个事件,固定的时间步长(对于任何分段,不一定对所有部分都相同)。通过离散时间增量数组的各个部分可能是有意义的,但请记住,系统是基于时间演进的,而不是基于“步数”。如果用户要配置一个不同的时间步长,基于步长号索引数组是否仍然有意义?
如果您正在为块构建参数,那么您应该看一下 //www.ru-cchi.com/matlabcentral/answers/1653710-global-variable-in-simulink#comment_2009495 我会告诉你怎么做。
一般来说,你可以创建一个MATLAB函数块,它有一个持久化变量,就是数组的下标,你可以使用下标处的值来计算一些值,然后你可以增加下标(但是要小心从数组的末尾滑落……你要打包吗?你想抓住最后一个吗?)但正如我上面所概述的,很多时候这种索引在Simulink中被证明是错误的。
事实证明,有时有意义的做法是,创建工作区对象时,使用基于名义时间步长的前导列,然后切换到From workspace it,让块作为一个信号源,内容随时间悄悄地演进。这样您就不需要担心迭代次数和(可能是可变的)时间步到列号之间的映射

更多的答案(0)

2022世界杯八强谁会赢?


释放

R2022a

世界杯预选赛小组名单社区寻宝

在MATLAB中央找到宝藏,并发现社区可以如何帮助你!世界杯预选赛小组名单

开始狩猎!

Baidu
map