Is there a way to list of parameters of FMU (or of submodel in FMU) using the python libraries FMPy or pyFMI?

前端 未结 3 1951
遥遥无期
遥遥无期 2021-01-19 10:54

I have a FMU of a model and the use case is to change parameter values of the FMU to see the impact on the results. Is there a way to list top level parameters of the FMU us

相关标签:
3条回答
  • 2021-01-19 11:27

    With fmpy you can loop over the modelVariables in the model description as follows:

    from fmpy import read_model_description
    from fmpy.util import download_test_file
    
    fmu_filename = 'CoupledClutches.fmu'
    
    download_test_file('2.0', 'CoSimulation', 'MapleSim', '2016.2', 'CoupledClutches', fmu_filename)
    
    model_description = read_model_description(fmu_filename)
    
    parameters = [v for v in model_description.modelVariables if v.causality == 'parameter']
    
    0 讨论(0)
  • 2021-01-19 11:36

    In FMI there is no distinction between top level parameters and other parameters. To list all available parameters in the model using PyFMI (FMI 2.0):

    from pyfmi import load_fmu
    import pyfmi.fmi as fmi
    
    model = load_fmu("MyModel.fmu")
    params = model.get_model_variables(causality=fmi.FMI2_PARAMETER)
    
    0 讨论(0)
  • 2021-01-19 11:38

    For fmpy you can also inspect this jupyter notebook: https://notebooks.azure.com/t-sommer/projects/CoupledClutches, which contains the lines

    model_description = read_model_description(filename)  # read the model description
    
    for variable in model_description.modelVariables:            # iterate over the variables
        if variable.causality == 'parameter':                    # and print the names of all parameters
            print('%-25s %s' % (variable.name, variable.start))  # and the respective start values
    
    0 讨论(0)
提交回复
热议问题