Simulink仿真入门到精通(十四) Simulink自定义环境

14.1 Simulink环境自定义功能

sl_sustomization.m函数是Simulink提供给用户使用MATLAB语言自定义Simulink标准人机界面的函数机制。若sl_sustomization.m函数存在于MATLAB的搜索路径中,在当Simulink启动时就会读取此文件的内容进行Simulink的人机界面的初始化。Simulink本身就提供了这个函数,用户每次修改之后,必须重启Simulink或者使用命令sl_refresh_customizations使变更起作用。

14.2 Simulink工具栏菜单自定义

可以在Simulink提供的现有菜单栏的基础上进行菜单项的添加。Simulink Model Editor中用于添加菜单项的位置有3个:顶层菜单的末尾、菜单栏和右键菜单的开始或结尾处。

添加的对象成为项目(item),为了添加项目,需要以下步骤:

  1. 创建一个定义项目的模式函数(schema function);
  2. 将这个定义菜单项目的函数注册在sl_customization.m中;
  3. 为这个菜单项目定义一个触发运行的回调函数。

例:增加一个显示当前所选模块属性列表的菜单项目。

首先创建一个定义此项的模式函数。

function schema = get_block_property(callbackInfo)
schema = sl_action_schema;    %使用sl_action_schema函数创建一个对象
schema.label = 'block property';
schema.userdata = 'Custom';
schema.callback = @custom_callback;
end

选中此菜单时触发回调函数 custom_callback,显示当前选中的模块的属性列表。

function custom_callback(callbackInfo)
inspect(gcbh);
disp('### The property of current block is displayed.');
end

接着将定义的函数注册到sl_customization.m中。

以下代码将Simulink菜单栏以及子层菜单的WidgetId显示出来。 

Simulink仿真入门到精通(十四) Simulink自定义环境

 

 

使用addCustomMenuFcn方法可以注册一个自定义菜单项目函数。

function sl_customization(cm)
%% Register custom menu function.
cm.addCustomMenuFcn('Simulink:ToolsMenu', @custom_items);
end

在注册的cuntom_items函数中使用句柄函数方式,亦成为匿名函数。

%% Define the custom menu function.
function schemaFcns = custom_items(callbackInfo)
schemaFcns = {@get_block_property};
end

这样,就在Tools菜单最末一项得到所设定的菜单项。

Simulink仿真入门到精通(十四) Simulink自定义环境

 

自定义Model Editor的菜单不仅可以是一级菜单,还可以是多级菜单。

 

上一篇:Simulink仿真入门到精通(十三) Simulink创建自定义库


下一篇:matlab/simulink的复合电源超级电容能量管理策略如题