主要内容

hydraulicToIsothermalLiquid

升级液压模块图以使用等温液体模块

说明

hydraulicToIsothermalLiquid 将液压模块转换为等温液体模块,在原始文件名之后追加 _converted,然后保存每个转换后的文件。尽管转换工具会尝试保留参数值和模块之间的连接,但 Isothermal Liquid 和 Hydraulic 库模块之间并不总是一一对应。转换工具会在 HTML 报告中列出转换过程中遇到的问题。

有关详细信息,请参阅升级液压模型以使用 Isothermal Liquid 模块

hydraulicToIsothermalLiquid(oldfile) 将模块图系统 oldfile 中来自 Foundation > Hydraulic 库的模块替换为等效的 Isothermal Liquid 库模块,并将每个转换后的文件保存在与原始文件相同的文件夹中。如果您拥有 Simscape™ Fluids™ 许可证,该工具还可将 Fluids > Hydraulics (Isothermal) 库中的模块替换为 Fluids > Isothermal Liquid 库和 Foundation > Isothermal Liquid 库中的等效模块。

示例

hydraulicToIsothermalLiquid(oldfile,newpath) 替换指定模块图系统中的模块,并将转换后的模块图系统和转换报告保存在 newpath 指定的位置。

hydraulicToIsothermalLiquid(oldfiles) 转换文件列表 oldfiles,其中每个文件可以是一个模型、子系统或库。转换工具会保留转换后的文件之间的链接。使用此语法可转换包含对其他库、模型或子系统的引用或包含指向其他库、模型或子系统的链接的模型。

示例

hydraulicToIsothermalLiquid(toppath) 转换文件夹 toppath 及其子文件夹中的模型、子系统和库。使用此语法可转换包含对其他库、模型或子系统的引用或包含指向其他库、模型或子系统的链接的自定义库及其他模型。toppath 及其子文件夹都必须位于 MATLAB® 路径上。

示例

hydraulicToIsothermalLiquid(___,subsystemflag) 将来自 Hydraulic 库的模块替换为等效的 Isothermal Liquid 库模块,并根据 subsystemflag 参数的值组织 newfile 模型中的模块。

示例

hydraulicToIsothermalLiquid(___,oldcustomblocks,newcustomblocks)oldcustomblocks 中列出的自定义液压模块替换为相应的等温液体模块 newcustomblocks。使用此语法可转换包含自定义液压模块的模型,例如封装库模块或用 Simscape 语言编写的自定义模块。

要创建等效等温液体版本的自定义模块,请执行以下操作:

  • 对于包含 Foundation > Hydraulic 库或 Fluids > Hydraulics (Isothermal) 库中的模块的自定义库模块和子系统,请对这些自定义库运行转换工具。

  • 对于用 Simscape 语言编写的自定义液压模块,请手动创建使用等温液体域的这些模块的等效版本。

newfiles = hydraulicToIsothermalLiquid(___) 返回转换后的文件名列表 newfiles。转换工具通过在原始文件名之后追加 _converted 来形成每个新文件名。

示例

全部折叠

此示例展示如何在包含 Hydraulic 模块的模型上使用转换工具。该工具会生成一个转换后的模型和一个 HTML 报告。

打开示例模型“带模拟位置控制器的液压作动器”:

openExample('simscape/HydraulicActuatorWithAnalogControlHExample')

此示例模型包含来自 Hydraulic 库的模块。

将 Hydraulic 库模块替换为 Isothermal Liquid 库中的等效模块。

hydraulicToIsothermalLiquid(bdroot)
ans =

  1×1 cell array

    {'HydraulicActuatorWithAnalogControlH_converted'}

转换工具会创建一个名为 HydraulicActuatorWithAnalogControlH_converted 的新文件,并将该文件和转换报告保存在当前文件夹中。

查看 HTML 报告并手动修复其余问题。在此示例中,转换后的模型不包含断开的连接或已删除的模块,但转换工具生成了多个需要注意的参数警告。

在此示例中,您将在使用转换工具后清理模型。首先,完成示例 转换模型以使用 Isothermal Liquid 模块。以下图像显示转换后的模型和转换报告。

有关转换消息和处理这些消息的建议操作的列表,请参阅Conversion Messages After Converting Hydraulic to Isothermal Liquid Models。对于每条消息,点击模块列中的链接可打开关联的子系统,并突出显示生成该消息的模块。

前两条消息指向 Hydraulic Actuator 子系统的两个腔室。原始模型对这两个腔室中的每一个都使用了 Translational Hydro-Mechanical Converter 模块。转换工具将这些模块替换为了 Translational Mechanical Converter (IL) 模块。

Translational Hydro-Mechanical Converter 模块具有比热比参数,但在等温液体域中,所有流体属性都在 Isothermal Liquid Properties (IL) 模块中定义。转换报告列出原始模块中比热比参数的原始值,以便您可以在 Isothermal Liquid Properties (IL) 模块中设置流体属性:Original block had Specific heat ratio of 1.4. Set Air polytropic index to this value in an Isothermal Liquid Properties (IL) block.

打开转换后的模型中的 Isothermal Liquid Properties (IL) 模块,并将其空气多变指数参数设置为 1.4

处理完前两条转换消息后,点击模块列中的第三个链接。

Spool Valve 子系统随即打开。该工具中突出显示 Orifice PA 模块。

在原始模型 HydraulicActuatorWithAnalogControlH 中,打开 Spool Valve 子系统。

Orifice PA 是构成阀门的四个 Variable Area Hydraulic Orifice 模块之一。双击 Orifice PA 模块以查看其参数。

转换工具将每个 Variable Area Hydraulic Orifice 模块替换为了一个 Local Restriction (IL) 模块。双击 Orifice PA 模块以查看其参数。

对于 Orifice PA 模块,转换报告中显示的第一则警告消息是 Critical Reynolds number set to 150,这是因为原始 Variable Area Hydraulic Orifice 模块中的层流转变设定参数为压力比Local Restriction (IL) 替换模块只能通过临界雷诺数来指定层流和湍流状态之间的转变,并且转换工具将临界雷诺数参数设置为其默认值 150。由于原始模型中的 Variable Area Hydraulic Orifice 模块使用默认的层流压力比参数值 0.999,因此无需执行任何操作。

下一条警告消息 Maximum restriction area set to 1e10 m^2 出现的原因在于,Variable Area Hydraulic Orifice 原始模块假定最大开口面积无限大,而节流类型设置为变量Local Restriction (IL) 替换模块要求最大节流面积参数值小于 inf

转换工具将 Local Restriction (IL) 替换模块中的最大节流面积参数设置为任意大值 1e10 m^2。您无需执行任何操作,但可以调整此值,使其与模型的数据表一致。

其余的转换消息涉及其他三个孔口。您可以检查原始模型中的这三个模块,并验证是否不需要执行任何操作。

处理完转换消息后,您可以将原始模型的仿真结果与转换后的模型的仿真结果进行比较,以确保它们相同。您还可以根据需要进行进一步的外观清理。例如,您可以手动重新布置连接线。

要查看转换和清理后的此模型的示例,请打开 HydraulicActuatorWithAnalogControlExample 模型。

openExample('simscape/HydraulicActuatorWithAnalogControlExample')

将此模型与原始模型 HydraulicActuatorWithAnalogControlH 以及转换后的模型 HydraulicActuatorWithAnalogControlH_converted 进行比较。

此示例说明如何在转换模型时使用子系统保留布线。

打开空穴循环示例模型。

openExample('simscape/CavitationCycleExample')

转换该模型,同时使用子系统保留布线。

hydraulicToIsothermalLiquid('CavitationCycle.slx','addsubsystems')

打开 Custom Cylinder 子系统。

该函数将两个活塞都放入子系统中以保留布线。

此示例展示如何将模型与其引用的模型、子系统和链接的库一起进行转换,并保留转换后的文件之间的链接。

假设您有一个名为 modelWithLink 的模型,该模型包含一些液压模块和一个引用模型 referenceModel,该引用模型也包含液压模块。referenceModel 位于 MATLAB 路径上的单独文件夹 Reference Systems 中。

通过在元胞数组中指定文件,转换 modelWithLink 模型和引用模型。

convertedFiles = hydraulicToIsothermalLiquid({'modelWithLink' 'referenceModel'})
convertedFiles =

  2×1 cell array

    {'modelWithLink_converted' }
    {'referenceModel_converted'}

转换工具在与原始模型相同的文件夹中创建两个新模型 modelWithLink_convertedreferenceModel_converted

转换后的模型 modelWithLink_converted 具有等温液体模块,并且链接到转换后的引用模型 referenceModel_converted,该引用模型也具有等温液体模块。

该工具将转换报告 HtoIL_report 保存在 oldfiles 输入参量中的第一个文件的位置。

查看报告、手动修复问题并比较仿真结果后,您就可以使用 hydraulicToIsothermalLiquidPostProcess 函数来还原原始文件名了:

finalFiles = hydraulicToIsothermalLiquidPostProcess(convertedFiles)

该函数用 _converted 模型覆盖原始模型文件。

此示例说明如何转换顶层文件夹及其子文件夹中的所有文件。该工具会转换包含液压模块的所有文件,保留它们之间的链接,并返回转换后的文件列表。如果某个文件不包含液压模块,则该工具不会更改该文件。

假设您有一个名为 topFolder 的文件夹,其中包含具有自定义 Simulink® 库、引用模型和子系统以及模型的子文件夹。

确保 topFolder 及其子文件夹都位于 MATLAB 路径上。

addpath(genpath('topFolder'))

转换 topFolder 及其子文件夹中的所有文件。

convertedFiles = hydraulicToIsothermalLiquid('topFolder')
convertedFiles =

  5×1 cell array

    {'model_converted'             }
    {'custom_Library1_converted'   }
    {'custom_Library2_converted'   }
    {'referenceModel_converted'    }
    {'referenceSubsystem_converted'}

转换工具通过使用原始模型名称并在后面添加 _converted 来命名转换后的文件。该工具将每个转换后的模型保存在与原始模型相同的文件夹中。

在此示例中,该工具没有为 modelWithoutHydraulicBlocks 生成 _converted 文件,因为此模型不包含液压模块。

该工具将转换报告保存在 topFolder 中。

查看报告、手动修复问题并比较仿真结果后,您就可以使用 hydraulicToIsothermalLiquidPostProcess 函数来还原原始文件名了:

finalFiles = hydraulicToIsothermalLiquidPostProcess('topFolder')

该函数通过从文件名中和文件之间的链接中删除 _converted 后缀来覆盖原始文件。

输入参数

全部折叠

要转换的模块图系统名称或句柄,指定为字符向量、字符串标量或句柄。oldfile 可以是模型、子系统或库。它必须位于 MATLAB 路径上或已加载。文件名可以是绝对路径名,也可以是相对路径名。

示例: 'HydraulicActuator'

示例: 'C:\Work\HydraulicActuator.slx'

示例: 'subfolder\HydraulicActuator'

转换后的模块图系统和报告的位置,指定为包含绝对路径名或相对路径名的字符向量或字符串标量。

如果您省略了 newpath 参量,转换工具会将转换后的系统和报告保存在当前工作文件夹中。

示例: 'C:\Work'

要转换的模块图系统的列表,指定为字符向量或字符串标量的一维元胞数组,其中每个元素是一个文件名。元胞数组可以是横向的,也可以是纵向的。文件名可以包括绝对路径名或相对路径名。这些文件可以是模型、子系统或库,并且必须位于 MATLAB 路径上或已加载。当您转换文件列表时,转换工具会保留列表中转换后的文件之间的链接,将每个转换后的文件保存在与原始文件相同的文件夹中,并将转换报告保存在 oldfiles 中第一个文件的位置。

示例: {'HydraulicActuatorLibrary' 'PumpLibrary'}

示例: {'PumpLibrary';'C:\Work\MyPump.slx'}

包含要转换的模块图系统的顶层文件夹的路径名,指定为包含绝对路径名或相对路径名的字符向量或字符串标量。顶层文件夹必须位于 MATLAB 路径上。顶层文件夹可以包含同样包含模块图系统的子文件夹。子文件夹也必须位于 MATLAB 路径上。该工具会保留转换后的文件之间的链接,将每个转换后的文件保存在与原始文件相同的文件夹中,并将转换报告保存在 toppath 文件夹中。

示例: 'C:\Work\MyLibraries'

要替换的自定义液压模块的列表,指定为字符向量组或字符串标量的一维元胞数组,其中每个元素都是一个文件名。

oldcustomblocksnewcustomblocks 这两个元胞数组必须具有相同数量的元素,每个元素对应一个模块名称。每个数组中列出的相应模块必须具有相同数量的端口、匹配的端口顺序和相同的编程参数名称。

要用于替换 oldcustomfiles 的自定义等温液体模块的列表,指定为字符向量或字符串标量的一维元胞数组,其中每个元素都是一个文件名。

oldcustomblocksnewcustomblocks 这两个元胞数组必须具有相同数量的元素,每个元素对应一个模块名称。每个数组中列出的相应模块必须具有相同数量的端口、匹配的端口顺序和相同的编程参数名称。

用于将转换后的模块放置在子系统中的选项,指定为 'omitsubsystems''addsubsystems'。当 subsystemflag'omitsubsystems' 时,仅当工具用多个 Simscape 模块替换单个 Hydraulic 模块时,该函数才使用子系统。如果您将 subsystemflag 指定为 'addsubsystems',该函数会将影响布线的模块放入子系统中,以保留 Hydraulic 模型布线。

如果您为 subsystemflag 指定值,该值必须是最后一个输入参量。

输出参量

全部折叠

转换后的模型、子系统或库的名称,以包含文件名的字符向量的一维列元胞数组的形式返回,不带路径或扩展名。

转换工具通过在原始文件名之后追加 _converted 来形成每个新文件名。

版本历史记录

在 R2020a 中推出

全部展开