MATLAB Answers

How update some variables each time tha I'am calling simulink from Matlab funtion

조회 수: 1(최근 30일)
viyils Sangregorio
viyils Sangregorio 2021년 8월 24일
편집: Paul 2021년 8월 31일
I have a funtion which recibe some variables, in thus funtion I'am calling a simulink block and getting some datas...
The problem is I need this Var1 Var2 in Simulink block ? What can i do ? To use this vars values in my simulink ??
function [Out] = Funtion (Var1, Var2 ....)
simout = sim('Simulinkblock');
Yx = simout.yout{1}.Values.Data;
Cx = Yx(end);
end

답변(2개)

Rishabh Singh
Rishabh Singh 2021년 8월 30일
As per my understanding you want to pass the input to your Simulink Model through as an input to the function.
This issue can be resolved if you have root inport in your Simulink Model by using setExternalInput (Refer to example code for understanding).
Other approach could be loading data from Workspace, for that you can refer to From Workspace or using MAT file to provide input.
Hope this helps.

Paul
Paul 2021년 8월 31일
편집: Paul 2021년 8월 31일
Try using a Simulink.SimulationInput object. Change the code to:
function [Out] = Funtion (Var1, Var2 ....)
in = Simulink.SimulationInput('Simulinkblock')
in = in.setVariable('D',Var1); % to set the value of D. Repeat for others as needed.
simout = sim(in);
% simout = sim('Simulinkblock');
Yx = simout.yout{1}.Values.Data;
Cx = Yx(end);
end

제품


릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by