S function with function handle as class member of block.
조회 수: 3 (최근 30일)
이전 댓글 표시
Problem statement: I want to preload my function handel form mat file in level-2 s-function. After that, I want to call each iteration.
Code sample:
function msfcn_times_two(block)
% Level-2 MATLAB file S-Function for times two demo.
% Copyright 1990-2009 The MathWorks, Inc.
setup(block);
%endfunction
function setup(block)
%% Register number of input and output ports
block.NumInputPorts = 1;
block.NumOutputPorts = 1;
%% Setup functional port properties to dynamically
%% inherited.
block.SetPreCompInpPortInfoToDynamic;
block.SetPreCompOutPortInfoToDynamic;
block.InputPort(1).DirectFeedthrough = true;
%% Set block sample time to inherited
block.SampleTimes = [-1 0];
%% Set the block simStateCompliance to default (i.e., same as a built-in block)
block.SimStateCompliance = 'DefaultSimState';
%% Run accelerator on TLC
block.SetAccelRunOnTLC(true);
%% Register methods
block.RegBlockMethod('Outputs', @Output);
%% import function
block.lam=load("lmbd.mat")
%endfunction
function Output(block)
M = block.lam.Mfunc(0,0,0,0,0,0,0,0,0,0,0,0);
block.OutputPort(1).Data = 2*block.InputPort(1).Data;
%endfunction
How to load function handle as class member?
Thanks!
댓글 수: 0
답변 (1개)
Sahas
2024년 9월 13일
As per my understanding, you would like to preload a function handle from a “.mat” file into a level-2 MATLAB S-function and call this function handle with each iteration.
This can be done by storing the function handle as a class member within the S-function. Utilize MATLAB’s “DWork Vector” for this by storing the function handle persistently across simulation steps.
Run the following command in the MATLAB Command Window and use the “msfcn_varpulse.m” file as a template and modify your code accordingly.
>> edit('msfcn_varpulse.m');
Refer to the MathWorks documentation below for more information on “DWork Vector” and detailed steps on how to use them for Level-2 MATLAB S-functions:
I hope this is beneficial and help you call the function handles with each simulation step.
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!