Esta guía ayuda a acelerar las simulaciones y mejorar el rendimiento de los modelos de Simulink®. Los pasos que figuran a continuación indican algunas herramientas que puede utilizar, en función de su situación, para corregir o analizar el rendimiento de los modelos. Comuníquese con el servicio de soporte técnico si tiene alguna dificultad para seguir estos pasos o no puede resolver un problema. Deberá recopilar datos a medida que sigue estos pasos. Los datos ayudarán al servicio de soporte técnico a comprender el problema más rápidamente, en caso de que necesite soporte adicional.
Paso 1: Cambios recientes
Cambiar de modelo o versión de MATLAB ha provocado un problema de rendimiento
Comparación de modelos
Si ha modificado un modelo como parte del proceso de actualización a una nueva versión de MATLAB®, compare el modelo con su versión original para hallar cambios que puedan repercutir negativamente en el rendimiento.
Una vez realizada la comparación, haga clic en Publish y guarde el informe.
Upgrade Advisor
Si ha actualizado a una nueva versión y no ha detectado problemas con la herramienta de comparación, ejecute Upgrade Advisor. Upgrade Advisor puede identificar casos en los que puede beneficiarse cambiando un modelo para usar nuevas funcionalidades y configuraciones en Simulink.
Cuando Upgrade Advisor haya terminado de ejecutar las comprobaciones, guarde el informe.
Comparación de modelos
Si ha modificado un modelo significativamente pero no tiene certeza de qué causó la ralentización, compare el modelo con su versión original para hallar cambios que hayan repercutido negativamente en el rendimiento.
Una vez realizada la comparación, haga clic en Publish y guarde el informe.
Paso 2: Ejecute Performance Advisor
Performance Advisor analiza el modelo para detectar parámetros de configuración y patrones de modelado que pueden ralentizar la simulación, y sugiere acciones para mejorar el rendimiento. Después de realizar modificaciones en el modelo, Performance Advisor puede realizar una validación final para mostrar las mejoras efectuadas.
Cuando Performance Advisor haya realizado la validación final, guarde el informe.
Si desea probar técnicas adicionales para mejorar el rendimiento, vaya al paso 3.
Paso 3: Creación de perfiles de inicialización
¿Tiene un objeto SimulationOutput
con resultados de una simulación reciente?
Compruebe el tiempo necesario para inicializar el modelo utilizando este comando, y reemplace out
con el nombre de su objeto SimulationOutput
si fuera necesario.
out.SimulationMetadata.TimingInfo.InitializationElapsedWallTime
Si el tiempo de inicialización es mayor de lo esperado y desea investigar más a fondo, continúe con el paso 3. Si prefiere centrarse en posibles problemas de simulación, vaya al paso 4.
Compruebe el tiempo necesario para inicializar el modelo utilizando este comando, y reemplace out
con el nombre de su objeto SimulationOutput
si fuera necesario.
out.SimulationMetadata.TimingInfo.InitializationElapsedWallTime
Reemplace out
con el nombre de su objeto SimulationOutput
si fuera necesario.
Si el tiempo de inicialización es mayor de lo esperado y desea investigar más a fondo, continúe con el paso 3. Si prefiere centrarse en posibles problemas de simulación, vaya al paso 4.
En la mayoría de los casos, cuando se corre una simulación de Simulink, se crea un objeto que contiene detalles de la simulación.
Para generar un objeto SimulationOutput
para un modelo, ejecute estos comandos, y reemplace MyModel
con el nombre del modelo en cuestión.
mdl = "MyModel";
out = sim(mdl,StopTime=“0”,CaptureErrors=“on”);
Estos comandos inicializan el modelo y detienen la simulación en la unidad de tiempo 0. El objeto SimulationOutput
generado a partir de la simulación incluye información sobre el tiempo de inicialización.
Una vez que out
esté disponible, compruebe el tiempo necesario para inicializar el modelo con este comando:
out.SimulationMetadata.TimingInfo.InitializationElapsedWallTime
Si el tiempo de inicialización es mayor de lo esperado y desea investigar más a fondo, continúe con el paso 3. Si prefiere centrarse en posibles problemas de simulación, vaya al paso 4.
En la mayoría de los casos, cuando se corre una simulación de Simulink, se crea un objeto que contiene detalles de la simulación. Antes de intentar obtener un objeto nuevo, revise el área de trabajo base en busca de un objeto con el valor “1x1 SimulationOutput
”.
Para generar un objeto SimulationOutput
para un modelo, ejecute estos comandos, y reemplace MyModel
con el nombre del modelo en cuestión.
mdl = "MyModel";
out = sim(mdl,StopTime=“0”,CaptureErrors=“on”);
Estos comandos inicializan el modelo y detienen la simulación en la unidad de tiempo 0. El objeto SimulationOutput
generado a partir de la simulación incluye información sobre el tiempo de inicialización.
Una vez que out
esté disponible, compruebe el tiempo necesario para inicializar el modelo con este comando:
out.SimulationMetadata.TimingInfo.InitializationElapsedWallTime
Si el tiempo de inicialización es mayor de lo esperado y desea investigar más a fondo, continúe con el paso 3. Si prefiere centrarse en posibles problemas de simulación, vaya al paso 4.
Utilice MATLAB Profiler para hallar código que pueda estar ralentizando la inicialización.
MATLAB Profiler
A veces, existen callbacks de modelos o scripts de inicialización que tienen una base de código de MATLAB extensa. MATLAB Profiler analiza el tiempo que se tarda en ejecutar el código de MATLAB correspondiente a un modelo para ayudar a identificar posibles cuellos de botella.
Ejecute estos comandos en la ventana de comandos antes de correr la simulación:
profile clear; profile on;
Cuando la simulación haya finalizado, ejecute este comando:
p = profile('info');
Cuando se haya ejecutado MATLAB Profiler, haga clic en Print y guarde el informe como PDF.
Observe los resultados de MATLAB Profiler. Si aparecen funciones o scripts que no esperaba, o si la ejecución de código de MATLAB tarda más de lo esperado, trate de solucionarlo.
Si desea probar técnicas adicionales para mejorar el rendimiento, vaya al paso 4.
Paso 4: Creación de perfiles de simulación
¿Está utilizando un solver de paso variable?
Si no lo sabe, mire en el panel Solver del cuadro de diálogo Configuration Parameters.
Simulink Profiler
Simulink Profiler analiza el tiempo necesario para correr la simulación de un modelo, con un desglose por componente. Puede utilizar esta información para establecer una base de referencia e identificar posibles constructos problemáticos en el modelo. Tome nota de los modelos que requieren mucho tiempo propio.
Una vez completado el perfil, vaya a Share, haga clic en Generate Report y guarde el informe.
Si existe una situación del modelo que no se ha solucionado con estos pasos, vaya al paso 5.
Simulink Profiler
Ejecute Simulink Profiler.
Simulink Profiler analiza el tiempo necesario para correr la simulación de un modelo, con un desglose por componente. Puede utilizar esta información para establecer una base de referencia e identificar posibles constructos problemáticos en el modelo. Tome nota de los modelos que requieren mucho tiempo propio.
Una vez completado el perfil, vaya a Share, haga clic en Generate Report y guarde el informe.
Solver Profiler
Ejecute Solver Profiler.
Solver Profiler analiza la dinámica de un modelo y ayuda a identificar cuándo se degrada el rendimiento de la simulación debido a unidades de tiempo más pequeñas o eventos de simulación importantes (incluyendo excepciones de solvers y reinicios de solvers).
Después de crear el perfil, guarde el gráfico haciendo clic en la pestaña Export y luego guárdelo como archivo .fig.
Si existe una situación del modelo que no se ha solucionado con estos pasos, vaya al paso 5.
Paso 5: Pasos adicionales
¿Es satisfactorio el rendimiento del modelo?
Gracias por usar la Guía de rendimiento de Simulink.
Consulte estos recursos adicionales que exploran técnicas para mejorar el rendimiento de un modelo:
Gracias por tomar tiempo en depurar y recopilar información de diagnóstico.
Comuníquese con el servicio de asistencia para proporcionar los informes generados durante este proceso.