Get sample rate in a Matlab function block in Simulink
40 次查看(过去 30 天)
显示 更早的评论
If i use MATLAB function block in a Simulink project, is there a way of determining the sample rate in the code in that block? If I use a MATLAB System block, I can use getSampleTime(obj).SampleTime to give me the time for a frame and then use the frame size to give me the time for a sample, but that won't work for a MATLAB function block. I'd like to use the MATLAB function block if possible because the coding is simple. Is there a way to get the sample rate or am I stuck using a MATLAB system block?
4 个评论
Paul
2021-12-24
Like any other, or at least most?, blocks in Simulink the Matlab Function block has a sample time. It's either Inherited, or Discrete, or Continuous. See this doc page for how to select it. But I'm not sure that's what you're really asking about. Can you clarify what you're actually trying to do with the Matlab Function block?
回答(2 个)
jibrahim
2021-12-28
Hi Glenn,
I've accomplished this in the past using a probe block:
That block can output a vector representing the sample time. You should be able to feed this value to your MATLAB function block (as an input) and use the value.
2 个评论
jibrahim
2021-12-28
You might be able to accomplish this by calling simulink.block.getSampleTimes inside the MATLAB function block:
However, that function does not generate code, so you will have to use it in conjunction with coder.extrinsic and coder.const. I think using a probe block is much more straightforward.
Salman Ahmed
2021-12-31
Hi Glenn,
You could also use the following workaround to access the sample rate inside the MATLAB function block:
coder.extrinsic('get_param');
sampleTime=str2double(get_param('s1/MAT','SystemSampleTime'));
Here s1 is the Simulink model name, MAT is the name of the MATLAB function block.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Simulink Functions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!