How to send one array element at a time to a subsystem every 0.5 seconds in Simulink?
5 ビュー (過去 30 日間)
古いコメントを表示
Hi all, I'm working on a Simulink model where a MATLAB Function block outputs an array of control commands (the command array is generated once at the start of simulation). I’d like to send one command at a time from this array to a subsystem input, with a rate of 2 Hz (i.e., one value every 0.5 seconds).
What’s the best way to implement this?
Thanks in advance!
3 件のコメント
採用された回答
Fangjun Jiang
2025 年 4 月 14 日
Nothing special. Use a Counter block (free-running or limited) in combination with the model solver setting to provide the step (every 0.5 second). Feed it to this function.
function y = fcn(u)
persistent cmd
N=10;
if isempty(cmd)
cmd=zeros(N,1);
end
if u==0
cmd=10*(1:N);
y=0;
elseif u>=N
y=cmd(N);
else
y=cmd(u);
end
end
2 件のコメント
Fangjun Jiang
2025 年 4 月 16 日
Feed the Counter block to the MATLAB Function block input.
The function output is the "one array element at a time".
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Event Functions についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

