我有一个Simulink模型和一个在应用程序设计器中制作的GUI,我可以从中控制所述模型 . 到目前为止,我已经能够让GUI和Simulink模型以两种方式进行通信 . GUI使用 set_param 在模型中设置参数常量块,而模型使用 add_exec_event_listener 通过回调更新GUI . The GUI object resides in the model workspace.

在模型 StartFcn 的启动回调中,我有以下代码

set(0,'ShowHiddenHandles','on');
blk = [model '/q-log']; % Block to bind listener to
event = 'PostOutputs'; % Event to bind to (fired at every sample)
app = getVariable(get_param(bdroot,'ModelWorkspace'),'app'); % The GUI

% The GUI is passed into the event handler and updated at every timestep
listener = @(obj,event) updategui(obj,event,app); 
h = add_exec_event_listener(blk, event, listener);

这种设置的问题是它非常慢 . 我不太清楚如何更快地获得它,如果这是要走的路 . 我看了很多例子,但没有详细说明我的需求 .

所以我的问题是,是否有更快或更有效的方式来更新GUI字段和图?它不一定是硬实时,但是将变量写入工作空间并将其导入GUI之后并不是不可接受的 .