Inicialización de una Dymola FMU en Simulink

Me he encontrado con un problema al intentar simular un modelo utilizando un archivo fmu en Simulink:

Estoy utilizando la caja de herramientas FMI de Modelon para una interfaz Dymola / Simulink para importar un archivo fmu tipo de intercambio de modelos (versión 1.0) en el modelo de Simulink. Tengo un archivo m de Matlab que simula el modelo de manera secuencial programada, guardando los estados internos finales del modelo para su inicialización en la siguiente simulación. La primera iteración de la simulación se ejecuta sin errores, pero en la segunda iteración, Matlab devuelve los siguientes errores en la llamada para la simulación:

module = partial_run_sim2 / BasicModels.System_model_final_Sim, log level = ERROR: [] [FMU status: Error] fmiInitialize: dsblock_ failed, QiErr = 1
module = partial_run_sim2 / BasicModels.System_model_final_Sim, log level = ERROR: [] [Estado de FMU: Error] Posibles errores (no exhaustivos): 1. No se encontró el archivo de licencia. Use la variable de entorno "DYMOLA_RUNTIME_LICENSE" para especificar su archivo de licencia de Dymola. 2. El modelo hace referencia a datos externos que no están presentes en la máquina de destino, al menos no con la misma ubicación. Error reportado por la función S 'sfun_fmu_me_1_0' en 'partial_run_sim2 / BasicModels.System_model_final_Sim': fmiInitialize regresó con un error en initialize_fmu_model_first_time. Consulte la ventana de comandos para obtener más información impresa por el modelo FMU.

Sé que mis licencias para Dymola y la caja de herramientas de FMI están actualizadas.

La llamada de simulación en el archivo-m es:

simOut_itr = sim(model, model_cs); 

Donde “modelo” es el archivo de modelo .slx de Simulink y “model_cs” es una variable de configuración de configuración de Simulink. He establecido la Configuración de tal manera que el modelo carga los estados iniciales del área de trabajo, y he guardado los estados finales de iteraciones anteriores en esa variable del área de trabajo. Esta acción también se produce para la primera iteración, aunque los estados iniciales son los mismos que los estados iniciales predeterminados en el archivo fmu. Sospecho que la primera iteración se ejecuta sin problemas porque la inicialización es la misma que el valor predeterminado, pero la iteración posterior tiene un valor de inicialización diferente, que no está de acuerdo con el bloque fmu.

Soy consciente de la capacidad de simular el archivo fmu en Matlab utilizando las funciones fmi, pero estos métodos no permiten tanta transparencia en los estados del sistema, lo que dificulta la simulación secuencial. Sin embargo, estoy abierto a cualquier método que permita este tipo de simulación.

Cualquier sugerencia con respecto a la inicialización de los estados del sistema en archivos fmu en Matlab / Simulink es muy apreciada. Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta