我如何在For迭代器Simulink子系统中动态存储向量?

问题描述 投票:0回答:2

我有这个简单的系统:

Simple System

函数中的代码是:

function a = fcn(iteration,a)
a(1,iteration) = iteration;
end

外部Simulink层如下(a初始化为a = zeros(1,5)):

Upper layer

循环是:

for i = 1:5

并且我想将迭代器存储在一个数组中(即[1 2 3 4 5]),但是由于某种原因,Simulink在每个迭代器步骤中为单个时间步初始化了数组,所以我只能看到最后一个值。我尝试了许多不同的组合,但是我无法使其按我想要的方式工作。怎么做?

matlab for-loop vector simulink
2个回答
0
投票

每次迭代时,MATLAB函数都从初始数组(输入端口)开始。为了防止这种情况,只需添加一个带有延迟的循环。MATLAB函数的输出应馈入延迟以及输出端口。这样可以确保最后一次迭代的结果也可用。您可以将可复位延迟与外部初始条件一起使用,以从输入值开始并在每次迭代期间更新该值。

loop


0
投票

我发现有一个点击延迟选项。使用此选项,您可以在Simulink中动态存储各种值作为矢量。

© www.soinside.com 2019 - 2024. All rights reserved.