库模块和引用模块的需求链接
库模块和引用模块简介
Simulink® 允许您创建自己的模块库。如果您创建一个模块库,您可以在多个模型中重用模块、子系统或 Stateflow® 原子子图的功能。
当您将库模块复制到 Simulink模型时,新模块被称为引用模块。您可以在一个或多个模型中创建此库模块的多个实例。
引用模块使用库链接链接到库模块。如果您更改了库模块,则当您打开或更新包含引用模块的模型时,任何链接到该库模块的引用模块都将根据这些更改进行更新。
注意
有关引用模块和库链接的更多信息,请参阅自定义库 (Simulink)。
库模块和需求
库模块本身可以与需求有链接。此外,如果库模块是子系统或原子子图,则库模块内的对象可以具有库链接。您可以使用需求管理接口 (RMI) 来创建和管理库和模型中的需求链接。
以下部分介绍如何管理库模块和引用模块上和内部的需求链接。
复制具有需求的库模块
当您将库子系统或屏蔽模块复制到模型时,您可以突出显示、查看和导航库模块上以及库模块内的对象上的需求链接。但是,这些链接与该模型无关。链接与库一起存储,而不是与模型一起存储。
您不能从引用模块的上下文中添加、修改或删除库模块上的需求链接。如果禁用从引用模块到库模块的链接,则可以修改库模块内的对象的需求,就像在禁用库链接时修改其他模块属性一样。
管理引用模块的需求
您可以使用 RMI 来管理引用模块上的需求链接,就像任何其他模型对象一样。您可以在引用模块上查看和导航本地和库需求。
本地创建的需求链接 - 可以在不改变库模块的情况下进行修改或删除:
歧管绝对气压传感器
大气流估计
库模块上的需求链接 - 无法从引用模块的上下文中修改或删除:
速度传感器
节气门传感器
氧传感器
管理引用模块内的需求
如果您的库模块是子系统或 Stateflow 原子子图,则可以在子系统或子图内部的对象上创建需求链接。如果禁用从引用模块到库的链接,则可以添加、修改或删除引用模块内对象上的需求链接。一旦禁用链接,RMI 就会将这些链接视为本地创建的链接。
当您对引用模块内的对象上的需求链接进行更改后,您可以解析该链接,以便将这些更改推送到库模块。下次您创建该库模块的实例时,所做的更改将被复制到该库模块的新实例中。
在引用模块内的对象上创建需求链接的工作流程是:
在库内有一个子系统 S1。将 S1 拖到模型上,创建一个新的子系统。该子系统是引用模块。
禁用引用模块和库模块之间的库链接。在禁用链接以维护 RMI 数据的同时保持库加载。要禁用链接,请选择引用模块,然后在子系统选项卡中点击禁用链接。
创建从引用模块内的对象到需求文档的链接。
注意
当从引用模块内部链接到需求时,您只能在一个方向创建一个链接:从模型到需求文档。RMI 不支持将导航对象插入到引用模块内对象的需求文档中。
解析引用模块和库模块之间的库链接:
选择引用模块。
在子系统选项卡中,点击还原链接。
在操作列中,点击推送。
点击确定解析与库模块的链接,并将新添加的需求推送到库模块内的对象。
当您解析库模块和子系统之间的库链接时,Simulink 会将新的需求链接推送到库模块 S1。下图显示了从库模块 S1 内部到需求的新链接。
注意
如果您看到一条消息称库已被锁定,则必须先解锁该库,然后才能将更改推送到库模块。
如果您在另一个模型中重用库模块 S1(现在该模块具有带需求链接的对象),则新的子系统将包含一个链接到该需求的对象。
从需求到库模块的链接
如果您有一个链接到库模块的需求,并且您将该库模块拖到模型,则该需求不会链接到引用模块;该需求仅链接到库模块。
例如,考虑您已经在库模块(下图中的 B1)和需求之间建立了双向链接的情况。
当在模型中使用库模块 B1 时,您可以从引用模块导航到需求。但是,需求中的链接仍然只指向库模块 B1,而不是指向引用模块。
如上一节所述,您可以在禁用库模块后在库模块实例内的对象上创建需求链接。但是,RMI 禁止您从需求文档创建到此类对象的链接,因为当您恢复库链接时,该链接将变为无效。