Pregunta

Antecedentes:

He heredado un modelo de simulación de eventos discretos MATLAB y desea automatizar y la velocidad de su ejecución. En lugar de llamar sim (modelName) y que hayan recorrido MATLAB código interpretado, me gustaría una solución similar a sistema de llamada ( 'modelName.exe ...'). Mi motivación para esto viene de las primeras pruebas que sugieren que una velocidad de aumento de casi el 1000%. He conseguido utilizar el Real-Time Workshop con el objetivo simulación rápida para producir un exe con la asignación de memoria estática. El problema es que no están incrustados bloques de funciones de MATLAB en el modelo para la que los parámetros varían en tamaño y forma en cada serie. Y habrá cientos si no miles de carreras.

De acuerdo con la documentación MathWorks:

Asignación dinámica de memoria no compatible para los bloques de función de Embedded MATLAB:

"No se puede utilizar la asignación dinámica de memoria para los datos de tamaño variable en bloques de función de Embedded MATLAB. Uso limitado en lugar de datos de tamaño variable sin límites."

Pregunta:

¿Cuál sería una posible solución para esta limitación?

Pensamientos:

  • Usar una tamaños variables estáticas que son suficientemente grandes, y, además, pasar variables INT / parámetros ajustables para explícitamente ventana la parte de los datos de rango sobre el.
  • S-Funciones?
  • ¿Qué estoy poniendo en práctica hoy:. Recompilación mediante programación la simulación cada vez que se llama a generar código estática, dinámica
  • Port todo para un verdadero lenguaje de programación / moderna, como Python o C ++.

Palabras clave: MATLAB asignación dinámica de memoria integrado de simulación de eventos discretos Real-Time Workshop Simulink SimEvents de parámetros ajustables

¿Fue útil?

Solución

El seguimiento de este años más tarde ... Nos fuimos con la recompilación dinámica estática que había implementado ese día durante un año más o menos, y luego otro desarrollador estadísticas volvió a escribir en C ++. El uso de la memoria máxima posible de cada carrera simplemente no era una pérdida posible de los recursos informáticos.

Otros consejos

Debería ver el seminario web: http://www.mathworks.com/ empresa / eventos / seminarios web / wbnr43180.html . En él se explica una solución automática similar a su primer pensamiento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top