Obtain sample time in Embedded Matlab block

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)

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

Products

Asked:

on 30 Jul 2012

Community Treasure Hunt

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

Start Hunting!