主要内容

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

updatePortsFromChoices

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

自 R2024a 起

    说明

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

    示例

    示例

    全部折叠

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

    打开这个包含 Variant Component 模块 VariantComp 的模型。VariantComp 模块有两个变体选择项:ComponentComponent1。每个变体选择项都有两个输入端口 inport1inport2 以及一个输出端口 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 模块中没有相应的端口,因此 inport1inport2outport1 没有输入,仿真失败。

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

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

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

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

    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");
    

    仿真失败的原因是 inport1outport1 没有输入,因为 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 ComponentVariant Assembly Component 模块中的端口。当仿真一个 Variant ComponentVariant Assembly Component 模块中有缺失或未使用端口的模型时,错误消息会提供“修复”选项,以添加缺失的端口并从 Variant ComponentVariant Assembly Component 模块中删除未使用的端口,从而与底层变体选择项正确对齐。

    版本历史记录

    在 R2024a 中推出