필터 지우기
필터 지우기

Using a function_handle 'variable' from workspace in simulink

조회 수: 11 (최근 30일)
Chris Verhoek
Chris Verhoek 2020년 8월 12일
댓글: Muhammad Faisal Khalid 2021년 11월 17일
I have a script where I define a function as e.g.
f = @(x) 16*sin(3*x).*exp(-x.^2)+atan(x+1);
Here f is now a function handle (function_handle) in the workspace. With this script I have a corresponding simulink model where I simulate a dynamical system which has this function somewhere incorporated.
Right now, I either copy this function in a Fcn or MATLAB function block, or parametrize it such that I have the structure (k1*sin(k2*x).*exp( ...etc.)) hardcoded in the simulink model and I can change 16 easily to 12 without opening the simulink model. However, I want to change the whole function without opening the simulink model (just as changing the value of a constant).
I have no idea to do this, do you have any suggestions?
Note: I'm a student, i'm using 2020a and have access to all possible toolboxes

채택된 답변

Fangjun Jiang
Fangjun Jiang 2020년 8월 12일
function handle is not supported by Simulink. Run "showblockdatatypetable"
"I want to change the whole function without opening the simulink model". There migth be a stratch way to do it. Have a MATLAB Function block, which calls a function defined in a saved .m file. In the saved .m file, call a function handle "f" defined in the base workspace. When you have this set up, you might be able to change the function handle in base workspace, and then run Simulink simulation.
  댓글 수: 3
Fangjun Jiang
Fangjun Jiang 2020년 8월 13일
Thank you for the follow up comments. I learned something new from this today.
Muhammad Faisal Khalid
Muhammad Faisal Khalid 2021년 11월 17일
do u have idea how i can do in the case of trained neural ode?

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Simulink Functions에 대해 자세히 알아보기

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by