Simulink模块的封装-《Simulink仿真及代码生成技术》
目的:将复杂的模块逻辑封装起来,仅提供用户一个GUI界面填写参数。用户仅需填写对话框就可以实现定义的功能。
可使用的方法包括:
- (1)Mask Editor–用于简单的模块;
- (2)编写M代码定制创建过程–用于封装一个大型复杂的模块。
Mask Editor封装模块
简单数学模型y=a*x^2+b如下,其中a和b由用户以对话框输入的形式定义
选中上图模块与信号线后,按Ctrl+G封装子系统
选中子系统后右键-Mask-Create Mask或ctrl+M打开Mask editor对话框
编辑器内各个界面编辑
Icon&Ports:
-
在子系统图标上显示文字:
(1)disp('文本’)#只能放在正中心
(2)text(0.3,0.5,‘文本’,‘horizontalAlignment’,‘left’,‘verticalAlignment’,‘bottom’) #可以修改文字位置
(3)在disp/text前加color(‘red’)可以修改文字颜色 #其他颜色包括cyan/magenta -
在子系统图标上显示图片:
(1)image(imread('保存的图片‘)#图片充斥整个图标
(2)image(imread('保存的图片‘,‘top-left’)#图片显示在左上角
Parameters&Dialog:
- 在Edit中添加两个parameters a和b并用item&prompt location修改位置
- 自动检查a和b的输入格式是否正确
– 建立M脚本:
function check_num(param)
%This function check if the value of param is a number data type.
val=get_param(gcbh,param);
if isletter(val)
errordlg([‘Input value of’,param(end),‘must be a number data-type!’]);
return;
end
– 在parameter a和b中设置回调函数callback:
check_num(g_a)