Is there a MATLAB simulation time command supported by Simulink Design Verifier?

2 vues (au cours des 30 derniers jours)
I am working on a Simulink model with a MATLAB Function block. The function in the function block requires the current simulation time. At the moment this is solved via an input with a Digital Clock block.
Is there a MATLAB command that could do this and is compatible with the Simulink Design Verifier?
  4 commentaires
Pat Canny
Pat Canny le 18 Oct 2024
I got several options from some internal experts:
  • To get the simulation time at the MATLAB prompt: "get_param(bdroot,'SimulationTime')"
  • To get the simulation time inside a MATLAB System block: matlab.system.getcurrenttime
  • To get the simulation time inside a Stateflow chart (MATLAB action language): getSimulationTime();
  • To get the simulation time inside a MATLAB Function block: we don't think there is a function for that. If the block is fixed-step discrete, the recommendation is to take the sample time as a parameter and count the time in the code.
Hopefully that helps. If so, let me know and I can submit this as an Answer.
Joshua
Joshua le 18 Oct 2024
Hi
Yes that was very helpfull.
Thank you.

Connectez-vous pour commenter.

Réponse acceptée

TED MOSBY
TED MOSBY le 19 Oct 2024
Hi @Joshua,
In a MATLAB Function block in Simulink, you can access the current simulation time without needing a Digital Clock block. You can do this by passing the simulation time as an input to your function.
Add a Clock Block:
  • In your Simulink model, add a Clock block from the Simulink library (found under Sources).
Connect the Clock Block:
  • Connect the output of the Clock block to the input of your MATLAB Function block. This will pass the current simulation time to the function.
Define the MATLAB Function:
  • Edit your MATLAB Function block to accept the simulation time as an input. Here’s an example of how to define your function:
function output = myFunction(time)
% Use the current simulation time
currentTime = time;
% Example operation using current time
output = currentTime^2; % Replace with your desired computation
end
Hope this helps!
Here is the documentation for the “clock block”:

Plus de réponses (0)

Catégories

En savoir plus sur General Applications dans Help Center et File Exchange

Tags

Produits


Version

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by