Main Content

本页采用了机器翻译。点击此处可查看最新英文版本。

管理容错燃料控制系统的需求 (Microsoft Office)

需求管理接口 (RMI) 提供用于创建和审查 Simulink® 对象和需求文档之间的链接的工具。此示例说明如何将模型对象链接到 Microsoft® Office 文档、如何导航这些链接、如何生成需求报告以及如何维护链接的一致性。另请参阅 满足 IBM DOORS需求 示例,了解与 IBM® DOORS® 中存储的需求进行链接的特定功能。

所包含的示例模型链接到 Microsoft Office 格式的文档。如果您只能使用早期版本的 Microsoft Office,请跳至移动或重命名文档时更新所有链接以获取有关如何调整示例模型以使用所含早期版本文档的示例。仅 Windows® 平台支持直接链接到 Microsoft Office 文档。

打开示例模型

使用容错燃料控制系统的示例模型来演示需求管理功能。您可以通过评估以下代码来打开该模型。

open_system('slvnvdemo_fuelsys_officereq');

设置需求管理器以使用链接

  1. App 选项卡中,打开需求管理器

  2. 需求选项卡中,确保选择了布局 > 需求浏览器

  3. 需求浏览器查看下拉菜单中,选择 Links

在此示例中,您将专门在需求选项卡中工作,并且对工具条按钮的任何引用都在此选项卡中。

查看现有需求

此示例从仅具有少数需求链接的模型开始。在需求选项卡中,点击突出显示链接以突出显示带有需求链接的模块或评估以下代码。

rmi('highlightModel', 'slvnvdemo_fuelsys_officereq');

橙色突出显示对应具有链接需求的对象。填空突出显示适用于其子系统与需求有链接的子系统。双击 fuel rate controller模块打开子系统并查看具有需求的子对象,或评估以下内容。

open_system('slvnvdemo_fuelsys_officereq/fuel rate controller');

导航至文档

右键点击fuel rate controller子系统中的Airflow calculation模块,然后在上下文菜单中选择需求> 质量气流估计

massAirflowEstimation.png

这将打开链接的文档并选择目标内容。您还可以评估以下代码:

rmidemo_callback('view', ...
'slvnvdemo_fuelsys_officereq/fuel rate controller/Airflow calculation',1)

Stateflow 图中的需求链接

双击fuel rate controller子系统中的control logic图模块以打开图。如果找不到,请评估以下代码。

rmidemo_callback('locate','slvnvdemo_fuelsys_officereq/fuel rate controller/control logic');

与需求相关的状态和转移被突出显示。右键点击 Rich Mixture 状态,选择需求并按照顶部的链接查看相关文档。或者,执行以下代码:

rmidemo_callback('view', ...
'slvnvdemo_fuelsys_officereq/fuel rate controller/control logic:26',1)

从需求文档导航到模型对象

在上一步中的slvnvdemo_FuelSys_DesignDescription.docx中,找到文档中的 3.3 歧管压力失效模式部分,然后双击子标题末尾的 Simulink 图标。这将显示一个相关的 Simulink 子系统图,其中目标对象突出显示。关闭所有模型窗口并从文档重复导航。

只要能找到模型文件,就可以根据需要打开图或图。

wordNavigate.png

创建新链接

要配置创建双向链接的设置,请执行以下操作:

  • 在 Simulink模型中的需求选项卡中,选择链接设置 > 链接选项

  • 在出现的对话框中,确保选中修改双向链接的目标

linkingOptions.png

现在创建与您刚刚导航过的链接类似的新链接。注意:当文档为只读时,Microsoft Word 将不允许您创建链接。对于此示例的下一步,请考虑保存您自己的本地文档副本并使用它来代替已安装的文档。

  • slvnvdemo_FuelSys_DesignDescription.docx 中查找部分 2.2 泵送效率的确定

  • 使用鼠标选择整个页眉。

  • 右键点击Airflow calculation子系统中的Pumping Constant模块。如果找不到,请评估以下内容:

rmidemo_callback('locate',['slvnvdemo_fuelsys_officereq/fuel rate controller/' ...
    'Airflow calculation/Pumping Constant']);

选择需求>链接到 Word 中的选择以创建链接。

linkWord.png

再次右键点击Pumping Constant模块。您现在应该在上下文菜单的顶部看到新创建的链接。点击它导航到 slvnvdemo_FuelSys_DesignDescription.docx2.2 节中的目标。

信号生成器模块中的需求链接

信号链接附加到各个信号组,而不是整个信号生成器模块。对于定义为 Signal Builder 组的测试用例,请使用此类链接。

双击 Test inputs Signal Builder模块来查看已配置的信号组。普通运行信号是周期性地踩下加速踏板和恒定的发动机转速。通过评估以下代码导航到 Test inputs模块。

rmidemo_callback('locate','slvnvdemo_fuelsys_officereq/Test inputs');
  • 点击工具栏末尾的显示验证设置按钮 show_verification_settings_button.gif 以显示验证面板。

  • 如果您在验证模块设置下方没有看到需求面板,点击面板顶部的需求显示requirements_display_icon.png按钮。

  • 右键点击需求下的链接标签并选择查看以打开相关需求数据,这次是在 Microsoft Excel 文档中。链接单元格中的 Simulink 图标允许导航回该信号组。或者,执行以下代码:

rmidemo_callback('view','slvnvdemo_fuelsys_officereq/Test inputs',1)

sigbuilder_view.png

瞬态 RPM 不稳定性由第二组信号中发动机转速数据的矩形脉冲建模:

rmidemo_callback('signalgroup','slvnvdemo_fuelsys_officereq/Test inputs',2)

假设您需要将 RPM 传感器故障信号组链接到 Excel 文件中的不同单元格范围。在下拉列表中选择此信号组,在空的需求中点击鼠标右键,然后从上下文菜单中选择打开出向链接对话框以打开对话框。

outgoingLinksContext.png

添加链接的最简单方法是点击浏览来查找 Excel 文件。然后打开 Excel 文件并选择要链接到的单元格。在出向链接菜单中,点击使用当前,系统将创建指向您当前选择的链接。

addLink.png

  • 右键点击 Requirements 区域下的新标签,并选择 View 以导航到查看 TestScenarios 文件中的目标单元格。

生成需求报告

需求选项卡中,点击分享 > 生成模型可追溯性报告,即可自动生成模型中所有需求环节的报告,或者对后续代码进行评估。

rmidemo_callback('report','slvnvdemo_fuelsys_officereq')

默认报告是根据产品附带的模板生成的。

报告生成器界面提供对生成报告内容的完全控制,包括创建全新的模板。可以通过评估以下内容来访问:setedit('requirements')

您还可以在需求选项卡的共享 > 报告选项下访问部分选项。例如,如果生成的报告将以黑白打印或通过投影仪查看,您可能想要禁用生成报告之前突出显示模型复选框,或者您可能想要包含与需求无关的对象列表。

reportSettings.png

需求一致性检查

使用模型顾问自动检测并修复需求链接数据中的不一致问题。点击需求选项卡中的检查一致性以打开仅激活 RMI 检查点的模型顾问。检查链接中是否存在缺失的文档、文档中不匹配的位置、基于选择的链接的不匹配的标签以及不一致的路径信息。您还可以评估以下内容以打开模型顾问:

rmidemo_callback('check','slvnvdemo_fuelsys_officereq')

点击运行选定的检查按钮来验证模型中链接的一致性。RMI 将自动打开链接的文档并检查存储数据的一致性。完成后,点击单个检查项以在右侧面板中查看结果。在此示例中,其中一个链接指向文档中的无效位置:

invalidChecks.png

另一个链接的标签与创建链接时的原始选择不匹配:

invalidChecks2.png

点击 Model Advisor 报告中的修复更新以自动解决报告的不一致问题。重新运行检查以确保报告的问题得到解决。

用户标签属性的过滤需求

Simulink 中的需求链接支持可选的用户标签属性,该属性可以存储任何以逗号分隔的字符串值。使用这些标签来区分不同类型的链接,例如功能需求链接、设计描述链接或测试细节链接。您可以在创建新链接时指定标签,或者稍后通过打开出向链接对话框...对话框指定标签。

keywords.png

您稍后可以使用这些标签将您的工作集中在链接子集上,或者自动从模型中剥离链接子集。这是通过需求设置菜单中的过滤器选项卡进行控制的,通过点击需求选项卡中的链接设置 > 链接选项可以打开该选项卡。

filtersTab.png

当模型需求突出显示时,修改过滤器设置会更新视图以仅显示匹配的需求链接。此示例模型中的需求链接标有以下之一:“设计”、“需求”、“测试”。当您修改过滤器设置时,视图会进行相应调整。例如,您可以仅突出显示标记为“需求”的链接。

如果您在启用用户标签过滤器的情况下生成报告,则报告内容会进行相应过滤。这可能有助于将您的报告集中在特定的链接子集上。

如果在启用用户标签过滤器的情况下运行一致性检查,则仅检查与给定过滤器设置匹配的链接。使用此功能可以将一致性检查定位到所需的链接子集。

当需求文档被移动或重命名时更新所有链接

有时,创建链接后需要重命名或移动文档。使用rmidocrename命令行实用程序同时调整模型中的所有链接。

help rmidocrename
    rmidocrename - (Not recommended) Update model requirements document paths and file names.
    rmidocrename(MODEL_HANDLE, OLD_PATH, NEW_PATH)
    rmidocrename(MODEL_NAME, OLD_PATH, NEW_PATH)
 
    Using rmidocrename is not recommended. Use slreq.LinkSet.updateDocUri 
    instead.
 
    rmidocrename(MODEL_HANDLE, OLD_PATH, NEW_PATH) collectively
    updates the links from a Simulink(R) model to requirements files whose
    names or locations have changed. MODEL_HANDLE is a handle to the
    model that contains links to the files that you have moved or renamed.
    OLD_PATH is a string that contains the existing file name or path or 
    a fragment of file name or path.
    NEW_PATH is a string that contains the new file name, path or fragment.
 
    rmidocrename(MODEL_NAME, OLD_PATH, NEW_PATH) updates the
    links to requirements files associated with MODEL_NAME. You can pass
    rmidocrename a model handle or a model name string.
 
    When using the rmidocrename function, make sure to enter specific
    strings for the old document name fragments so that you do not
    inadvertently modify other links.
 
    rmidocrename displays the number of links modified.
 
    Examples:
 
        For the current Simulink(R) model, update all links to requirements
        files whose names contain the string 'project_0220', replacing 
        with 'project_0221': 
            rmidocrename(gcs, 'project_0220', 'project_0221');
        
        For the model whose handle is 3.0012, update links after all
        documents were moved from C:\My Documents to D:\Documents
            rmidocrename(3.0012, 'C:\My Documents', 'D:\Documents');
 
 
    See also slreq.LinkSet/updateDocUri, rmi, rmitag

    Documentation for rmidocrename
  • 创建示例模型的可写副本。例如打开原系统并另存为slvnvdemo_fuelsys_officereq_copy

open_system('slvnvdemo_fuelsys_officereq')
save_system('slvnvdemo_fuelsys_officereq','slvnvdemo_fuelsys_officereq_copy.slx')

  • 突出显示标记为“需求”的需求。这些链接指向slvnvdemo_FuelSys_RequirementsSpecification.docx,您需要它们指向同一文档的 Microsoft Word 2003 版本中的相应位置。

rmidemo_callback('filter','slvnvdemo_fuelsys_officereq_copy','requirement') 
  • 执行以下代码将链接重定向到 .doc 文档:rmidocrename(gcs,'Specification.docx','Specification.doc')

  • 执行文档名称的部分匹配;您不需要指定文档的全名,只要给定的模式足够具体以避免不必要的更改即可。例如,用 .docx 替换 .doc 会出错,因为 .docx 变成了 .docx。RMI 响应以下消息:“已处理 16 个有需求的对象,18 个链接中有 7 个已修改”。由于当前的用户标签过滤器设置,仅处理具有匹配需求的对象。

  • 尝试浏览突出显示的链接。例如,从 Relational Operator 导航至 Airflow calculation 下。Microsoft Word 2003 版本的文档打开到正确的位置。

rmidemo_callback('locate',['slvnvdemo_fuelsys_officereq_copy/fuel rate controller/' ...
    'Airflow calculation/Relational Operator3'],1);

将导航控件插入文档以匹配单向链接

如果您之前创建了从 Simulink 对象到文档的单向链接,后来需要启用从文档中的位置导航回 Simulink 中相应对象的功能,请使用 rmiref.insertRefs 实用程序将匹配的“返回”链接插入到需求文档中。

本示例所含的文档之一 slvnvdemo_FuelSys_DesignDescription.doc 缺少 Simulink导航控件。它确实在与示例模型中标记为 design 的链接相对应的位置上有书签。

  • 重用上一节中模型的可写副本。

open_system('slvnvdemo_fuelsys_officereq_copy')
  • 评估以下代码以将匹配的链接从 slvnvdemo_FuelSys_DesignDescription.docx 重定向到 slvnvdemo_FuelSys_DesignDescription.doc。命令窗口中出现以下消息:处理了 16 个有需求的对象,其中 16 个链接中有 8 个被修改了。rmidocrename('slvnvdemo_fuelsys_officereq_copy','Description.docx','Description.doc');

  • 浏览其中一个链接。例如,右键点击 Airflow calculation 子系统模块,右键点击并选择需求,然后点击链接的需求。这将打开 slvnvdemo_FuelSys_DesignDescription.doc,但它没有 Simulink导航控件。如果找不到该模块,请评估以下代码。

rmidemo_callback('locate',['slvnvdemo_fuelsys_officereq_copy/fuel rate controller/' ...
    'Airflow calculation']);
  • 运行rmiref.insertRefs('slvnvdemo_fuelsys_officereq_copy','word')将文档到模型导航控件插入 slvnvdemo_FuelSys_DesignDescription.doc。您会看到 Simulink 导航图标插入到文档中。您现在可以使用这些图标导航到 slvnvdemo_fuelsys_officereq_copy模型中的 Simulink 对象。

如果文档中缺少指定位置书签,则无法插入导航控件。在此示例中,创建最后一个链接后并未保存文档。命令窗口中出现以下警告:无法在书签或章节标题中找到名为“Simulink_requirement_item_7”的项目

当模型中的链接未指定位置时,导航控件将插入到文档的顶部。

从文档中删除所有 Simulink 引用按钮

当将 Simulink导航控件插入 Microsoft Office 文档时,您不必在导航到 Simulink 之前保存该文档。这使得您可以在需要时临时插入导航对象。如果您保存了插入了导航按钮的文档,现在需要返回到干净的文档,请使用 rmiref.removeRefs 实用程序删除这些按钮。例如,执行以下步骤来删除此示例上一步中插入的按钮:

  • 确保slvnvdemo_FuelSys_DesignDescription.doc已打开并且是您当前的 Microsoft Word 文档。

  • 运行rmiref.removeRefs('word')来删除按钮。RMI 在命令窗口中提示确认。

修复从文档到 Simulink 的链接

当 Simulink 模型被修改或移动时,需求文档中嵌入的 Simulink导航控件可能会过时。这会导致链接断开。使用 rmiref.checkDoc 实用程序检测并修复从外部文档到 Simulink 的链接。在此示例中,您将修复 slvnvdemo_FuelSys_DesignDescription.docx 文档中的一个损坏的链接。

  • 运行which slvnvdemo_fuelsys_officereq_copy并从 MATLAB 路径中删除 slvnvdemo_fuelsys_officereq_copy.slx(如果存在)。

  • 打开slvnvdemo_FuelSys_DesignDescription.docx并尝试导航至文档最底部的链接。出现以下错误对话框:

deletedModel.png

  • 运行rmiref.checkDoc('slvnvdemo_FuelSys_DesignDescription.docx')检查文档中是否存在断开的链接。RMI 突出显示文档中检测到的问题并显示 HTML 报告。

report.png

所有功能链接均列于报告底部。您可以从此报告导航到 Simulink 中的链接对象(Simulink 中的目标列)以及文档中的目标位置(文档内容列)。

报告中红色字体标注了需要注意的问题。在这种情况下,有一个损坏的链接引用了未解析的模型名称。继续之前修复链接。

清理

清除打开的需求集和链接集。关闭所有打开的 Simulinik 模型。清除链接关键字过滤器。

slreq.clear;
bdclose('all');
rmipref('FilterRequireTags','');