主要内容

定义模型组件的接口

定义软件组件的接口,例如C或MATLAB®代码函数或Simulink万博1manbetx®在其他人使用它之前,是关键的第一步,原因如下:

  • 同意接口是一个有用的第一步,决定如何将大型系统的功能分解为子组件。

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

  • 更改组件之间的接口昂贵。它需要更改至少两个组件(源和任何汇)和任何测试线束。它还使所有与当前版本和未来版本不兼容的这些组件的所有版本。

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

界面设计指南

为新项目定义组件界面的建议:

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

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

    • 以不同的速率运行的算法

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

  • 考虑未来的组件重用。

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

  • 使用数据对象:

    • 定义组件接口

    • 精确控制数据属性

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

    使用Simulink总线和总线对象的最佳实践:万博1manbetx

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

    • 在定义组件之间的接口时,请使用非视频总线。总线对象必须定义每个非横向总线。总线对象完全定义了总线上信号的属性,提供了明确的接口定义。

      在数据字典中包含总线对象,或将总线对象保存为a.mat或者.m文件,以便在修订控件下放置它们。

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

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

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

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

    • 将信号或参数包装成对应于a的结构结构体类型定义您的外部C代码定义,将类型导入作为总线对象,并将对象用作公共汽车和MATLAB结构的数据类型。要创建对象,请使用万博1manbetxsimulink.importexternalctypes.函数。

分区数据

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

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

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

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

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

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

    • 使用参数文件(.m或者.mat)和单独的Simulink模型的回调(例如,万博1manbetx预装功能)。

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

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

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

配置组件的数据界面

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

在创建inport.外港块,您可以使用模型数据编辑器和接口显示来配置块的设计属性(如数据类型和数字复杂性)。使用此技术一次以全部内容查看组件接口,并将接口的界面跟踪到内部块算法中的使用点。您还可以使用此技术在开发内部算法之前配置组件的界面,在这种情况下,组件包含未连接inport.外港块。

模型的例子sldemo_fuelsys_dd.包含两个参考模型的组件:

  • 植物组件,sldemo_fuelsys_dd_plant

  • 控制器组件,sldemo_fuelsys_dd_controller.

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

  1. 打开植物组件。

    sldemo_fuelsys_dd_plant

  2. 建模选项卡,在设计, 点击模型界面

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

    默认情况下,在模型数据编辑器中,港口/外港选项卡被选中。表格中的每一行代表一个inport.或者外港堵塞。默认情况下,改变视图下拉列表设置为设计

    提示

    只查看inport.外港模型的根级别(通过排除子系统内的块),取消激活变化范围按钮。

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

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

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

相关话题