There is no direct way to access the runtime parameters of a Simulink model from a MATLAB GUI. To work around this issue, you need to create a function that will update the GUI with the desired model data at each time step. An outline of this procedure is as follows.
1. Create a GUI with a control that you would like to update with information from the model. In this example, we would like to see the output of the model's Gain block in the GUIs edit text window.
2. Create a model callback function that will register an event listener for the block in question. This function will be called every time the block is updated. We will use it to access the value of the Gain blocks output and pass them to the GUI. In this case we will use the models 'StartFcn' callback.
set(0,'ShowHiddenHandles','on');
blk = 'mytestmdl/Gain';
event = 'PostOutputs';
listener = @updategui;
h = add_exec_event_listener(blk, event, listener);
3. Create a MATLAB file function that will get the Gain block's runtime output parameter and pass it to the GUI.
function varargout = updategui(varargin)
rto = get_param('mytestmdl/Gain','RuntimeObject');
str = num2str(rto.OutputPort(1).Data);
statestxt = findobj('Tag','curState');
set(statestxt,'string',str);
Best Answer