How to send one array element at a time to a subsystem every 0.5 seconds in Simulink?
8 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Ben Navon
il 14 Apr 2025
Commentato: Mathieu NOE
il 16 Apr 2025
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 Commenti
Risposta accettata
Fangjun Jiang
il 14 Apr 2025
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 Commenti
Fangjun Jiang
il 16 Apr 2025
Feed the Counter block to the MATLAB Function block input.
The function output is the "one array element at a time".
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Event Functions in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

