www.tech-doc.cn 使用Study API

使用Study API


本节描述使用API的基本功能。完整API函数列表请参阅HTML文档。

加载Study参数配置

按以下步骤加载模型的study配置。可通过以下命令访问模型的study配置对象,其中参数为模型文件路径:

study_config = STUDY.get_config(r'$AME\demo\Platform\OptimizationRobustnessDOE\
Optimization\DesignOptimization.ame')
警告:

若从Simcenter Amesim外部启动的Python控制台加载Study API,必须确保模型处于展开状态(可右键点击模型选择Explode)。

添加新Study参数

以下描述向study配置添加新参数的不同方法。

  • 仅传递data_path

    可将Simcenter Amesim中任何参数或变量的数据路径作为唯一参数传递。例如:

    import ame_study_apy
        study_config = ame_study_apy.STUDY.get_config(r"$AME\demo\Platform\
        OptimizationRobustnessDOE\Optimization\DesignOptimization.ame")
        # 通过传递数据路径添加压力传感器增益
        pressure_param = study_config.add_param("gain@pressuresensor")
  • 仅传递IOType

    用于添加本地输入参数复合参数。等效于在Study Manager对话框中使用Add按钮:

    图2-8. Study Manager对话框

    需传递所需类型的IOType枚举作为参数。IOType可能值为:

    • Input

    • Output

    • Compound

    例如:

    import ame_study_apy
        study_config = ame_study_apy.STUDY.get_config(r"$AME\demo\Platform\
        OptimizationRobustnessDOE\Optimization\DesignOptimization.ame")
        # 添加本地输入参数
        local_input = study_config.add_param(IOType.Input)
  • 同时传递data_path和IOType

    IOType用于指定状态变量的输入参数简单输出参数时,需同时使用data_pathIOType。例如:

    import ame_study_apy
        study_config = ame_study_apy.STUDY.get_config(r"$AME\demo\Platform\
        OptimizationRobustnessDOE\Optimization\DesignOptimization.ame")
        # 将状态变量参数添加为输入类型
        integrator_output = study_config.add_param(‘output@elect02’, IOType.Input)

    处理向量时,由于数据路径对应特定维度的向量类型参数,返回参数对应特定维度,但添加到STUDYConfig时会添加所有可用维度参数。此行为与Simcenter Amesim中"全选或全不选"一致。

    例如,study API需要添加如下所选参数时:

    图2-9. 向量参数

    对应命令如下:

    import ame_study_apy
        study_config = ame_study_apy.STUDY.get_config(r"c:\hydraulic\
        1d\simple_model.ame")
        # 通过传递数据路径添加上述列表中第一个参数
        pressure_param = study_config.add_param("pn_1@hydraulic_1")
        #pressure_param指向下方显示的STUDY参数中的第一个

获取现有Study参数

可通过以下方法传递study名称作为参数获取参数:import ame_study_apy

import ame_study_apy
    study_config = ame_study_apy.STUDY.get_config(r"$AME\demo\Platform\
    OptimizationRobustnessDOE\Optimization\DesignOptimization.ame")
    # 获取输入类型的状态变量参数
    seat_param = study_config.get_param(‘seatD’)

获取Study参数列表

或使用get_params_list API获取Study参数列表:

import ame_study_apy
    study_config = ame_study_apy.STUDY.get_config(r"$AME\demo\Platform\
    OptimizationRobustnessDOE\Optimization\DesignOptimization.ame")
    # 获取所有参数列表
    all_params_list = study_config.get_params_list()

study配置包含三种参数类型:输入、输出和复合输出参数。使用IOType类型参数可获取特定类型的STUDYParam列表。若不传递参数,则获取所有类型的参数。

import ame_study_apy
    study_config = ame_study_apy.STUDY.get_config(r"$AME\demo\Platform\
    OptimizationRobustnessDOE\Optimization\DesignOptimization.ame")
    # 获取输入参数列表
    input_params_list = study_config.get_params_list(IOType.Input)

删除Study参数

可使用remove_param API删除参数。可传递study param引用或study名称作为参数。

import ame_study_apy
    study_config = ame_study_apy.STUDY.get_config(r"$AME\demo\Platform\
    OptimizationRobustnessDOE\Optimization\DesignOptimization.ame")
    # 添加参数
    pressure_param = study_config.add_param("gain@pressuresensor")
    seat_param = study_config.add_param("seatD")
    …
    study_config.remove_param(‘seat_param’)
    # 返回True或False

获取Study参数的iotype

使用get_iotype API确定Study参数的iotype

import ame_study_apy
    study_config = ame_study_apy.STUDY.get_config(r"$AME\demo\Platform\
    OptimizationRobustnessDOE\Optimization\DesignOptimization.ame")
    seat_param = study_config.get_param(‘seatD’)
    seat_param.get_iotype()
    # 返回1

获取现有参数任意列的值

使用get_property API获取Study参数任意列的值。需传递对应列的Property枚举作为第一个参数:Property,可选值为:

  • Submodel

  • Title

  • Study_Name

  • Units

  • Default_Value

  • Type

  • Possible_Values

  • Lower_Bound

  • Upper_Bound

  • Status

  • Expression

import ame_study_apy
    study_config = ame_study_apy.STUDY.get_config(r"$AME\demo\Platform\
    OptimizationRobustnessDOE\Optimization\DesignOptimization.ame")
    seat_param = study_config.get_param(‘seatD’)
    seat_param.get_property(Property.Submodel)
    # 返回‘GLOBAL (seatD)’
    seat_param.get_property(Property.Study_Name)
    # 返回‘seatD’

修改现有参数任意列的值

使用set_property API设置Study参数任意列的值。需传递对应列的Property枚举作为第一个参数,新值作为第二个参数。

import ame_study_apy
    study_config = ame_study_apy.STUDY.get_config(r"$AME\demo\Platform\
    OptimizationRobustnessDOE\Optimization\DesignOptimization.ame")
    seat_param = study_config.get_param(‘seatD’)
    seat_param.get_property(Property.Study_Name)
    # 返回‘seatD’
    seat_param.set_property(Property.Study_Name, ‘new_seatD’)
    # 返回True

保存study配置

要保存对study配置的修改,可使用save API:

import ame_study_apy
    study_config = ame_study_apy.STUDY.get_config(r"$AME\demo\Platform\
    OptimizationRobustnessDOE\Optimization\DesignOptimization.ame")
    seat_param = study_config.get_param(‘seatD’)
    seat_param.set_property(Property.Study_Name, ‘new_seatD’)
    study_config.save()
    # 返回True或False
警告:

即使脚本导入ame_export_apy.py,仍可通过以下两种方式访问Study API:

  1. 在与脚本同目录创建ExportConfig.settings文件。若该文件包含use_study_param_file文本,则即使导入ame_export_apy.py也会调用Study API而非Export API。

  2. 要访问Study API[study_param文件],可在脚本开头初始化XPT = use_study_param_file(true)

    示例:

    import sys
    from ame_export_apy import *
    try:
     XPT = use_study_param_file(true)
     xpt_config= XPT.get_config(r'D:\SourceCode_newcheckouts\
      Projects\BatchDOE\TestReport\
     New TestReport Data\ExportSettings_Scripts\
      Engine_DID_Turbocharged.ame')
     #以下是输入参数
     print ("Study Input Parameters :: starts")
     for cur_param in xpt_config.get_params_list(IOType.Input):
     print ("Param name:", cur_param.get_property(Property.Export_Name))