主要内容

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

updatePortsFromChoices

R2026a

更新 Variant Component 模块中的端口,以匹配其变体选择项

自 R2024a 起

    描述

    updatePortsFromChoices(variantComponent,Mode=portOption) 使用 portOption 指定的方法,将 Variant Component 模块 variantComponent 的端口与变体选择项的数量和类型对齐。

    示例

    示例

    全部折叠

    此示例说明了如何在 Variant Component 模块中添加缺失的端口,使其与变体选择项中的端口数量和类型保持一致。

    打开这个包含 Variant Component 模块 VariantComp 的模型。VariantComp 模块有两个变体选择项:Component 和 Component1。每个变体选择项都有两个输入端口 inport1 和 inport2 以及一个输出端口 outport1。

    model = systemcomposer.createModel("archModel");
    addPort(model.Architecture,"outBus","out");
    variantComp = addVariantComponent(model.Architecture,"VariantComp");
    choiceComp1 = model.lookup(Path='archModel/VariantComp/Component');
    addPort(choiceComp1.Architecture,"inport1","in");
    addPort(choiceComp1.Architecture,"inport2","in");
    addPort(choiceComp1.Architecture,"outport1","out");
    choiceComp2 = model.lookup(Path='archModel/VariantComp/Component1');
    addPort(choiceComp2.Architecture,"inport1","in");
    addPort(choiceComp2.Architecture,"inport2","in");
    addPort(choiceComp2.Architecture,"outport1","out");
    

    由于 VariantComp 模块中没有相应的端口,因此 inport1、inport2 和 outport1 没有输入,仿真失败。

    要将缺失的端口添加到 VariantComp 模块中,并将端口数量与变体选择项相匹配,请使用此命令。现在模型仿真成功。

    updatePortsFromChoices(variantComp,Mode="addPorts")
    systemcomposer.openModel("archModel");
    sim("archModel");
    

    此示例说明了如何从 Variant Component 模块中添加缺失的端口和删除未使用的端口,使其与变体选择项中的端口数量和类型保持一致。

    打开包含 Variant Component 模块 VariantComp 的模型。VariantComp 模块有两个变体选择项:Component 和 Component1。每个变体选择项都有一个输入端口 inport1 和一个输出端口 outport1。但是,VariantComp 模块包括一个未使用的端口 input2,它的任何变体选择项都没有使用这个端口。此外,VariantComp 模块的变体选择项缺少两个所需的端口,即 inport1 和 outport1。

    model = systemcomposer.createModel("archModel");
    addPort(model.Architecture,"outBus","out");
    variantComp = addVariantComponent(model.Architecture,"VariantComp");
    archOfVariantComp = variantComp.OwnedArchitecture;
    archOfVariantComp.addPort("inport2","in");
    choiceComp1 = model.lookup(Path="archModel/VariantComp/Component");
    addPort(choiceComp1.Architecture,"inport1","in");
    addPort(choiceComp1.Architecture,"outport1","out");
    choiceComp2 = model.lookup(Path="archModel/VariantComp/Component1");
    addPort(choiceComp2.Architecture,"inport1","in");
    addPort(choiceComp2.Architecture,"outport1","out");
    

    仿真失败的原因是 inport1 和 outport1 没有输入,因为 VariantComp 模块中没有相应的端口。此外,由于输入端口 inport2 未使用,Simscape™ 会显示一条警告消息。

    要将 VariantComp 模块的端口数量和类型与其变体选择项相匹配,请使用此命令。这条命令将添加缺失的输入端口 inport1 和输出端口 outport1,并删除 VariantComp 模块中未使用的输入端口 inport2。现在模型仿真成功。

    updatePortsFromChoices(variantComp,Mode="addAndDeletePorts")
    systemcomposer.openModel("archModel");
    sim("archModel");
    

    输入参数

    全部折叠

    变体组件,指定为 systemcomposer.arch.VariantComponent 对象。

    更新 Variant Component 模块中的端口以匹配其变体选择项的选项,指定为 "addPorts" 或 "addAndDeletePorts"。

    • "addPorts" - 为 Variant Component 模块添加缺失的端口,使其与变体选择项中的端口数量和类型保持一致。

    • "addAndDeletePorts" - 在 Variant Component 模块中添加缺失的端口并删除未使用的端口,使其与变体选择项中的端口数量和类型保持一致。已删除的端口无法恢复,相关属性也会丢失。

    限制

    在 Variant Component 模块中,当变体激活时间参数设置为更新图以外的激活时间时,每个控制端口必须是唯一的,并具有不同的类型。如果变体选择项有两个相同类型的不同控制端口,而 Variant Component 模块中缺少这些端口,则使用 updatePortsFromChoices 函数尝试添加缺少的两个控制端口。然而,这会导致仿真误差。因此,如果需要在 Variant Subsystem 模块中添加多个相同类型的控制端口,则必须将变体激活时间参数更改为更新图。

    详细信息

    全部折叠

    提示

    将允许灵活接口参数设置为 on 时,对 Variant Component 模块使用 updatePortsFromChoices 函数。这一设置允许模块及其变体选择项之间的端口数量变化,确保相关的自动端口同步。与 Variant Component 模块不同,Variant Assembly Component 模块并不强制执行一组严格的端口。因此,使用该函数无需任何额外配置。

    替代功能

    使用诊断查看器窗口中的“修复”选项,可以对齐 Variant Component 或 Variant Assembly Component 模块中的端口。当仿真一个 Variant Component 或 Variant Assembly Component 模块中有缺失或未使用端口的模型时,错误消息会提供“修复”选项,以添加缺失的端口并从 Variant Component 或 Variant Assembly Component 模块中删除未使用的端口,从而与底层变体选择项正确对齐。

    版本历史记录

    在 R2024a 中推出