Simulink模块的封装(上)-《Simulink仿真及代码生成技术》

Simulink模块的封装-《Simulink仿真及代码生成技术》

目的:将复杂的模块逻辑封装起来,仅提供用户一个GUI界面填写参数。用户仅需填写对话框就可以实现定义的功能。
可使用的方法包括:

  • (1)Mask Editor–用于简单的模块;
  • (2)编写M代码定制创建过程–用于封装一个大型复杂的模块。

Mask Editor封装模块

简单数学模型y=a*x^2+b如下,其中a和b由用户以对话框输入的形式定义
Simulink模块的封装(上)-《Simulink仿真及代码生成技术》_第1张图片

选中上图模块与信号线后,按Ctrl+G封装子系统
Simulink模块的封装(上)-《Simulink仿真及代码生成技术》_第2张图片
选中子系统后右键-Mask-Create Mask或ctrl+M打开Mask editor对话框
Simulink模块的封装(上)-《Simulink仿真及代码生成技术》_第3张图片

编辑器内各个界面编辑

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修改位置
    Simulink模块的封装(上)-《Simulink仿真及代码生成技术》_第4张图片
  • 自动检查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)

你可能感兴趣的:(simulink)