Obtain sample time in Embedded Matlab block

1 view (last 30 days)
Anders
Anders on 30 Jul 2012
Sorry if this has been asked many times before, but I couldn't find an answer.
If I have an embedded Matlab block with inherited sample time, can I somehow obtain the evaluated sample time in the code of the embedded block at runtime? This is possible for an S-function and it would be really sweet if it was possible for embedded blocks as well.

Answers (3)

Ryan G
Ryan G on 30 Jul 2012
I don't believe you can do this directly but you could use this code in the EML block with a clock as an input:
function y = fcn(u)
%#codegen
persistent time12
if isempty(time12)
time12 = 0;
end
deltaT = u - time12;
time12 = u;
y = deltaT;
Where the block is at the same inherited sample rate.

Azzi Abdelmalek
Azzi Abdelmalek on 30 Jul 2012
Edited: Azzi Abdelmalek on 30 Jul 2012
you can use a "zoh" block (simulink/discret/Zero Order Holder), with a sample time of your choice. You place it at the inputs (or/and) outputs of the embedded matlab function block

Anders
Anders on 31 Jul 2012
So basically it's not easily obtainable then. Thanks for those answers anyway. I guess I will have to make a feature request if someone hasn't already. There should be a possibility to access a struct with simulation info or something similar. Not supported on all target hardware of course but for simulation at least.

Categories

Find more on Simulink Functions in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!