2010-10-07 16 views
8

Me gustaría entender cómo funciona el motor de simulación Simulink. ¿Utiliza un mecanismo de simulación de eventos discretos (entonces, ¿cómo se maneja el tiempo continuo?)? ¿Se basa en una generación de código estático basado en ciclos? O?¿Cómo funciona el motor de simulación Simulink?

Respuesta

4

Antes del primer ciclo, se da cuenta de que el orden de ejecución de los bloques (empezando por los que no requieren aportaciones de los otros bloques)

Cada ciclo, se calcula la salida de cada bloque basado en las entradas y el código del bloque. El código de cada bloque es estático, en su mayoría existía antes de poner el modelo en conjunto. (No sé si las opciones de bloque realmente cambian el código, o si se evalúan solo en tiempo de ejecución, en cada iteración).

Si el paso de simulación es variable, cada ciclo calcula el tamaño del siguiente paso , basado principalmente en cuán rápido cambian las variables del modelo. Cuanto más rápido cambien, menor será el tamaño del paso, por lo que no se supone que una derivada brevemente alta dure mucho más de lo que debería. (No sé los detalles de este cálculo, tal vez alguien más puede arrojar una luz?) Por lo tanto, la simulación "continua", o paso variable, solo significa que Simulink hará una suposición educada de cada ciclo sobre qué tamaño de paso es lo suficientemente pequeño para mantener el error de cuantificación de tiempo en un nivel aceptable. La simulación verdaderamente continua es literalmente imposible sobre un hardware completamente digital, como el procesador de su computadora.

+0

Thx. Eso es lo que estaba pensando también. Perdón por esta extraña pregunta, pero ¿cómo obtuviste esta información? ¿Qué nivel de confianza tienes? – JCLL

+0

@JLCC No mucho. Tengo años de experiencia en el uso de Simulink, pero esa información proviene de inferir y obtener pistas de la documentación (hay muchas pistas allí, pero nunca encontré una descripción clara). Lo que me da más confianza acerca de lo que dije aquí es mi conocimiento limitado de las funciones s, que son bloques cuyo código usted mismo escribe. Recomiendo leer sobre eso, proporcionan información sobre lo que está sucediendo. Lo que dije sobre el algoritmo de cálculo de paso variable es de muy baja confianza. Pero estoy muy seguro de que la simulación verdaderamente continua es imposible, aunque no se puede ref –

0

Definitivamente no soy un experto, pero la respuesta es probable que sea 'depende'.

Simulink ciertamente usa la integración numérica para algunas cosas, y para algunos integradores terminará con pasos de tiempo discretos. Para otros integradores, el paso del tiempo se puede modificar a medida que se ejecuta la simulación, lo cual es particularmente importante para simular conjuntos de ecuaciones "rígidos".

Cuestiones relacionadas