主要内容

定义模型组件的接口

定义软件组件(如C或MATLAB)的接口®代码函数或Simulink金宝app®在其他人使用它之前,是关键的第一步,原因如下:

  • 在决定如何将大型系统的功能分解为子组件时,对接口达成一致意见是非常有用的第一步。

  • 在定义组件之间的接口之后,可以并行地开发组件。如果接口保持稳定,那么很容易将这些组件集成到更大的系统中。

  • 更改组件之间的接口是非常昂贵的。它需要对至少两个组件(源和任何接收器)和任何测试利用进行更改。它还使这些组件的所有以前版本与当前和未来的版本不兼容。

当您必须更改接口时,如果组件存储在配置管理下,则更改接口会容易得多。您可以跟踪兼容组件版本的配置,以防止组件组合不兼容。

界面设计指引

定义新项目组件接口的建议:

  • 基于相应真实系统的边界基础组件的边界。该指南在模型包含时特别有用:

    • 物理(工厂和环境)和控制系统

    • 以不同速率运行的算法

  • 考虑未来的模型细化。如果您打算添加传感器模型,那么从一开始就将它们作为一个空子系统放入,该子系统直接通过信号或执行单元延迟或名称转换。

  • 考虑未来的组件重用。

  • 考虑使用信号命名约定。

  • 将数据对象用于:

    • 定义组件接口

    • 精确控制数据属性

  • 通过将信号分组到公共汽车中简化接口设计。公共汽车非常适合在高水平的型号中使用,其中组件通常有许多信号进出,并且不使用所有可用的信号。使用总线可以简化修改对组件的接口。例如,如果必须添加或删除组件使用的信号,则可以更简单地修改总线,而不是添加或删除该组件的输入或输出端口。但是,使用交叉模型参考边界的总线使用总线对象。

    使用Simulink总线和总线对象的最佳实践:金宝app

    • 使总线虚拟,除了在模型引用组件边界。

    • 在定义组件之间的接口时使用非虚拟总线。总线对象必须定义每个非虚拟总线。总线对象完全定义了总线上信号的属性,给出了明确的接口定义。

      将总线对象包含在数据字典中,或将总线对象保存为.mat.m文件,以便将其置于修订控制之下。

    • 只向每个组件传递所需的信号,以减少不必要数据的昂贵传递。信号总线允许定义完整的输入和输出信号集,但不一定使用或创建。

    • 确保接口确切地指定组件使用的内容。

    • 对总线对象使用严格的命名约定。除非使用数据字典,否则总线对象存储在基本工作空间中。

    • 在模型的较低级别,考虑为每个信号使用输入和输出端口。在模型的较低级别,组件通常实现算法,而不是作为其他组件的容器,如果您为组件使用单独的输入和输出端口,而不是使用信号总线,则可以增加可读性。但是,以这种方式创建接口会有更大的连接问题风险,因为除了它们的数据类型、大小等之外,很难检查连接的有效性。

    • 将信号或参数打包成与结构体外部C代码定义的类型定义,将该类型导入为总线对象,并将该对象用作总线和MATLAB结构的数据类型。要创建对象,请使用金宝appSimulink.importExternalCTypes函数。

分区数据

显式地控制组件的数据范围。一些技术:

  • 全局参数-在汽车世界中一个常见的方法是完全分离参数存储和模型存储的问题。模型的参数来自校准数据数据库,使用的特定校准文件成为配置的一部分。标定数据作为全局数据处理,并驻留在MATLAB的基本工作空间中。您可以将基本工作区数据迁移到数据字典以获得更多的控制。

  • 非全局参数——组合存储自己参数数据的组件有参数名称冲突的风险。如果不为参数使用命名约定,或者不使用唯一参数名称和定义列表,则存在两个组件使用名称相同但含义不同的参数的风险。

    存储本地参数数据的方法包括:

    • 将数据划分到每个组件的引用字典中。

    • 对于引用的模型,您可以使用模型工作区。

    • 使用参数文件(.m.mat)和个别Simulink模型的回调(例如,金宝app预加载功能)。

      您还可以使用项目快捷方式自动加载所需的数据。

    • 掩码工作区,是否使用掩码初始化函数。

    • 对于子系统,可以使用“子系统参数,允许分级分辨率”对话框控制子系统的数据范围。

配置组件的数据接口

无论您是使用参考模型还是子系统来将一个大系统分解成组件,组件都可以通过这些组件交换信号数据轮廓尺寸外港块。您可以显式地配置接口的设计属性(例如数据类型和数字复杂性),以防止建模错误,并使集成组件更容易。

在创建轮廓尺寸外港块,您可以使用模型数据编辑器和界面显示来配置块的设计属性(例如数据类型和数字复杂性)。使用这种技术可以立即查看组件接口的整体,并跟踪接口的各个部分到内部块算法中的使用点。您还可以使用这种技术在开发内部算法之前配置组件的接口,在这种情况下,组件包含unconnected轮廓尺寸外港块。

模型的例子sldemo_fuelsys_dd包含两个引用模型的组件:

  • 植物成分,sldemo_fuelsys_dd_plant

  • 控制器组件,sldemo_fuelsys_dd_controller

使用模型数据编辑器和界面显示来检查和配置工厂组件的界面。

  1. 打开植物组件。

    sldemo_fuelsys_dd_plant

  2. 建模选项卡,在设计,点击模型接口

  3. 建模选项卡上,单击模型数据编辑器

    默认情况下,在模型数据编辑器中港口/外港选项卡被选中。表格中的每一行代表一个轮廓尺寸外港块。默认情况下,改变观点下拉列表设置为设计

    提示

    只可浏览轮廓尺寸外港块在模型的根级(通过排除子系统中的块),使变化范围按钮。

  4. 使用模型数据编辑器中的列来显式配置接口的设计属性。例如,为每个值指定最小值和最大值轮廓尺寸外港块,使用最小值马克斯列。

要为控制器组件的接口配置代码生成设置,请在模型数据编辑器中设置改变观点下拉列表,代码

有关使用接口显示的更多信息,请参见使用接口显示跟踪连接.有关模型数据编辑器的更多信息,请参见使用模型数据编辑器配置数据属性

相关话题