Azzera filtri
Azzera filtri

delay in Simulink Matlab function block

27 visualizzazioni (ultimi 30 giorni)
Hans Jensen
Hans Jensen il 6 Dic 2018
Commentato: Fangjun Jiang il 7 Dic 2018
Hi,
I want to do something very simple, but since I've failed to find a way, I turn to you :-)
I use a Matlab function block in a Simulink model.
I have an input (PumpOn) which switches on, and off (0-1) When it switches on, I want to wait (delay), then change the output to AirExDCInvO2.
I want to keep that output for the same time (delay), then set the output back to zero.
The time I want to wait, is simulated time, not real time.
The model should keep simulating, while the delay is active.
I have tried to use pause, but I think it only pauses simulation. I have tried a timer, but timer is not supported in the Matlab fcn code generation.
The code from the matlab function block is shown below.
Thanks for reading :-)
Hans
function y = InvalidO2Control(PumpOn, delay, AirExDCInvO2)
y = 0;
if PumpOn == 1 %pump is switched on
pause(delay) % Let the pump run for a while, before doing anything
y = AirExDCInvO2; % set the output (open valve)
pause(delay) % let the valve be open for a while, while pump is still running
y = 0; % close the valve ( pump continues to run)
end
end

Risposte (1)

Fangjun Jiang
Fangjun Jiang il 6 Dic 2018
It looks like the Delay block in Simulink could meet your need.
  3 Commenti
Fangjun Jiang
Fangjun Jiang il 7 Dic 2018
Keep in mind that MATLAB Function block is just like any other Simulink block. It is running at every simulation step. What you need is to have a persistent variable to serve as the timer/counter and then decide the output based on the timer/counter value.
Fangjun Jiang
Fangjun Jiang il 7 Dic 2018
Or, if you have the Stateflow toolbox, use absolute time temporal logic
web(fullfile(docroot, 'stateflow/examples/using-absolute-time-temporal-logic.html'))

Accedi per commentare.

Categorie

Scopri di più su Event Functions in Help Center e File Exchange

Prodotti


Release

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by